🚀 GLM-4-Z1-9B-0414
GLMシリーズの新しいモデルで、数学的推論や一般的なタスクで優れた能力を持ち、同サイズのオープンソースモデルの中でもトップレベルの性能を発揮します。特にリソースが制限された環境でも、効率と性能のバランスが良く、軽量なデプロイに最適です。
🚀 クイックスタート
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のDeep Researchをベンチマークとしています)。典型的な深い思考モデルとは異なり、熟考モデルはより長い時間をかけて深く考えることで、よりオープンエンドで複雑な問題を解決します(例えば、2つの都市のAI開発の比較分析とその将来の開発計画を書くなど)。熟考モデルは深い思考過程で検索ツールを統合して複雑なタスクを処理し、複数のルールベースの報酬を利用してエンドツーエンドの強化学習をガイドし、拡張することで学習されています。Z1-Ruminationは、研究スタイルの執筆や複雑な検索タスクで大幅な改善を示しています。
最後に、GLM-Z1-9B-0414は驚きです。前述の一連の技術を用いて、90億の小規模モデルを学習させ、オープンソースの伝統を維持しています。規模が小さいにもかかわらず、GLM-Z1-9B-0414は数学的推論や一般的なタスクで優れた能力を発揮しています。その全体的な性能は、同規模のオープンソースモデルの中ですでにリーディングレベルにあります。特にリソースが制限されたシナリオでは、このモデルは効率と効果の間で優れたバランスを達成し、軽量なデプロイを求めるユーザーに強力なオプションを提供しています。
✨ 主な機能
性能
モデルの使用ガイド
I. サンプリングパラメータ
パラメータ |
推奨値 |
説明 |
temperature |
0.6 |
創造性と安定性のバランスを取ります |
top_p |
0.95 |
サンプリングの累積確率閾値です |
top_k |
40 |
まれなトークンを除外しながら多様性を維持します |
max_new_tokens |
30000 |
十分なトークンを思考に使えるようにします |
II. 強制思考
- 最初の行に <think>\n を追加します:モデルが応答する前に考えることを保証します
chat_template.jinja
を使用する場合、この動作を強制するためにプロンプトが自動的に注入されます
III. 対話履歴のトリミング
- 最後のユーザーが見える応答のみを保持します。
隠された思考内容は干渉を減らすために履歴に保存しないでください — これは
chat_template.jinja
ですでに実装されています
IV. 長いコンテキストの処理 (YaRN)
- 入力長が 8,192トークン を超える場合、YaRN (Rope Scaling) を有効にすることを検討してください
- サポートされているフレームワークでは、
config.json
に以下のスニペットを追加します:
"rope_scaling": {
"type": "yarn",
"factor": 4.0,
"original_max_position_embeddings": 32768
}
- 静的なYaRN はすべてのテキストに一律に適用されます。短いテキストでは性能がわずかに低下する可能性があるため、必要に応じて有効にしてください
💻 使用例
基本的な使用法
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))
📄 ライセンス
このモデルは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.'}
}