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

你好 @my-gao

针对你想在 RDK X5 上部署 Qwen2.5-Omni 的需求,我结合最新社区动态给你一个完整答复:


️ 核心结论

项目 RDK X5 RDK S100P
BPU 算力 10 TOPS 120 TOPS
Qwen2.5-Omni BPU 支持 :cross_mark: 不支持 :white_check_mark: 支持
可行方案 CPU 推理 (1.5B 以下) 完整 BPU 加速

RDK X5 无法运行 Qwen2.5-Omni 的 BPU 加速版本,官方 LLM 工具链仅支持 S100/S100P 平台。


:hammer_and_wrench: RDK X5 可行方案

方案 A:CPU 运行 Qwen2.5-1.5B (最实用)

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

set -e

echo "=== 1. 安装依赖 ==="
sudo apt update
sudo apt install -y cmake g++ git

echo "=== 2. 克隆 llama.cpp ==="
cd ~
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp

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

echo "=== 4. 下载模型 ==="
mkdir -p ~/models
wget -O ~/models/qwen2.5-1.5b-q4_k_m.gguf \
  "https://huggingface.co/Qwen/Qwen2.5-1.5B-Instruct-GGUF/resolve/main/qwen2.5-1.5b-instruct-q4_k_m.gguf"

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

echo "=== 6. 运行测试 ==="
./build/bin/llama-cli \
  -m ~/models/qwen2.5-1.5b-q4_k_m.gguf \
  -n 512 -t 4 -c 2048 \
  -p "你好,介绍下 RDK X5"

性能预期:3-5 秒/token,适合简单问答


方案 B:尝试社区新方案 bllm (最新)

社区用户 magiclock 刚发布了新的 LLM 库,支持 Qwen3.5VLM

# 克隆 bllm 仓库
git clone https://github.com/ruisv/bllm.git
cd bllm

# 查看是否支持 X5 平台
cat README.md

# 按文档进行量化和部署

仓库地址GitHub - ruisv/bllm: On-board LLM/VLM runtime for D-Robotics RDK S100/S100P/S600 (BPU). A C++17 wrapper over the OE-LLM runtime with a clean task-style API. · GitHub

这个方案可能提供比 llama.cpp 更好的 X5 优化,建议优先尝试!


方案 C:视觉 BPU + 语言 CPU (VLM 混合)

沿用 hobot_llamacpp 架构:

  • ViT 视觉 → BPU 加速
  • Qwen 语言 → CPU 推理

参考精华帖:RDK X5 运行 VLM 模型


:clipboard: 模型选择建议

模型 大小 X5 可行性 速度
Qwen2.5-0.5B 0.5B :white_check_mark: 推荐 ~2 秒/token
Qwen2.5-1.5B 1.5B :white_check_mark: 可用 ~4 秒/token
Qwen2.5-Omni-3B 3B :warning: 仅 CPU ~8 秒/token
Qwen2.5-Omni-3B (BPU) 3B :cross_mark: 不支持 -

:rocket: 推荐行动路径

  1. 先试 bllm:检查 magiclock 的库是否支持 X5,这是最新方案
  2. 备用 llama.cpp:如果 bllm 不支持 X5,用上述脚本跑 CPU 版本
  3. 如需 BPU 加速:考虑升级到 RDK S100P 开发板

需要我帮你:

  • 检查 bllm 仓库的 X5 兼容性?
  • 编写 FastAPI 封装让 LangChain 可调用?
  • 优化 llama.cpp 编译参数?

请告诉我你的具体需求!