第7章 — 次トークン予測の先へ
LLM Primer I: How Generative AI Works を章ごとに紹介するシリーズ、第7回です。前回は、適応の全スタック — プロンプトからアラインメントまで — を扱いました。今日は、LLM の使い道を「純粋な生成」の外へ広げていきます。Embedding、検索、ハイブリッドメモリ、そしてマルチモーダル入力への移行へと、ご一緒に進んでまいります。
Embedding — 意味を「幾何学」に置き換える
Transformer の強みが「各トークンに豊かな内部表現を作ること」だとすれば、自然と次の問いが立ち上がります。生成の途中ステップとしてではなく、その表現そのものを使えばいいのではないか?
これが Embedding の発想です。Embedding モデルは、テキストの断片(単語、文、段落、文書)を取り、その意味を捉えた数値列(典型的には数百〜数千次元)に変換します。意味の近い断片どうしは、似た数値列に。意味の違う断片は、離れた数値列に。シンプルですが、可能性が大きく広がる発想です。
Embedding さえあれば、いろいろな芸当ができるようになります。語が完全に一致しなくても、意味が近ければ拾えるようになる(「サブスクリプションの解約方法は?」で「プランの終了」「サービスの停止」のページが見つかる)。ラベルなしで文書をトピックごとにまとめる。重複やニアミスを検出する。クエリを適切なシステムへルーティングする。
生成と検索は、競合関係ではない
「生成」と「検索」は、よく対立する手法のように語られますが、実のところ、対立はしていません。生成は、学習で取り込んだパターンから新しいテキストを編み出す。検索は、保存済みのコーパスから既存のテキストを選んでくる。役割が違うのです。
生成は創造的で柔軟、誰も尋ねたことのない問いにも答えを返せます。同時に、自信を持って間違える能力もある — 自分の言っていることを検証する手段を、内部に持っていないからです。検索はその逆で、ライブラリにあるものしか出せないけれど、検証可能な「実在のソース」に常に根を張っています。
面白いのは、ふたつを組み合わせる発想です。先に検索し、その結果を踏まえて生成するモデルは、流暢で、トピックにも沿い、しかも実在の文書にしっかり錨を下ろした応答を返せる。これが、本番運用のLLMシステムで定着した、中心的なデザインパターンです。
ハイブリッドメモリ — モデルとライブラリの組み合わせ
本書ではこれを、単発の手法ではなく、もっと大きな「アーキテクチャ上の発想」として扱います。ねらいは、モデルに2種類のメモリを持たせること。学習済みの重みに宿る「パラメトリックメモリ」は、広く密度が濃いけれど、学習時に固定される。これに対して、外部ストレージに宿る「非パラメトリックメモリ」は、狭く具体的だが、リアルタイムに更新できます。
クエリが入ってくると、システムはまずそれを Embedding に変換し、外部ストアから関連素材を引いてきて、元のクエリと一緒にモデルに渡します。モデルはそこから、両方を使って応答を組み立てる — 言語に対する広い理解と、たった今受け取った具体的で最新の情報、その両方を生かすわけです。
この構成には、実務上の含みがあります。システムが答えられる範囲を変えるのに、もう再学習は要らない(外部ストアを更新すればいい)。引用も可能になる(どの文書から引いたか、システム側が把握できる)。確信度の見立ても、ぐっと改善する(関連コンテキストが手元にあったか、モデルが分かるようになる)。
RAG をもう少し丁寧に
ハイブリッドの最も一般的な実装が、Retrieval-Augmented Generation、略して RAG です。本番運用のAIアシスタントの多くは、内部的にはRAG。実際のステップを押さえておく価値は十分にあります。
流れは素直です。まず、ナレッジベース(社内ドキュメント、顧客の問い合わせ、内部Wikiなど)を Embedding に変換し、ベクトルデータベースに格納します。次に、クエリが届いたらそれも同じ方法で Embedding 化し、ナレッジベース内の類似度上位 k 件を引いてくる。そのうえで、ユーザーの質問と取り出した断片を含むプロンプトを組み立て、モデルに渡す。モデルはその素材を「接地された文脈」として使い、応答を返します。
各ステップには、システムの良し悪しを左右する細部が詰まっています。チャンキング(ソース文書をどう分割するか)は途方もなく重要ですし、リランキング(取り出した候補の中から、どれを実際にプロンプトに入れるか)も、世間で語られる以上に効きます。本書では、実デプロイメントから得られた「効くこと/効かないこと」を、順に整理してまいります。
マルチモーダルへの拡張
第7章の終盤では、テキストの外へ視野を広げます。画像、音声、動画も「トークン化」できる、というのが鍵。Vision エンコーダは画像をパッチの列に、Audio エンコーダは音声を時間軸に沿った特徴ベクトルの列に変換し、それぞれをテキストの Embedding と整列させれば、モデルはモダリティをまたいだ推論ができるようになります。
第1世代のマルチモーダルシステムは、モダリティごとに別のエンコーダを持ち、フュージョン層で出力を縫い合わせていました。現世代はもっと上品で、すべてのモダリティを「単に別種類のトークン」として、共通の Transformer に流し込みます。現代のフロンティアモデルが、テキスト・画像・音声を一つの会話のなかで滑らかに混ぜられるのは、ここに理由があります。
第7章を通して、得られるもの
第7章を読み終えるころには、LLM が現場で「使えるもの」になっていく道筋が、はっきり見えているはずです。多くのエンタープライズAIを支える Embedding → 検索 → 生成 のパイプラインについて、議論できるようになる。マルチモーダルモデルの発表を、アーキテクチャの進化のどこに位置づければいいか分かる。そして、自分の仕事のための RAG システムを、設計・評価するための道具立てが整います。
次回 — 第8章: アプリケーションで LLM を使う。 実践の話に入ってまいります。チャットボット、要約、コード生成、知識抽出、評価、そして「制御される側」から「制御する側」へと位置を変えるエージェント型システム。