🚀 GLM-Z1-9B-0414
GLM-Z1-9B-0414是基于GLM系列开发的推理模型,具有出色的数学推理和通用任务处理能力。在资源受限场景下,该模型能在效率和效果之间取得良好平衡,为用户提供了轻量级部署的有力选择。
✨ 主要特性
- 高性能表现:GLM-4-32B-0414系列性能可与OpenAI的GPT系列和DeepSeek的V3/R1系列相媲美,在工程代码、Artifact生成、函数调用、搜索式问答和报告生成等领域取得了良好成果。
- 深度思考能力:GLM-Z1-32B-0414是具有深度思考能力的推理模型,相比基础模型,显著提高了数学能力和解决复杂任务的能力。
- 反思能力:GLM-Z1-Rumination-32B-0414是具有反思能力的深度推理模型,能通过更长时间的深度思考解决更开放和复杂的问题。
- 轻量级部署:GLM-Z1-9B-0414虽规模较小,但在数学推理和通用任务中仍表现出色,在资源受限场景下实现了效率和效果的良好平衡。
📦 安装指南
使用该模型需确保 transformers>=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": "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))
📚 详细文档
采样参数
参数 |
推荐值 |
描述 |
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 适用于所有文本。它可能会略微降低短文本的性能,因此按需启用。
📄 许可证
本项目采用 MIT 许可证。
📖 引用
如果您觉得我们的工作有用,请考虑引用以下论文:
@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.'}
}