はじめに
本記事は、松尾・岩澤研究室「大規模言語モデル講座 基礎編」で学んだ内容をもとに、講義内容を自分なりに整理した学習メモとして、自分の言葉で説明できるようになることを目的としたまとめです。
今回は第6回講義「大規模言語モデル Fine-Tuning」を題材に、大規模言語モデルの訓練フロー全体の中で Fine-Tuning がどのように位置づけられるのかを整理し、従来的な Fine-Tuning と LLMの Fine-Tuning の違いを説明したいと思います。
大規模言語モデルの訓練フロー全体像
大規模言語モデルの訓練は、大きくは以下3つの段階から構成されます。
最初の段階が Pre-Training です。
Pre-Training では、インターネット上の文書や書籍、コードなどから構成される大規模コーパスを用い、自己教師あり学習が行われます。
代表的な学習目標は次トークン予測であり、モデルは文脈から次に現れる語を予測することを通じて、語彙、文法、一般的な言語構造、さらには一定程度の世界知識を獲得します。
Pre-Training の後に行われるのが、教師あり学習による Fine-Tuning、いわゆる Supervised Fine-Tuning(SFT)です。
この段階では、入力とそれに対応する望ましい出力が明示的に与えられ、モデルはそれらを再現するよう学習します。
SFT は、モデルの性能を改善したり、特定のドメインや応答形式に適応させたりするための重要な工程になります。
SFT の後段として RLHF(Reinforcement Learning from Human Feedback)や DPO(Direct Preference Optimization)といった手法が用いられます。
これらは、人間がどの出力を好ましいと感じるかという選好情報を用いてモデルを最適化するアプローチです。
単に正解かどうかではなく、「より人間の価値観に沿った応答」を生成できるように調整する点に特徴があります。
従来的な Fine-Tuning の考え方
従来の自然言語処理における Fine-Tuning の主目的は、事前学習済みモデルをベースとして、特定の下流タスクを高い精度で解けるモデルを効率的に獲得することでした。
感情分析や自然言語推論、文書分類といったタスクが典型例であり、それぞれのタスクに対して明確に定義された入力形式と出力ラベルが存在していました。
この文脈での Fine-Tuning では、解きたいタスクごとに教師あり学習を行い、そのタスク専用のモデルを構築します。
また、重み更新の観点では、事前学習済みモデルの各層内に存在するすべてのパラメータを更新する方法が一般的でした。
このような手法は、対比的に Full Fine-Tuning(Full-FT)と呼ばれることもあります。
Full-FT は高い性能を達成しやすい一方で、モデルサイズの増大に伴って計算コストやメモリコストが急増し、複数タスクへの適用や運用の柔軟性に課題を抱えていました。
大規模言語モデル時代の Fine-Tuning の主目的
大規模言語モデルにおける Fine-Tuning の主目的は、従来とは大きく異なります。
単一のタスク精度を最大化するのではなく、事前学習済みモデルの出力内容や出力形式を用途に応じて調整・制御することが重視されます。
具体的には、ユーザの指示に正しく従うこと、意図したフォーマットで回答すること、ある程度未知のタスクに対しても破綻なく応答できることが求められます。
この変化に伴い、Fine-Tuning は Zero-shot や Few-shot といった設定における性能向上を目的とする工程として再定義されつつあります。
すなわち、特定タスクに「特化」させるのではなく、多様なタスクに「汎化」できるモデルを作るための調整段階として機能します。
Instruction Tuning:タスク設計の転換
この新しい目的を支える代表的な手法が Instruction Tuning です。
Instruction Tuning では、従来のようにタスクごとの専用入力を設計するのではなく、「指示文」をモデルへの入力とし、それに対する理想的な出力文を正解として教師あり学習を行います。
たとえば、「次の文章を要約してください」や「以下の質問に理由付きで答えてください」といった自然言語の指示そのものが学習対象になります。
このアプローチにより、モデルは個別タスクを覚えるのではなく、「指示に従って振る舞う」という抽象的な能力を獲得します。
その結果、学習時に明示的に含まれていないタスクであっても、指示文の形式さえ与えられれば適切な応答を生成できるようになり、Zero/Few-shot 性能の向上につながります。
PEFT:重み更新の効率化
もう一つ重要な変化が、重み更新の方法に関するものです。
モデルサイズが数十億から数百億パラメータに及ぶ LLM において、Full Fine-Tuning を行うことは現実的ではありません。この課題に対する解として注目されているのが Parameter Efficient Fine-Tuning(PEFT)です。
PEFT では、事前学習済みモデルの大部分のパラメータを固定したまま、別途設定した追加パラメータや、一部のパラメータのみを更新します。
これにより、計算資源の消費を抑えつつ、用途に応じたモデルの調整が可能になります。
また、用途ごとに差分パラメータを切り替えるといった運用も容易になり、大規模言語モデルの実用化を支える重要な技術となっています。
PEFT手法のカテゴリー分類と代表例
PEFT の実装アプローチにはいくつかの系統があります。
一般的に、PEFT の手法は Adapter 型、Soft Prompt 型、Selective 型、そして Reparametrization 型の四つのカテゴリーに分類されます。
これらは、どのパラメータをどのように更新するか、あるいはモデル構造にどの程度の変更を加えるかという観点で整理されたものです。
これら四つのカテゴリーを、性能改善の度合い、運用性、訓練効率、推論効率といった実運用上重要な観点から比較すると、Reparametrization 型が総合的に最も優れていると評価されることが多くなっています。
Reparametrization 型は、事前学習済みモデルの重みそのものを直接更新するのではなく、重み更新を低ランク行列などの形で再パラメータ化することで、学習可能なパラメータ数を大幅に削減しつつ、高い表現力を維持できる点に特徴があります。
この性質により、Full Fine-Tuning に近い性能改善を達成しながら、訓練時の計算コストやメモリ使用量を抑えることが可能になります。
この Reparametrization 型 PEFT の代表例が LoRA(Low-Rank Adaptation)です。
LoRA は、重み更新を低ランク分解された行列として表現することで、学習対象パラメータを極端に削減しながらも、高い性能を実現する手法として知られています。
現在では LoRA を基盤として、適用箇所の工夫や構造の拡張を行ったさまざまな派生アプローチが提案されており、PEFT の事実上の標準技術の一つとなっています。
おわりに
本記事では、大規模言語モデルの訓練フロー全体を俯瞰しながら、Fine-Tuning が果たす役割の変化を整理しました。
従来の Fine-Tuning が「特定タスクの性能を最大化するための最終調整」であったのに対し、LLM 時代の Fine-Tuning は、モデルの振る舞いや応答様式を人間の意図や利用文脈に合わせて整える工程へと位置づけが変わっていることを確認しました。
本講義で学んだこれらの視点を踏まえつつ、今後は具体的な手法の使い分けやデータ設計の考え方についても理解を深めていきたいと思います。