AutoDL 平台摩尔线程的 vllm-musa 配置

软硬件依赖

项目版本
ubuntu22.04
Pytorch2.2.0
Python3.10
MUSA3.1.0
torch_musa1.3.0
GPUMTT S4000
vllm0.4.2+musa
transformers4.40.0
tokenizers0.19.1
triton2.2.0
huggingface-hub0.23.5

在 AutoDL 上申请对应的实例:
在这里插入图片描述

相关资料

基于 MUSA 的大语言模型推理和服务框架 vLLM
vLLM-MUSA

配置步骤

0. 验证 AutoDL 镜像

在 AutoDL 终端里执行:

mthreads-gmi || true
musa_version_query || true
mcc --version || true

python - <<'PY'
import torch
print("torch:", torch.__version__)
try:
    import torch_musa
    print("torch_musa: OK")
    print("musa available:", torch.musa.is_available())
    print("device count:", torch.musa.device_count())
    if torch.musa.is_available():
        print("device name:", torch.musa.get_device_name(0))
except Exception as e:
    print("torch_musa error:", repr(e))
PY

期望看到 torch_musa: OKmusa available: True。如果失败,建议在 AutoDL 平台更换实例。

1. 准备工作

1.1 更新 miniconda 中的 libstdc++

更新:

conda install -y -c conda-forge "libstdcxx-ng=12.*" "libgcc-ng=12.*"

# 如果 confda-forge 网络较慢,可以换成清华源
conda install -y \
  -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge \
  "libstdcxx-ng=12.*" "libgcc-ng=12.*"

安装完成后重启 shell,或执行:

hash -r

验证:

strings /root/miniconda3/lib/libstdc++.so.6 | grep GLIBCXX_3.4.30

如果显示为 GLIBCXX_3.4.30 则正常。

1.2 克隆 vllm-musa 的 fix_version 分支

vllm-musa-fix_version

在这里插入图片描述

需要安装 vLLM 0.4.2 的 MUSA 适配(fix_version),不要装当前默认分支。

cd /root/autodl-tmp  # 或你自己的工作目录
git clone -b fix_version --depth=1 https://github.com/MooreThreads/vllm-musa.git

安装相关依赖:
不要执行官方的 bash build_musa.sh 命令,它会执行 pip install -r requirements-build.txtpip install -r requirements-musa.txt,而这两个依赖文件里包含 torch==2.2.0,会覆盖 AutoDL 平台原本镜像中的 torch==2.2.0a0+git8ac9b20

cd /root/autodl-tmp  # 或你自己的工作目录
python -m pip install -U pip setuptools wheel packaging cmake ninja

# 安装 vLLM 常规 Python 依赖
python -m pip install \
  psutil sentencepiece numpy requests py-cpuinfo \
  "transformers==4.40.0" "tokenizers==0.19.1" \
  fastapi openai "uvicorn[standard]" "pydantic>=2.0" \
  "prometheus_client>=0.18.0" "prometheus-fastapi-instrumentator>=7.0.0" \
  "tiktoken==0.6.0" "lm-format-enforcer==0.9.8" \
  "outlines==0.0.34" typing_extensions "filelock>=3.10.4" \
  "ray>=2.9"
python -m pip install --no-cache-dir "triton==2.2.0"

依赖安装后验证:

python - <<'PY'
import torch
import torch_musa
import triton

print("torch:", torch.__version__)
print("musa:", torch.musa.is_available(), torch.musa.device_count())
print("triton:", triton.__version__)
PY

2. 安装 vllm-musa

cd /root/autodl-tmp/vllm-musa

export VLLM_TARGET_DEVICE=musa
export MUSA_HOME=/usr/local/musa
export PATH=$MUSA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$MUSA_HOME/lib:$LD_LIBRARY_PATH
export CMAKE_BUILD_TYPE=RelWithDebInfo

rm -rf build dist vllm.egg-info

python setup.py bdist_wheel
python -m pip install --no-deps --force-reinstall dist/vllm-*.whl

验证 vllm-musa 的安装:

python - <<'PY'
import vllm

print("vllm:", getattr(vllm, "__version__", "unknown"))
PY

期望输出为 vllm: 0.4.2

3. 最小验证

3.1 下载模型

pip install -U "huggingface-hub[cli]==0.23.5"

mkdir -p /home/autodl-tmp/models/Qwen2-0.5B-Instruct

huggingface-cli download Qwen/Qwen2-0.5B-Instruct \
  --local-dir /home/autodl-tmp/models/Qwen2-0.5B-Instruct

# 下载完检查
ls -lh /home/autodl-tmp/models/Qwen2-0.5B-Instruct

3.2 验证运行

验证脚本test_vllm_musa.py:

from vllm import LLM, SamplingParams
import torch
import torch_musa

model_path = "/root/autodl-tmp/models/Qwen2-0.5B-Instruct" # 改成自己对应的模型存放路径

print("torch:", torch.__version__)
print("musa:", getattr(torch.version, "musa", None))
print("musa available:", torch.musa.is_available())
print("model:", model_path)

sampling_params = SamplingParams(
    temperature=0.0,
    max_tokens=16,
)

llm = LLM(
    model=model_path,
    trust_remote_code=True,
    device="musa",
    dtype="float16",
    max_model_len=512,
    max_num_seqs=1,
    gpu_memory_utilization=0.5,
    enforce_eager=True,
    disable_custom_all_reduce=True,
)

print("LLM initialized")

outputs = llm.generate(
    ["Hello, my name is"],
    sampling_params,
)

print("Generate finished")

for output in outputs:
    print(f"Prompt: {output.prompt!r}")
    print(f"Generated text: {output.outputs[0].text!r}")

运行验证脚本:

python test_vllm_musa.py

在这里插入图片描述

4. 启动 OpenAI 兼容服务(可选)

python -m vllm.entrypoints.openai.api_server \
  --model /root/autodl-tmp/models/Qwen2-0.5B-Instruct \
  --trust-remote-code \
  --device musa \
  --dtype float16 \
  --host 0.0.0.0 \
  --port 8000

另起一个端口进行测试:

curl http://127.0.0.1:8000/v1/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "/root/autodl-tmp/models/Qwen2-0.5B-Instruct",
    "prompt": "Hello, my name is ",
    "max_tokens": 64
  }'

在这里插入图片描述

内容概要:本文介绍了BiDex——一种低成本、高精度、便携式的双手机械臂灵巧操作遥操作系统,用于收集复杂任务下的高质量机器人行为克隆数据。该系统结合运动捕捉手套(Manus Meta)与仿生教学臂(GELLO),实现对手指和手臂动作的精确追踪,支持超过50个自由度的操作,并可在桌面及移动环境中部署。相比Vision Pro和SteamVR等现有方案,BiDex在任务完成率、响应速度和数据质量方面表现更优,已成功应用于倒水、铲取、锤击、夹取筷子等多种高难度双手机械操作任务的数据采集与策略训练。; 适合人群:机器人学、人工智能及相关领域的研究人员,尤其是从事机器人遥操作、模仿学习、灵巧手控制与数据驱动机器人控制的高校实验室成员或工业界开发者。; 使用场景及目标:①在无外部跟踪设备条件下实现野外(in-the-wild)双手机械臂遥操作;②为复杂灵巧操作任务收集高质量专家演示数据以训练行为克隆策略;③推动低成本、可复现的高自由度机器人控制系统在学术界的普及与应用; 阅读建议:建议结合项目官网(https://bidex-teleop.github.io)提供的视频、组装指南与软件代码进行实践学习,重点关注系统搭建、逆运动学映射、多模态数据同步与策略训练流程,以便完整掌握从硬件集成到机器学习应用的全链条技术细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值