事前学習とは
大規模言語モデルは、ランダムに設定された数十億の数値 — 重みまたはパラメータ — から始まります。事前学習では、膨大な量のテキスト(ウェブページ、書籍、コード、参考資料)をモデルに提示し、「これまでのテキストを踏まえて、次に来るものは何か?」という1つの質問を繰り返し投げかけることで、これらの数値を調整します。予測を間違えるたびに、重みが少しずつ修正されます。数兆回の予測を経ることで、モデルは文法、事実、スタイル、推論パターン、そして膨大な一般知識を吸収します。これらすべてが次の単語を予測するのに役立つからです。
この目的は、次トークン予測、または因果言語モデリングと呼ばれます。データにラベルを付ける必要はありません。テキスト自体が解答となるため、事前学習ではこれほど大量のデータを使用できるのです。
関連する規模
事前学習は、モデルのライフサイクルにおいて圧倒的にコストのかかる段階です。2020年に発表された GPT-3 は1,750億のパラメータを持ち、約3,000億トークンでトレーニングされました。その後、DeepMind の Chinchilla に関する研究(2022年)により、固定の計算予算において、モデルはパラメータあたりより多くのテキストを学習すべきであることが示されました。1.4兆トークンでトレーニングされた700億パラメータの Chinchilla は、はるかに大規模なモデルを上回る性能を発揮しました。現在のオープンモデルは、数千基の GPU を使用し、数週間にわたって数兆トークンでトレーニングされています。
そのため、自社用にモデルをファインチューニングする際、この段階を繰り返すことはありません。また、出発点となるモデルが非常に重要である理由もここにあります。そのモデルが持つ知識、対応言語、推論能力が、その後のトレーニングで到達できる限界を決定づけるからです。
生のモデルから出発点となるモデルまで
事前学習を終えたばかりのモデルは、テキストを続けることは得意ですが、指示に従うことは苦手です。質問を投げかけても、さらに3つの質問で返してくることがあります。ウェブ上の多くのテキストがそのような構成になっているからです。そのため、モデル開発者はモデルをアシスタントとして機能させるために、さらにトレーニングを行います。これにはインストラクション・チューニング(会話例を用いた教師ありファインチューニング)が含まれ、通常その後に人間や AI のフィードバックに基づく選好チューニングが行われます。OpenAI の InstructGPT の研究は、これがどれほど重要かを示しています。13億パラメータのインストラクション・チューニング済みモデルの回答は、パラメータ数が100倍以上少ないにもかかわらず、1,750億パラメータの GPT-3 の回答よりも人々に好まれました。
オープンモデルのファミリーは、多くの場合、生の「ベース」チェックポイントと、「インストラクト」または「チャット」バージョンの両方の形式で公開されます。Scalata および本ガイドにおいて、ベースモデルとは単にトレーニングの出発点となるモデルを意味します。実際には、これはほぼ常にインストラクション・チューニング済みのモデルであるため、お客様のサンプルは自社固有の要件を学習させるだけで済みます。
ファインチューニングで変更できることとできないこと
ファインチューニングは、事前学習と同じ仕組み — 次のトークンを予測し、誤差を測定し、重みを調整する — を使用しますが、数兆のトークンではなく、数百から数千のお客様のサンプルに対して行われます。この規模では、振る舞いの再形成には非常に効果的ですが、知識の追加にはあまり効果がありません。研究によると、モデルがファインチューニングから純粋に新しい事実を学習するスピードは遅く、無理に学習させようとすると、回答を捏造する傾向が強まる可能性があることが示唆されています。
- 適切に変更できること: トーンやスタイル、出力フォーマット、長さ、特定分野の言い回し、頻出するリクエストの一貫した処理、小規模なモデルに大規模モデルのような単一タスクを実行させること。
- 変更が困難なこと: 大量の新しい事実、頻繁に変更される情報、ベースモデルに根本的に欠けている能力 — 小規模なモデルが数百回のチャットから高度な推論を学習することはありません。
- 変更されないこと: モデルのアーキテクチャ、トークナイザー、コンテキストウィンドウ。
- 自社の請求書作成製品に関する質問に対し、サポートチームと同じトーンで回答するアシスタントが必要だとします。
- ベースモデルは、事前学習とインストラクション・チューニングを通じて、英語、請求書の一般的な仕組み、丁寧な言葉遣い、番号付きの手順の書き方をすでに学習しています。
- しかし、自社固有のメニュー名やポリシー、あるいは回答の最後にヘルプセンターへのリンクを添えるといったチームの習慣は学習していません。
- 数百件の質の高いサポートチャット履歴があれば、トーンやフォーマットを学習させることができます。メニュー名やポリシーについては、変更時にも正確性を保てるよう、リクエスト時に検索(Retrieval)やシステムプロンプトを通じて提供する方が適しています。
ベースモデルの選択
トレーニングするすべての要素はベースモデルの上に構築されるため、ベースモデルは慎重に選択してください:
- タスクにおける能力。 まずは実際の質問でベースモデルを試してください。ファインチューニングは既存の能力を研ぎ澄ますものであり、無から能力を生み出すことは稀です。
- サイズとコストの比較。 大規模なモデルほど多くの知識を持っていますが、トレーニングや運用にかかるコストも高くなります。ファインチューニング後にタスクを適切にこなせる、最小のモデルを見つけることが一般的な目標です。
- 対応言語。 ユーザーがドイツ語や日本語を使用する場合、モデルがそれらの言語を適切に処理できるか確認してください。通常、事前学習データは英語が大部分を占めています。
- 制限事項。 コンテキストウィンドウやサンプルごとのトレーニング制限はモデルに依存しており、トレーニングによって変更されることはありません。
よくある間違い
- 製品カタログ全体や価格表など、大規模で変動する事実をファインチューニングで学習させようとすること。
- タスクをまったく実行できないモデルから開始し、数百のサンプルでそれを修正できると期待すること。
- 同じオープンモデルのインストラクション・チューニング版を意図していたにもかかわらず、生の事前学習済みチェックポイントを選択してしまうこと。
- ベースモデルを事前にテストせず、トレーニング済みモデルと比較するためのベースラインがない状態にすること。
参考文献および関連資料
外部ソースは新しいタブで開きます。
- 01Language Models are Few-Shot LearnersBrown et al., 2020 · arXiv · arxiv.orgGPT-3 の論文: 大規模な事前学習のみで実現できること。
- 02Training Compute-Optimal Large Language ModelsHoffmann et al., 2022 · arXiv · arxiv.org特定のサイズのモデルがどれだけのテキストでトレーニングされるべきかに関する Chinchilla の研究。
- 03Training language models to follow instructions with human feedbackOuyang et al., 2022 · arXiv · arxiv.orgInstructGPT: 事前学習済みモデルが指示に従うアシスタントになる仕組み。
- 04How do Transformers work?Hugging Face LLM Course · huggingface.co事前学習、転移学習、ファインチューニングのやさしい入門。
- 05Does Fine-Tuning LLMs on New Knowledge Encourage Hallucinations?Gekhman et al., 2024 · arXiv · arxiv.orgファインチューニングにおいて新しい事実の学習は遅く、ハルシネーションを増加させる可能性があるという証拠。