【Hello-ROCm】vLLM 跑通 Gemma4-E4B

学习来源:Datawhale × AMD AI 学习中心 Day1-2 实操任务

第一步:确认云环境和模型目录

1.1 检查 GPU

bash 复制代码
amd-smi

输出(节选):

复制代码
| AMD-SMI 26.2.2+e1a6bc5663    amdgpu version: 6.14.14  ROCm version: 7.2.1
| VBIOS version: 00162356
| 0000:43:00.0    AMD Radeon Graphics | 0 %  34 °C  0  8/241 W |
|   0     0     N/A   N/A            | 0 %  20.0 %   26/49136 MB |

"AMD Radeon Graphics" 不是型号 ------VBIOS 没填产品名时的 fallback。容量看 Mem-Usage 第二列:49136 MB ≈ 48 GiB,功耗上限 241W

真实型号要靠 lspci -nn -s 43:00.0 拿 PCI Device ID 推断。我这里候选是 W7900(RDNA3, 48 GiB GDDR6, gfx1100)。注意 W7900 是工作站卡,出现在云上有点奇怪,但容量+功耗都对得上。

1.2 验证 PyTorch 能看到 GPU

bash 复制代码
python -c "import torch; print('PyTorch:', torch.__version__); print('ROCm available:', torch.cuda.is_available()); print('Device:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'N/A')"

预期:

复制代码
PyTorch: 2.x.x+rocm7.2.1
ROCm available: True
Device: AMD Radeon Graphics

ROCm available: True 这一行是金标准,看到它就可以放心往下走。


第二步:下载 Gemma 4 模型

4.1 切国内 pip 源(加速)

bash 复制代码
pip config set global.index-url https://mirrors.cloud.tencent.com/pypi/simple/

4.2 装 ModelScope

ModelScope 是阿里达摩院的国内开源模型社区,服务器在国内,下载比 HuggingFace 稳定得多。

bash 复制代码
pip install modelscope

4.3 下载 Gemma 4-E4B-it

bash 复制代码
modelscope download --model google/gemma-4-E4B-it --cache_dir "./models"

4.4 验证

bash 复制代码
ls -lh ./models/google/gemma-4-E4B-it/

关键文件 model.safetensors 应该 15G 左右。模型下载齐了,"原料"就位。

第三步:启动 vLLM 服务

5.1 更新 vLLM

容器自带的 vLLM 往往版本太旧,装最新版才能跑 Gemma 4

bash 复制代码
uv pip uninstall torchvision torchaudio
uv pip install vllm torchvision torchaudio \
  --no-cache \
  --index-url https://mirrors.aliyun.com/pypi/simple/ \
  --extra-index-url https://wheels.vllm.ai/rocm/ \
  -U

5.2 启动 vLLM 服务

bash 复制代码
vllm serve ./models/google/gemma-4-E4B-it/ --served-model-name gemma-4-E4B-it

注意:这个终端会被服务占死,启动日志会经过这几个阶段:

  1. Resolved architecture: Gemma4ForConditionalGeneration --- 架构解析
  2. Loading safetensors checkpoint shards: 100% Completed --- 权重加载
  3. Loading weights took 8.49 seconds --- 15 GiB 权重进显存
  4. Cache the graph of compile range (1, 2048) for later use --- torch.compile 在做 cudagraph capture,需要 1--3 分钟,耐心等
  5. Application startup complete. / Uvicorn running on http://0.0.0.0:8000 --- 服务就绪

第一次启动比较慢是因为要编译 cuda graph。只要日志还在滚动就是正常

5.3 显存不足怎么办

把最大上下文长度收一收:

bash 复制代码
vllm serve ./models/google/gemma-4-E4B-it/ \
  --served-model-name gemma-4-E4B-it \
  --max-model-len 8192

不够就降到 4096。48 GiB 显卡一般能跑默认 131072 的 Gemma 4,但开多个会话容易 OOM,稳一点用 8192


第四步:打开新终端对话测试

回到 JupyterLab,新开一个终端(原来的那个被 vllm 服务占着):

bash 复制代码
vllm chat --url http://localhost:8000/v1 --model gemma-4-E4B-it

进入交互模式后输入:

复制代码
你是谁,你能做什么

模型回答出来,就说明 Gemma 4 在 AMD ROCm 容器里跑通了。

常见报错httpcore.ConnectError: [Errno 111] Connection refused ------ vllm chat 是客户端,需要先有服务在跑。回第一个终端看 Application startup complete. 出现没,没出现就等。

进阶玩法:把 Gemma 4 接进 Claude Code

任务四步只到"对话测试"为止。但既然 vLLM 0.23.0 已经原生支持 Anthropic Messages API 兼容端点/v1/messages),完全可以让本地 Claude Code 客户端通过 ANTHROPIC_BASE_URL 指向这个 vLLM 实例------等于让 Claude Code 用 Gemma 4 当后端。

8.1 vLLM 端要开 tool-calling

bash 复制代码
tmux new -s vllm -d 'vllm serve ./models/google/gemma-4-E4B-it/ \
  --served-model-name gemma-4-E4B-it \
  --enable-auto-tool-choice \
  --tool-call-parser gemma4 \
  --host 0.0.0.0 \
  --port 8000 \
  --max-model-len 32768 \
  --enforce-eager'

关键 flag 说明

  • --enable-auto-tool-choice:开启 tool calling。不开的话,Claude Code 发过来的 tool_use 会被模型当文本原样吐出来,不真执行。
  • --tool-call-parser gemma4:vLLM 内置的 Gemma 4 parser(源码目录里有,文档没列)。备选 hermes(通用)、pythonic(Pythonic 风格)。
  • --max-model-len 32768:从默认的 131072 收口,预防 KV cache OOM。

8.2 Claude Code 端设环境变量

bash 复制代码
export ANTHROPIC_BASE_URL=http://localhost:8000
export ANTHROPIC_API_KEY=dummy
export ANTHROPIC_AUTH_TOKEN=dummy
export ANTHROPIC_DEFAULT_HAIKU_MODEL=gemma-4-E4B-it
export ANTHROPIC_DEFAULT_SONNET_MODEL=gemma-4-E4B-it
export ANTHROPIC_DEFAULT_OPUS_MODEL=gemma-4-E4B-it

claude

四个 env var 的作用

  • ANTHROPIC_BASE_URL:把 Claude Code 的请求从 api.anthropic.com 重定向到本地 vLLM
  • ANTHROPIC_API_KEY / ANTHROPIC_AUTH_TOKEN:vLLM 不校验认证,填 dummy 即可
  • 三个 *_MODEL:让 Claude Code 把不同档位的请求都路由到 Gemma 4
相关推荐
毒爪的小新11 小时前
Linux 环境极速部署 vLLM:从零搭建生产级大模型推理服务
linux·人工智能·ai·语言模型·vllm
像风一样自由202019 小时前
17.推理框架横评:vLLM / TGI / TensorRT-LLM / SGLang 全面对比
人工智能·大模型·vllm·sglang
rebibabo1 天前
KV Cache 与 PagedAttention 详解:理论推导 + RTX 3090 实测数据
人工智能·vllm·推理加速·大模型部署·kvcache
yzqy_2 天前
AMD AI 开发者计划学习笔记:从 ROCm 到 Ryzen AI,理解 AMD 的 AI 开发生态
人工智能·笔记·学习·datawhale·amdev
10WTW012 天前
AMD Hello-ROCm 环境配置(一)
datawhale·gemma4·amdev
尘汐筠竹2 天前
Day1-2 学习笔记:在 AMD 云环境上部署 Gemma 4 大模型
笔记·学习·datawhale·amdev
随便做点啥2 天前
8×910B4-32G NPU服务器 vLLM-Ascend部署Docker安装报告
服务器·docker·vllm