LLMのデフォルトの回答って、どうしても「誰にでも優等生」になりがちだ。無難で、当たり障りなくて、ちょっと退屈。でも「僕の口調で」「この業界の専門用語で」「このフォーマットで」ってカスタマイズしたい。それがファインチューニングだ。
ファインチューニングは、学習済みのLLMに追加で小さな学習をさせること。数百〜数千件の質問回答ペアを用意するだけで、モデルの振る舞いを特定の方向にガラッと変えられる。フルスクラッチで学習させるより桁違いに安くて速い。
主な手法と僕の所感:
- SFT(教師ありファインチューニング) — 理想的な回答例を与えて学習。シンプルで効果的。まずはこれから。
- RLHF / DPO — 人間の好みで微調整。DPOはSFTと同じくらいシンプルに実装できて、今熱い。
- LoRA / QLoRA — モデル全体ではなく、小さな追加パラメータだけ学習する。VRAMが少ないGPUでもできる。これがなかったら個人でファインチューニングなんて無理だった。
僕はLlama 3 8BをQLoRAでファインチューニングして、特定のコードレビュースタイルを覚えさせた。4時間の学習で、まるで自分の口調でレビューするようになった。「この書き方、完全に俺じゃん…」ってちょっと怖くなったくらい。この感覚、一度味わうとクセになる。