rdks100p 平台上如何让大语言模型例如INTERNVLM模型中语言部分运行在bpu上。

你好 @my-gao

针对你想在 RDK X5 上部署 Qwen2.5-Omni 的需求,我必须首先告知一个关键硬件限制

:warning: 核心结论:RDK X5 无法运行 Qwen2.5-Omni (BPU 加速版)

根据官方文档和社区确认:

  1. 算力不足:Qwen2.5-Omni-3B 模型即使量化后,其推理需求也远超 RDK X5 BPU (10 TOPS) 的承载能力。官方 LLM 工具链仅支持 RDK S100/S100P (120 TOPS BPU)。
  2. 工具链限制:官方提供的 D-Robotics_LLM_S100 工具包不包含 X5 的编译库。X5 的 BPU 主要针对视觉 CNN/Transformer 优化,对 LLM 的算子支持非常有限。
  3. 社区实证:已有用户尝试在 X5 上跑 Gemma 4 等大模型,结论是只能跑在 CPU 上,且速度较慢(约 2-4 秒/token)。

:hammer_and_wrench: RDK X5 上的可行替代方案

虽然无法使用 BPU 加速 Qwen2.5-Omni,但你仍有以下两种路径:

方案 A:使用 CPU 运行 Qwen2.5-1.5B (推荐)

在 X5 上通过 llama.cpp 运行纯 CPU 版本的 Qwen2.5-1.5B (非 Omni 多模态版,或使用简化版 VLM)。

部署脚本 (deploy_qwen_x5.sh)

#!/bin/bash
# RDK X5 Qwen2.5-1.5B CPU 部署脚本

set -e

echo "=== 1. 环境检查 ==="
# 检查是否已安装 cmake 和 g++
if ! command -v cmake &> /dev/null; then
    echo "错误:未找到 cmake,请先安装:sudo apt install cmake"
    exit 1
fi

echo "=== 2. 克隆 llama.cpp (使用地瓜优化版或原版) ==="
cd ~
if [ ! -d "llama.cpp" ]; then
    git clone https://github.com/ggerganov/llama.cpp.git
    cd llama.cpp
else
    cd llama.cpp
    git pull
fi

echo "=== 3. 编译 llama.cpp (针对 ARM64 优化) ==="
cmake -B build
cmake --build build --config Release -j4

echo "=== 4. 下载模型 (Qwen2.5-1.5B-Instruct Q4_K_M) ==="
MODEL_DIR=~/models
mkdir -p $MODEL_DIR
MODEL_PATH=$MODEL_DIR/qwen2.5-1.5b-instruct-q4_k_m.gguf

if [ ! -f "$MODEL_PATH" ]; then
    echo "正在下载模型 (约 1GB)..."
    # 使用 huggingface-cli 或 wget 下载
    # 这里以 wget 为例,请替换为实际下载链接
    wget -O $MODEL_PATH "https://huggingface.co/Qwen/Qwen2.5-1.5B-Instruct-GGUF/resolve/main/qwen2.5-1.5b-instruct-q4_k_m.gguf"
fi

echo "=== 5. 设置 CPU 高性能模式 ==="
echo "performance" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

echo "=== 6. 运行推理测试 ==="
cd ~/llama.cpp
./build/bin/llama-cli \
    -m $MODEL_PATH \
    -n 512 \
    -t 4 \
    -c 2048 \
    -p "你好,请介绍一下地瓜机器人 RDK X5。"

echo "=== 部署完成 ==="
echo "提示:X5 运行 1.5B 模型速度约为 3-5 秒/token,适合简单问答。"

性能预期

  • 首字延迟:约 1-2 秒
  • 生成速度:约 3-5 秒/token (Qwen2.5-1.5B)
  • 内存占用:约 1.2GB

方案 B:视觉 BPU + 语言 CPU (VLM 混合架构)

如果你需要多模态能力,可以沿用 hobot_llamacpp 或社区 VLM 方案:

  • 视觉部分:ViT 模型运行在 BPU 上(快速提取特征)。
  • 语言部分:Qwen2.5-0.5B/1.5B 运行在 CPU 上。

参考项目


:bar_chart: 硬件对比与建议

平台 BPU 算力 LLM BPU 支持 推荐方案
RDK X5 10 TOPS :cross_mark: 不支持 CPU 跑 1.5B 以下模型
RDK S100P 120 TOPS :white_check_mark: 支持 Qwen2.5-Omni-3B 完整 BPU 加速
RDK S600 更高 :white_check_mark: 支持更大模型 高性能场景

建议

  1. 如果必须在 X5 上跑:使用方案 A,选择 Qwen2.5-0.5B1.5B 的量化模型,接受 CPU 推理的速度限制。
  2. 如果需要多模态 BPU 加速:请升级到 RDK S100P 开发板,这是目前唯一支持 Qwen2.5-Omni BPU 部署的平台。
  3. 关注后续更新:地平线正在优化 X5 的 LLM 工具链,未来可能会支持更小的 LLM BPU 部署,但 3B 级别模型在 X5 上几乎不可能。

:memo: 下一步

如果你确认要在 X5 上尝试 CPU 方案,我可以帮你:

  1. 提供 Qwen2.5-0.5B 的 GGUF 下载链接。
  2. 编写一个 FastAPI 封装脚本,让 X5 上的模型能被 LangChain 调用。
  3. 优化 llama.cpp 的编译参数,提升 X5 CPU 推理速度。

请告诉我你的具体需求!