はじめに
Light-R1は、Qihoo360(奇虎360)チームが数学の長い推論の連鎖であるChain-of-Thought(COT)に着目して開発したオープンソースのAIモデルです。Qwen2.5-32B-Instructモデルをベースとし、独自のコースベースの教師付き微調整(SFT)と直接選好最適化(DPO)学習法により、数学競技AIME24とAIME25でそれぞれ76.6と64.6の高得点を、わずか約1,000ドルのコスト(12台のH800マシンで6時間の学習)で達成し、以下を凌駕しました。Light-R1のハイライトは、長鎖推論機能を持たないモデルから出発し、汚染除去されたデータとモデル融合技術を組み合わせることで、効率的かつ費用対効果の高い性能ブレークスルーを達成したことである。このプロジェクトはモデルを公開するだけでなく、すべてのトレーニングデータセットとコードを公開し、長鎖推論モデルの普及と発展を促進することを目指している。
機能一覧
- すうりAIMEのような難解な数学競技のための正確な問題解決を提供します。
- 長鎖推論のサポートハードコーディングによる
<考える
ラベルを使用することで、複雑な問題を徐々に推論できるようになる。 - オープンソースリソース共有SFTとDPOの完全なトレーニングデータセットと360-LLaMA-Factoryベースのトレーニングスクリプトが利用可能です。
- 効率的な推論展開サポート ブイエルエルエム とSGLangフレームワークを使って、モデルの推論速度とリソースの使用量を最適化しています。
- モデル評価ツールAIME24などのベンチマーク結果を提供するDeepScaleR評価コードの統合。
- データ汚染除去MATH-500、AIME24/25などのベンチマークに対してトレーニングデータが汚染されていないことを確認し、公平性を高める。
ヘルプの使用
取得と設置のプロセス
Light-R1はGitHubでホストされているオープンソースプロジェクトで、ユーザーは以下の手順でモデルを取得し、デプロイすることができます:
- GitHubリポジトリへのアクセス
ブラウザを開き、URLを入力する。https://github.com/Qihoo360/Light-R1
をクリックすると、プロジェクトのホームページにジャンプする。このページには、モデルの紹介、データセットへのリンク、コードの説明がある。 - クローン倉庫
ターミナルまたはコマンドラインで以下のコマンドを入力して、プロジェクトをローカルにクローンする:
git clone https://github.com/Qihoo360/Light-R1.git
クローニングが完了したら、プロジェクト・ディレクトリに移動する:
cd Light-R1
- モデルファイルのダウンロード
Light-R1-32BはHugging Faceに掲載されています。アクセスhttps://huggingface.co/Qihoo360/Light-R1-32B
モデルウェイトファイルをダウンロードしたい場合は、ページの指示に従ってください。ダウンロード後、ファイルをローカルリポジトリの適当なディレクトリ(例えばモデル
)、正確なパスはプロジェクトのドキュメントに記載されている。 - 依存環境のインストール
Light-R1 では、推論に vLLM または SGLang を使用することを推奨しており、関連する依存関係をインストールする必要があります。vLLM を例に説明します:
- Python 3.8以降がインストールされていることを確認してください。
- vLLMをインストールします:
pip install vllm
- GPUサポートが必要な場合は、CUDAが設定されていることを確認してください(12 H800または同等のデバイスを推奨)。
- データセットの準備(オプション)
トレーニングを再現したり、カスタムで微調整したりする必要がある場合は、GitHubページからSFTとDPOのデータセットをダウンロードできます。カリキュラムSFT&DPOデータセット
(部分)。解凍してデータ
カタログ
主な機能
1.Light-R1による数理的推論
Light-R1の中心的な機能は、数学的な問題、特に長い推論の連鎖を必要とする複雑なトピックを解くことである。以下はその手順である:
- 推論サービスの開始
ターミナルでプロジェクト・ディレクトリに移動し、以下のコマンドを実行してvLLM推論サービスを起動します:
python -m vllm.entrypoints.api_server --model path/to/Light-R1-32B
この中には パス/トゥ/ライト-R1-32B
実際のモデルファイルのパスに置き換えてください。サービスが開始されると、デフォルトではローカルポートをリッスンします(通常は8000)。
- 推論リクエストを送信
モデルに数学的な質問を送るには、Pythonスクリプトかcurlコマンドを使います。curlを例にとってみましょう:
curl http://localhost:8000/v1/completions
-H "Content-Type: application/json"
-d '{
"model": "Light-R1-32B", "prompt":"Solve equation: 2x + 3 = 7、
"prompt":"Solve the equation: 2x + 3 = 7", "max_tokens": 200_tokens
「max_tokens": 200
}'
このモデルは段階的な推論プロセスと答えを返す:
{
「選択肢": [{
"text":"まず、両辺から3を引く:2x + 3 - 3 = 7 - 3、だから2x = 4。次に、両辺を2で割る:2x / 2 = 4 / 2、だからx = 2.解はx = 2である。"
}]
}
- ほら
<考える
ラベルはハードコードされており、長鎖推論を引き起こすには入力に含まれていなければならない。- AIMEレベルのチャレンジには、以下を追加することを推奨する。
max_tokens
(例:500)、推論が完全であることを確認する。
2.複製モデルのトレーニング
Light-R1の育成過程を再現したり、それをベースにした二次開発をしたい場合は、以下の手順で行うことができる:
- トレーニング環境の準備
360-LLaMA-Factoryフレームワークを使用し、依存関係をインストールします:
pip install -r train-scripts/requirements.txt
- SFTステージ1を実施
コンパイラtrain-scripts/sft_stage1.sh
モデルパスとデータセットパスが正しいことを確認し、実行する:
バッシュ train-scripts/sft_stage1.sh
このフェーズでは76kのデータセットを使用し、約3時間(H800を12回)を要する。
- SFTステージ2を実施
同様に、走れ:
バッシュ train-scripts/sft_stage2.sh
モデルの性能を向上させるために、3kの難しいデータセットを使用する。
- DPOの実施
実施する:
バッシュ train-scripts/dpo.sh
DPOは、SFTステージ2の結果に基づいて推論能力をさらに最適化する。
- モデルのマージ
提供されたマージ・スクリプト(例えばmerge_models.py
)、SFTモデルとDPOモデルを融合させた:
python merge_models.py --sft-model sft_stage2 --dpo-model dpo --output Light-R1-32B
3.モデルの性能評価
Light-R1は、AIME24などのベンチマークをテストするための評価ツールを提供している:
- 評価スクリプトの実行
あるディープスケーラー・リリース
カタログ、実行:
python evaluate.py --model Light-R1-32B --benchmark AIME24
結果は日誌に記録され、64回の平均スコアは76.6点に近いはずだ。
注目の機能
長鎖推論の最適化
ライトR1採用 <考える
歌で応える 。
モデルが数学的問題を段階的に推論していることを確実にするための特別なラベル付け。例えば、入力:
3か5で割り切れる100未満の正の整数の数を求めよ。
モデル出力:
包含排他を使おう。 3で割り切れる数:99÷3=33.5で割り切れる数:99÷5=19.15で割り切れる数(3と5のLCM):99÷15=6.合計=33+19-6=46.考え方> 答え:46.15で割り切れる数(3と5のLCM):99÷15=6.合計=33+19-6=46.考え方> 答え:46.15で割り切れる数(3と5のLCM):99÷15=6.合計=33+19-6=46. 答え:46.
データ汚染除去セーフガード
トレーニングデータは、AIME24/25のようなベンチマークにおける公平性を確保するために、厳密に汚染除去されている。ユーザーはデータセット(データ
(カタログ) 重複トピックがないことを確認します。
低コストのトレーニングの例
Light-R1は効率的なトレーニングの実現可能性を示しており、ユーザーはトレーニングスクリプトを参照して、他のドメイン(物理学など)用にモデルをカスタマイズすることができる。
ヒントとコツ
- 推論の精度の向上増加
max_tokens
または複数回の平均値。 - デバッグの問題特定のトピックに関するモデルの推論プロセスを分析するために評価ログを表示します。
- 地域支援GitHubのページにあるWeChatグループに参加して、開発者とつながろう。