论坛算法工具链QAT时转换hbm文件时出现问题

QAT时转换hbm文件时出现问题

已解决
堇孑2026-07-29
129
3
  1. 芯片型号:J3

  2. 天工开物开发包 OpenExplorer 版本:horizon_xj3_open_explorer_v2.6.4-py38_20240319

  3. 问题定位:模型量化编译hbm文件时报错

  4. 问题具体描述:浮点训练、校准和QAT训练都正常,但在最后做模型量化编译时出现问题,具体报错信息如下(报错全文可见附件中0729compile.log):

附件:
算法工具链
技术深度解析征程3
评论3
0/600
  • XZH
    Lv.2

    我先复现一下您的报错看问题在哪,后面一起把解决方案发出来

    2026-07-30
    0
    0
  • XZH
    Lv.2
    您好,根据目前提供的源码、QAT权重及多轮编译日志,现在看来ConvReLU2d has not collected any statistics的原因在于编译流程重新通过 get_model_fx() 创建了QAT模型,但在执行convert_fx()前没有完整恢复qat-last.pt中的模型参数及 Observer/FakeQuant状态。但get_model_fx() 本身并非问题根因,关键是新建模型后必须加载与 QAT 训练完全一致的 checkpoint,并确保模型结构、qconfig 等配置一致。修正后,该统计信息缺失问题已经消除。

    但这并不是导致HMB编译失败的根本原因,修正checkpoint加载流程后,HBDK 仍然报错internal error: max input left shift 6,经过进一步的排查这个报错集中在自定义的gcm3模块中的多路量化乘法计算,我针对这些乘法节点及整个 gcm3模块的激活scale做过定向约束,即使将155个相关模块的激活scale下限统一提高到1/64,HBDK3.49.6仍然产生完全相同的内部错误,且未生成HBM。

    后续可以试着在convert_fx()前加载qat-last.pt,并严格检查权重、Observer 和 FakeQuant 状态是否全部匹配。
    2026-08-04
    0
    0
  • D-bot
    Lv.4

    您好,鉴于您长时间未回复,本问题将暂时关闭,若您还有问题,可重新发起提问,感谢!

    2026-08-07
    0
    0