LLMのアーキテクチャと学習プロセス
大規模言語モデル(LLM)の内部構造と、どのようにして膨大なテキストデータから言語を学習するのかについて解説します。LLMの中核となるTransformerアーキテクチャから、トークン化、学習プロセスまでを詳しく見ていきましょう。
Transformerアーキテクチャ
Transformerアーキテクチャは、2017年にGoogleの研究者たちによって発表された論文「Attention is All You Need」で提案された革新的なニューラルネットワーク構造です。このアーキテクチャは、現代のLLMの基盤となっており、以下のような特徴を持っています:
- 並列処理能力:従来のRNN(再帰型ニューラルネットワーク)と異なり、シーケンス全体を一度に処理できるため、学習が高速
- 長距離依存関係の捕捉:文章内の離れた位置にある単語間の関係性を効果的に捉えることが可能
- スケーラビリティ:モデルサイズを大きくすることで性能が向上する特性を持つ
Transformerの革新性
Transformerが革新的だった理由は、「アテンション機構」を中心に据えたことです。それまでの言語モデルは、RNNやLSTMといった順次処理型のアーキテクチャが主流でしたが、Transformerは並列処理と自己注意機構により、より効率的かつ効果的に言語を処理できるようになりました。
トークン化(Tokenization)
LLMがテキストを処理する最初のステップは、入力テキストを「トークン」と呼ばれる小さな単位に分割することです。トークン化には以下のような特徴があります:
- トークンの種類:単語単位、部分単語(subword)単位、文字単位など様々な方式がある
- 一般的な方式:現代のLLMでは、BPE(Byte-Pair Encoding)やWordPieceなどの部分単語トークン化が主流
- 語彙サイズ:一般的なLLMでは数万~数十万のトークンを語彙として持つ
トークン化の例
例えば「こんにちは、世界」という日本語テキストは、トークン化によって以下のように分割される可能性があります:
- 「こん」「にち」「は」「、」「世界」
英語の場合、"Hello, world!"は以下のようになる可能性があります:
- 「Hello」「,」「world」「!」
- または「H」「ello」「,」「world」「!」など、使用するトークナイザーによって異なる
埋め込み(Embedding)
トークン化されたテキストは、次に「埋め込み」と呼ばれるプロセスで数値ベクトルに変換されます:
- トークン埋め込み:各トークンを固定次元の密ベクトルに変換
- 位置埋め込み:トークンの位置情報を表すベクトルを追加(Transformerは位置情報を明示的に与える必要がある)
- 次元:一般的なLLMでは数百~数千次元のベクトルを使用
埋め込みベクトルは、トークンの意味的な特徴を数値空間で表現します。意味的に近い単語は、埋め込み空間でも近い位置に配置されます。
セルフアテンション(Self-Attention)
Transformerの中核となる機構が「セルフアテンション」です。これにより、入力シーケンス内の各トークンが他のすべてのトークンとの関連性を計算できます:
セルフアテンションの計算プロセスは以下のようになります:
- クエリ(Q)、キー(K)、バリュー(V)の生成:各トークンの埋め込みから、3種類の異なるベクトル(Q、K、V)を生成
- アテンションスコアの計算:各トークンのクエリ(Q)と他のすべてのトークンのキー(K)の内積を計算し、スケーリングと正規化を適用
- 加重和の計算:アテンションスコアを重みとして、バリュー(V)ベクトルの加重和を計算
マルチヘッドアテンション
実際のTransformerでは、「マルチヘッドアテンション」と呼ばれる拡張版が使用されます。これは複数のアテンション機構(ヘッド)を並列に実行し、それぞれが異なる特徴に注目できるようにするものです。例えば、あるヘッドは文法的関係に、別のヘッドは意味的関係に注目するといった具合です。
フィードフォワードネットワーク
セルフアテンションの出力は、次に全結合のフィードフォワードネットワークに渡されます:
- 構造:通常、2層の全結合層で構成
- 活性化関数:一般的にはReLUやGELUなどの非線形活性化関数を使用
- 役割:トークン表現をさらに変換し、より豊かな特徴表現を獲得
このフィードフォワードネットワークは、各トークンに対して独立に適用されます。
LLMの学習プロセス
1. 事前学習(Pre-training)
LLMの学習は、まず「事前学習」と呼ばれる段階から始まります:
- データ:インターネット上の膨大なテキストデータ(数百GB~数TB)を使用
- 学習タスク:主に「次のトークン予測」(言語モデリング)タスクを使用
- 計算リソース:数百~数千のGPUを数週間~数ヶ月使用
- 目的:言語の統計的パターンと世界知識を獲得
事前学習の規模
GPT-3の事前学習では、約45TBのテキストデータ(約1兆トークン)を使用し、数千のGPUで数ヶ月かけて学習が行われました。この膨大な計算コストは、LLM開発の大きな障壁の一つとなっています。
2. 微調整(Fine-tuning)
事前学習の後、特定の用途に合わせて「微調整」が行われます:
- データ:特定のタスクや用途に関連する高品質なデータセット
- 学習方法:教師あり学習や強化学習を使用
- RLHF:人間のフィードバックによる強化学習(Reinforcement Learning from Human Feedback)が重要な役割
- 目的:特定のタスクでの性能向上、安全性・有用性の向上
微調整により、事前学習だけでは達成できない特定の能力や特性を獲得することができます。
法務分野でのTransformerアーキテクチャの意義
Transformerアーキテクチャは、法務分野のAI応用において以下のような意義を持ちます:
- 長文理解能力:法律文書は長文が多いため、長距離依存関係を捉えられるTransformerの特性が有用
- 文脈理解:法的文書の解釈には文脈理解が不可欠であり、セルフアテンション機構がこれを可能に
- 専門用語の処理:法律特有の専門用語や表現を適切に処理できる
これらの特性により、Transformerベースのモデルは、契約書分析、判例検索、法的文書生成など、様々な法務タスクで高い性能を発揮します。