AutoGLM-Phone-9B 视觉语言模型详解
模型定位
AutoGLM-Phone-9B 是智谱 AI 为手机 GUI 控制场景专门训练的 9B 参数视觉语言模型。它不是通用对话模型,而是一个端到端的屏幕理解与动作生成器——输入手机截图 + 自然语言任务,输出结构化的设备操作 JSON。
模型结构基于 GLM-4.1V-9B-Thinking,在视觉编码器和语言解码器之间做了适配,专门用于 GUI 场景的中间接口输出。
两个版本
| 版本 | 适用场景 | 下载地址 |
|---|---|---|
| AutoGLM-Phone-9B | 中文手机应用优化 | HuggingFace(zai-org)/ ModelScope |
| AutoGLM-Phone-9B-Multilingual | 英语等多语言应用 | HuggingFace / ModelScope |
日常使用中文 App(美团、淘宝、小红书)选中文版,涉及 Gmail、Google Maps、X(Twitter)等英文 App 选多语言版。
模型规格
| 项目 | 数值 |
|---|---|
| 参数规模 | 约 9B |
| 精度(FP16) | 约 18GB |
| Q8_0 量化 | 约 10GB |
| Q5_K_M 量化 | 约 6.5GB |
| Q4_K_M 量化 | 约 5.5GB |
| 上下文窗口 | 20K tokens(实际推理建议 25480) |
| 最大输出 | 2048 tokens |
| 支持图片 | 每轮最多 10 张 |
| max_pixels | 建议 5000000 |
下载方式
HuggingFace:
huggingface-cli download zai-org/AutoGLM-Phone-9B
国内网络环境可设置镜像:
set HF_ENDPOINT=https://hf-mirror.com
ModelScope(魔搭社区):
pip install modelscope
modelscope download --model ZhipuAI/AutoGLM-Phone-9B
API 调用参数说明
通过 vLLM 或 SGLang 启动服务时,以下参数必须严格遵循官方推荐值,否则可能导致部署失败或性能问题:
--max-model-len 25480 # 上下文长度,模型实际支持
--mm_processor_kwargs "{\"max_pixels\":5000000}" # 图片处理分辨率
--limit-mm-per-prompt "{\"image\":10}" # 每 prompt 最多图片数
--chat-template-content-format string # 对话模板格式
--mm_processor_cache_type shm # 共享内存缓存图片处理结果
--mm-encoder-tp-mode data # 视觉编码器数据并行
推理时的模型输出
模型会输出两种内容,被 Phone Agent 框架分别处理:
think(思考链)——不直接执行,但决定了 Agent 的行动策略:
当前在美团首页,用户想搜索附近的火锅店。屏幕上有搜索框图标,需要先点击激活搜索框,然后输入关键词。
answer(动作 JSON)——框架直接翻译成设备操作:
{
"action": "Tap",
"element": [540, 280],
"_metadata": "do"
}
思维链过短或出现乱码通常意味着模型部署失败,官方提供了 scripts/check_deployment_cn.py 来验证。
硬件要求
本地部署 vLLM 或 SGLang 建议:
| 精度等级 | 最低显存 | 推荐 GPU |
|---|---|---|
| FP16 | 24GB | RTX 4090 / A5000 / A6000 |
| Q8_0 | 12GB | RTX 3060 12GB |
| Q5_K_M | 8GB | RTX 3050 8GB |
| Q4_K_M | 6GB | RTX 2060 6GB |
显存不够时可以选择云端 API——智谱 BigModel 和 ModelScope 都已经托管了这个模型,零 GPU 即可体验。
模型与 Agent 框架的关系
模型本身不包含任何设备控制能力,它只是一个"看屏幕→说下一步做什么"的推理器。真正连接设备的是 Phone Agent 框架——一个 Python 项目,负责:
- 截图 → 图片传给模型
- 解析模型输出的动作 JSON
- 调用 ADB/HDC/WebDriverAgent 执行
- 处理敏感操作确认和人工接管
模型和框架是松耦合的:你可以自己部署模型、用 OpenAI 兼容格式暴露服务,框架只需要一个 --base-url 地址就能接上。