Show HN: LLMの仕組み – カーパシーの講義に基づくインタラクティブなビジュアルガイド
概要
- LLM(大規模言語モデル)の構築プロセスを段階ごとに解説
- データ収集からトークナイズ、学習、アシスタント化までの流れ
- データ品質や多様性の重要性を強調
- Post-TrainingやRLHFによるモデルの高度化
- LLMの心理的性質や限界についても触れる
LLM(大規模言語モデル)の仕組み
- **LLM(Large Language Model)**は、インターネット上の膨大なテキストデータから学習し、会話型AIアシスタントとして機能するモデル
- Andrej Karpathyによる技術解説を基に、LLMの構築・訓練・運用の全体像を解説
データ収集と前処理
- Common Crawlなどの組織がウェブ全体をクロールし、生データを収集
- URLフィルタリングでマルウェア・スパム・アダルトなどの低品質ドメインを除外
- テキスト抽出によりHTMLから意味のあるテキストのみを抽出
- 言語フィルタリングで、対象言語(例:英語)が65%以上含まれるページのみを残す
- 重複排除(deduplication)により、同一・類似ページを除去し、記憶偏重を防止
- 個人情報除去(PII removal)で、氏名・住所・メールなどを検出・削除
- FineWeb Datasetなど、高品質・多様な44TB/15兆トークン規模のコーパスを作成
トークナイズ(Tokenization)
- ニューラルネットワークは生テキストを直接処理できないため、トークン(サブワード単位)への分割とID割り当てが必要
- **BPE(Byte Pair Encoding)**アルゴリズムで頻出ペアを逐次マージし、10万語規模のトークン語彙を形成
- サブワード分割により、新語・誤字・多言語対応力を確保
ニューラルネットワークの訓練
- Transformerアーキテクチャにランダム初期値パラメータを設定
- 入力トークン列から「次のトークン」を予測し、誤差(loss)を計算
- 誤差逆伝播でパラメータを微調整し、数十億回繰り返す
- Embeddingで各トークンを意味空間上のベクトルに変換、文脈で多義語を適切に解釈
- モデル規模例:GPT-2(1.6Bパラメータ)、Llama 3(405Bパラメータ)
推論とトークンサンプリング
- 学習済みネットワークは自己回帰的にテキストを生成
- 各ステップで次のトークン確率分布を計算し、確率的に選択・追加
- Temperatureでランダム性を調整(低=決定的/高=創造的)
ベースモデルの性質
- ベースモデルは高性能な補完エンジンであり、直接的なQ&Aやアシスタント機能は持たない
- 記憶はパラメータ内に圧縮保存、知識の圧縮ファイル的存在
- Few-Shot Promptingで翻訳・分類・Q&Aも可能だが、必ずしも正確性や一貫性は保証されない
Post-Trainingとアシスタント化
- **Supervised Fine-Tuning(SFT)**で理想的な会話データを使い、アシスタントらしい応答を学習
- **RLHF(Reinforcement Learning from Human Feedback)**で人間の好みを学習し、より自然で誠実な応答を強化
- 会話はフラットなトークン列で記録、特殊トークンでユーザー/アシスタントを区別
LLMの心理的特徴・限界
- 幻覚(Hallucination):自信満々に誤情報を生成する傾向
- 二種類の記憶:パラメータ=長期記憶、コンテキストウィンドウ=作業記憶
- ツール利用:特殊トークンで外部検索や計算などのツールを呼び出し、結果を作業記憶に取り込む
- 恒常的な自己は存在しない:会話ごとに状態リセット、持続的なアイデンティティは持たない
まとめ
- LLMは膨大な高品質データと高度な学習手法により構築
- トークナイズや推論、ファインチューニングを経て実用的なアシスタントへ進化
- 幻覚・記憶の限界を理解し、適切な運用・設計が重要
- 最新モデルは人間の専門家の模倣として振る舞い、今後も進化が続く見通し