645358862a0f105b6ace516521277544d25f40b1
ROCm vLLM 容器化推理项目
基于镜像 rocm/vllm:rocm7.12.0_gfx120X-all_ubuntu24.04_py3.12_pytorch_2.9.1_vllm_0.16.0 的 Python 推理服务,适配双 AMD R9700 32G GPU。
项目目标
- 提供可容器化部署的模型推理 API
- 使用 vLLM 在双 GPU 上进行张量并行推理
- 提供健康检查、鉴权和参数化配置能力
- 暴露
8001OpenAI 标准协议接口,兼容 OpenClaw 调用
目录结构
.
├── app
│ ├── config.py
│ ├── engine.py
│ ├── main.py
│ ├── model_catalog.py
│ ├── start_api.py
│ ├── start_openai.py
│ └── schemas.py
├── .dockerignore
├── config.json
├── docker-compose.yml
├── Dockerfile
└── requirements.txt
接口说明
1) 健康检查
- 方法:
GET /health - 返回:服务状态与当前模型名
2) 文本生成
- 方法:
POST /v1/generate - Header:可选
x-api-key(配置API_KEY后必填) - 请求体:
{
"prompt": "请介绍一下ROCm和vLLM的关系",
"max_tokens": 256,
"temperature": 0.7,
"top_p": 0.95,
"repetition_penalty": 1.0,
"stop": ["</s>"]
}
配置项
项目只读取一个配置文件:config.json。
services.api.host/services.api.port:自定义推理服务监听地址与端口(默认0.0.0.0:8000)services.openai.host/services.openai.port:OpenAI 协议服务监听地址与端口(默认0.0.0.0:8001)api_key:接口访问密钥(同时用于 8000 与 8001)tensor_parallel_size:张量并行数,双卡建议2dtype:推理精度,默认bfloat16selected_model:当前生效模型,留空时回退到default_model
config.json 说明
config.json 采用以下结构:
- 顶层
default_model:默认模型名 - 顶层其他键:每个模型的配置档位
- 每个模型至少建议包含:
hf_model_id、ctx、max_num_seqs、max_tokens、gpu_util、valid_tp
启动时会按以下优先级选模型:
config.json中selected_modelconfig.json中default_model
模型被选中后,会自动覆盖运行参数,包括:
model_name←hf_model_idmax_model_len←ctxmax_num_seqs←max_num_seqsmax_tokens←max_tokensgpu_memory_utilization←gpu_utiltrust_remote_code←trust_remoteenforce_eager←enforce_eager
部署步骤
-
修改
config.json中的selected_model与服务参数。 -
构建并启动容器:
docker compose up -d --build
- 验证自定义推理服务:
curl http://localhost:8000/health
- 验证 OpenAI 协议服务:
curl http://localhost:8001/v1/models
推理请求示例
curl -X POST "http://localhost:8000/v1/generate" \
-H "Content-Type: application/json" \
-d "{\"prompt\":\"请用三句话介绍大模型推理优化\",\"max_tokens\":128,\"temperature\":0.7}"
OpenAI 协议示例(8001)
curl -X POST "http://localhost:8001/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <config.json中的api_key>" \
-d "{\"model\":\"Qwen3.5-35B-A3B-GPTQ-Int4\",\"messages\":[{\"role\":\"user\",\"content\":\"你好,介绍一下你自己\"}],\"temperature\":0.7}"
OpenClaw 调用说明
- Base URL 使用
http://<服务器IP>:8001/v1 - API Key 使用
config.json中api_key - 模型名使用
config.json中served_model_name - 若使用工具调用,
config.json中应配置tool_call_parser与enable_auto_tool_choice
双 AMD R9700 调优建议
- 首选
TENSOR_PARALLEL_SIZE=2 - 首次部署建议设置
GPU_MEMORY_UTILIZATION=0.90,稳定后再调高 - 若模型较大且吞吐压力高,可逐步调低
MAX_MODEL_LEN或MAX_NUM_SEQS - 确保宿主机已正确安装 ROCm 驱动并暴露
/dev/kfd与/dev/dri
Description
Languages
Python
97%
Dockerfile
3%