🚀 GLOCON-Reasoning: Qwen2.5-3B with GRPO Reinforcement Learning
このモデルは、GRPO強化学習を用いたQwen2.5-3Bベースのテキスト分類モデルで、紛争イベントの分類と構造化された推論を行うことができます。

🚀 クイックスタート
このモデルを使用する際には、以下のようにプロンプトを設定する必要があります。これにより、モデルが必要な構造化推論形式に従うことが保証されます。明示的にプロンプトを設定しない場合、モデルの出力は期待されるXML構造と推論ガイドラインに準拠しない可能性があります。
例えば、推論コードに以下のプロンプトを含めてください。
prompt = """
You are identifying conflict events and assigning them to one of five predefined categories. Think carefully and reason deeply, but when giving the final answer, provide only minimal, fixed-format outputs without any extra words.
Format your response:
<reasoning>
- Carefully analyze the text and explain:
1. What action(s) triggered the event.
2. Who are the participants or organizers.
3. Where the event happened (city and country).
4. Whether the event was violent or non-violent.
5. Which of the five event categories fits best, and why.
</reasoning>
<answer>
1. Trigger: <exact phrase>
2. Participants: <actor1, actor2,...>
3. Location: <city, country>
4. Violence: <Violent / Non-violent>
5. Category: <one of: Demonstration / Armed Militancy / Group Clash / Industrial Action / Other>
</answer>
"""
✨ 主な機能
このモデルは、ConflLlamaで使用されている従来の教師あり微調整とは異なり、GRPOを使用して以下のことを行います。
- 複数の報酬信号を同時に最適化する。
- 強化信号を通じて構造化推論形式を強制する。
- フォーマットされたXML応答により出力の一貫性を向上させる。
- 直接的な模倣ではなく強化を通じて自己改善する。
学習データ
- データセット:GLOCONイベント分類データセット
- 期間:現代の国内紛争イベント
- 形式:関連するイベントカテゴリ付きのニュース記事
- ラベル:5つの主要なイベントカテゴリ
- デモンストレーション
- 武装民兵活動
- 集団衝突
- 産業行動
- その他
データ処理
- 学習/テスト分割:
- 学習データ80%、テストデータ20%
- 再現性のために一貫した乱数シード(42)を使用
- 形式標準化:
- 構造化推論要件を含むシステムプロンプト
- 一貫したXML出力形式
- 回答抽出:
- 構造化応答からの特殊な抽出
- 既知のカテゴリに対する検証
学習形式
- 入力:潜在的な紛争イベントを記述したニュース記事
- 出力:推論と最終カテゴリを含む構造化XML
🔧 技術詳細
複数報酬を持つ方策勾配
GRPOアプローチは、以下の式を使用して方策パラメータを最適化します。
$$\nabla_\theta J(\theta) = \mathbb{E} \left[ \sum_{i=1}^{N} w_i R_i(x, y) \nabla_\theta \log \pi_\theta(y|x) \right]$$
報酬関数
この実装では、5つの特殊な報酬関数を使用しています。
- 正解報酬:正確な分類に対して2.0ポイント
- カテゴリ形式報酬:有効なカテゴリ選択に対して0.5ポイント
- 形式報酬:適切なXML構造に対して合計1.0ポイント
- XMLマイクロ報酬:タグ配置と構造に対する小さなインセンティブ
学習詳細
- フレームワーク:Unsloth GRPO
- ハードウェア:vLLMアクセラレーションを備えた単一のNVIDIA GPU
- 学習設定:
- バッチサイズ:デバイスごとに1
- 勾配累積ステップ:4
- 学習率:5e-6
- 最大ステップ:1,000
- 保存ステップ:500
- ロギングステップ:1
- プロンプトごとのサンプル数:6
- GPUメモリ使用率:60%
LoRA設定
- ランク:64(ConflLlamaのランク8よりも大幅に大きい)
- 対象モジュール:q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj
- アルファスケーリング:64
- 量子化:4ビット学習
- 勾配チェックポイント:有効("unsloth"モード)
生成パラメータ
- 温度:0.8
- Top-p:0.95
- 最大トークン数:256
- 最大プロンプト長:512
モデルアーキテクチャ
学習アーキテクチャは、強化学習と効率的なLLM微調整を組み合わせています。
強化学習の利点
このモデルは、教師あり微調整に比べて以下の主要な利点を示します。
- 構造化出力の強制:
<reasoning>
1. Triggers detected: [...]
2. Participants and organizers: [...]
3. Location details: [...]
4. Violence assessment: [...]
5. Event category determination: [...]
</reasoning>
<answer>
[Final category]
</answer>
- 推論能力の向上:
- 最終分類前の明示的なステップバイステップの推論
- 複数の要素(暴力、参加者、場所)の考慮
- 透明な正当化プロセス
- 報酬ベースの改善:
- 複数の報酬信号を通じた自己修正行動
- 形式遵守と分類精度のバランス
- 正確性を犠牲にすることなく適切な構造を促進
実装詳細
報酬関数は、効率的なベクトル化操作で実装されています。
def correctness_reward_func(prompts, completions, answer, **kwargs) -> list[float]:
responses = [completion[0]['content'] for completion in completions]
extracted_responses = [extract_xml_answer(r) for r in responses]
return [2.0 if r.strip() == a.strip() else 0.0
for r, a in zip(extracted_responses, answer)]
メモリ最適化
- 4ビット量子化を使用
- 勾配累積ステップ:4
- メモリ効率の高い勾配チェックポイント
- 最大シーケンス長を1024に短縮
- GPUメモリ使用率を60%に制限
- vLLMを使用した高速推論
📚 ドキュメント
想定使用方法
このモデルは、以下の用途に設計されています。
- 推論付きの国内紛争イベントの分類
- 透明な決定プロセスを必要とする学術研究
- 構造化出力によるイベント分析
- RLベースの分類の教育的デモンストレーション
制限事項
- 固定された出力構造は柔軟性を制限する可能性があります。
- 性能は報酬関数の品質に依存します。
- 最大シーケンス長は1024トークンに制限されています。
- 強化により報酬信号に対して過度に最適化される可能性があり、真の理解ではなくなる場合があります。
- 5つの事前定義されたイベントカテゴリに限定されています。
- 学習分布外の紛争イベントに対する汎化能力が低い可能性があります。
倫理的な考慮事項
- モデルは紛争イベントデータで学習されています。
- 研究目的のみに責任を持って使用する必要があります。
- 運用セキュリティの決定には使用されることを意図していません。
- 結果は適切な文脈で解釈する必要があります。
- 学習データに含まれるバイアスが存在する可能性があります。
引用
@misc{glocon-reasoning,
author = {Meher, Shreyas},
title = {GLOCON-Reasoning: Qwen2.5-3B with GRPO Reinforcement Learning},
year = {2024},
publisher = {HuggingFace},
note = {Based on Qwen2.5-3B-Instruct and GRPO framework}
}
謝辞
- GRPOの実装と最適化フレームワークを提供してくれたUnsloth
- ベースモデルを提供してくれたQwenチーム
- トランスフォーマーインフラを提供してくれたHugging Face
- 高速推論機能を提供してくれたvLLMチーム
- NSF award 2311142による研究支援
