超
gcw_g59KKkes/CogACT-CogACT-Base
模型介绍
文件和版本
Pull Requests
讨论
分析

CogACT-CogACT-Base · Ascend NPU (昇腾NPU)

CogACT-Base 是一个 70 亿参数的**视觉-语言-动作(VLA)**模型,可将单目 RGB 图像与自然语言指令映射为下一步的 16 个(7 自由度) 机器人末端执行器增量动作 (x, y, z, roll, pitch, yaw, gripper)。该模型基于 DINOv2 + SigLIP 双视觉编码器、Llama-2-7B 文本主干网络以及 DiT-B 扩散动作头构建,并在 Open X-Embodiment 数据集上完成了预训练。

本仓库将 CogACT/CogACT-Base 适配至 Ascend NPU 平台,通过 torch_npu(Ascend 910B,npu:0,bfloat16)运行。随附的模型源码位于 model_code/ 目录(MIT 许可,来自 microsoft/CogACT),已移除全部 CUDA 设备调用。

NPU 适配说明

  • 零 CUDA 依赖。 所有 .cuda() / torch.cuda / device="cuda" 调用均已移除;模型及所有输入张量均位于 npu:0 上。
  • NPU 初始化通过 try-except 包裹——初始化失败时打印 JSON 格式错误信息并退出进程。
  • 70 亿参数模型以 torch.bfloat16 精度运行(Ascend 910B 原生支持 bf16;64 GB HBM 内存充足)。有意跳过了 torch.compile。
  • 视觉主干网络以 pretrained=False 实例化,LLM 框架以 inference_mode=True 构建——实际权重从本地 CogACT-Base.pt 检查点加载,因此推理时不会触发 HuggingFace / timm 权重下载。

权重与缓存

  • 缓存路径:model_weights/CogACT/CogACT-Base/
    • checkpoints/CogACT-Base.pt — 完整 PyTorch 检查点(约 30 GB,bf16 模型 + 优化器状态;仅使用 model 键)
    • config.json、config.yaml、dataset_statistics.json
    • llama2-tokenizer/ — 本地 Llama-2 分词器(config.json、tokenizer.json 等)
  • inference.py 自动使用上述本地缓存。若检查点缺失,脚本将拒绝启动,而非重新下载。
  • 主镜像:https://ai.gitcode.com/hf_mirrors/CogACT/CogACT-Base (备用镜像:https://hf-mirror.com/CogACT/CogACT-Base)。

使用方法

安装依赖(Ascend 平台需安装 torch + torch_npu,详见 requirements.txt):

pip install -r requirements.txt

命令行界面

ASCEND_RT_VISIBLE_DEVICES=1 python3 inference.py --img examples/demo.jpg \
    --instr "pick up the object" 2>cli.err | tee cli.log

向标准输出(stdout)打印一个 JSON 对象(CANN 噪声信息输出到标准错误 stderr)。

FastAPI 服务器

python3 inference.py --mode server --port 8786
  • GET / — 极简深色终端风格HTML上传页面。
  • POST /predict — 接收multipart格式的file(机器人视角图像)及可选的instr表单字段 → 返回相同结构的JSON结果。
curl -s -F file=@examples/demo.jpg -F instr="pick up the object" \
     http://127.0.0.1:8786/predict | python3 -m json.tool

示例输入

  • examples/demo.jpg — 机器人图像的 768×768 JPEG 裁剪版本 scripts/aml/test_image.png 来自官方 microsoft/CogACT 仓库 (1024×1024 PNG),展示了 CogACT 所期望的输入格式。

输出 JSON 结构

{
  "model": "CogACT/CogACT-Base",
  "source": "https://ai.gitcode.com/hf_mirrors/CogACT/CogACT-Base",
  "device": "npu:0",
  "status": "success",
  "instruction": "pick up the object",
  "unnorm_key": "fractal20220817_data",
  "cfg_scale": 1.5,
  "ddim_steps": 10,
  "elapsed_ms": 1234.56,
  "action_dim": 7,
  "num_steps": 16,
  "actions": [[x,y,z,roll,pitch,yaw,gripper], ...],
  "normalized_actions": [[...], ...],
  "first_action": [x,y,z,roll,pitch,yaw,gripper]
}
  • actions — 16 行 × 7 列去归一化的末端执行器增量 (使用 fractal20220817_data 数据集的统计信息进行非归一化;夹爪 通道被二值化为 0/1)。
  • normalized_actions — 在反归一化之前,相同的动作处于 [-1, 1] 范围内。

验证

  • assets/agent_workflow.png — NPU 环境检查 + 依赖安装 + 启动。
  • assets/npu_device_call.png — 实际 CLI 运行(2>cli.err | tee cli.log)。
  • assets/model_result.png — FastAPI GET / 页面 + 实际 /predict JSON。

许可证与致谢

  • 模型权重 / 代码:MIT(CogACT,微软亚洲研究院)· 论文 · 项目
  • VLA 源码来自 microsoft/CogACT(MIT), 按 model_code/ 目录内置。