Hugging Face在2026年11月3日的博客中提出模型集成契约(Model Integration Contracts,简称MIC):把缩小后的模型与具体使用路径、基准输出打包,在成本较低的CPU运行器上执行快速集成测试,争取在代码合入主分支前发现回归问题。transformers-mic是这套测试打包方式的拟议标准。

这项工作的一个起因,是Transformers中的UMT5缺陷。7月30日,Transformers为T5启用PyTorch的缩放点积注意力(SDPA),却让UMT5解码器意外获得了关注未来词元的能力,训练时可以偷看本应预测的答案。程序没有崩溃,缺陷在主分支停留了近两个月。团队后来重放相关提交时,一个在CPU上运行的小型UMT5模型在每个提交上都检出了问题。

全量测试难以覆盖每次代码变更,是博客给出的背景。Transformers支持超过750种模型类型,主分支有超过8.8万项CPU测试,每日运行还有超过20万项GPU测试。集成测试需要加载真实检查点,在真实硬件上验证模型API;团队认为,为每个拉取请求运行全部测试并不现实,而定时测试发现问题时,代码可能已经进入主分支。

MIC采用的测试模型保留真实检查点配置中的各类层,但减少层数并缩窄层宽,分词器和处理器文件保持不变,发布一次后重复使用。在团队的CPU研究中,实验性UMT5测试模型的权重为66 MB,源检查点为1,227 MB。一些无法装入团队标准GPU运行器的大模型,其缩小版本也能在CPU上运行。

一份契约包含三个部分:发布并固定的测试模型、可运行的Markdown用例,以及运行用例后记录并经人工审核的基准输出。用例可以是生成文本或执行一个训练步骤;重新运行后仍得到基准输出,才算满足契约。例如,SmolLM契约会从指定提示词生成内容,再将词元ID与记录结果比较,而不只是检查模型能否加载和完成前向计算。

契约覆盖的是一种架构和一条使用路径,而非单个检查点。兼容的检查点可以共用测试模型,同时各自保留预期结果。团队将这些契约发布在huggingface-mic中,并明确指出:缩小模型的测试不会取代完整集成测试,其作用是在拉取请求阶段增加一道检查。

原始来源:Transformers Model Integration Contracts