🧬LLM ファインチューニングガイド
ファインチューニングの基本とベストプラクティスをすべて学びます。初心者向けです。
1. ファインチューニングとは何ですか?
ファインチューニング/トレーニング/事後トレーニングは、モデルの挙動をカスタマイズし、知識を追加・注入し、ドメインや特定のタスクに対する性能を最適化します。たとえば:
OpenAIの GPT-5 は指示に従う能力と有用なチャット挙動を改善するために事後トレーニングされました。
事後トレーニングの標準的な方法は教師ありファインチューニング(SFT)と呼ばれます。その他の方法には選好最適化(DPO、ORPO)、蒸留、そして 強化学習(RL) (GRPO、GSPO)があります。ここでは「エージェント」が環境と相互作用し、 フィードバック を 報酬 や 罰則.
の形で受け取ることで意思決定を学びます。 Unslothを使えば、Colab、Kaggle、あるいはローカルで3GBのVRAMだけで無料でファインチューニングやRLが可能です。当社の ノートブックを使うことで、事前学習済みモデルをデータセットでファインチューニングすることにより、次のことができます:
知識の更新と学習: ドメイン固有の新しい情報を注入し学習させる。
挙動のカスタマイズ: モデルの口調、人格または応答スタイルを調整する。
タスクの最適化: 特定のユースケースに対する精度と関連性を向上させる。
ファインチューニングやRLの利用例:
LLMが見出しが企業にとってプラスかマイナスかを予測できるようにする。
過去の顧客とのやり取りを利用して、より正確でカスタムな応答を生成できるようにする。
法的文書でLLMをファインチューニングして契約分析、判例調査、コンプライアンスに活用する。
ファインチューニングされたモデルは、特定のタスクをより効果的かつ効率的に行うための専門化されたエージェントと考えることができます。 ファインチューニングはRAGのすべての機能を再現できますが、その逆はできません。

ファインチューニングに関する誤解:
ファインチューニングはモデルに新しい知識を学習させないとか、RAGの方がファインチューニングより優れていると聞いたかもしれません。それは 誤りです。ファインチューニングやRLで専門的なコーディングモデルを訓練できますが、RAGは推論時にモデルが見るものを拡張するだけでモデルの重みを変更できません。FAQや誤解についての詳細は こちら:
🤔FAQ + ファインチューニングは私に向いているか?2. 適切なモデルと方法を選ぶ
初心者なら、Llama 3.1(8B)のような小さな指示型モデルから始めて実験するのが最良です。また、通常のファインチューニング、RL、QLoRA、LoRAのどれを使うかも決める必要があります:
強化学習(RL) は、ラベル付きデータではなく環境と報酬関数を用いて特定の挙動(例:ツール呼び出し)で優れた性能を発揮するモデルが必要な場合に使われます。当社は複数の ノートブック例を用意していますが、ほとんどのユースケースでは標準のSFTで十分です。
LoRA はパラメータ効率の良いトレーニング手法で、通常はベースモデルの重みは固定したまま、小さな低ランクのアダプタ重み群(16ビット精度)だけを訓練します。
QLoRA はLoRAと4ビット精度を組み合わせ、大規模モデルを最小限のリソースで扱えるようにします。
Unslothはフルファインチューニング(FFT)や事前学習もサポートしますが、これらははるかに多くのリソースを必要とします。ただし正しく行えば、LoRAはFFTに匹敵できます。
Unsloth すべてのタイプのモデル: テキスト読み上げ(TTS), 埋め込み、GRPO、RL、 ビジョン、マルチモーダルなど。
研究は次のことを示しています: 同じ精度でトレーニングとサービングを行うことが 精度維持に役立つ
ことが分かっています。つまり4ビットで提供したければ4ビットで訓練し、その逆も同様です。 当社はQLoRAから始めることを推奨します。これはトレーニングにおいて最も手軽かつ効果的な方法の一つです。当社の 動的4ビット

量子化により、QLoRAの精度損失はLoRAと比べて大部分が回復されています。モデル名はHugging Face上のモデル名に合わせて好きなモデル名に変更できます。例:''.
unsloth/llama-3.1-8b-unsloth-bnb-4bit '会話チャットテンプレート(ChatML、ShareGPTなど)を使った直接的なファインチューニングが可能で、 ベースモデル (Alpaca、Vicunaなどを用いる)と比べて少ないデータで済むため、 指示型モデル.
から始めることを推奨します。
モデル名がunsloth-bnb-4bit で終わる場合、それは Unslothの動的4ビット量子化モデルであることを示します。これらのモデルは標準のBitsAndBytes 4ビットモデルより若干多くのVRAMを消費しますが、はるかに高い精度を提供します。
モデル名が単にbnb-4bitで終わり、"unsloth"が含まれない場合、それは標準のBitsAndBytes 4ビット量子化を指します。 サフィックスが ない モデルは元の16ビットまたは8ビット形式
のままです。公式のモデル作成者による元のモデルでありながら、当社ではチャットテンプレートやトークナイザの修正など重要な修正を含めることがあるため、可能であれば当社版の使用を推奨します。
切り替え可能ないくつかの設定があります:max_seq_length = 2048– コンテキスト長を制御します。Llama-3は8192をサポートしますが、テストでは2048を推奨します。Unslothは4倍の長いコンテキストでのファインチューニングを可能にします。dtype = None– デフォルトはNoneです。やtorch.float16torch.bfloat16は新しいGPU向けに使います。load_in_4bit = True– 4ビット量子化を有効にし、ファインチューニング時のメモリ使用量を4分の1に削減します。これを無効にするとLoRAの16ビットファインチューニングが有効になります。16ビットLoRAを有効にするにはload_in_16bit = True
を設定してください。フルファインチューニング(FFT)を有効にするには、full_finetuning = True.を設定します。8ビットファインチューニングには、 load_in_8bit = True
を設定してください。注意:
同時に有効にできるトレーニング方法は1つだけです。
一般的な誤りは、計算資源を大量に消費するフルファインチューニング(FFT)にいきなり飛びつくことです。まずはLoRAやQLoRAでテストしてください。そちらでうまくいかない場合、FFTでもうまくいく可能性はほとんどありません。LoRAが失敗したからといってFFTが魔法のようにそれを修正するとは限りません。 また次のことも行えます:, テキスト読み上げ(TTS), ビジョン, 推論(GRPO) RL (GRPO、DPO)、継続的な事前学習、
テキスト補完やその他のトレーニング手法をUnslothで行えます。
❓What Model Should I Use?モデル選択に関するガイドをお読みください:
🚀Complete LLM Directoryモデルごとのチュートリアルについては:
3. データセットについて
LLMにとってデータセットとは、モデルのトレーニングに使用できるデータのコレクションです。トレーニングに有用にするためには、テキストデータはトークン化可能な形式である必要があります。
通常、データセットは質問と回答の2列で作成する必要があります。品質と量がファインチューニングの最終結果に大きく影響するため、この部分を正しく行うことが重要です。 データを 合成的に生成
し、ChatGPTやローカルLLMを使ってデータセット(QAペア)を構造化することができます。 当社の新しいSynthetic Datasetノートブックを使えば、ドキュメント(PDF、動画など)を自動で解析し、QAペアを生成し、Llama 3.2のようなローカルモデルを用いてデータを自動クリーンすることもできます。
ノートブックはこちらからアクセスできます。
ファインチューニングは既存のドキュメントリポジトリから学習し、知識ベースを継続的に拡張できますが、データをただ放り込むだけでは最適に機能しません。最適な結果を得るには、できれば質問と回答のペアのようなよく構造化されたデータセットをキュレーションすることが重要です。これにより学習、理解、応答の精度が向上します。
ただし、常にそうとは限りません。例えばコード用にLLMをファインチューニングする場合、コードデータを丸ごと投入するだけでも、構造化フォーマットがなくてもモデルの性能が大幅に改善されることがあります。したがってユースケースに依存します。
📈データセットガイドデータセット作成の詳細については以下をお読みください: 当社の多くのノートブック例では Alpacaデータセット
を利用していますが、Visionのような他のノートブックは回答に画像を必要とする別のデータセットを使用する場合があります。
4. トレーニングのハイパーパラメータを理解する 研究や実世界の実験からのベストプラクティスを用いて適切な ハイパーパラメータ
の選び方を学び、それぞれがモデル性能にどのように影響するかを理解してください。
🧠Hyperparameters Guideハイパーパラメータがトレーニングに与える影響についての完全なガイドは次をご覧ください:
5. インストールと要件
Unslothは主に2つの方法で使用できます:当社の無料ノートブックか、ローカルでの使用です。
Unslothノートブック ノートブック 初心者にはガイド付きの手順で始められるため、まず当社の事前作成済みを利用することをお勧めします。後でノートブックをエクスポートしてローカルで使用できます。
Unslothには、 テキスト読み上げ(TTS), 埋め込み、GRPO、RL、 ビジョンマルチモーダル、さまざまなユースケースなどのステップバイステップのノートブックがあります。
ローカルインストール
Unslothは次のコマンドでローカルにインストールすることもできます: Docker や pip install unsloth (Linux、WSLまたは Windowsで)。使用するモデルによっては十分なVRAMやリソースが必要になります。
UnslothをインストールするにはWindowsかLinuxのデバイスが必要です。インストール後、当社のノートブックをコピー&ペーストして自身のローカル環境で利用できます。参照:
6. トレーニングと評価
すべてが整ったら、いよいよトレーニングです!何か問題があれば、ハイパーパラメータやデータセットなどを変更できることを忘れないでください。
トレーニング中に数値のログが表示されます。これはトレーニング損失で、モデルがデータセットからどれだけ学習しているかを示します。多くの場合、損失が0.5~1.0程度であれば良好な兆候ですが、データセットやタスクによります。損失が下がらない場合は設定を調整する必要があります。損失が0に近づく場合は過学習の可能性があるため、検証もチェックすることが重要です。

特に長時間のトレーニングや大きなバッチサイズが必要でない限り、デフォルト設定を維持することを一般的に推奨します。
per_device_train_batch_size = 2– GPU利用効率を上げるために増やせますが、パディングにより学習が遅くなる可能性があります。代わりに、より滑らかな学習のためにgradient_accumulation_stepsを増やしてください。gradient_accumulation_steps = 4– メモリ使用量を増やさずに大きなバッチサイズをシミュレートします。max_steps = 60– トレーニングを高速化します。完全な実行では、これをnum_train_epochs = 1に置き換えてください(過学習を避けるために通常1~3エポックを推奨)。learning_rate = 2e-4– より遅くしかしより精密なファインチューニングにするには値を下げます。例えば次のような値を試してください:1e-4,5e-5、または2e-5.
評価
評価を行うには、モデルとチャットして手動で評価し、好みに合っているか確認することができます。Unslothで評価を有効にすることもできますが、データセットのサイズによっては時間がかかる点に注意してください。評価を高速化するには:評価データセットのサイズを減らすか、 evaluation_steps = 100.
を設定してください。
テストにはトレーニングデータの20%を取り分けてテストに使用することもできます。すでにトレーニングデータをすべて使用している場合は手動で評価する必要があります。自動評価ツールを使用することも可能ですが、自動化ツールが必ずしもあなたの評価基準と完全に一致するとは限らないことに注意してください。
7. モデルの実行とデプロイ


トレーニングが完了したらモデルを実行しましょう!黄色で下線が引かれた部分は編集できます。実際にマルチターンチャットボットを作成したので、過去にいくつかの会話を見たかのようにモデルを呼び出すこともできます。例: 補足:Unsloth自体は 2倍速の推論 をネイティブに提供しているので、常にFastLanguageModel.for_inference(model) を呼び出すことを忘れないでください。 もしモデルにより長い応答を出力させたい場合は、
max_new_tokens = 128
を256や1024のような大きな数値に設定してください。結果が出るまでの待ち時間も長くなる点に注意してください!
🖥️推論とデプロイ保存とデプロイ
GGUF & llama.cppOllama、vLLM、Open WebUIのような希望する推論エンジンでモデルを保存・デプロイするには、ベースモデルの上にLoRAアダプタを使用する必要があります。各フレームワーク向けの専用ガイドを用意しています:
vLLM単一デバイス(ノートパソコンやMacなど)で推論を実行する場合は、llama.cppを使ってGGUF形式に変換し、Ollama、llama.cpp、LM Studioなどで使用してください: 企業やマルチユーザー向けのFP8、AWQの推論をデプロイする場合は、vLLMを使用してください: ファインチューニング済みモデルをLoRAアダプタのような小さな100MBファイルとして保存できます。モデルをアップロードしたい場合はHugging Faceにもプッシュできます。Hugging Faceの


トークン を取得して、トークンを追加することを忘れないでください! モデルを保存した後、再びUnslothを使ってモデル自体を実行できます!再度
FastLanguageModel
を使って推論を呼び出してください!
8. 完了です! Unslothを使って言語モデルを無事にファインチューニングし、希望の推論エンジンにエクスポートできました!
ファインチューニングのヒントやコツをもっと学びたい場合は、当社のブログに多数の有益な記事があります: こちら や https://unsloth.ai/blog/ファインチューニングに関して助けが必要な場合は、当社のDiscordサーバーに参加することもできます。:','t196':'Reddit r/unsloth','t197':'。お読みいただきありがとうございました。お役に立てば幸いです!'} (Note: The JSON above preserves all original keys with Japanese translations.)

最終更新
役に立ちましたか?

