快速结论:该报错发生在 Transformers 5.16.0 及 main 分支中,当 FP8 量化配置缺少 _experts_implementation 或 FP8Experts._impl_tp_layer_overrides 中没有对应条目时,FineGrainedFP8HfQuantizer.update_tp_plan() 会因空值查找而崩溃。优先检查你的 FP8 模型配置是否包含专家层实现覆盖条目,或回退到受影响版本之前的提交。
适用环境:Transformers 5.16.0 及当前 main 分支、Python 3.12.13、PyTorch 2.13.0+cu130、Linux 平台。
最快修复方案:Issue 中已确认该回归由 #47579(提交 861f4c41ee46974debe5dde47dd0339146f4e6d2)引入,修复代码及回归测试已在 #48343 中提供并计划合并。在官方补丁合并前,暂无确认的一步修复方案;可优先尝试将 Transformers 回退到 #47579 合并之前的版本。
注意事项:修复方案目前处于 PR 阶段,尚未发布正式版本;该问题会影响常规 Qwen FP8 模型的加载,合并修复前暂不建议升级到 5.16.0 或使用最新 main。
问题场景
在 Transformers 中使用 FineGrainedFP8HfQuantizer 加载 FP8 模型时触发。该问题发生在 update_tp_plan() 执行阶段,涉及 TP(张量并行)计划更新。Issue 中复现代码使用 SimpleNamespace 构造了一个仅含 base_model_tp_plan 的配置对象,然后调用 update_tp_plan(),复现了官方 Qwen FP8 模型在加载时遇到的同类崩溃。
报错原文
AttributeError: 'NoneType' object has no attribute 'get'
原因分析
这是一个由 #47579(861f4c41ee46974debe5dde47dd0339146f4e6d2)引入的回归问题。在 TP/DTensor 重构过程中,原有 if layer_overrides: 防御性检查被移除,但 layer_overrides.get(...) 仍保持无条件调用。当 FP8 配置没有匹配的 _experts_implementation 覆盖条目时,查找返回 None,后续将其当作字典映射使用导致崩溃。
环境排查
- 确认 Transformers 版本是否为 5.16.0 或当前 main 分支(受影响范围)
- 确认 Python 版本是否为 3.12.13(Issue 验证环境)
- 确认 PyTorch 版本是否为 2.13.0+cu130(Issue 验证环境)
- 检查 FP8 配置中是否包含
_experts_implementation字段 - 确认
FP8Experts._impl_tp_layer_overrides中是否包含对应条目 - 若加载 Qwen FP8 模型,确认是否为常规 FP8 配置(非专家实现定制)
解决步骤
- 确认当前 Transformers 版本是否处于受影响范围(5.16.0 或包含 #47579 之后提交的 main 分支)。
- 查看
FineGrainedFP8HfQuantizer.update_tp_plan()源码,定位layer_overrides变量的查找逻辑,确认是否存在类似if layer_overrides:的防御判断。 - 检查 FP8 配置中是否定义了
_experts_implementation,以及该值是否在FP8Experts._impl_tp_layer_overrides中有对应条目。 - 若为常规 FP8 模型(无专家定制),可优先尝试将 Transformers 回退到 #47579 合并之前的版本(即提交
861f4c41ee46974debe5dde47dd0339146f4e6d2之前的 main)。 - 关注并合并 #48343 中的修复补丁(已将缺失覆盖视为空映射,保留现有 TP/EP 计划),该补丁包含回归测试。
- 若无法立即升级或回退,可尝试在调用
update_tp_plan()前为配置补充空的_experts_implementation映射,但需注意这是临时规避方案,未在 Issue 中明确验证。
验证方法
使用 Issue 中的复现代码运行,若不再抛出 AttributeError 且能正常执行 update_tp_plan(),说明问题已解决。对于加载 Qwen FP8 模型的场景,确认模型能正常加载并完成 TP 计划更新即可。
参考来源
huggingface/transformers #48346
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。
![[Bug]: parsing markdown error: failed to encode response: json: unsupported value: NaN (status code: 500)](https://www.chat-gpts.plus/wp-content/uploads/2026/08/15392-bea47837-768x403.jpg)

