小白程序员也能轻松上手本地运行744B参数大模型GLM-5
GLM-5推理模型发布,编程与对话能力显著提升。该模型优化了长上下文推理,744B参数版本支持200K上下文窗口。通过Unsloth量化技术,2-bit版本仅需241GB存储,可在256GB内存Mac或24GB显存PC上运行。文章提供三种本地部署方案:llama.cpp适合通用任务,llama-server可搭建API服务,vLLM支持多GPU高性能推理。不同场景推荐不同参数配置,并详细说明了硬件
Z.ai发布的GLM-5推理模型在编程、Agent任务和对话方面均有提升,特别优化了长上下文推理。尽管完整模型参数庞大,但通过Unsloth的量化技术,即使256GB内存的Mac或24GB显存+大内存PC也能轻松运行。文章详细介绍了硬件需求、推荐参数、本地部署方法(llama.cpp、llama-server、vLLM)及工具调用示例,助你快速体验这一高性能国产大模型。
Z.ai 发布了 GLM-5,这是他们最新的推理模型。相比 GLM-4.7,它在编程、Agent 任务和对话方面都有提升,专门针对长上下文推理做了优化。
跑分数据挺亮眼的:Humanity’s Last Exam 50.4%(比前代高 7.6%),BrowseComp 75.9%(高 8.4%),Terminal-Bench-2.0 61.1%(高 28.3%)。
完整模型有 744B 参数,激活 40B,支持 200K 上下文窗口,预训练用了 28.5T tokens。原始模型需要 1.65TB 存储空间——听起来很吓人对吧?
但 Unsloth 做了量化版本。动态 2-bit GGUF 版本只要 241GB,压缩了 85%;动态 1-bit 版本更是只要 176GB,压缩了 89%。
下面说说怎么在本地跑起来。

硬件需求
2-bit 动态量化版本(UD-IQ2_XXS)需要 241GB 存储空间。这意味着:
- • 256GB 统一内存的 Mac 可以直接跑
- • 或者 1 张 24GB 显存的显卡 + 256GB 内存,通过 MoE offloading 也能跑
1-bit 量化版本需要 180GB 内存,8-bit 版本需要 805GB 内存。
理想情况下,你的显存 + 内存总和应该等于或大于你下载的量化版本大小。不够的话,llama.cpp 会用硬盘做 offloading,只是推理速度会慢一些。
推荐参数
不同场景用不同参数:
通用任务:
- • temperature = 1.0
- • top_p = 0.95
- • max new tokens = 131072
- • repeat penalty = 1.0 或禁用
SWE Bench Verified:
- • temperature = 0.7
- • top_p = 1.0
- • max new tokens = 16384
- • repeat penalty = 1.0 或禁用
几点注意:
- • llama.cpp 需要加
--jinja参数 - • 最大上下文窗口是 202,752
- • 多轮 Agent 任务(τ²-Bench 和 Terminal Bench 2)需要开启 Preserved Thinking 模式
方法一:llama.cpp 部署
首先获取最新的 llama.cpp,必须安装 PR 19460,否则跑不起来。构建命令:
apt-get updateapt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -ygit clone https://github.com/ggml-org/llama.cppcd llama.cpp && git fetch origin pull/19460/head:MASTER && git checkout MASTER && cd ..cmake llama.cpp -B llama.cpp/build \ -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ONcmake --build llama.cpp/build --config Release -j --clean-first --target llama-cli llama-mtmd-cli llama-server llama-gguf-splitcp llama.cpp/build/bin/llama-* llama.cpp
没有 GPU 或者只想用 CPU 推理的话,把 -DGGML_CUDA=ON 改成 -DGGML_CUDA=OFF。
通用指令模式
export LLAMA_CACHE="unsloth/GLM-5-GGUF"./llama.cpp/llama-cli \ -hf unsloth/GLM-5-GGUF:UD-IQ2_XXS \ --jinja \ --ctx-size 16384 \ --flash-attn on \ --temp 0.7 \ --top-p 1.0 \ --fit on
Tool-calling 模式
export LLAMA_CACHE="unsloth/GLM-5-GGUF"./llama.cpp/llama-cli \ -hf unsloth/GLM-5-GGUF:UD-IQ2_XXS \ --jinja \ --ctx-size 16384 \ --flash-attn on \ --temp 1.0 \ --top-p 0.95 \ --fit on
--fit on 会自动最大化利用你的 GPU 和 CPU。
MoE 层卸载技巧
如果显存不够,可以把 MoE 层卸载到 CPU:
- •
-ot ".ffn_.*_exps.=CPU"— 卸载所有 MoE 层到 CPU,这样非 MoE 层可以全部塞进一张 GPU,提升生成速度 - •
-ot ".ffn_(up|down)_exps.=CPU"— 只卸载 up 和 down projection MoE 层 - •
-ot ".ffn_(up)_exps.=CPU"— 只卸载 up projection MoE 层(需要更多显存)
还可以用正则表达式精细控制,比如 -ot "\.(6|7|8|9|[0-9][0-9]|[0-9][0-9][0-9])\.ffn_(gate|up|down)_exps.=CPU" 表示从第 6 层开始卸载 gate、up、down MoE 层。
手动下载模型
pip install -U huggingface_hubhf download unsloth/GLM-5-GGUF \ --local-dir unsloth/GLM-5-GGUF \ --include "*UD-IQ2_XXS*" # 1-bit 版本用 "*UD-TQ1_0*"
推荐用 2-bit 动态量化版本 UD-Q2_K_XL,在体积和精度之间比较平衡。
方法二:llama-server 部署 API 服务
生产环境可以用 llama-server 部署:
./llama.cpp/llama-server \ --model unsloth/GLM-5-GGUF/UD-IQ2_XXS/GLM-5-UD-IQ2_XXS-00001-of-00006.gguf \ --alias "unsloth/GLM-5" \ --fit on \ --prio 3 \ --temp 1.0 \ --top-p 0.95 \ --ctx-size 16384 \ --port 8001 \ --jinja
然后用 OpenAI SDK 调用:
from openai import OpenAIopenai_client = OpenAI( base_url = "http://127.0.0.1:8001/v1", api_key = "sk-no-key-required",)completion = openai_client.chat.completions.create( model = "unsloth/GLM-5", messages = [{"role": "user", "content": "写一个贪吃蛇游戏。"}],)print(completion.choices[0].message.content)
方法三:vLLM 部署
如果你有 8 张 H200(141×8 = 1128GB)或 8 张 B200,可以跑 Z.ai 的 FP8 版本。
先安装 vllm nightly:
uv pip install --upgrade --force-reinstall vllm --torch-backend=auto --extra-index-url https://wheels.vllm.ai/nightly/cu130uv pip install --upgrade --force-reinstall git+https://github.com/huggingface/transformers.gituv pip install --force-reinstall numba
启动服务:
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:Falsevllm serve unsloth/GLM-5-FP8 \ --served-model-name unsloth/GLM-5-FP8 \ --kv-cache-dtype fp8 \ --tensor-parallel-size 8 \ --tool-call-parser glm47 \ --reasoning-parser glm45 \ --enable-auto-tool-choice \ --dtype bfloat16 \ --seed 3407 \ --max-model-len 200000 \ --gpu-memory-utilization 0.93 \ --max_num_batched_tokens 4096 \ --speculative-config.method mtp \ --speculative-config.num_speculative_tokens 1 \ --port 8001
不想用 FP8 KV Cache 的话,去掉 --kv-cache-dtype fp8,内存占用能降一半。
调用方式和上面一样:
from openai import AsyncOpenAI, OpenAIopenai_api_key = "EMPTY"openai_api_base = "http://localhost:8001/v1"client = OpenAI( api_key = openai_api_key, base_url = openai_api_base,)
Tool Calling 示例
GLM-5 支持 function calling。先定义一些工具:
import json, subprocess, randomfrom typing import Anydef add_number(a: float | str, b: float | str) -> float: return float(a) + float(b)def multiply_number(a: float | str, b: float | str) -> float: return float(a) * float(b)def substract_number(a: float | str, b: float | str) -> float: return float(a) - float(b)def write_a_story() -> str: return random.choice([ "A long time ago in a galaxy far far away...", "There were 2 friends who loved sloths and code...", "The world was ending because every sloth evolved to have superhuman intelligence...", "Unbeknownst to one friend, the other accidentally coded a program to evolve sloths...", ])def terminal(command: str) -> str: if "rm" in command or "sudo" in command or "dd" in command or "chmod" in command: msg = "Cannot execute 'rm, sudo, dd, chmod' commands since they are dangerous" print(msg); return msg print(f"Executing terminal command `{command}`") try: return str(subprocess.run(command, capture_output = True, text = True, shell = True, check = True).stdout) except subprocess.CalledProcessError as e: return f"Command failed: {e.stderr}"def python(code: str) -> str: data = {} exec(code, data) del data["__builtins__"] return str(data)MAP_FN = { "add_number": add_number, "multiply_number": multiply_number, "substract_number": substract_number, "write_a_story": write_a_story, "terminal": terminal, "python": python,}tools = [ { "type": "function", "function": { "name": "add_number", "description": "Add two numbers.", "parameters": { "type": "object", "properties": { "a": {"type": "string", "description": "The first number."}, "b": {"type": "string", "description": "The second number."}, }, "required": ["a", "b"], }, }, }, # ... 其他工具定义]
然后写个推理函数:
from openai import OpenAIdef unsloth_inference( messages, temperature = 1.0, top_p = 0.95, top_k = -1, min_p = 0.01, repetition_penalty = 1.0,): messages = messages.copy() openai_client = OpenAI( base_url = "http://127.0.0.1:8001/v1", api_key = "sk-no-key-required", ) model_name = next(iter(openai_client.models.list())).id print(f"Using model = {model_name}") has_tool_calls = True while has_tool_calls: response = openai_client.chat.completions.create( model = model_name, messages = messages, temperature = temperature, top_p = top_p, tools = tools if tools else None, tool_choice = "auto" if tools else None, extra_body = {"top_k": top_k, "min_p": min_p, "repetition_penalty": repetition_penalty} ) tool_calls = response.choices[0].message.tool_calls or [] content = response.choices[0].message.content or "" tool_calls_dict = [tc.to_dict() for tc in tool_calls] if tool_calls else tool_calls messages.append({"role": "assistant", "tool_calls": tool_calls_dict, "content": content}) for tool_call in tool_calls: fx, args, _id = tool_call.function.name, tool_call.function.arguments, tool_call.id out = MAP_FN[fx](**json.loads(args)) messages.append({"role": "tool", "tool_call_id": _id, "name": fx, "content": str(out)}) else: has_tool_calls = False return messages
跑分数据
GLM-5 在各项基准测试中的表现:
| Benchmark | GLM-5 | GLM-4.7 | DeepSeek-V3.2 | Kimi K2.5 | Claude Opus 4.5 | Gemini 3 Pro | GPT-5.2 |
|---|---|---|---|---|---|---|---|
| HLE | 30.5 | 24.8 | 25.1 | 31.5 | 28.4 | 37.2 | 35.4 |
| HLE (w/ Tools) | 50.4 | 42.8 | 40.8 | 51.8 | 43.4* | 45.8* | 45.5* |
| AIME 2026 I | 92.7 | 92.9 | 92.7 | 92.5 | 93.3 | 90.6 | - |
| SWE-bench Verified | 77.8 | 73.8 | 73.1 | 76.8 | 80.9 | 76.2 | 80.0 |
| Terminal-Bench 2.0 | 61.1 | 32.8 | 46.4 | - | 57.9 | - | - |
| BrowseComp (w/ Context) | 75.9 | 67.5 | 67.6 | 74.9 | 67.8 | 59.2 | 65.8 |
完整数据可以去 Unsloth 官网看。
小结
GLM-5 作为国产大模型,参数规模和性能都挺能打的。虽然完整模型需要 1.65TB 存储,但通过 Unsloth 的动态量化,普通玩家也能在本地跑起来。
256GB 内存的 Mac,或者 24GB 显卡 + 大内存的 PC,都有机会体验这个 744B 参数的大家伙。如果你正好有这些硬件,不妨试试。
最后
我在一线科技企业深耕十二载,见证过太多因技术更迭而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。
我整理出这套 AI 大模型突围资料包:
- ✅AI大模型学习路线图
- ✅Agent行业报告
- ✅100集大模型视频教程
- ✅大模型书籍PDF
- ✅DeepSeek教程
- ✅AI产品经理入门资料
完整的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇

为什么说现在普通人就业/升职加薪的首选是AI大模型?
人工智能技术的爆发式增长,正以不可逆转之势重塑就业市场版图。从DeepSeek等国产大模型引发的科技圈热议,到全国两会关于AI产业发展的政策聚焦,再到招聘会上排起的长队,AI的热度已从技术领域渗透到就业市场的每一个角落。

智联招聘的最新数据给出了最直观的印证:2025年2月,AI领域求职人数同比增幅突破200% ,远超其他行业平均水平;整个人工智能行业的求职增速达到33.4%,位居各行业榜首,其中人工智能工程师岗位的求职热度更是飙升69.6%。
AI产业的快速扩张,也让人才供需矛盾愈发突出。麦肯锡报告明确预测,到2030年中国AI专业人才需求将达600万人,人才缺口可能高达400万人,这一缺口不仅存在于核心技术领域,更蔓延至产业应用的各个环节。


资料包有什么?
①从入门到精通的全套视频教程⑤⑥
包含提示词工程、RAG、Agent等技术点
② AI大模型学习路线图(还有视频解说)
全过程AI大模型学习路线

③学习电子书籍和技术文档
市面上的大模型书籍确实太多了,这些是我精选出来的

④各大厂大模型面试题目详解

⑤ 这些资料真的有用吗?
这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。
所有的视频教程由智泊AI老师录制,且资料与智泊AI共享,相互补充。这份学习大礼包应该算是现在最全面的大模型学习资料了。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。


智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念,通过动态追踪大模型开发、数据标注伦理等前沿技术趋势,构建起"前沿课程+智能实训+精准就业"的高效培养体系。
课堂上不光教理论,还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事!


如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!
应届毕业生:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。
零基础转型:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界。
业务赋能 突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型。
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓**

昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链
更多推荐


所有评论(0)