用途:为本地 Linger 3.x 项目构建、诊断、优化并验证量化感知训练(QAT)工作流,把量化训练当作带签收标准的工程闭环,而非在浮点脚本末尾调用一次 linger.init。
主要能力:冻结验收条件(指标、浮点基线、允许精度下降、输入 shape/range、预处理、目标平台、位宽、时延与内存约束);审计算子、分支、归一化、激活、动态 shape 与输出形式;建立浮点基线并保留 golden inputs/outputs;用 trace_layers -> init -> forward -> linger.onnx.export 做快速导图预检;执行约束训练、量化初始化与 QAT 微调;诊断量化损失并做精度恢复与 mixed precision 迭代;导出 ONNX 并做图审计与 runtime consistency 验证。
使用方式:在 toolchain root 下运行脚本,如 python3 lnn-quant-training/scripts/generate_qat_config.py --output configs/qat.yaml --platform venusA --device cuda --qat-method MOM,以及 inspect_quant_checkpoint.py、compare_outputs.py、inspect_quant_onnx.py;各脚本用途、输入约定与返回码见 --help。流程细节参考 references 下 model-design.md、training-workflow.md、accuracy-recovery.md、mixed-precision.md、export-and-validation.md、report-template.md、project-sources.md、configuration.md。
限制:目标平台缺失时只能做通用 8/8-bit QAT,不得给出部署兼容结论;trace_layers、constrain、init 会改变模型结构,每次结构变化后须重建 optimizer/scheduler;须保留 float、constrained、QAT 三类独立 checkpoint;训练、恢复、评估、导图须使用相同 model code、fusion 顺序、config、disable_module/disable_submodel 与输入契约;加载 checkpoint 后检查 missing_keys 与 unexpected_keys;disable_module 修改进程级量化注册表,仅用于隔离实验;TQT 使用 quant_method: NATIVE 或 CUDA_GS,当前 CUDA backward 不返回 learning_data 梯度;不用普通 ONNX Runtime 能否执行 custom-domain op 作为导图成功标准;一次只改一个主要变量。仅加载可信来源 checkpoint,检查脚本优先 weights_only=True。具备 Thinker 时保留 pkg、memory report、tvalidator/runtime 结果,不具备时明确标为未验证。