GO-1 模型本地部署完整教程

我来帮你获取这两个项目页面的详细信息,然后为你提供一步步的本地部署教程。

让我通过搜索获取相关信息:

GO-1 模型本地部署完整教程

根据 GitHub 和 HuggingFace 官方文档,我将为你提供从零开始的详细操作指南。本教程适用于主流 Linux 系统(推荐 Ubuntu 20.04/22.04)和 Windows WSL2 环境。


一、环境准备

1.1 系统要求

  • 操作系统: Ubuntu 20.04+ 或 Windows 10/11 的 WSL2
  • 显卡: NVIDIA GPU(推荐 16GB+ 显存)
  • CUDA版本 : 12.4(必须匹配)
  • 内存: 建议 32GB+ 系统内存
  • 存储空间: 至少 100GB 空闲空间(数据集较大)

1.2 安装 CUDA 12.4

bash 复制代码
# 检查现有CUDA版本
nvidia-smi
nvcc --version

# 如果版本不匹配,卸载旧版本
sudo apt-get --purge remove "*cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*" "*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" "nvvm*"

# 安装 CUDA 12.4(Ubuntu示例)
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-12-4

# 配置环境变量
echo 'export PATH=/usr/local/cuda-12.4/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

二、安装 Anaconda 环境

bash 复制代码
# 下载 Anaconda(如未安装)
wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh
bash Anaconda3-2024.02-1-Linux-x86_64.sh

# 重启终端后创建项目环境
conda create -n go1 python=3.10 -y
conda activate go1

三、获取项目代码与安装依赖

3.1 克隆 GitHub 仓库

bash 复制代码
# 在合适目录下执行
git clone https://github.com/OpenDriveLab/AgiBot-World.git
cd AgiBot-World

3.2 安装 LeRobot 框架

注意:项目依赖特定版本的 LeRobot(dataset v2.1, commit 2b71789)

bash 复制代码
# 方式1:精确安装指定版本(推荐)
pip install git+https://github.com/huggingface/lerobot@2b71789

# 方式2:使用项目依赖文件
pip install -e .

3.3 安装 Flash Attention(重要)

bash 复制代码
# 安装 flash-attn(可能耗时较长)
pip install --no-build-isolation flash-attn==2.4.2

# 如果内存不足导致编译失败,限制并行任务数:
MAX_JOBS=4 pip install --no-build-isolation flash-attn==2.4.2

3.4 其他必要依赖

bash 复制代码
pip install matplotlib pillow rerun-sdk

四、获取 HuggingFace Access Token

4.1 注册与登录

  1. 访问 HuggingFace官网
  2. 注册账号并登录(如已有账号直接登录)

4.2 生成 Access Token

  1. 进入个人设置页面:https://huggingface.co/settings/tokens
  2. 点击 "New Token" 创建新 token
  3. Token类型: 选择 "Read" 权限即可
  4. 用途: 输入 "GO-1 Model Download"
  5. 点击生成并立即复制保存(只显示一次)

五、下载 GO-1 模型与数据集

5.1 安装 HuggingFace CLI

bash 复制代码
pip install huggingface_hub

5.2 登录 HuggingFace

bash 复制代码
# 交互式登录(推荐)
huggingface-cli login

# 粘贴你的 Access Token,按回车确认

5.3 下载模型权重

bash 复制代码
# 创建模型存储目录
mkdir -p models/go1
cd models

# 下载 GO-1 模型(约?GB,请确保网络稳定)
huggingface-cli download --resume-download --repo-type model agibot-world/GO-1 --local-dir ./go1

# 返回项目根目录
cd ..

5.4 下载数据集(两种选择)

选项A:快速体验(推荐新手)

下载 7GB 的示例数据集:

bash 复制代码
mkdir -p data && cd data

# 使用curl下载(替换YOUR_TOKEN为你的实际token)
curl -L -o sample_dataset.tar -H "Authorization: Bearer YOUR_TOKEN" \
  https://huggingface.co/datasets/agibot-world/AgiBotWorld-Alpha/resolve/main/sample_dataset.tar

# 解压
tar -xvf sample_dataset.tar
cd ..
选项B:完整数据集

下载完整 Alpha 数据集(约 2TB):

bash 复制代码
# 在项目根目录执行
huggingface-cli download --resume-download --repo-type dataset agibot-world/AgiBotWorld-Alpha --local-dir ./AgiBotWorld-Alpha

六、数据格式转换

6.1 转换数据集为 LeRobot 格式

bash 复制代码
# 使用示例数据(task_id 390)
python scripts/convert_to_lerobot.py \
  --src_path ./data/sample_dataset \
  --task_id 390 \
  --tgt_path ./data/sample_lerobot

# 如果使用完整数据集,替换路径
# python scripts/convert_to_lerobot.py --src_path ./AgiBotWorld-Alpha --task_id XXX --tgt_path ./lerobot_data

参数说明

  • --src_path: 原始数据路径
  • --task_id: 任务ID(如 390)
  • --tgt_path: 输出 LeRobot 格式路径

七、运行 GO-1 模型推理

7.1 创建推理脚本

在项目根目录创建 run_inference.py

python 复制代码
import torch
from lerobot.common.policies.diffusion.model import DiffusionPolicy
from lerobot.common.datasets.lerobot_dataset import LeRobotDataset

# 加载数据集
dataset = LeRobotDataset.create(
    "sample_lerobot",
    fps=30,
    robot_type="agibot"
)

# 加载模型
policy = DiffusionPolicy.from_pretrained(
    "models/go1",  # 模型路径
    dataset_stats=dataset.stats
)
policy.to("cuda")
policy.eval()

# 推理循环
with torch.no_grad():
    # 准备观测数据
    observation = dataset[0]["observation"]
    
    # 生成动作
    action = policy.select_action(observation)
    print(f"Predicted action: {action}")

7.2 执行推理

bash 复制代码
python run_inference.py

八、可视化数据集与结果

8.1 可视化原始数据

bash 复制代码
# 启动 rerun 可视化
python scripts/visualize_dataset.py \
  --task-id 390 \
  --dataset-path ./data/sample_lerobot

8.2 在浏览器中查看

  1. 脚本会自动启动 rerun 服务
  2. 打开浏览器访问:http://localhost:9090
  3. 可查看摄像头流、机器人状态、动作序列等

九、训练自己的策略(可选)

9.1 使用 Jupyter Notebook 训练

bash 复制代码
# 安装 jupyter
pip install jupyter

# 启动 notebook
jupyter notebook notebooks/

9.2 命令行训练示例

bash 复制代码
# 训练 Diffusion Policy
python lerobot/scripts/train.py \
  --policy.type=diffusion \
  --dataset.path=./data/sample_lerobot \
  --output_dir=./outputs/diffusion_policy

十、常见问题解决

Q1: CUDA 版本不匹配

bash 复制代码
# 检查 PyTorch CUDA 版本
python -c "import torch; print(torch.version.cuda)"

# 如不匹配,重装 PyTorch
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu124

Q2: 内存不足

bash 复制代码
# 减少 batch size 或启用梯度检查点
export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128

Q3: HuggingFace 下载慢

bash 复制代码
# 使用镜像(国内推荐)
export HF_ENDPOINT=https://hf-mirror.com

# 或使用迅雷等工具先下载到本地再解压

Q4: flash-attn 安装失败

bash 复制代码
# 预编译版本
pip install flash-attn --no-build-isolation --no-deps

# 或跳过安装(性能会下降)
# pip install -e . --no-deps

十一、项目结构概览

复制代码
AgiBot-World/
├── models/go1/              # GO-1 模型权重
├── data/
│   ├── sample_dataset/      # 原始数据
│   └── sample_lerobot/      # LeRobot格式数据
├── scripts/
│   ├── convert_to_lerobot.py    # 数据转换
│   └── visualize_dataset.py     # 可视化
├── notebooks/               # 训练教程
└── run_inference.py         # 你的推理脚本

总结关键步骤

  1. 环境: CUDA 12.4 + Python 3.10 + conda
  2. 代码 : git clone + pip install lerobot@2b71789
  3. 认证: 获取 HuggingFace Token
  4. 数据: 下载并转换数据集
  5. 运行: 加载模型 + 推理

现在你可以开始探索 GO-1 模型了!如果遇到任何问题,可以查看 ./logs 目录下的日志文件或到 GitHub Issues 区寻求帮助。

相关推荐
大Null3 小时前
Linux安装GO环境
linux·golang
FAREWELL000753 小时前
Lua环境的配置 和 Lua的一些简单语法逻辑
开发语言·lua
LaoZhangAI3 小时前
Gemini 2.5 Flash Image API尺寸设置完整指南:10种宽高比详解
前端·后端
Blossom.1183 小时前
大模型量化压缩实战:从FP16到INT4的生产级精度保持之路
开发语言·人工智能·python·深度学习·神经网络·目标检测·机器学习
野生工程师3 小时前
【Python爬虫基础-3】数据解析
开发语言·爬虫·python
考虑考虑3 小时前
springboot中yml、yaml、properties加载顺序
spring boot·后端·spring
想用offer打牌3 小时前
seata的JacksonUndoLogParser回滚SerialArray类型的序列化和反序列化解析
后端·开源·github
武子康3 小时前
大数据-153 Apache Druid 实时接入 Kafka:从摄取到查询的完整实战
大数据·后端·nosql