はじめに
2023年以降、ChatGPTの登場により、AI技術が一般社会に急速に浸透しました。ChatGPTの背後にある技術が大規模言語モデル(Large Language Model: LLM)です。
この章では、LLMとは何か、どのような歴史を経て現在の形になったのか、そして代表的なモデルにはどのようなものがあるのかを学びます。
1.1 LLMの定義
大規模言語モデル(LLM)とは
大規模言語モデル(Large Language Model: LLM)とは、膨大なテキストデータで訓練された、自然言語の理解と生成を行う深層学習モデルです。
📌 LLMの主な特徴
- 大規模: 数十億〜数兆のパラメータを持つ
- 事前学習: インターネット上の大量テキストで訓練
- 汎用性: 様々なタスク(要約、翻訳、質問応答など)に対応
- Few-Shot Learning: 少数の例から学習できる
- コンテキスト理解: 長い文脈を考慮した応答
LLMの基本構造
現代のLLMの多くはTransformerアーキテクチャをベースにしています。Transformerは2017年にGoogleが発表した革新的なニューラルネットワーク構造です。
1.2 LLMの歴史
言語モデルの進化
言語モデルは長い歴史を持ちますが、2018年以降に急速に発展しました。
主要なマイルストーン
2017年:Transformer(トランスフォーマー)
Googleの論文 "Attention is All You Need" で提案されたTransformerが、LLMの基礎となるアーキテクチャになりました。
- 革新点: Self-Attention機構により、文中の全単語間の関係を並列に計算
- 利点: 長距離依存関係の学習、並列処理による高速化
2018年:BERT(Bidirectional Encoder Representations from Transformers)
Googleが発表した双方向の言語モデル。文脈の前後両方を考慮できる点が画期的でした。
- 特徴: Masked Language Modeling(単語をマスクして予測)
- 用途: 文分類、固有表現認識、質問応答など
2018年:GPT-1(Generative Pre-trained Transformer)
OpenAIが発表した生成型言語モデル。事前学習+ファインチューニングのアプローチを確立しました。
- パラメータ数: 1.17億
- 特徴: 次の単語を予測する自己回帰的生成
2020年:GPT-3
GPTシリーズの第3世代。パラメータ数の飛躍的増加により、Few-Shot Learningが可能になりました。
- パラメータ数: 1750億(GPT-1の約1500倍)
- 革新点: 少数の例示だけで新しいタスクを実行可能
2022年:ChatGPT
GPT-3.5をベースに、人間のフィードバックで調整されたチャットボット。AI技術の大衆化のきっかけとなりました。
- 特徴: RLHF(Reinforcement Learning from Human Feedback)による調整
- インパクト: 公開2ヶ月で1億ユーザー達成
2023年:GPT-4
OpenAIの最新モデル(執筆時点)。マルチモーダル(テキスト+画像)に対応しました。
- 改善点: より正確な推論、長文理解、創造性の向上
- 安全性: より堅牢な安全機能と倫理的配慮
1.3 代表的なLLMモデル
主要なLLMの比較
| モデル | 開発元 | パラメータ数 | 特徴 | 公開状況 |
|---|---|---|---|---|
| GPT-4 | OpenAI | 非公開(推定1兆+) | マルチモーダル、高精度 | API経由 |
| Claude 3 | Anthropic | 非公開 | 長文理解、安全性重視 | API経由 |
| Gemini | 非公開 | マルチモーダル、統合型 | API経由 | |
| LLaMA 3 | Meta | 8B, 70B, 405B | オープンソース、高効率 | 完全公開 |
| Mistral | Mistral AI | 7B, 8x7B | 小型高性能、MoE | オープンソース |
💡 パラメータ数の表記
- B: Billion(10億) - 例: 7B = 70億パラメータ
- M: Million(100万) - 例: 340M = 3.4億パラメータ
- パラメータ数が多いほど高性能ですが、計算コストも増加します
各モデルの詳細
GPT-4(OpenAI)
- リリース: 2023年3月
- 強み: 複雑な推論、創造的タスク、マルチモーダル対応
- 弱み: 高コスト、API経由のみ、知識カットオフあり
- 用途: コード生成、文書作成、複雑な問題解決
Claude 3(Anthropic)
- リリース: 2024年3月
- 強み: 長文理解(200k+ トークン)、安全性、正確性
- モデル種類: Opus(最高性能)、Sonnet(バランス型)、Haiku(高速)
- 用途: 長文分析、安全性が重要なアプリケーション
Gemini(Google)
- リリース: 2023年12月
- 強み: Googleサービス統合、マルチモーダル、高速
- モデル種類: Ultra、Pro、Nano
- 用途: Google Workspaceとの連携、検索統合
LLaMA 3(Meta)
- リリース: 2024年4月
- 強み: オープンソース、商用利用可能、高効率
- サイズ: 8B(小型)、70B(中型)、405B(大型)
- 用途: 自社環境での運用、カスタマイズ、研究
1.4 トークン化の仕組み
トークンとは
LLMは文字列をそのまま処理せず、トークンという単位に分割します。トークンは単語の一部、単語全体、句読点などになります。
🔍 トークン化の例
入力テキスト: "ChatGPTは素晴らしいAIです"
トークン分割: ["Chat", "G", "PT", "は", "素晴らしい", "AI", "です"]
→ 7トークン
主なトークン化手法
1. BPE (Byte Pair Encoding)
- GPTシリーズで使用
- 頻出する文字ペアを繰り返し結合
- 未知語に強い(サブワード分割)
2. WordPiece
- BERTで使用
- BPEの改良版
- 尤度ベースで最適な分割を選択
3. SentencePiece
- 多言語対応
- 言語に依存しないトークン化
- LLaMA、T5等で使用
トークン化のPythonコード例
# Hugging Face transformersを使ったトークン化
from transformers import AutoTokenizer
# GPT-2のトークナイザーを読み込み
tokenizer = AutoTokenizer.from_pretrained("gpt2")
# テキストをトークン化
text = "ChatGPTは素晴らしいAIです"
tokens = tokenizer.tokenize(text)
print("トークン:", tokens)
# 出力例: ['Chat', 'G', 'PT', 'は', '素', '晴', 'らしい', 'AI', 'です']
# トークンIDに変換
token_ids = tokenizer.encode(text)
print("トークンID:", token_ids)
# トークン数を確認
print(f"トークン数: {len(token_ids)}")
⚠️ トークン数の重要性
多くのLLM APIはトークン数で課金されます。また、モデルには最大トークン数(コンテキスト長)の制限があります。
- GPT-3.5: 4,096トークン(約3,000語)
- GPT-4: 8,192トークン、または32,768トークン
- Claude 3: 200,000トークン(約15万語)
1.5 Transformerアーキテクチャの基礎
Transformerの基本構造
TransformerはEncoderとDecoderから構成されますが、LLMの多くはDecoder-Onlyアーキテクチャを採用しています。
主要コンポーネント
1. Self-Attention(自己注意機構)
文中の各単語が他のすべての単語との関連性を学習する仕組みです。
- Query(クエリ): 注目したい単語
- Key(キー): 比較対象の単語
- Value(値): 取得する情報
🔍 Self-Attentionの例
文: "猫が魚を食べた"
「食べた」に注目すると:
- "猫" → 高い注意(主語)
- "魚" → 高い注意(目的語)
- "が" → 中程度の注意
- "を" → 中程度の注意
→ モデルは文法構造を自動的に学習
2. Multi-Head Attention(多頭注意機構)
複数の異なる観点(head)から注意を計算し、並列に処理します。
- 利点: 異なる種類の関係性を同時に学習
- 典型的なhead数: 8〜16個
3. Position Encoding(位置エンコーディング)
Transformerは並列処理のため、単語の順序情報を明示的に与える必要があります。
- 絶対位置エンコーディング: 各位置に固有のベクトル
- 相対位置エンコーディング: 単語間の相対距離を考慮
4. Feed-Forward Network(順伝播ネットワーク)
各トークンの表現を独立に変換する全結合層です。
Decoder-Only vs Encoder-Decoder
| アーキテクチャ | 代表モデル | 特徴 | 主な用途 |
|---|---|---|---|
| Decoder-Only | GPT-3, GPT-4, LLaMA | 自己回帰的生成 | テキスト生成、チャット |
| Encoder-Only | BERT | 双方向理解 | 文分類、固有表現認識 |
| Encoder-Decoder | T5, BART | 入力→出力変換 | 翻訳、要約 |
1.6 LLMの活用事例
主な活用領域
1. コンテンツ生成
- 記事、ブログ投稿の作成
- マーケティングコピー
- メール返信の下書き
- 創作(小説、詩、脚本)
2. コード生成・支援
- GitHub Copilot(Codexベース)
- バグ修正の提案
- コードレビュー
- ドキュメント生成
3. 質問応答・カスタマーサポート
- FAQボット
- 技術サポート
- 社内ナレッジベース検索
4. 翻訳と要約
- 多言語翻訳
- 文書要約
- 会議議事録の自動生成
5. 教育支援
- 学習チューター
- 問題生成
- 採点とフィードバック
LLMを使ってみる:簡単なコード例
# Hugging Face transformersでGPT-2を使った文章生成
from transformers import pipeline
# テキスト生成パイプラインを作成
generator = pipeline('text-generation', model='gpt2')
# プロンプトを与えて文章生成
prompt = "人工知能の未来について考えると"
result = generator(
prompt,
max_length=100,
num_return_sequences=1,
temperature=0.7
)
print(result[0]['generated_text'])
💡 パラメータの説明
- max_length: 生成する最大トークン数
- num_return_sequences: 生成する候補の数
- temperature: ランダム性(0=決定的、1=創造的)
1.7 LLMの限界と課題
主な課題
1. ハルシネーション(幻覚)
LLMは存在しない情報を、もっともらしく生成することがあります。
⚠️ ハルシネーションの例
質問: "2024年のノーベル物理学賞受賞者は誰ですか?"
誤った回答例: "山田太郎博士が量子コンピュータの研究で受賞しました"
→ モデルは知らないことを「知らない」と言えず、もっともらしい嘘をつくことがある
2. バイアスと公平性
- 訓練データに含まれる社会的バイアスを学習
- 性別、人種、年齢等に関する偏見
- 倫理的配慮の必要性
3. 知識のカットオフ
- 訓練データの期限以降の情報を知らない
- 例:GPT-4(2023年版)は2023年4月以降の出来事を知らない
4. 計算コストとエネルギー
- 訓練に数百万ドル〜数千万ドルのコスト
- 推論にも高い計算資源が必要
- 環境への影響
5. プライバシーとセキュリティ
- 訓練データからの情報漏洩リスク
- 悪用の可能性(フィッシング、偽情報)
- 著作権の問題
対策と緩和策
- RLHF(人間フィードバックからの強化学習): ChatGPT等で採用
- RAG(検索拡張生成): 外部知識ベースと統合
- ファクトチェック機構: 生成内容の検証
- 透明性とドキュメント: モデルの限界を明示
1.8 LLMの未来
今後の発展方向
1. マルチモーダルAI
テキストだけでなく、画像、音声、動画を統合的に理解・生成するモデル。
- GPT-4V(Vision): 画像理解
- Gemini: 生まれつきマルチモーダル
2. より効率的なモデル
小型でも高性能なモデルの開発。
- Mistral 7B: 70億パラメータで高性能
- 量子化、プルーニング、蒸留
3. エージェント型AI
ツールを使い、計画を立て、行動できるAI。
- AutoGPT、BabyAGI
- 関数呼び出し(Function Calling)
4. パーソナライズ
個人に最適化されたAIアシスタント。
- ユーザーの嗜好学習
- カスタムGPTs
5. オープンソース化
より多くのモデルがオープンソースとして公開される傾向。
- LLaMA、Mistral、Falcon等
- 研究と開発の民主化
まとめ
この章では、大規模言語モデル(LLM)の基礎を学びました。
📌 重要ポイント
- LLMはTransformerアーキテクチャをベースとした大規模ニューラルネットワーク
- 2017年のTransformer登場から急速に発展し、2023年のChatGPTで一般化
- GPT-4、Claude、Gemini、LLaMAなど多様なモデルが存在
- トークン化により文字列を数値に変換して処理
- Self-Attentionにより文脈理解を実現
- 多様な活用事例があるが、ハルシネーションなどの課題も存在
- 今後はマルチモーダル、効率化、エージェント型へ発展
演習問題
📝 演習1:基礎知識確認
問題: 以下の質問に答えてください。
- LLMの「大規模」とは何を指しますか?
- Transformerアーキテクチャの主な利点を2つ挙げてください。
- Decoder-OnlyとEncoder-Onlyモデルの違いを説明してください。
📝 演習2:トークン化の実践
課題: 以下のコードを実行し、異なるテキストのトークン数を比較してください。
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("gpt2")
texts = [
"こんにちは",
"Hello",
"人工知能は素晴らしい技術です",
"Artificial Intelligence is amazing"
]
for text in texts:
tokens = tokenizer.encode(text)
print(f"'{text}' → {len(tokens)} tokens")
考察: 日本語と英語でトークン数に違いはありますか? その理由を考えてください。
📝 演習3:モデル比較
課題: GPT-4、Claude、LLaMAの中から1つ選び、以下を調査してください。
- 開発元と開発の背景
- 主な特徴と強み
- 利用方法(API、オープンソース等)
- 代表的な活用事例
発展: 選んだモデルの公式ドキュメントを読み、技術的詳細をまとめてください。
次の章へ
次の章では、LLMの中核技術であるTransformerアーキテクチャを詳しく学びます。Self-Attention、Multi-Head Attention、位置エンコーディングなどの仕組みを理解し、実際に動くコードで体験します。