执行摘要
- 一句话:迁移CI测试数据集从MGSM-EN到GSM8K,移除外部依赖并调整阈值。
- 推荐动作:建议CI维护者、测试工程师和关注模型准确性的开发者精读,重点关注阈值校准策略和依赖管理决策;对一般工程师,了解变更背景即可,无需深入代码细节,但可参考如何优化CI稳定性。
功能与动机
PR body中指出,多个CI测试运行时从https://openaipublic.blob.core.windows.net/下载数据集,这是一个由OpenAI托管的外部Azure blob,导致CI依赖脆弱——如果端点慢、限速或不可用,测试会因无关原因失败。MGSM-EN数据集下载12个TSV文件且无缓存,而GSM8K使用download_and_cache_file缓存到/tmp/test.jsonl,首次获取后离线运行,旨在消除CI不稳定因素。
实现拆解
实现分为两部分:一是将8个测试文件中的eval_name="mgsm_en"统一替换为eval_name="gsm8k",涉及分布式、量化、AMD准确性和调度器测试;二是基于GSM8K(5-shot/CoT)基准重新校准阈值,将所有阈值设置为基准值的95%以考虑硬件差异,并修正了如Mistral-7B、Llama-3.1-70B等模型的错误阈值;同时调整测试参数,如移除硬编码num_examples以使用默认值。
关键文件:
test/registered/amd/accuracy/mi30x/test_gsm8k_eval_amd.py(模块 testing): 阈值调整最全面,涉及AMD GPU多模型测试,涵盖FP8和FP16变体,是迁移的核心文件之一。
test/registered/eval/test_text_models_gsm8k_eval.py(模块 testing): 通用文本模型GSM8K评估文件,阈值更新影响广泛,包括多个主流模型,是CI测试套件的关键部分。
test/registered/quant/test_quantization.py(模块 testing): 量化模型测试文件,阈值重新校准以匹配GSM8K格式,影响AWQ和GPTQ等量化方法的准确性验证。
test/registered/piecewise_cuda_graph/test_piecewise_cuda_graph_support_1_gpu.py(模块 testing): CUDA图测试文件,调整参数和阈值以适配GSM8K,用于验证piecewise CUDA graph不影响模型准确性。
关键符号:test_gsm8k, test_gsm8k_all_models, test_1_gsm8k_has_prefill_delayer, test_2_gsm8k_no_prefill_delayer
评论区精华
review中仅有一个bot评论,由gemini-code-assist[bot]发表,确认变更内容无误,表示'没有反馈可提供',表明变更被简单接受,没有实质性讨论、争议或未解决疑虑。
- 变更确认 (other): 变更被接受,无需修改。
风险与影响
- 风险:风险包括:阈值调整基于GSM8K基准,但校准可能不准确,导致测试假阳性(过于宽松,遗漏回归)或假阴性(过于严格,误报失败);GSM8K数据集虽然缓存,但GitHub可用性也可能影响CI稳定性;迁移后测试覆盖范围是否与MGSM-EN一致存在不确定性,可能遗漏某些模型行为或边缘案例。具体文件如test/registered/amd/accuracy/mi30x/test_gsm8k_eval_amd.py中的阈值变化需谨慎验证。
- 影响:对终端用户无直接影响,主要影响CI流程和团队开发体验;系统层面,移除外部依赖提高CI稳定性、可重复性和离线能力,减少因网络问题导致的失败;团队层面,开发者将受益于更可靠的测试套件,加速代码合并流程,但需适应新阈值可能带来的测试结果变化。
- 风险标记:阈值校准风险, 外部依赖移除, 测试覆盖一致性
关联脉络
- PR #22288 [CI] Update nightly test models for H200/B200: 同为CI测试更新,涉及模型和依赖调整,反映CI基础设施的持续优化趋势。
- PR #22188 [AMD] Fix test_kimi_k25_mxfp4.py : stage-c-test-large-8-gpu-amd-mi35x (linux-mi35x-gpu-8, 1): 修复AMD测试中的权重加载问题,与本PR的AMD准确性测试相关,共同提升AMD平台CI稳定性。
- PR #22282 [tiny] migrate /get_server_info; print accept length in accuracy tests: 迁移废弃端点并在精度测试中打印信息,类似本PR的测试基础设施更新,显示团队对CI细节的改进关注。
参与讨论