标签:
- unsloth
基础模型:
- THUDM/GLM-Z1-9B-0414
许可证: mit
语言:
- 中文
- 英文
管道标签: 文本生成
库名称: transformers
GLM-4-Z1-9B-0414
简介
GLM家族迎来新一代开源模型——GLM-4-32B-0414系列,拥有320亿参数。其性能与OpenAI的GPT系列、DeepSeek的V3/R1系列相当,并支持非常友好的本地部署特性。GLM-4-32B-Base-0414在15T高质量数据上进行了预训练,其中包含大量推理型合成数据,为后续强化学习扩展奠定了基础。在后训练阶段,除了对话场景的人类偏好对齐外,我们还通过拒绝采样、强化学习等技术增强了模型在指令跟随、工程代码和函数调用方面的表现,强化了智能体任务所需的原子能力。GLM-4-32B-0414在工程代码、Artifact生成、函数调用、基于搜索的问答和报告生成等方面取得了不错的效果,部分基准测试甚至能与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 |
为思考预留足够token |
二、强制思考机制
- 在首行添加<think>\n:确保模型先思考再回答
- 使用
chat_template.jinja
时会自动注入提示词实现该行为
三、对话历史修剪
- 仅保留最终用户可见回复
隐藏的思考内容不应存入历史以减少干扰——该功能已在chat_template.jinja
中实现
四、长上下文处理(YaRN)
-
当输入长度超过8,192 token时,可考虑启用YaRN(Rope Scaling)
-
在支持框架中,向config.json
添加如下片段:
"rope_scaling": {
"type": "yarn",
"factor": 4.0,
"original_max_position_embeddings": 32768
}
-
静态YaRN会统一作用于所有文本。可能略微降低短文本性能,请按需启用。
推理代码
确保使用transforemrs>=4.51.3
版本。
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": "设a,b为正实数且满足ab = a + b + 3。确定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))
引用
如果您觉得我们的工作有帮助,请考虑引用以下论文。
@misc{glm2024chatglm,
title={ChatGLM:从GLM-130B到全工具GLM-4的大语言模型家族},
author={GLM团队 和 曾傲寒 和 徐斌 和 王博文 和 张晨晖 和 尹达 和 Diego Rojas 和 冯冠宇 和 赵翰林 和 赖瀚宇 和 余昊 和 王宏宁 和 孙佳岱 和 张佳杰 和 程家乐 和 桂佳怡 和 唐杰 和 张静 和 李涓子 和 赵磊 和 吴林东 和 钟璐辰 和 刘明道 和 黄民烈 和 张鹏 和 郑钦凯 和 卢睿 和 段帅祺 和 张书丹 和 曹树霖 和 杨树勋 和 谭文林 和 赵文怡 和 刘骁 和 夏晓 和 张晓晗 和 顾晓涛 和 吕欣 和 刘星汉 和 刘心怡 和 杨新月 和 宋希璇 和 张勋凯 和 安逸凡 和 徐一帆 和 牛艺霖 和 杨远韬 和 李月岩 和 白雨石 和 董宇霄 和 齐泽涵 和 王昭宇 和 杨振 和 杜政晓 和 侯振宇 和 王梓涵},
year={2024},
eprint={2406.12793},
archivePrefix={arXiv},
primaryClass={id='cs.CL' 全称='计算与语言' 是否活跃=是 别名='cmp-lg' 存档于='cs' 是否通用=否 描述='涵盖自然语言处理。大致包含ACM主题分类I.2.7中的材料。注意,不明确涉及广义自然语言问题(自然语言处理、计算语言学、语音、文本检索等)的人工语言(编程语言、逻辑、形式系统)工作不适合此领域。'}
}