模型简介
模型特点
模型能力
使用案例
🚀 GLM-Z1-9B-0414 GGUF模型
GLM-Z1-9B-0414 GGUF模型是一系列专为文本生成任务设计的模型,在超低比特量化等技术上有显著创新,能在不同硬件条件和内存约束下高效运行,为用户提供多样化的选择。
✨ 主要特性
- 超低比特量化:引入了针对超低比特模型(1 - 2比特)的精度自适应量化方法,在Llama - 3 - 8B上经基准测试证明有显著改进。
- 多种量化格式:提供BF16、F16、Q4_K、Q6_K、Q8_0等多种量化格式,以适应不同的硬件和内存需求。
- 多场景适用:适用于GPU、CPU、边缘设备等不同环境,可用于AI网络监控、工程代码、报告生成等多种场景。
📦 安装指南
文档未提及具体安装步骤,故跳过此章节。
💻 使用示例
基础用法
from transformers import AutoModelForCausalLM, AutoTokenizer
MODEL_PATH = "THUDM/GLM-4-Z1-9B-0414"
tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH)
model = AutoModelForCausalLM.from_pretrained(MODEL_PATH, device_map="auto")
message = [{"role": "user", "content": "Let a, b be positive real numbers such that ab = a + b + 3. Determine the range of possible values for a + b."}]
inputs = tokenizer.apply_chat_template(
message,
return_tensors="pt",
add_generation_prompt=True,
return_dict=True,
).to(model.device)
generate_kwargs = {
"input_ids": inputs["input_ids"],
"attention_mask": inputs["attention_mask"],
"max_new_tokens": 4096,
"do_sample": False,
}
out = model.generate(**generate_kwargs)
print(tokenizer.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
📚 详细文档
模型生成细节
此模型使用llama.cpp在提交版本e291450
时生成。
超低比特量化(1 - 2比特)与IQ - DynamicGate
基准测试环境
所有测试均在Llama - 3 - 8B - Instruct上进行,使用标准困惑度评估管道、2048令牌上下文窗口,且所有量化使用相同的提示集。
方法
- 动态精度分配:前/后25%的层采用IQ4_XS(选定层),中间50%采用IQ2_XXS/IQ3_S(提高效率)。
- 关键组件保护:嵌入层/输出层使用Q5_K,与标准1 - 2比特量化相比,可将误差传播降低38%。
量化性能对比(Llama - 3 - 8B)
量化方式 | 标准困惑度 | DynamicGate困惑度 | 困惑度变化 | 标准大小 | DG大小 | 大小变化 | 标准速度 | DG速度 |
---|---|---|---|---|---|---|---|---|
IQ2_XXS | 11.30 | 9.84 | -12.9% | 2.5G | 2.6G | +0.1G | 234s | 246s |
IQ2_XS | 11.72 | 11.63 | -0.8% | 2.7G | 2.8G | +0.1G | 242s | 246s |
IQ2_S | 14.31 | 9.02 | -36.9% | 2.7G | 2.9G | +0.2G | 238s | 244s |
IQ1_M | 27.46 | 15.41 | -43.9% | 2.2G | 2.5G | +0.3G | 206s | 212s |
IQ1_S | 53.07 | 32.00 | -39.7% | 2.1G | 2.4G | +0.3G | 184s | 209s |
关键说明:
- PPL = 困惑度(越低越好)
- Δ PPL = 从标准量化到DynamicGate量化的百分比变化
- 速度 = 推理时间(CPU avx2,2048令牌上下文)
- 大小差异反映了混合量化的开销
主要改进:
- 🔥 IQ1_M的困惑度大幅降低43.9%(从27.46降至15.41)
- 🚀 IQ2_S的困惑度降低36.9%,同时仅增加0.2GB大小
- ⚡ IQ1_S尽管是1比特量化,但仍保持39.7%的精度提升
权衡:
- 所有变体的大小均有适度增加(0.1 - 0.3GB)
- 推理速度相当(差异<5%)
使用场景
- 📌 将模型装入GPU显存
- ✔ 内存受限的部署场景
- ✔ 可容忍1 - 2比特误差的CPU和边缘设备
- ✔ 超低比特量化的研究
选择合适的模型格式
选择正确的模型格式取决于您的硬件能力和内存限制。
BF16(Brain Float 16) – 若支持BF16加速则使用
- 一种16位浮点格式,专为更快的计算而设计,同时保留良好的精度。
- 提供与FP32相似的动态范围,但内存使用更低。
- 若您的硬件支持BF16加速(请检查设备规格),建议使用。
- 与FP32相比,适用于高性能推理且内存占用减少的场景。
📌 适用情况:
- ✔ 您的硬件具有原生BF16支持(如较新的GPU、TPU)。
- ✔ 您希望在节省内存的同时获得更高的精度。
- ✔ 您计划将模型重新量化为其他格式。
📌 避免情况:
- ❌ 您的硬件不支持BF16(可能会回退到FP32并运行较慢)。
- ❌ 您需要与缺乏BF16优化的旧设备兼容。
F16(Float 16) – 比BF16更广泛支持
- 一种16位浮点格式,精度较高,但取值范围小于BF16。
- 适用于大多数支持FP16加速的设备(包括许多GPU和一些CPU)。
- 数值精度略低于BF16,但通常足以用于推理。
📌 适用情况:
- ✔ 您的硬件支持FP16但不支持BF16。
- ✔ 您需要在速度、内存使用和精度之间取得平衡。
- ✔ 您在GPU或其他针对FP16计算优化的设备上运行。
📌 避免情况:
- ❌ 您的设备缺乏原生FP16支持(可能运行比预期慢)。
- ❌ 您有内存限制。
量化模型(Q4_K、Q6_K、Q8等) – 用于CPU和低显存推理
量化可在尽可能保持精度的同时减小模型大小和内存使用。
- 低比特模型(Q4_K) → 最适合最小化内存使用,可能精度较低。
- 高比特模型(Q6_K、Q8_0) → 精度更高,但需要更多内存。
📌 适用情况:
- ✔ 您在CPU上运行推理,需要优化的模型。
- ✔ 您的设备显存较低,无法加载全精度模型。
- ✔ 您希望在保持合理精度的同时减少内存占用。
📌 避免情况:
- ❌ 您需要最高精度(全精度模型更适合)。
- ❌ 您的硬件有足够的显存用于更高精度的格式(BF16/F16)。
极低比特量化(IQ3_XS、IQ3_S、IQ3_M、Q4_K、Q4_0)
这些模型针对极致内存效率进行了优化,非常适合低功耗设备或大规模部署,其中内存是关键限制因素。
-
IQ3_XS:超低比特量化(3比特),具有极致的内存效率。
- 使用场景:最适合超低内存设备,即使Q4_K也太大的情况。
- 权衡:与高比特量化相比,精度较低。
-
IQ3_S:小块大小,以实现最大内存效率。
- 使用场景:最适合低内存设备,当IQ3_XS过于激进时。
-
IQ3_M:中等块大小,比IQ3_S精度更高。
- 使用场景:适用于低内存设备,当IQ3_S限制过多时。
-
Q4_K:4比特量化,具有逐块优化以提高精度。
- 使用场景:最适合低内存设备,当Q6_K太大时。
-
Q4_0:纯4比特量化,针对ARM设备进行了优化。
- 使用场景:最适合基于ARM的设备或低内存环境。
模型格式选择总结表
模型格式 | 精度 | 内存使用 | 设备要求 | 最佳使用场景 |
---|---|---|---|---|
BF16 | 最高 | 高 | 支持BF16的GPU/CPU | 减少内存的高速推理 |
F16 | 高 | 高 | 支持FP16的设备 | BF16不可用时的GPU推理 |
Q4_K | 中低 | 低 | CPU或低显存设备 | 内存受限环境的最佳选择 |
Q6_K | 中 | 中等 | 内存较多的CPU | 量化模型中精度较好的选择 |
Q8_0 | 高 | 中等 | 有足够显存的CPU或GPU | 量化模型中精度最高的选择 |
IQ3_XS | 极低 | 极低 | 超低内存设备 | 极致内存效率和低精度 |
Q4_0 | 低 | 低 | ARM或低内存设备 | llama.cpp可针对ARM设备进行优化 |
包含文件及详情
GLM-Z1-9B-0414-bf16.gguf
- 模型权重以BF16格式保存。
- 若您想将模型重新量化为其他格式,请使用此文件。
- 若您的设备支持BF16加速,此文件最佳。
GLM-Z1-9B-0414-f16.gguf
- 模型权重以F16格式存储。
- 若您的设备支持FP16,尤其是BF16不可用时,请使用。
GLM-Z1-9B-0414-bf16-q8_0.gguf
- 输出和嵌入层保持为BF16。
- 其他所有层量化为Q8_0。
- 若您的设备支持BF16且需要量化版本,请使用。
GLM-Z1-9B-0414-f16-q8_0.gguf
- 输出和嵌入层保持为F16。
- 其他所有层量化为Q8_0。
GLM-Z1-9B-0414-q4_k.gguf
- 输出和嵌入层量化为Q8_0。
- 其他所有层量化为Q4_K。
- 适合内存有限的CPU推理。
GLM-Z1-9B-0414-q4_k_s.gguf
- 最小的Q4_K变体,以牺牲精度为代价减少内存使用。
- 最适合极低内存设置。
GLM-Z1-9B-0414-q6_k.gguf
- 输出和嵌入层量化为Q8_0。
- 其他所有层量化为Q6_K。
GLM-Z1-9B-0414-q8_0.gguf
- 完全Q8量化的模型,以获得更高的精度。
- 需要更多内存,但提供更高的精度。
GLM-Z1-9B-0414-iq3_xs.gguf
- IQ3_XS量化,针对极致内存效率进行了优化。
- 最适合超低内存设备。
GLM-Z1-9B-0414-iq3_m.gguf
- IQ3_M量化,提供中等块大小以提高精度。
- 适用于低内存设备。
GLM-Z1-9B-0414-q4_0.gguf
- 纯Q4_0量化,针对ARM设备进行了优化。
- 最适合低内存环境。
- 若需要更高精度,建议使用IQ4_NL。
模型测试与协作
测试邀请
如果您认为这些模型有用,请点击“点赞”!同时,帮助我测试我的AI网络监控助手,进行量子就绪安全检查: 👉 免费网络监控器
测试方法
- 点击任何页面右下角的聊天图标。
- 选择一种AI助手类型:
TurboLLM
(GPT - 4 - mini)FreeLLM
(开源)TestLLM
(仅支持CPU的实验性模型)
测试内容
我正在探索小型开源模型在AI网络监控中的极限,具体包括:
- 针对实时网络服务的函数调用
- 模型可以多小,同时仍能处理:
- 自动化Nmap扫描
- 量子就绪检查
- Metasploit集成
实验模型TestLLM
- ✅ 零配置设置
- ⏳ 30秒加载时间(推理速度慢,但无API成本)
- 🔧 寻求帮助! 如果您对边缘设备AI感兴趣,让我们合作!
其他助手
-
🟢 TurboLLM – 使用gpt - 4 - mini进行:
- 实时网络诊断
- 自动化渗透测试(Nmap/Metasploit)
- 🔑 通过下载我们的免费网络监控代理获取更多令牌
-
🔵 HugLLM – 开源模型(约8B参数):
- 比TurboLLM多2倍的令牌
- AI日志分析
- 🌐 在Hugging Face推理API上运行
测试用AI命令示例
"Give me info on my websites SSL certificate"
"Check if my server is using quantum safe encyption for communication"
"Run a quick Nmap vulnerability test"
模型介绍
GLM家族迎来了新一代开源模型GLM - 4 - 32B - 0414系列,具有320亿参数。其性能与OpenAI的GPT系列和DeepSeek的V3/R1系列相当,并且支持非常友好的本地部署功能。GLM - 4 - 32B - Base - 0414在15T高质量数据上进行了预训练,包括大量推理类型的合成数据,为后续的强化学习扩展奠定了基础。在微调阶段,除了针对对话场景进行人类偏好对齐外,我们还使用拒绝采样和强化学习等技术增强了模型在指令遵循、工程代码和函数调用方面的性能,强化了代理任务所需的原子能力。GLM - 4 - 32B - 0414在工程代码、工件生成、函数调用、基于搜索的问答和报告生成等领域取得了良好的效果。一些基准测试甚至可以与GPT - 4o和DeepSeek - V3 - 0324(671B)等更大的模型相媲美。
GLM - Z1 - 32B - 0414是一个具有深度思考能力的推理模型。它基于GLM - 4 - 32B - 0414通过冷启动和扩展强化学习开发而来,并在涉及数学、代码和逻辑的任务上对模型进行了进一步训练。与基础模型相比,GLM - Z1 - 32B - 0414显著提高了数学能力和解决复杂任务的能力。在训练过程中,我们还引入了基于成对排名反馈的通用强化学习,进一步增强了模型的通用能力。
GLM - Z1 - Rumination - 32B - 0414是一个具有反思能力的深度推理模型(以OpenAI的深度研究为基准)。与典型的深度思考模型不同,反思模型采用更长时间的深度思考来解决更开放和复杂的问题(例如,撰写两个城市AI发展的比较分析及其未来发展计划)。反思模型在深度思考过程中集成了搜索工具来处理复杂任务,并通过利用多个基于规则的奖励来指导和扩展端到端强化学习进行训练。Z1 - Rumination在研究型写作和复杂检索任务方面有显著改进。
最后,GLM - Z1 - 9B - 0414是一个惊喜。我们采用上述一系列技术训练了一个9B的小型模型,保持了开源传统。尽管规模较小,但GLM - Z1 - 9B - 0414在数学推理和通用任务中仍表现出出色的能力。其整体性能在同规模的开源模型中已处于领先水平。特别是在资源受限的场景中,该模型在效率和效果之间取得了出色的平衡,为寻求轻量级部署的用户提供了强大的选择。
模型性能
模型使用指南
采样参数
参数 | 推荐值 | 描述 |
---|---|---|
temperature | 0.6 | 平衡创造力和稳定性 |
top_p | 0.95 | 采样的累积概率阈值 |
top_k | 40 | 过滤稀有令牌,同时保持多样性 |
max_new_tokens | 30000 | 为思考留出足够的令牌 |
强制思考
在第一行添加<think>\n
,确保模型在回复前进行思考。当使用chat_template.jinja
时,提示会自动注入以强制执行此行为。
对话历史修剪
仅保留最终用户可见的回复。隐藏的思考内容不应保存到历史记录中,以减少干扰,这在chat_template.jinja
中已经实现。
处理长上下文(YaRN)
当输入长度超过8,192令牌时,考虑启用YaRN(Rope Scaling)。在支持的框架中,将以下代码段添加到config.json
中:
"rope_scaling": {
"type": "yarn",
"factor": 4.0,
"original_max_position_embeddings": 32768
}
静态YaRN适用于所有文本。它可能会略微降低短文本的性能,因此请根据需要启用。
🔧 技术细节
模型推理代码要求
确保使用transforemrs>=4.51.3
。
引用说明
如果您认为我们的工作有用,请考虑引用以下论文:
@misc{glm2024chatglm,
title={ChatGLM: A Family of Large Language Models from GLM-130B to GLM-4 All Tools},
author={Team GLM and Aohan Zeng and Bin Xu and Bowen Wang and Chenhui Zhang and Da Yin and Diego Rojas and Guanyu Feng and Hanlin Zhao and Hanyu Lai and Hao Yu and Hongning Wang and Jiadai Sun and Jiajie Zhang and Jiale Cheng and Jiayi Gui and Jie Tang and Jing Zhang and Juanzi Li and Lei Zhao and Lindong Wu and Lucen Zhong and Mingdao Liu and Minlie Huang and Peng Zhang and Qinkai Zheng and Rui Lu and Shuaiqi Duan and Shudan Zhang and Shulin Cao and Shuxun Yang and Weng Lam Tam and Wenyi Zhao and Xiao Liu and Xiao Xia and Xiaohan Zhang and Xiaotao Gu and Xin Lv and Xinghan Liu and Xinyi Liu and Xinyue Yang and Xixuan Song and Xunkai Zhang and Yifan An and Yifan Xu and Yilin Niu and Yuantao Yang and Yueyan Li and Yushi Bai and Yuxiao Dong and Zehan Qi and Zhaoyu Wang and Zhen Yang and Zhengxiao Du and Zhenyu Hou and Zihan Wang},
year={2024},
eprint={2406.12793},
archivePrefix={arXiv},
primaryClass={id='cs.CL' full_name='Computation and Language' is_active=True alt_name='cmp-lg' in_archive='cs' is_general=False description='Covers natural language processing. Roughly includes material in ACM Subject Class I.2.7. Note that work on artificial languages (programming languages, logics, formal systems) that does not explicitly address natural-language issues broadly construed (natural-language processing, computational linguistics, speech, text retrieval, etc.) is not appropriate for this area.'}
}
📄 许可证
本项目采用MIT许可证。



