目录

Fpai-user-one-model

100/30/400Tai模型部署工程的一体化交付 skill: 工程框架结构生成 / 源工程迁移 / 模型导出 / 算子审计 / TOML 编译 / Windows 仿真 / 上板执行准备。

  • 客户侧后端选择 100Tai/30Tai/400Tai 内部归一到 BY/ZG/WL;后端一经选定只生成、编译该后端。
  • 自动挂载内部知识库 \92.168.35.7\public\fpai_kb(产品/应用/TOML/runtime API/算子清单/编译教程),客户无需提供。
  • 默认只读工程参考库 \92.168.35.7\public\fpai_kb\icraft_v3.38\public\modelzoo\400Tai_pure(多目标库,先清点 BY/ZG/WL 分支,不先进入 WL)。
  • 上板执行交叉编译成功后移交独立 skill Fpai-user-connector;本 skill 不独立做上传/SSH/板端执行。

快速使用

输入请求(完整模板见 references/customer-prompt-template.md 与 skill_user_QA_checklist.md):

请使用这个 skill进行模型部署:
<Fpai-user-one-model 路径>
Python 源工程:<Python 工程绝对路径>
权重:<权重绝对路径>
本次 icraft compile 后端:100Tai/30Tai/400Tai
本次 icraft compile 精度:int8/bf16/fp16/tf32/fp32
运行方式:Windows 仿真 / 上板执行

标准目录结构

<model>/<model>_icraft/
  1_scripts/             # 0_infer.py / 1_save.py / 2_save_infer.py
  weights/               # 源权重存放位置
  2_compile/
    config/{BY,ZG,WL,customop}/
    fmodel/              # 1_save.py的导出权重
    qtset/               # 量化校准集
    logs/                # operator_stats.md / operator_audit.md
  3_deploy/
    BYZG/                # BY/ZG 运行时(CMakeLists.txt / src / modelzoo_utils/ pyrt)
    WL/                  # WL 运行时(CMakeLists.txt / src / modelzoo_utils/ pyrt)
    cfg/                 # 运行时配置文件
    imodel/              # 编译网络的产物
    io/                  # 输入输出
    names/               # 类别名
    metrics/             # 耗时分析脚本
  • build_win/build_arm在读取编译配置前新建,编译程序的产物生成在该目录下。

交付阶段

  1. 源工程 / 参考工程分析:识别任务族,清点参考库 BY/ZG/WL 分支,记录输入尺寸。
  2. 准备 1_scripts:生成最小 requirements.txt → uv .venv 或客户自装 → 0_infer.py/1_save.py/2_save_infer.py,源模型代码原样复制进部署工程,看图验收。
  3. 检查 fmodel:2_compile/fmodel 存在且与 TOML network 一致,ONNX 契约 opset 17 / IR 8。
  4. 算子审计:先 inspect_model_ops.py --inventory-only 出统计表,后端明确后再对照 BUYI/ZG330 审计。
  5. 准备 TOML 与 qtset:按后端保留支持的精度变体(BY=int8/int16,ZG=int8/fp16),真实校准集。
  6. 执行 icraft compile:编译前交互确认后端、精度、若选择400Tai后端需要询问 core 模式。
  7. 准备 runtime source:modelzoo_utils 从版本化 KB 同步或指定本地路径同步,模型逻辑写入 src/pyrt。
  8. 准备 cfg 与 io:imodel.dir/dataset.dir/dataset.list 可解析。
  9. 打包与 runtime 构建:Windows 仿真本地 .exe,或上板执行 ARM64 ELF。
  10. 分阶段报告通过 / 跳过原因 / 需人工补齐;上板后返回板端结果进行各阶段对比,若结果不理想自动调用精度分析skill进一步检查并进行量化调优。

关键门禁

  • 权重校验门禁(导出前):用 Fpai-dev-model-download 的 verify_model.py + weights_gate.py,输出 PASS/REVIEW/BLOCK;BLOCK 必须停止并请客户重新下载/换源/确认。
  • 输入数据/校准集门禁(0_infer 前、编译前):scripts/check_input_data.py --qtset/--test-input,禁止用随机输入(尤其 GAN)或跨域校准集。
  • 看图验收门禁:0_infer.py 与 2_save_infer.py 输出结果必须对齐;每次改 1_save.py 后都要重跑两者再对比。
  • 编译交互门禁:每次 icraft compile 前重新询问后端/精度;WL 额外问 core 模式(icore→cores=1,cluster→cores=4)。
  • DetPost 硬算子门禁(试验性,仅 BY/ZG CV 检测模型):scripts/configure_byzg_hardop.py,非检测模型与 WL 均不启用。

文件

  • SKILL.md — skill 指令(流程、门禁、硬约束、验收清单)。
  • model-deploy-400tai-user-guide.md — 面向客户的 400TAI 交付指南(10 阶段与验收标准)。
  • skill_user_QA_checklist.md — 客户问答清单(agent 会问什么、客户准备什么、最短请求示例)。
  • agents/openai.yaml — skill 展示名与默认提示词。
  • scripts/ — 确定性脚本(见下)。
  • references/ — 分阶段指南与经验案例库。

脚本

脚本 用途
scaffold_icraft_modelzoo.py 从 PyTorch/ONNX 或参考工程目录结构生成工程
inspect_reference_branches.py 清点参考库候选工程的 BY/ZG/WL 分支覆盖
generate_python_requirements.py 由 imports 生成最小导出/推理 requirements.txt
finalize_onnx_for_icraft.py 强制 ONNX fmodel 回写 ir_version=8 并校验 opset 17
inspect_model_ops.py 导出算子统计表 / 按后端做支持性审计
check_input_data.py 输入数据/校准集准入校验(PASS/REVIEW/BLOCK)
sync_modelzoo_utils.py 按 iCraft 版本与后端从 KB 同步 modelzoo_utils
configure_byzg_hardop.py BY/ZG CV 检测 DetPost/ImageMake 硬算子 TOML 配置
set_wl_toml_cores.py 写 WL TOML [generate].cores(icore/cluster)
set_yaml_run_backend.py 设置运行时 YAML imodel.run_backend(host 仿真)
apply_customop_fp32.py 生成 customop 混合精度 CSV(customop 行 FP32)
init_cpp_migration_artifacts.py 创建 Python→C++ 迁移契约文件
breakthrough_hint.py 失败攻坚:按 fail_kind/family 检索案例库给候选动作
gen_experience_index.py 扫描 mdz_cases/ 生成案例库索引
backend_profile.py 加载共享 backend profile(后端差异单一来源)
audit_common.py / audit_report.py 审计日志写入与汇总(拦截数/一次通过率/平均轮次)

参考文档(references/)

  • 流程:path-intake-guide.md、project-scaffold-guide.md、icraft-project-400tai-adaptation-guide.md、400tai-delivery-workflow.md、export-and-toml-compile-guide.md、path-resolution-guide.md、index-model-family.md。
  • 环境与迁移:python-env-check-guide.md、python-runtime-to-cpp-porting-guide.md、customop-quantize-handoff.md。
  • 审计与数据:operator-support-audit-guide.md、input-data-guide.md。
  • 运行时:runtime-build-mode-guide.md、runtime-cross-compile-guide.md、vendor-docker-image-notes.md。
  • 经验:model-adaptation-experience.md(跨模型共性规律)+ mdz_cases/(按模型案例,索引 mdz_cases/README.md,现覆盖 gan/ocr/video 8 个模型)。
  • 客户文档:400tai-customer-input-examples.md、customer-prompt-template.md。

共享 backend profile

后端差异(精度集合、modelzoo_utils 路径、core 模式、DetPost pass、算子支持口径、运行时分组)不硬编码,统一从 profile 读取:

  • 解析顺序:--backend-profiles > $FPAI_BACKEND_PROFILES > %FPAI_KB%\backend_profiles > <opencode>\shared\backend_profiles。
  • 加载器:scripts/backend_profile.py;未找到时回退内置默认(BY/ZG/WL 现有值),行为与先前一致。

限制

  • 客户只给权重/模型文件且无完整 Python 工程时,C++ 运行时后处理只能复用同族参考逻辑,编译通过不代表后处理已适配该权重输出。
  • 内部知识库与默认参考库不可达时,只能基于本地 references/ 做纯文档推理,不能执行依赖版本化 modelzoo_utils 的编译/构建。
  • 无真实校准集时可继续用随机 qtset 让 quantize 跑通,但量化精度不可信,在报告中声明。
  • 上板执行依赖 PC 版 Docker Desktop 或Ubuntu20.04/24.04进行交叉编译。
  • 板端上传、SSH、依赖安装与执行由 Fpai-user-connector 负责;精度不达标时转 modelzoo-accuracy-analysis。
关于

模型部署

1.1 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号