2301_76761127/trellis-2-4b-npu
模型介绍
文件和版本
Pull Requests
讨论
分析

microsoft/TRELLIS.2-4B 昇腾 NPU 适配

1. 官方来源与固定版本

比赛提交使用的官方模型地址:https://ai.gitcode.com/hf_mirrors/microsoft/TRELLIS.2-4B。模型物料优先且默认从该 AtomGit/GitCode 镜像取得。

固定模型 revision 为 af44b45f2e35a493886929c6d786e563ec68364d。本仓验证的原生稀疏结构流组件为 ckpts/ss_flow_img_dit_1_3B_64_bf16.safetensors,文件大小为 2,584,426,920 字节,SHA-256 为 ca01377c485bec418076d38ee80166d32dc776d744f2553b835cba1e97a7abf6。该组件包含 1,292,179,976 个参数和 30 个 Transformer block。模型与代码采用 MIT 许可证,本仓不再分发权重。

官方模型快照仅包含权重和配置,没有可执行 Python 源码。因此,唯一入口包含一个最小执行核心,其实现依据 Microsoft TRELLIS.2 官方源码 revision 75fbf0183001ed9876c8dbb35de6b68552ee08bd 并保留 MIT 归属。上述比赛官方模型地址始终是模型和权重的权威来源;源码 revision 仅作为二级实现依据记录。

2. 环境与权重准备

已验证环境:官方 ModelAgent 昇腾算力容器、Ascend 910、CANN 8.5.1、Python 3.11.15、PyTorch/torch_npu 2.9.0、safetensors 0.8.0。请保留容器原生 PyTorch/torch_npu/CANN 兼容栈,只安装模型层依赖。

将固定 revision 的完整官方快照放到 ./model。唯一入口需要以下两个文件:

model/ckpts/ss_flow_img_dit_1_3B_64_bf16.json
model/ckpts/ss_flow_img_dit_1_3B_64_bf16.safetensors

程序会在加载前校验权重大小和 SHA-256,运行时不会自行下载。

3. 唯一验收入口

python inference.py --model_path ./model --device npu:0 --seed 20260812 --output_json audit/npu.json

python inference.py 是唯一可执行验收入口,默认参数分别为 ./model、npu:0、随机种子 20260812 和 result.json。CPU 仅用于生成验证基线,必须显式指定。缺失权重、无效设备、缺失昇腾运行时、权重或样本漂移、输出不完整、NaN/Inf 均会立即失败,不允许回退到 CPU 或 CUDA。

CPU Golden 命令:

python inference.py --model_path ./model --device cpu --seed 20260812 --output_json audit/cpu.json

完整精度比较命令:

python accuracy/compare_accuracy.py --cpu_result audit/cpu.json --npu_result audit/npu.json --output_json audit/accuracy.json

4. 测试用例与真实 NPU 运行

确定性组件测试使用 8 组相互独立的稀疏结构 latent、图像条件和时间步样本,执行全部可学习参数及全部 30 个原生 flow block。为使严格的跨后端验证可实际完成,空间分辨率由 16³ 缩减为 4³;这是 flow-transformer 组件级验证,不代表完整的图生 3D 流程、体素解码器、渲染器或纹理阶段。CPU 与 NPU 均先把权重提升为 float32,避免后端特有 BF16 内核漂移。

真实运行的精简输出格式如下:

{"actual_model_device":"npu:0","forward_seconds":14.2528,"model_id":"microsoft/TRELLIS.2-4B","npu_name":"Ascend910B3","output_value_count":4096,"sample_count":8}

官方 ModelAgent 容器真实运行中,模型、输入和输出都位于 npu:0。同一运行窗口内观察到推理 PID 545,npu-smi 同屏显示该 Python 进程及 290–648 MB 设备内存,证明截图发生在模型实际运行期间。

5. 精度结果

CPU 参考端与昇腾目标端使用相同的 8 组、由 manifest 绑定的样本。全部 4,096 个原生 flow 输出值都会参加有限值和数值比较。预先声明的门限为:余弦相似度 >= 0.999、最大绝对误差 <= 0.05、最大缩放相对误差 <= 0.05。

官方 ModelAgent 容器真实测量结果:余弦相似度 0.999999999991907、最大绝对误差 0.00008606910705566406、最大缩放相对误差 0.000054028827522434405、RMSE 0.0000048400392797108064,结论为 PASS。公开摘要和可执行比较器位于 accuracy/;完整张量、日志和设备证据保留在可供主办方审计的私有验收包中。

6. 验收证据

官方 ModelAgent 复核完成后,本仓只加入真实的 assets/agent_workflow.png、assets/npu_device_call.png 和 assets/model_result.png,不使用占位图或伪造证据。

6.1 ModelAgent 对话

真实 ModelAgent 对话

6.2 NPU 运行中设备调用

NPU 运行中 PID 与 npu-smi

6.3 运行与精度结果

真实运行与精度结果