
上述流程图展示了完整的工具链应用开发闭环,涵盖了从算法原型结构设计到芯片端落地的全套工具。
在实际的算法适配落地中,模型结构的硬件适配调整、量化参数调优以及拆分阈值的设定往往是开发者面临的三大核心痛点。
为此,我们结合大模型能力,在关键节点引入了 3 个核心 Skill,旨在降低使用门槛,实现全流程的自动化适配。
以下是各阶段的详细解析与操作建议:
- 核心任务: 搭建既符合硬件底层特性,又能满足上层业务需求的算法模型。
- Skill 赋能: 模型辅助设计 Skill
- 开发者只需描述业务需求,或指定模型 Backbone 与目标平台,Skill 即可介入设计,生成针对目标硬件深度优化的模型结构。
- 自动化验证: 在环境允许的情况下(同目录部署 Linger 和 Thinker),该 Skill 会自动触发后续的 Linger+Thinker 流程,确保设计方案在生成阶段即通过规约性检查。
- 产出: 通过规约性检查的、硬件友好的模型结构
当前状态: 暂略(后续计划提供开源的数据采集与标注框架)。
- 核心任务: 基于确定的模型结构与数据集,执行标准训练流程直至模型收敛。
- 基准验证: 使用测试集完成效果评估,记录基准指标为 效果1。
- 核心任务: 在已收敛的浮点模型基础上,导入 Linger 包并接入少量 API。采用 QAT(量化感知训练) 策略,沿用浮点训练策略直至 Loss 收敛,并导出量化 ONNX 计算图。
- Skill 赋能: 量化训练辅助调参 Skill
- 由大模型自动接管量化训练过程中的超参调优,确保量化后的模型精度(效果2)相对浮点模型(效果1)基本无损。
- 验证: 使用同一测试集评估,记录量化后指标为 效果2。
- 核心任务: 利用 tpacker 指定量化 ONNX 路径,对计算图进行精简与优化,转换为推理友好格式。离线分析内存占用,将有效信息按特定格式序列化,以字节流形式写入文件。
- Skill 赋能: 分析打包 Skill
- 智能辅助完成拆分阈值的设定,确保模型以最优内存布局通过离线打包。
- 产出: 序列化资源文件。
- 调试支持: 支持通过 -d true 参数导出计算图优化的中间状态及最终的内存分析报告。
- 核心任务: 基于 thinker/demo 目录下的四种典型场景示例,仅需指定模型资源路径与输入数据,即可运行仿真并保存结果。
- 调试配置:
- THINKER_RESULT_DUMP=ON:将每一层的中间结果打印并保存为文本文件。
- THINKER_RESULT_CRC_PRINT=ON:计算并打印每一层中间结果的 CRC32 校验值。
- 核心任务: 基于各芯片平台发布固件 SDK(集成对应版本的 libthinker.a / libthinker_log.a)版本,替换模型资源并配置输入参数即可运行。
- 一致性验证机制: 使用链接 libthinker_log.a 的固件运行,系统将打印所有层的 CRC32 校验值。通过将其与仿真环境结果比对,即可确认仿真与板端推理结果的一致性。
- 核心任务:完成量化训练与芯片端接口的最终一致性验证。
- 单条数据一致性验证:
- 在配置完整开发环境且安装完 Linger + Thinker 的环境中,使用 tvalidator 工具会生成随机输入数据,自动比对量化训练和仿真推理结果;
- 在仿真和芯片工程中,保证相同输入情况下,对比中间结果的 CRC32 值来确认仿真和芯片平台的一致性;
- 小批量数据一致性验证:拉通整个引擎流程后,在仿真平台或芯片平台跑同一批次的测试数据,记录落地指标为 效果3。确保 效果2 和 效果3 完全一致(比特位对齐),即可完成算法适配的所有流程。