モデル概要
モデル特徴
モデル能力
使用事例
🚀 YuLan-Mini-Instruct
YuLan-Mini-Instructは、24億のパラメータを持つコンパクトで強力なモデルです。数学やコード生成など、複数の分野で高い性能を発揮し、同規模のモデルと比較しても競争力を持っています。このモデルは、Supervised Fine-Tuning (SFT)、Preference Finetuning (DPO)、Reinforcement Learning (PPO) のパイプラインを通じて訓練され、多様なタスクでの性能向上が図られています。
🚀 クイックスタート
以下は、Huggingfaceを使用した推論の簡単な例です。
Huggingface推論の例
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
# モデルとトークナイザーをロード
tokenizer = AutoTokenizer.from_pretrained("yulan-team/YuLan-Mini-Instruct")
model = AutoModelForCausalLM.from_pretrained("yulan-team/YuLan-Mini-Instruct", torch_dtype=torch.bfloat16)
# 入力テキスト
chat = [
{"role": "system", "content": "You are YuLan-Mini, created by RUC AI Box. You are a helpful assistant."},
{"role": "user", "content": "What is Renmin University of China?"}
]
formatted_chat = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(formatted_chat, return_tensors="pt", add_special_tokens=False)
# 生成
output = model.generate(inputs["input_ids"], max_new_tokens=100, temperature=0.5)
print(tokenizer.decode(output[0][inputs['input_ids'].size(1):], skip_special_tokens=True))
vLLMサーブの例
vllm serve yulan-team/YuLan-Mini-Instruct --dtype bfloat16
SGLangサーブの例
python -m sglang.launch_server --model-path yulan-team/YuLan-Mini-Instruct --port 30000 --host 0.0.0.0
Ollamaの例
ollama run hf.co/mradermacher/YuLan-Mini-Instruct-GGUF:IQ4_XS
✨ 主な機能
- 多言語対応:英語と中国語の両方に対応しており、広範なユーザーに対応可能です。
- 高性能:数学、コード生成、推論などのタスクで高い性能を発揮し、同規模のモデルと比較しても優れた結果を示します。
- 柔軟な訓練:Supervised Fine-Tuning、Preference Finetuning、Reinforcement Learningのパイプラインを通じて、モデルの性能を最適化します。
📚 ドキュメント
1. 紹介
YuLan-Mini-Instructは、24億のパラメータを持つコンパクトで強力なモデルです。このモデルは、YuLan-Miniベースモデルの事後訓練適応版であり、公開データと合成データを用いた効率的な訓練により、主流のモデル(Qwen-1.5bやLLaMA-3Bなど)と匹敵する性能を達成しています。また、数学やコードに関する核心的な能力を損なうことなく、多様なタスクで高い性能を発揮します。
モデル | コンテキスト長 | SFT | DPO | 🤗 Hugging Face | ModelScope | Wise Model |
---|---|---|---|---|---|---|
YuLan-Mini | 28K | ❎ | ❎ | Base |
Base |
Base |
YuLan-Mini-Instruct | 28K | ✅ | ✅ | Instruct |
2. モデル概要
YuLan-Mini-Instructは、同規模のモデルと比較して競争力のある性能を示し、特に数学やコードに関する推論タスクで優れた結果を収めています。このモデルは、Qwen2.5-1.5B-InstructやLlama3.2-3B-Instructなど、同じパラメータサイズのフロンティアシリーズの他のモデルと比較されています。
3. 教師付き微調整
データ
データソース
モデルが包括的な知識をカバーし、強力なドメイン固有の専門知識を獲得できるように、2つの主要なデータソースを選択しています。
- オープンソースデータ:GPT-4などの強力な独自モデルによって構築された、または人間の専門家によって作成された、複数の分野と主題にまたがる高品質のオープンソースデータセットを収集しています。
- 合成データ:高品質のドメイン固有のデータが不足しているため、合成データはモデルの専門能力を向上させる上で重要な役割を果たします。そのため、数学、科学、中国語の常識推論などのドメインにわたって、大量のターゲットデータを合成しています。
データフィルタリング
教師付き微調整段階では、訓練データの品質がモデルの性能に大きな影響を与えます。そのため、複数の品質管理戦略を組み込んだ包括的なデータフィルタリングパイプラインを設計し、精製されたデータセットがモデルの有効性と信頼性に最大限に寄与するようにしています。
データミックス
教師付き微調整段階では、多様なデータタイプを単純に集約すると、データの衝突が発生し、特定のドメインでのモデルの性能が低下する可能性があります。この問題を軽減するために、各データソースの特性に基づいてデータの割合を割り当て、一般的なデータとドメイン固有のデータのバランスを取ります。また、広範な増分実験を通じて、訓練性能とフィードバックに基づいてデータ比率をリアルタイムで動的に調整し、最適な結果を達成します。
カテゴリ | 数 | 比率 |
---|---|---|
一般英語 | 320万 | 39% |
一般中国語 | 300万 | 36% |
数学 | 180万 | 22% |
コード | 20万 | 3% |
合計 | 820万 | 100% |
レシピ
訓練設定
モデルの訓練は、高速ネットワークで相互接続された8つのNVIDIA A800 GPUを備えた4つのノードから構成される分散コンピューティングインフラストラクチャ上で行われます。有効なバッチサイズは512、最大シーケンス長は28Kトークンを使用しています。最適化プロセスは、学習率1e-5で2エポックにわたって行われます。
4. 嗜好微調整
嗜好データ
嗜好データは、オフポリシーデータとオンポリシーデータの組み合わせから構成されています。
- オフポリシーデータ:高品質の公開データセットを集約して構成されています。
- オンポリシーデータ:科学的問題、数学、プログラミング、中国語の一般知識、幻覚、自己認識評価など、多様なドメインをカバーする専用データセットを体系的に収集しています。
嗜好調整レシピ
教師付き微調整モデルに基づいて、Direct Preference Optimization (DPO) を使用して、モデルを人間の嗜好に合わせます。モデルは、バッチサイズ128、学習率5e-7で2エポック間訓練され、$\beta$は0.1に設定されます。この設定により、訓練中の収束が効果的に行われ、訓練効率と計算リソースの消費のバランスが保たれます。
5. 強化学習
DPOモデルに基づいて、Proximal Policy Optimization (PPO) を使用して、モデルの性能をさらに向上させ、人間の嗜好に合わせます。
データ準備
PPO訓練には、DPOデータセットから10,000の難しい命令を抽出します。これらの命令は、多様なタスクカテゴリを表しており、さまざまなシナリオでのモデルの性能を最適化するのに役立ちます。
報酬モデル
モデルのパラメータサイズが比較的小さく、高性能な報酬モデルを訓練するのに必要な計算リソースが多いため、訓練プロセス中に報酬信号を提供するためにオープンソースの報酬モデルを利用することにしました。具体的には、報酬モデル Skywork/Skywork-Reward-Llama-3.1-8B-v0.2 を使用しています。
訓練レシピ
訓練プロセスは、8つのNVIDIA A800 GPUを使用して4エポック間行われます。OpenRLHFフレームワークを使用して訓練を行い、強化学習タスクに柔軟な環境を提供します。訓練段階では、報酬ハッキング現象などのいくつかの技術的な課題に直面しますが、これらの問題に対処するために一連の緩和策を実装しています。
6. 評価
YuLan-Mini-Instruct事後訓練モデルをさまざまなベンチマークタスクでテストして生成された評価データを公開しており、事前訓練アプローチとの一貫性を維持しています。
YuLan-Mini-Instructの性能を包括的に評価するために、同規模で同様の機能を持つ他のモデルとの厳密な比較分析を行いました。各ベンチマークタスクについて、経験的な評価または公開された結果のいずれかから最適な性能スコアを選択して比較します。
核心スキル | 開発 |
---|---|
知識 | MMLU (0 shot, CoT) |
MMLU (5 shot) | |
TruthfulQA(0 shot) | |
推論 | ARC(0 shot) |
GPQA(5 shot) | |
数学 | MATH(0 shot, CoT) |
GSM8K(8 shot) | |
GSM8K(0 shot, CoT) | |
コード | HumanEval(pass@1) |
HumanEval+(pass@1) | |
HumanEval(pass@10) | |
HumanEval+(pass@10) | |
MBPP(pass@1) | |
MBPP+(pass@1) | |
MBPP(pass@10) | |
MBPP+(pass@10) |
7. 結論、制限事項、および将来の展望
YuLan-Mini-Instructは、24億のパラメータを持つ強力な小規模言語モデルであり、Supervised Fine-Tuning、Direct Preference Optimization、Proximal Policy Optimizationの戦略を用いた完全な事後訓練プロセスを経ています。MMLUなどの知識集約的なベンチマークでは制限が見られますが、いくつかの汎用タスクでは競争力のある性能を示しています。将来の研究方向は、訓練データの収集を拡大してデータセットの多様性と包括性を高め、推論能力を向上させることに焦点を当てます。
📄 ライセンス
- このリポジトリ内のコード、モデルの重み、およびオプティマイザの状態は、MITライセンスの下で公開されています。
- モデルの重み、中間オプティマイザの状態、および訓練データの使用に関するポリシーは、将来のアップデートで発表されます。
- 制限事項:安全性の懸念を軽減し、倫理的かつ合法的なテキストの生成を促進するために努力していますが、言語モデルの確率的性質により、予期しない出力が生じる可能性があります。例えば、応答にバイアス、差別、またはその他の有害な内容が含まれる場合があります。このような内容の拡散は避けてください。有害な情報の拡散に起因する結果について、当方は責任を負いません。
参考文献
研究に役立つ場合には、以下のレポートを引用してください。
@article{YuLan-Mini-Instruct,
title={YuLan-Mini-Instruct Technical Report},
author={RUCAIBox YuLan-Mini-Instruct Team},
url={https://github.com/RUC-GSAI/YuLan-Mini},
year={2025}
}
貢献者
YuLan-Mini-Instructチーム
著者はアルファベット順にリストされています:Fei Bai, Zhipeng Chen, Yanzipeng Gao, Yukai Gu, Yiwen Hu, Yihong Liu, Yingqian Min, Ruiyang Ren, Huatong Song, Shuang Sun, Ji-Rong Wen, Chenghao Wu, Xin Zhao, Kun Zhou, Yutao Zhu



