Pre-training of large language models — 事前学習
大規模言語モデル(LLM)の事前学習は、現代の大規模言語モデルを構築する上で基本的な段階であり、ラベル付けされていないテキストの膨大かつ多様なデータセットでモデルを学習させるプロセスです。このプロセスを通じて、モデルは一般的な言語パターン、世界に関する知識、意味的な関係を習得し、いわゆる基盤モデル(foundation model)を形成します。この基盤モデルは、後に特定のタスクを解決するために適応させることが可能です。
事前学習とは?
事前学習(pre-training)は学習の初期段階であり、LLMは自己教師あり学習(self-supervised learning)の手法を用いて、大規模なテキストデータセットで学習させられます。これは、学習シグナル(ラベル)が人間による手作業のラベリングを必要とせず、データ自体から生成されることを意味します。
この段階の主な目的は、テキストの隠された部分や未来の部分を予測することです。アーキテクチャに応じて、主に2つのタスクが使用されます:
- 因果言語モデリング(Causal Language Modeling, CLM): モデルは、それまでのすべての単語に基づいて、系列内の次の単語(トークン)を予測することを学習します。このアプローチは、GPTのような生成モデルの基礎となっています。
- マスク付き言語モデリング(Masked Language Modeling, MLM): モデルは、テキスト内のランダムに「マスクされた」(隠された)単語を、その周囲の双方向のコンテキスト(左右の単語)を使用して復元することを学習します。この手法は、BERTのようなモデルで使用されます。
これらのタスクを通じて、モデルは予測を成功させるために、構文、意味論、そして世界に関する事実知識を学習せざるを得なくなります。
事前学習用のデータ
事前学習の効率は、学習データの品質と多様性に大きく依存します。主に以下のソースが使用されます:
- ウェブページ: Common CrawlやC4のようなデータセットは、インターネットの「スナップショット」として、幅広いトピック、スタイル、言語を提供します。
- 書籍: BookCorpusやThe Pileのようなコーパスは、構造化され一貫性のあるテキストを提供し、長期的な依存関係や物語の理解に役立ちます。
- 対話データ: フォーラム(例:Reddit)やソーシャルネットワークのデータは、モデルが非公式な言語や対話パターンを習得するのに役立ちます。
- 専門データ: 科学論文(arXivから)、プログラムコード(GitHubやThe Stackから)、または多言語テキストなど、モデルの特定の能力を向上させるためのデータ。
データ分布の例
モデルによってソースの比率が異なり、それが最終的な能力に影響を与えます:
- GPT-3(1750億パラメータ):** 16% 書籍、84% ウェブページ。
- PaLM(5400億パラメータ):** 5% 書籍、14% ウェブページ、50% 対話データ、31% その他。
- LLaMA(650億パラメータ):** 5% 書籍、2% ウェブページ、87% 対話データ。
これらの分布は、データの選択がモデルの目的に応じて変化する戦略的な決定であることを示しています。
よく使用されるコーパス
| コーパス | サイズ | ソース | 最終更新日 |
|---|---|---|---|
| BookCorpus | 5GB | 書籍 | 2015年12月 |
| Gutenberg | - | 書籍 | 2021年12月 |
| C4 | 800GB | Common Crawl | 2019年4月 |
| CC-Stories-R | 31GB | Common Crawl | 2019年9月 |
| CC-NEWS | 78GB | Common Crawl | 2019年2月 |
| REALNEWS | 120GB | Common Crawl | 2019年4月 |
| OpenWebText | 38GB | Redditのリンク | 2023年3月 |
| Pushshift.io | 2TB | Redditのリンク | 2023年3月 |
| Wikipedia | 21GB | Wikipedia | 2023年3月 |
| The Pile | 800GB | その他 | 2020年12月 |
| ROOTS | 1.6TB | その他 | 2022年6月 |
学習テクニック
LLMの事前学習には、膨大な計算リソースが必要です。このプロセスを管理するために、以下のテクニックが適用されます:
- 分散学習: 複数のGPUまたはTPUを並列処理に使用します。
- 混合精度(Mixed Precision): 計算を高速化し、メモリ使用量を削減するために、より低い精度の数値形式(例:32ビットの代わりに16ビット)を使用します。
- 勾配チェックポインティング(Gradient Checkpointing): 一部の中間活性化を保存するのではなく再計算することで、メモリを節約するテクニックです。
- モデル並列化(Model Parallelism): モデル自体を複数のデバイスに分散させます。
GPT-3のようなモデルの学習は、数千台のGPUで数ヶ月かかることがあります。
スケーリング則
OpenAIの研究(Kaplan et al., 2020)などによると、言語モデルの性能は、以下の3つの要素を増加させることで予測可能に向上することが示されています:
- モデルのサイズ(パラメータ数)。
- データ量。
- 計算リソース。
スケーリング則として知られるこれらの経験的な関係は、開発者がより大規模で強力なモデルを設計・学習する際の指針となり、計算予算を最適に配分することを可能にします。
課題と成果
- スケーリング: 事前学習の主な成果は、モデルのサイズ、データ、計算のバランスを取り、最適なパフォーマンスを達成できるようになったことです。
- データ品質: 学習データにおける純粋さ、多様性、バイアスのなさを確保することが重要な課題です。
- 効率性: 継続的な事前学習や、より効率的なアーキテクチャなど、計算コストを削減する手法の開発。
- 多言語対応: 複数の言語を効果的に処理できるモデルを作成するには、データの慎重な選択とバランス調整が必要です。
関連項目
- 大規模言語モデル
- BERT
- GPT