AutoGLM-Phone-9B 本地 vLLM 部署完整流程
vLLM 是什么
vLLM 是一个高吞吐量的 LLM 推理引擎,支持 OpenAI 兼容的 API 格式。AutoGLM Phone Agent 框架对后端模型服务的唯一要求就是"提供 OpenAI 兼容接口"——所以 vLLM、SGLang、甚至智谱 BigModel 都能接,只要给一个 --base-url。
硬件要求
| 精度 | 最低显存 | 推荐 GPU |
|---|---|---|
| FP16 | 24GB | RTX 4090 / A5000 |
| Q8_0 | 12GB | RTX 3060 12GB |
| Q5_K_M | 8GB | RTX 3050 8GB |
| Q4_K_M | 6GB | RTX 2060 6GB |
低于 6GB 显存的 GPU 无法部署本地模型,建议走 云端 API。
安装 vLLM
pip install vllm
如果出现 transformers 版本冲突警告,可以忽略——AutoGLM 的模型结构基于 GLM-V,和最新 transformers 可能有兼容 warning,但不影响运行。
也可以用官方 Docker 镜像:
docker pull vllm/vllm-openai:v0.12.0
进入容器后需要额外安装:
pip install -U transformers --pre
pip install nvidia-cudnn-cu12==9.16.0.29
下载模型
HuggingFace 方式:
huggingface-cli download zai-org/AutoGLM-Phone-9B
国内网络设置镜像:
set HF_ENDPOINT=https://hf-mirror.com
ModelScope 方式:
modelscope download --model ZhipuAI/AutoGLM-Phone-9B
启动模型服务
vLLM 启动命令必须严格使用官方推荐参数,缺少任何一个都可能导致部署失败:
python -m vllm.entrypoints.openai.api_server ^
--served-model-name autoglm-phone-9b ^
--allowed-local-media-path / ^
--mm-encoder-tp-mode data ^
--mm_processor_cache_type shm ^
--mm_processor_kwargs "{\"max_pixels\":5000000}" ^
--max-model-len 25480 ^
--chat-template-content-format string ^
--limit-mm-per-prompt "{\"image\":10}" ^
--model zai-org/AutoGLM-Phone-9B ^
--port 8000
参数说明:
--served-model-name— 模型对外暴露的名字,之后调用时要用这个值--mm_processor_kwargs— 图片处理分辨率上限--max-model-len 25480— 上下文长度,模型实际支持 20K 但需留 buffer--limit-mm-per-prompt— 每次请求最多允许的图片数--chat-template-content-format string— 对话模板格式,这个必须加
验证服务运行
服务启动后会监听 http://localhost:8000/v1。先跑官方提供的部署验证脚本:
python scripts/check_deployment_cn.py ^
--base-url http://localhost:8000/v1 ^
--model autoglm-phone-9b
如果看到模型输出包含思维链(think 标签)和结构化动作 JSON(do 标签),说明部署成功。思维链过短或出现乱码通常意味着参数缺失。
连接 Phone Agent 框架
python main.py ^
--base-url http://localhost:8000/v1 ^
--model "autoglm-phone-9b" ^
"打开美团搜索附近的火锅店"
常见部署问题
启动报 OOM:显存不够,换量化版本(GGUF 格式),或减少 --max-model-len。
模型下载失败:设置 HF 镜像,或换 ModelScope 源。
check_deployment_cn.py 报思维链过短:检查 vLLM 启动参数是否完整,特别是 --mm_processor_kwargs 和 --chat-template-content-format string。
部署成功但 Agent 调用报 400:检查 Phone Agent 的 --model 参数是否和 vLLM 的 --served-model-name 完全一致。
相关阅读
- 本地 SGLang 部署(备选推理引擎)
- 部署验证脚本使用
- CLI 交互模式