跳到主要内容

文本大模型

GLM 本地部署:一张 4090 起步,八卡 H200 封顶

从 30B-A3B 的 GLM-4.7-Flash 到 744B 的 GLM-5.2,同一个模型家族的显存需求差了四十倍。先把账算清楚,再决定租哪张卡。

GLM 是智谱(对外品牌 Z.ai)的开源大模型系列,权重挂在 Hugging Face 的 zai-org 组织下,主仓库是 github.com/zai-org/GLM-5,全线 MIT 许可——可商用、可改权重、不分地区、不需要签补充协议。这一点在前沿模型里相当少见,也正是 GLM 成为私有化部署首选之一的原因:你不用申请配额,不用等审批,`hf download` 拉下来就能在自己的卡上跑起来。

当前主线是 GLM-5 家族。GLM-5.2 是 744B 总参、40B 激活的稀疏 MoE,78 层、hidden size 6144,注意力用 MLA 叠 DeepSeek Sparse Attention,再加一层 IndexShare——每四层共享同一个 indexer,后三层直接复用第一层选出的 top-k 索引,1M 上下文下每 token 的 FLOPs 降到约 1/2.9,原生上下文窗口 1,048,576 token。GLM-5.3 是在同一个底座上做的后训练升级,没有重新预训练,主打编码与长程 Agent,先开 API,开源权重按官方说法晚约两周落到 zai-org 仓库。所以要立刻自建服务,能下载到的最新一档仍是 GLM-5.2 与它的 FP8 版本;再往前的 GLM-4.6(355B-A32B、200K 上下文)虽然还在仓库里,但已经被 GLM-4.7 整体取代了。

另一条线是真能塞进单卡的小模型。GLM-4.7-Flash 是 30B-A3B 的轻量 MoE(Glm4MoeLiteForCausalLM),202,752 token 上下文,UD-Q4_K_XL 量化只有 17.5GB,一张 24GB 卡绰绰有余;再往上是 GLM-4.5-Air(106B-A12B、131,072 上下文),Q4_K_M 大约 66.7GB,两张 48GB 卡起步。这中间的断层正是自建最难受的地方:Flash 消费级显卡能跑,旗舰要八卡 H200,而你多半只是想先验证一版效果再决定要不要长期投入。NexGPU 上这两档卡都能按需开,按秒计量、按小时定价,没有起租时长、没有开通费,停机就不再产生算力费用。

01 —

GLM 各版本参数与显存对照

同一家族跨度从 30B 到 744B,选错一档就是白租一整晚的卡

版本参数量显存上下文说明
GLM-5.3744B 总参 / 40B 激活(与 GLM-5.2 同底座)权重未公开发布;按同底座推算 FP8 约 744GB1M纯后训练升级版,官方内部评测编码能力较 GLM-5.2 提升约 50%,CyberGym 得分 84.5%。目前 zai-org/GLM-5.3 仓库仍是受限状态,只能走 API;要自建服务先用 GLM-5.2 顶上,权重放出后启动参数基本可以平移。
GLM-5.2 / GLM-5.2-FP8744B 总参 / 40B 激活FP8 约 744GB | BF16 约 1.51TB | GGUF UD-Q4_K_XL 467GB | UD-IQ4_XS 365GB | UD-Q2_K_XL 254GB | UD-IQ1_S 217GB1,048,576目前能下载到的最强一档开源权重。MLA + DSA + IndexShare 让 1M 上下文的成本可控,自带 MTP 层做投机解码。SGLang 需 v0.5.13.post1 以上,vLLM 需 v0.23.0 以上;NVIDIA 另外发了 NVFP4 权重,在 B200/B300 上 TP=8 跑,各项基准与 FP8 基本持平。
GLM-4.7 / GLM-4.7-FP8358B 总参 / 32B 激活BF16 约 716GB | FP8 约 358GB202,75292 层(3 层 dense + 89 层 MoE)、160 个路由专家 top-8 激活外加 1 个共享专家。引入 Preserved Thinking、Turn-level Thinking 与 Interleaved Thinking,HLE 得分 42.8%,比 GLM-4.6 高 12.4 个点。官方推荐 4~8 张 H200 跑 FP8。
GLM-4.7-Flash30B-A3BUD-Q4_K_XL 17.5GB | Q4_K_M 18.3GB | Q6_K 24.7GB | Q8_0 31.8GB | BF16 59.9GB | UD-Q2_K_XL 11.9GB202,752整条产品线里唯一真正的单卡选项,官方定位是 30B 级最强本地编码与 Agent 模型。3B 激活参数意味着显存吃得少、吐字快,在 24GB 卡上跑 Q4 能到几十 token/s 量级。采样建议:通用 temperature 1.0 / top_p 0.95,工具调用改成 temperature 0.7 / top_p 1.0,repeat penalty 必须关掉。
GLM-4.5-Air106B-A12BQ4_K_M 约 66.7GB(128K 上下文的 KV Cache 再加约 20GB)131,072上一代的中量级选项,46 层、每个 MoE 层 128 专家 top-8 路由。适合 Flash 不够用、又不想上八卡集群的场景;KV Cache 随上下文线性增长,8K 约 1.3GB、32K 约 5.0GB、128K 约 20GB,规划显存时必须把这块算进去。

02 —

按场景选卡:NexGPU 上跑 GLM 的四条现实路线

价格为每卡每小时列表价,按秒计量,停机即停算力计费

  • 单卡跑 GLM-4.7-Flash Q4 量化,做本地编码助手或先验证效果

    RTX 4090 24GB$0.540/卡·时

    UD-Q4_K_XL 只有 17.5GB,留出 6GB 多给 KV Cache,开到 32K~64K 上下文毫无压力,是整条 GLM 线里性价比最高的入口。

  • GLM-4.7-Flash 上 Q8_0 或 BF16 做精度对照,或双卡跑 GLM-4.5-Air Q4

    RTX A6000 48GB$0.817/卡·时

    单卡 48GB 装得下 31.8GB 的 Q8_0 并留足长上下文余量;两张凑 96GB,正好覆盖 GLM-4.5-Air 的 66.7GB 权重加 128K KV Cache。

  • GLM-4.7 FP8 全量私有化,对外提供 200K 上下文的推理服务

    H100 SXM 80GB × 8$3.582/卡·时(八卡 $28.656/时)

    FP8 权重约 358GB,八卡合计 640GB 显存装完权重还剩两百多 GB 给 KV Cache 和并发;Hopper 有原生 FP8 张量核,直接吃官方 FP8 检查点不用再量化。

  • GLM-5.2 FP8 单节点部署,把 1M 上下文真正跑起来

    H200 141GB × 8$6.660/卡·时(八卡 $53.28/时)

    744GB 的 FP8 权重放不进八张 H100 的 640GB,H200 八卡 1,128GB 是能装下并留出 KV 空间的最小单节点配置,TP=8 一条命令起服务,不用配跨机通信。

03 —

四步把 GLM 跑起来

从开机到工具调用能正常解析,中间的坑基本都在启动参数里

  1. 01

    开一台带 vLLM 的实例

    在 console.nexgpu.net 选卡开机,直接用预置的 vLLM 或 PyTorch 镜像(平台有 2,000 多个现成镜像),省掉编译 CUDA 和装依赖的时间。跑 GLM-4.7-Flash 选一张 RTX 4090 24GB;跑 GLM-5.2 FP8 选 8 卡 H200 的整机规格。开机后 SSH、Jupyter、Web 终端任选一种进去,磁盘先按权重大小的 1.3 倍开,量化 GGUF 和原始 safetensors 会同时占地方。

    ssh root@<your-instance> -p <port>
  2. 02

    拉权重

    GLM 全线 MIT 许可,Hugging Face 上不需要申请授权,直接下。注意区分仓库:BF16 是 zai-org/GLM-4.7,FP8 是 zai-org/GLM-4.7-FP8,GGUF 量化在 unsloth 的镜像仓里。GLM-5.2 的 FP8 权重接近 744GB,先确认磁盘和网络带宽,别下到一半没空间。

    hf download zai-org/GLM-4.7-Flash --local-dir ./GLM-4.7-Flash
  3. 03

    起服务,把三个 parser 参数配对

    这是 GLM 自建最容易翻车的一步。GLM-4.7 和整个 GLM-5 系列吐的是新版 `<tool_call>…<arg_key>…<arg_value>` 格式,必须用 `--tool-call-parser glm47`;沿用旧的 glm45 解析器不会报错,但工具调用会原封不动留在 message.content 里,看起来就像模型「不会调工具」。推理轨迹仍然用 `--reasoning-parser glm45`。想开 MTP 投机解码的话,GLM-4.7 上 1 个投机 token 的接受率就有九成以上,吞吐最好。另外 GLM-4.7 刚发布那阵子 vLLM 和 SGLang 只在 main 分支支持,遇到不认识的架构名先升到 nightly。

    vllm serve zai-org/GLM-4.7-Flash --tensor-parallel-size 1 --max-model-len 65536 --tool-call-parser glm47 --reasoning-parser glm45 --enable-auto-tool-choice
  4. 04

    如果走 GGUF 量化路线,用 llama.cpp 并核对采样参数

    24GB 卡上跑 Flash 最省事的方式是 llama.cpp。两个必须改的默认值:`--min-p` 要设成 0.01(默认 0.05 会明显削掉候选),repeat penalty 必须设成 1.0 或直接关掉,否则输出质量会塌。还有一个历史坑:早期 llama.cpp 把 GLM-4.7-Flash 的 `scoring_func` 错写成 softmax(应为 sigmoid),会导致模型无限循环,修复后需要重新下载 GGUF。Ollama 目前对这份 GGUF 的 chat template 兼容性不佳,官方不建议用它跑。

    llama-server -hf unsloth/GLM-4.7-Flash-GGUF:UD-Q4_K_XL --ctx-size 16384 -ngl 99 --temp 1.0 --top-p 0.95 --min-p 0.01 --repeat-penalty 1.0

两档 GLM 的真实账单

先算轻的一档。GLM-4.7-Flash 用 UD-Q4_K_XL(17.5GB)跑在一张 RTX 4090 24GB 上,$0.540/卡·时。连续跑 8 小时做提示词调优和工具调用回归:8 × $0.540 = $4.32。权重留在磁盘上,17.5GB × $0.414/GB·月 = $7.25/月,折合每天约 $0.24,留 3 天就是 $0.72。三天的完整支出约 $5.04——比很多 API 一天的账单还低,而且模型完全在你自己的机器里。 再算重的一档。GLM-5.2 FP8 需要 8 张 H200 141GB:8 × $6.660 = $53.28/时。假设下载权重加预热占 0.5 小时,正式压测和长上下文评测跑 5.5 小时,合计 6 小时:6 × $53.28 = $319.68。744GB 的权重留在存储上两天:744 × $0.414 = $307.94/月,折合每天约 $10.26,两天 $20.52。再把 20GB 的评测日志和采样结果导出来:20 × $0.0081 = $0.16。总计约 $340.36,一次把 744B 模型在 1M 上下文下的真实表现摸清楚。 注意算力费在实例停止的那一刻就停止计量,存储费则会一直算到你把卷销毁为止——跑完评测如果短期不再用,把权重卷删掉,那 $10.26/天 就归零了。

04 —

常见问题

GLM 本地部署最低需要多大显存?

取决于你说的是哪个 GLM。最低门槛是 GLM-4.7-Flash 的 UD-Q2_K_XL,只有 11.9GB,一张 16GB 卡都能塞;但实用起点是 UD-Q4_K_XL 的 17.5GB,配 24GB 卡。往上 GLM-4.5-Air 的 Q4_K_M 要约 66.7GB,GLM-4.7 的 FP8 要约 358GB,GLM-5.2 的 FP8 要约 744GB。别拿 24GB 卡去硬扛 358B 的模型,卸载到内存后速度会掉到不可用。NexGPU 从 Tesla T4 16GB($0.298/卡·时)到 H200 141GB($6.660/卡·时)共 75 种 GPU 型号、2,498 张卡,这条阶梯上每一档都能直接开。

一张 RTX 4090 能跑 GLM 吗?

能,跑 GLM-4.7-Flash。它是 30B-A3B 的 MoE,每个 token 只激活约 3B 参数,UD-Q4_K_XL 权重 17.5GB,4090 的 24GB 装完还剩 6GB 多给 KV Cache,开 32K 上下文很宽裕。旗舰的 GLM-4.7 和 GLM-5.2 就别想了——358B 和 744B 的权重跟单卡不是一个量级。NexGPU 的 RTX 4090 24GB 是 $0.540/卡·时,想更省可以用 RTX 3090 24GB($0.193/卡·时),显存一样,只是带宽和算力低一档。

GLM-5.3 的开源权重什么时候能下载?现在自建该选哪个版本?

GLM-5.3 是在 GLM-5.2 同一个底座上做的后训练升级,没有重新预训练,发布时先开放 API,开源权重按官方口径晚约两周才落到 Hugging Face 的 zai-org 组织,仓库在放出前是受限状态,直接拉会拿到 401。所以现在要自建服务,最新可下载的一档是 GLM-5.2 和 GLM-5.2-FP8。好消息是两者同底座,启动参数和 parser 配置基本可以平移,权重一放出换个 model path 就行。在 NexGPU 上按秒计费开 8 卡 H200,你可以先用 GLM-5.2 把整套服务链路和压测脚本跑通,等权重落地当天直接换模型重启。

为什么 GLM 的工具调用全变成了正文,没被解析出来?

九成九是 parser 用错了。GLM-4.7 和整个 GLM-5 系列输出的是新版 `<tool_call>…<arg_key>…<arg_value>` 结构,必须配 `--tool-call-parser glm47`;如果沿用旧的 glm45 解析器,服务不会报错,但工具调用会原样留在 message.content 里。另外还有两个已知问题:MTP 投机解码开启时曾出现工具调用被截断,升级到修好该问题的 vLLM 版本即可;报「tool call result is empty」时加上 `--chat-template-content-format=string`。这类版本敏感的调试,在按秒计费的机器上试错成本很低——NexGPU 上开一台 4090 跑通启动参数再上大机器,整个调参过程也就几美元。

GLM-5.2 自建之后 token 消耗为什么这么夸张?

因为它的 chat template 里 reasoning_effort 默认解析成 max,而不是大多数人以为的 high——high 反倒是需要显式传入的选项。默认档会让模型在推理轨迹上花掉大量 token,长上下文任务尤其明显。显式把 reasoning_effort 传成你真正想要的档位,输出长度会立刻回到正常水平。这也是自建相比调 API 的好处:token 烧多少直接体现在你自己的 GPU 时长上,而 NexGPU 按秒计量,你能一眼看出哪个配置在浪费卡时。

GLM-4.7-Flash 在 llama.cpp 里一直循环输出怎么办?

先确认 GGUF 是不是旧的。llama.cpp 早期把 GLM-4.7-Flash 的 `scoring_func` 错设成 softmax(正确值是 sigmoid),会直接导致无限循环,修复之后需要重新下载权重文件。其次检查采样:repeat penalty 必须设为 1.0 或关闭,`--min-p` 要显式设成 0.01 覆盖默认的 0.05,通用场景用 temperature 1.0 / top_p 0.95,工具调用改 temperature 0.7 / top_p 1.0。另外官方不建议用 Ollama 跑这份 GGUF,chat template 兼容性有问题。要在干净环境里复现,NexGPU 有 2,000 多个预置镜像,Telegram 上是中英双语支持、没有工单排队,遇到卡住的启动参数可以直接问。

开始使用 NexGPU

无论你是企业研发团队还是独立开发者,都可以在几分钟内跑起第一个任务。

注册即可浏览全网实时价格,无需绑定支付方式。