入力が無効です。特殊文字には対応していません。
埋め込み空間を探求して、AIが知識をどのようにシミュレートするかを学ぶ。
AIが何かを『「知る」とはどういうことかを問うことは、単なる出力の結果を超えて、AIが予測を生み出す不思議な数学的空間に目を向けることです。その仕組みを理解すれば、AIを絶対的な真実の源ではなく、確率的に予測を行う高度なシステムとしてとらえ、より意識的かつ注意深い姿勢で向き合えるようになります こうした技術的な理解を得ることで、よりバランスの取れた思考が可能になり、思慮深い探究へとつながります。AIに関する極端な主張を鵜呑みにするのではなく、不確実性を認め、AIが人間の能力をいつ、どのように、どのような条件下で拡張または再形成するのかについて、より正確な問いを投げかけることができるようになります。AIの概念に関する4部構成のシリーズ第1弾となるこのブログでは、「トークン」や「埋め込み」といった基礎的な用語から始め、その後「埋め込み空間」について考察します。埋め込み空間とは、モデルにおける言語の内部表現として機能する高次元空間のことで、単語間の関係性が符号化され、モデルの予測を意味ではなく統計に基づいて導きます。また、メモリの役割についても垣間見ることができます。メモリは単なる回想ではなく、これらのシステムが保持し表現できるものを静かに形作る、基盤となるハードウェアアーキテクチャーの一部です。
「The moral of Snow White is to never eat ...(白雪姫から得た教訓として、絶対に食べてはならないものは...)」
著者レモニー・スニケットによる遊び心あるひねりを効かせたこの一節は、『白雪姫』の結末を再構成したもので、受け継がれてきた教訓を論理的に極限まで突き詰めると、どれほど奇妙で融通の利かないものになり得るかを明らかにしています。この文は未完成でありながら、隠された部分以上のことを物語っています。その形は非常に馴染み深く、次の単語は意識的に思い出すというよりは、もっと深く根付いているもの、つまり子どもの頃によく聞いていたおとぎ話によって形作られたものから、自然に浮かんでくると考えられます。「...」に入るのは、もちろん「apples(リンゴ)」です!あるいは「poisoned apples(毒リンゴ)」でしょうか? 読者として、リンゴがその物語の真の教訓ではないことは分かっていても、この文の文末にどのような単語が入るべきかを静かに確信、つまり反射的に感じるかもしれません。そして、その反射的な感覚から、より深い疑問が提起されます。言語モデルが同じ結末、あるいはそれに近い結末を生み出せるとしたら、それは一体何に基づいているのでしょうか?そして、それはどのような種類の「知る」ことを表しているのでしょうか?
この未完成の文を大規模言語モデル(LLM)に提供すると、「food from strangers(見知らぬ人からの食べ物)」、「a poisoned apple(毒リンゴ)」、あるいは単に「apples(リンゴ)」という言葉で文を完成させる可能性があります。どれも妥当なように思えます。「food from strangers(見知らぬ人からの食べ物)」は実際の物語を反映し、「a poisoned apple(毒リンゴ)」は最も象徴的な危険性を指し示し、「apples(リンゴ)」は悪名高い果物に焦点を当てています。しかし、これらの結末はどれも、経験や実生活から生まれたものではありません。LLMは物語を解釈しているというより、英語における統計的なパターンを特定しているのです。つまり、LLMは次にくる可能性の高いトークンの分布からサンプリングしてテキストを生成するため、プロンプトの表現方法、使用されているモデル、さらには最近の会話履歴によって結果が異なる場合があります。したがって上記の例は、説明的なものであり、決定論的なものではありません。
AIがこれらの統計パターンを通して何かを「知る」ことの意味を探る前に、その「知る」ことを可能にする物理的現実について考えるとよいでしょう。「apples(リンゴ)」や「food from strangers(見知らぬ人からの食べ物)」といった単純な言葉で文を締めくくっているように見えますが、それは、私たちが受け継いできた物語と同じくらい、幾重にも重なった複雑な土台の上に成り立っています。あらゆる予測が、物理的なインフラの存在を必要とする数値的な関係から生まれます。そして、これらの数値は、大規模に保存、計算、処理できる回路やメモリシステムの中に格納される必要があります。表面的には流暢に見える文章の裏側には、ハードウェアアーキテクチャーが存在します。ハードウェアアーキテクチャーは、私たちの目から見ると大半が抽象化され、その応答は一見して何の苦労もなくモデルから生み出されているように見えます。このブログでは、テキストから予測に至るまでの概念的な道のりに焦点を当てていますが、その過程で、そのすべてを可能にしている物理的な現実についても垣間見ることができ、特に高度なメモリテクノロジーに注目しています。メモリテクノロジーは、基盤となるハードウェアの一部を形成し、モデルの知能を可能にするものです。
テキストから予測への道のりとは
トークン
AIは単語に遭遇しても、人間のようにその意味を考えたり、経験、記憶、感覚を思い出すことはなく、単語をトークンに変換することでテキスト解釈のプロセスを開始します。トークンは、LLMが処理できるテキストの最小単位と考えることができます。トークンは、「snow(雪)」のような完全な単語である場合もあれば、「app(リン)」のような単語の一部、あるいは句読点、文字、スペースなどである場合もあります。「The moral of Snow White is to never eat …(白雪姫から得た教訓として、絶対に食べてはならないものは...)」のようなフレーズをAIシステムに入力し、次に何が続くかを尋ねると、そのテキストはまずトークンに変換されます。モデルに応じて正確なトークン化は異なりますが、次のようになります。
["\u201cThe\u201d | \u201c moral\u201d | \u201c of\u201d | \u201c Snow\u201d | \u201c White\u201d | \u201c is\u201d | \u201c to\u201d | \u201c never\u201d | \u201c eat\u201d"]
このプロセスは説明のために簡略化していることに注意してください。実際のトークン化は複雑なアルゴリズムに基づいており、多くの場合、独自のアルゴリズムに基づいています。これらの短い単語は共通しているため、トークン化しても単語が分割される可能性は低くなります。各単語の前にスペースがあることに注目してください。これは、それらの単語が新しい考えの始まりではなく、文中に含まれていることを示しています1。トークン化は、テキストから予測へのより広範な変換における、ほんの1つの段階にすぎません。言語が機械にとって判読可能になる仕組みを理解するには、このプロセスを一種の変容と考えると分かりやすいでしょう。青虫が蝶になるステップがあるように、人間の言語(この場合はテキストとして入力されたもの)も、一連の体系的なステップを経て機械が解釈できるようになります。つまり、言語の意味が数学的な関係に変換されるのです。分かりやすくするために、この一連のステップを「テキストからトークンへの移行」、「トークンから埋め込みへの移行」と表現します。しかし、実際にははるかに微妙なニュアンスがあり、自然言語の豊かさと機械の理解の間のギャップを埋めるために、トークンIDやその他の表現といった中間ステップが入ります。
埋め込み
トークンは次に、埋め込みにマッピングされます。これは、単語が持つ意味(単語が表す概念)と構文(文中で果たす役割)の両方の関係性を捉える数学的表現です2。重要なのは、これらの関係性は明示的にプログラムされたものではなく、トレーニングデータ(文学作品、記事、文字起こしなど)全体で単語がどのように現れ、再出現するかというパターンから学習するということです。これらの埋め込みは次に、トレーニング中に作成された高次元空間に投影されます。埋め込み空間と呼ばれるこの空間は、埋め込みモデルの言語内部表現を符号化する数学的構造です。これは定義をまとめた辞書というより、近接性と単語の関連性を示す統計的なマップです。つまり、頻繁に一緒に現れたり、似たような役割を果たしたりする単語は、互いに近くに集まります。たとえば「pirouette(ピルエット)」と「arabesque(アラベスク)」が近くに位置し、「apples(リンゴ)」と「caramel(キャラメル)」が近くに位置するのは、モデルがバレエやデザートの組み合わせを理解しているからではなく、単に似た文脈で互いに近くに現れるというだけです。
シミュレートされた知識
ここで注目すべき重要な区別が明らかになります。「apple(リンゴ)」という言葉は人間にとっては、近所の木、リンゴの1ポンドという重さ、舌で感じる甘みなど、これまでの人生の記憶から積み重ねられた意味を呼び起こす可能性があります。私たちの理解は、文化、感覚、実体験から生まれます。しかしAIにとっては、そういった方法で記憶の中に存在するわけではありません。その意味は完全に位置に依存し、埋め込み空間内の関係性から推論され、膨大な量のテキストから学習したパターンに基づいています。AIは人間のように「理解」するわけではありませんが、理解しているかのようにシミュレートする(振る舞う)ため、十分に実用的です。「シミュレートする」とは、AIシステムが人間にとっての意味で理解したり認識したりすることではなく、LLMが知識に似た応答を生成できるということです。AIが知識のように見えるものを生成する仕組みをより深く理解するためには、埋め込み空間を詳しく見ていく必要があります。
「埋め込み空間」とはどういう意味でしょうか?
AIチャットボットのプロンプトを入力するときには、平易な英語(または好みの言語)で指示を与えているように感じるかもしれません。しかし実際には、はるかに抽象的なことが起こっています。入力した言葉は人間的な意味で解釈されるのではなく、埋め込み空間内の高次元ベクトルに変換されます。この空間は数百次元、あるいは数千次元に及ぶこともあり、モデルの応答は「理解」ではなく、この空間内のベクトルの関係性によって導かれます3。このプロセスは、私たちが機械とやり取りする方法に大きな変化をもたらしました。キーボード入力であっても音声入力であっても、私たちの入力は、コードというより、自然な会話に似ています。コンピューター科学者のアンドレイ・カルパシーは、この変化を 「最新で最もホットなプログラミング言語は英語だ」という皮肉な言葉で表現しました。これは、より深い部分での変革、つまり言語自体が、特に大規模な言語モデルにおいて、一種のインターフェースとなっていることを巧みに指摘しています。この文脈において、英語は通常の話し言葉のように機能するのではなく、より構造化された入力として機能しています。ただし、AIは英語を「話している」ように見えますが、実際に行っていることははるかに複雑です。
こだまの家
埋め込み空間は、AIがアクセスできる人間の表現のあらゆる範囲にわたって、単語が統計的にどのように共起する傾向があるかを捉えます。その範囲には、ニュース記事やエッセイからRedditのスレッドやタブロイド紙の見出しまで、あらゆるものが含まれます。この空間における意味は、文法規則や意図によって定義されるのではなく、単語が一緒に出現する頻度によって定義され、人間が過去にそれらの単語を他の単語の隣に配置した場所を反映します。予測の統計的な性質は、AIがなぜ文章に緊張感を持たせるのが苦手なのかを理解する助けになるかもしれません。AIは、知的な刺激を最も与える単語ではなく、常に次に続く可能性の最も高い単語を探しているからです。出力が短く、細切れで、あまりにも早く結論に達してしまうような文章の連なりになりやすいかどうかは、モデルによって決まります。少なくとも現時点では、AIは緊張感を持たせるような応答を生成することはできません。内容を完結するようにトレーニングされたモデルは多くの場合、帰結が早すぎて、アイデアを時期尚早に解決し、曖昧さや矛盾を避けようとします。これらがまさに人間と機械の違いです。AIが同意しているように見え、望んでいる結論や確実性を喜んで提供してきた場合に備えて、この傾向を念頭に置いておくとよいでしょう。モデルは、緊張感を生み出し、複雑さを引き出すために、隠すべきことと維持すべきことかを「考えている」わけではありません。ただ、統計的に一貫性を持たせ、トレーニングデータと一致させようとしているだけなのです。
n次元テンソル:AIが意味を近似する方法
この空間を構成する埋め込みは、テンソルとして表現されます。テンソルは、多次元にわたる関係性を数学的に表現する方法です。テンソルは、1次元のリスト(ベクトルなど)、行と列の2次元の表(行列など)、3次元、4次元、またはn次元に広がる高次元オブジェクトのいずれかです。言語モデルの場合、各埋め込みは1次元テンソル、つまり数百または数千の数値を含むベクトルです。これらの数値は、恣意的なものではありません。それぞれが高次元空間における明確な次元を表し、意味、構文、文脈の微妙なパターンを捉えています。
2次元から3次元へ:概念的な解説
この空間をより理解しやすくするために、簡略化した2次元埋め込み空間から見ていきましょう。2つの軸が統計的な近接性、つまり私たちが直接解釈できない関係性を捉えていると想像してみてください。1つの軸に沿って、「apple(リンゴ)」が「fruit(果物)」、「huntsman(猟師)」、「jealousy(嫉妬)」、「bite(ひと口)」といった単語の近くに位置しているかもしれません。もう1つの軸に沿って、「red(赤)」、「sweet(甘い)」、「crisp(サクサクした)」といった単語に近接しているかもしれません(図1)。これらのグループ化は、「おとぎ話」や「風味」といった概念的なカテゴリーを反映しているのではなく、これらの単語が言語の中で一緒に出現する頻度を反映しています。この考え方は、言語学者J.R.ファースの有名なインサイト 「単語の意味は、その単語がどのような仲間(文脈)の中にいるかでわかる」を想起させます。この文脈における「意味」は、定義から生まれるのではなく、使い方から生まれるのです。
では、ここに3つ目の次元を加えてみましょう。「apple(リンゴ)」は、「knowledge(知識)」、「temptation(誘惑)」、「snake(蛇)」といった単語の近くに現れる可能性があり、これは聖書における関連性を示唆しています(図2)4。これらは「apple(リンゴ)」が登場する異なる文脈であり、モデルはこれらを象徴的な意味としてではなく、統計的なパターンとして捉えています。
4次元から512次元へ:複雑さが増大
時間という4つ目の次元を加えてみましょう。埋め込みモデルを1980年より前とそれ以後の両方のデータでトレーニングした場合、「apple(リンゴ)」は時代によって異なる単語に囲まれる可能性があります(図3)。1980年代になると、「apple(リンゴ)」は「computer(コンピューター)」、「technology(テクノロジー)」、そして2人のスティーブという名の人物と共起し始めます。それ以前の、農業が盛んだったクパチーノ(カリフォルニア州)では、「apple(リンゴ)」はまだその地域と強い文化的つながりを持っていませんでした。その関連性は果樹園や柑橘系の果物に根ざしたままであり、まだフォーチュン100に名を連ねる企業の象徴とは強く結びついていませんでした。この変化は、言語の分布が固定されたものではなく、文化的要因が作用することで時間とともに進化する、ダイナミックなものであることを示しています。
n次元
時間という4番目の次元を加えることで、言語使用における文化的変化が明らかになりますが、実際の埋め込み空間は、はるかに大きなスケールで機能しています。地図上の位置や空間内の物体のように、2次元や3次元の点を思い浮かべるのは簡単です。しかし、埋め込みは数百、数千の次元で存在するため、視覚化することはたちまち不可能になります。この考え方をより具体的にするために、表1は各単語が数値のリストとしてどのように表現され、次元数が埋め込みのサイズをどのように定義するかを示しています。これらの数値自体には意味はありませんが、モデルの埋め込み空間内での単語の位置を示します。たとえば、「apple(リンゴ)」は、n次元にわたる[0.2, 0.3, 0.2, 0.5, …, 0.8]といったベクトルとして表現される場合があります。これは、「apple(リンゴ)」を数値で表したものです。
したがって、「apple(リンゴ)」や「bite(ひと口)」という単語がそれぞれn個の数値で表現されているという説明は、各単語をn次元空間の1つの点として位置付けるベクトルについて説明していることになります。先ほどの例 「The moral of Snow White is to never eat ...(白雪姫から得た教訓として、絶対に食べてはならないものは...)」に戻りましょう。モデルはこの問題を解決する際、物語を理解するのではなく、次に続く単語として統計的に最も可能性の高いものを計算します。そしてこの場合、数学的にその場所にあるという理由から、次に続く可能性のある単語として(そして常に他の可能性の中から)「apples(リンゴ)」が現れます。
数学からメモリに移行する仕組み
「埋め込み」とは、各次元が単語間の関係性を捉えるn次元空間における数学的表現であると理解することで、AIがどのように理解をシミュレートするかを理解しやすくなります。しかし、これらの座標は単なる理論上の概念ではなく、物理的なメモリに保存する必要があります。各埋め込みには、アプリケーションに応じて4ビットから32ビットの精度で表された、数百または数千の数値が含まれています。たとえば、GPT-3は12,000以上の次元を使用しますが、より小規模なモデルでは768次元や1024次元を使用する可能性があります5。埋め込みの次元数が増えるほど、サイズが大きくなり、保存する必要がある数値の数も増えます。そして、それぞれの数値が空間を占有します。この空間の必要性が、根本的な制約を生み出します。表現が高度になるほど、メモリ内のより多くの物理的空間が必要になります。モデルは埋め込みを保存するだけでなく、キーバリューキャッシュ(KVキャッシュ)で中間計算を管理する必要があります。KVキャッシュは、モデルが以前のインタラクションを最初から再計算することなく呼び出すことができる、一種の短期メモリです。そして、モデルが処理するトークンが増えるにつれて、KVキャッシュに保存する一時データも増え、全体的なメモリ使用量が増加します。
これらの要素、つまり埋め込み、そのサイズ、キャッシュがすべて積み重なっていきます。モデルがより多くのトークンを取り込み、より多くの関係性を保存するにつれて、メモリの必要性は増大し、サイズだけでなく複雑さも増します。この段階で、コンピューティングとメモリのアーキテクチャーが、モデルに何ができるか、そして何ができないかを形作り始めるのです。
問題は、モデルがどれほど多くの計算を実行できるかだけでなく、既知の情報にどれほど速くアクセスできるかということです。こうしたニーズに対応するために、メモリシステムの改善がますます重要になっています。その一例が高帯域幅メモリ(HBM)です。これはもともと科学計算用に開発されたものですが、現在ではAIアプリケーションをサポートするために応用されています。HBMは現在、AIシステムにおいて控えめながらも強力な役割を担っており、モデルが大量のデータをより効率的に処理できるよう支援しています。多くの場合、AIシステムの速度を低下させるのは計算能力だけではありません。メモリアクセスの速度制限や、モデルが既知の情報にどれほど速くアクセスできるかによっても速度が左右されます。
今後の展望
メモリの課題は、埋め込みだけでなくコンテキストの役割にも目を向けると、さらに深刻になります。モデルが保持する必要のあるテキストが増えるほど、必要なメモリも増えます。「3つの回答が残っています」のようなメッセージを見たことがあるなら、モデルがその会話の最大コンテキスト長(トークン単位で測定)に近づいていることを意味します。そのため、すぐに新しいスレッドを開始する必要があります。この制約は、AIシステムの機能に影響を与えるだけでなく、コンテキスト自体の処理方法や表現方法にも影響します。この点については、このブログシリーズの次回で詳しく取り上げます。
テクニカル寄稿者
1. Schneppat, J.-O.(日付なし)。ホワイトスペーストークン化。Schneppat AI (https://schneppat.com/whitespace-tokenization.html)
2. 埋め込み:埋め込み空間と静的埋め込み(日付なし)。Google Machine Learning Educationのコース (https://developers.google.com/machine-learning/crash-course/embeddings/embedding-space)
3. Tennenholtz, G、他 (2024年)。大規模言語モデルを用いた埋め込み空間の解明。ICLR 2024会議論文 (https://www.cs.toronto.edu/~cebly/Papers/2991_demystifying_embedding_spaces_.pdf)
4. TensorFlow(日付なし)。Embedding Projector (https://projector.tensorflow.org/)
5. Li, C.(2020年6月3日)。OpenAIのGPT-3言語モデル:技術概要。Lambda (https://lambda.ai/blog/demystifying-gpt-3)