license: mit
language:
- zh
- en
pipeline_tag: text-generation
library_name: 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 tokens时可启用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: 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='涵盖自然语言处理。大致对应ACM主题分类I.2.7。注意:若人工语言(编程语言、逻辑、形式系统)研究未明确涉及广义自然语言问题(自然语言处理、计算语言学、语音、文本检索等),则不属于本领域。'}
}