本日、アンスロスは アンクロス DeepSeekのR1研究では、R1-Zeroがグループ相対ポリシー(グルポ)自己管理型学習は、手動のフィードバックなしに、より多くの思考時間を割り当てる。
UnslothはGRPOプロセス全体を強化し、Hugging Face + FA2よりも80%少ないVRAMしか使用しないようにした。これにより、ユーザーはQwen2.5(1.5B)を使用して、わずか7GBのVRAMでR1-Zeroの「啓示の瞬間」を再現することができる。
Unslothの無料GRPOノートをお試しください:ラマ 3.1 (8B) on Colab
Phi-4など他のモデルのGRPOノートブックについては、Unslothのドキュメントをご覧ください。
主な内容
- 15GBのVRAMを持つアンスロットは、最大15Bのパラメータを持つモデル(例:Llama3.1(8B)、Phi-4(14B)、Mistral(7B)、Qwen2.5(7B))を推論モデルに変換することができる。
- 最小要件:わずか7GBのVRAMで、ローカルに独自の推論モデルをトレーニングできます。
- Tiny-Zeroの優秀なチームは、Qwen2.5(1.5B)を使ってユーザーが自分自身の啓示の瞬間を達成できることを証明したが、それには2つのA100 GPU(160GB VRAM)が必要だった。今、Unslothを使えば、ユーザーはたった1つの7GB VRAM GPUで同じ天啓の瞬間を得ることができる!
- 以前は、GRPOは完全な微調整にしか対応していませんでしたが、UnslothはQLoRAとLoRAに対応しています。
- 微調整ではないことに注意 ディープシーク また、R1蒸留データ(これはすでにUnslothによってサポートされている)を使ってチューニングされたものでもありません。これは標準モデルをGRPOを使った本格的な推論モデルに変換したものである。
- GRPOの使用例としては、ユーザーが(法律、医療など)インセンティブ付きのカスタマイズされたモデルを作りたい場合、GRPOが手助けできる。
ユーザーが入力と出力のデータ(質問と回答など)を持っているが、思考連鎖や推論プロセスがない場合、GRPOはユーザーのために推論プロセスを魔法のように作成することができます!+ もっと見る
🤔GRPO+「啓示」の瞬間
ディープシークの研究者たちは、純粋な強化学習(RL)を使ってR1-Zeroをトレーニングしているときに、「啓示の瞬間」を観察しました。このモデルは、人間の指導や事前に定義された指示なしに最初のアプローチを再評価することで、思考時間を延長することを学んだ。
テスト例では、UnslothがGRPOだけを使ってPhi-4を100ステップで訓練したにもかかわらず、結果はすでに明らかである。GRPOを使わないモデルはトークンのことを考えなかったが、GRPOを使って訓練したモデルはトークンのことを考え、正解も出した。
この魔法はGRPOで再現できる。GRPOは、価値関数に依存するProximal Policy Optimisation(PPO)とは異なり、価値関数を必要とせずに応答を効率的に最適化するRLアルゴリズムである。Unslothのノートブックでは、UnslothがGRPOを使用してモデルを訓練し、自律的に自己検証と探索能力を開発することを目標としている。
どのように機能するのか:
- このモデルはレスポンス・グループを生成する。
- それぞれの回答は、ビッグ・ランゲージ・モデルの報酬モデルではなく、何らかの報酬関数によって作成された正しさやその他の指標に基づいて採点される。
- グループの平均点を算出する。
- 各回答のスコアはグループ平均と比較された。
- このモデルは、より高得点の回答をサポートするために強化された。
例えば、ウンスロットがモデルに解を求めるとする:
1+1とは? >> 思考の連鎖/計算過程 >> 答えは2。
2+2とは? >> 思考の連鎖/計算過程 >> 答えは4。
最初は、計算プロセス/思考の連鎖を入力するために、多くのデータを収集する必要があります。しかし、GRPO(DeepSeekで使用されているアルゴリズム)や他のRLアルゴリズムは、自動的に推論力を示し、推論の軌跡を作成するようにモデルを導くことができる。その代わりに、Unslothは優れた報酬関数やバリデーターを作成する必要がある。例えば、正解を得たら1点を与える。いくつかの単語がスペルミスしていたら、0.1減点する。 などなど! Unslothは、このプロセスに報酬を与える多くの関数を提供できます。
アンスロスの🦥 GRPO
ローカルでUnslothとGRPOを使用する場合は、依存関係があるので、"pip install diffusers "も行ってください。
ColabのUnslothの例は1時間しかトレーニングしていないので、結果は良くないことを覚えておいてください。良い結果を得るためには、ユーザーは少なくとも12時間トレーニングする必要がある(これがGRPOの仕組みだ)。
より小さなモデルではThinking Tokenを生成できない可能性があるため、適切に生成するためには少なくとも1.5Bのパラメータを持つモデルにGRPOを適用することを推奨します。ユーザーがベースモデルを使用している場合、ユーザーがチャットテンプレートを持っていることを確認してください。GRPOのトレーニング損失追跡は現在、Unslothに直接組み込まれており、wandbのような外部ツールは必要ありません。
GRPOのサポートに加え、UnslothはオンラインDPO、PPO、RLOOもサポートしました!UnslothのオンラインDPOのVRAM消費量と、標準的なHugging Face + FA2の比較表は以下をご覧ください。
アンロス×vLLM
20倍のスループットと50%のVRAM節約:
ユーザーは、微調整スタックでvLLMを直接使用できるようになり、スループットが向上し、モデルの微調整と推論を同時に行えるようになりました!Unsloth's Llama 3.2 3B Instructを使用した動的4ビット量子化、1 A100 40GB、推定4000個。 トークン / 秒ほど。16GBのTesla T4(無料のColab GPU付き)では、ユーザーは300トークン/秒を得る。
を同時にロードする必要もなくなった。 ブイエルエルエム Unslothは、48GBのGPU1基でLlama 3.3 70BのInstructを最初に微調整でき、Llama 3.3 70Bのウェイトが40GBのVRAMを占有します。40GBのVRAM。二重のメモリ使用を排除しなければ、UnslothとvLLMの両方をロードする場合、Unslothは80GB以上のVRAMを必要とします。
しかし、Unslothを使えば、ユーザーは最大48GBのVRAMで微調整を行い、高速推論のメリットを得ることができる!高速推論を使用するには、まずvllmをインストールし、Unslothをfast_inferenceでインスタンス化します:
pip install unsloth vllm from unsloth import FastLanguageModel model, tokenizer = FastLanguageModel.from_pretrained( model_name = "unsloth/Llama-3.2-3B-Instruct", fast_inference = True, ) model.fast_generate(["Hello!"])
アンスローにおけるvLLMの発見
- vLLMは、Unslothのダイナミック4ビット量子化をロードできるようになりました。Unslothの1.58bit Dynamic R1 GGUFと同様に、Unslothはいくつかのレイヤーを4bitに、いくつかのレイヤーを16bitに動的に量子化することで、モデルを小さく保ちながら精度を大幅に向上させることを示しています。
- Unslothは、RAM、VRAM効率、および最大スループットを考慮して、複数のパラメータを自動的に選択します(#ブロックの事前投入トークン、#の最大シーケンスなど)Unslothのデフォルトは、vLLMで-O3を有効にし、プレフィックスキャッシュを有効にしますUnslothは、Flashinferが古いGPUでは10%遅くなることを発見しました。FP8 KVキャッシュにより10%遅くなるが、スループットの可能性は2倍になる。
- Unslothでは、LoRAをディスクからロードするのではなく、状態辞書を解析することでvLLMにロードすることができます。積極的な研究分野は、vLLMでLoRAアダプターを直接編集する方法です(Unslothはまだその方法を知りません)。Unslothは現在不必要にGPUデータを動かしているため、これは大きなスピードアップになる可能性があります。
- vLLMは、特にバッチ生成中に不規則なVRAMスパイクを起こすことがある。unslothは、メモリスパイクを減らすためにバッチ生成機能を追加した。