LLMが保存された知識を検索するために使う驚くほど単純なメカニズム
(news.mit.edu)- MITなどの研究チームは、ChatGPTのようなAIチャットボットの基盤である**大規模言語モデル(LLM)**が、保存された一部の事実を取り出す際に単純な線形関数を使うことが多いと確認した
- この関数は「人が演奏する楽器」や「人が生まれた州」のように事実の種類ごとに異なり、似た種類の事実には同じデコーディング関数が適用される
- 47個の関係について関数を推定した後、主語を変えてテストしたところ、「国の首都」のような関係で60%以上正しい目的語情報を回収した
- モデルが誤答しても内部には正解が残っている場合が多く、特定の情報がトランスフォーマーのどの層に保存されているかを見るattribute lensへとつながった
- すべての知識が線形に保存されるわけではなく、線形関数では見つけられない事実や、より大きなモデルでの精度検証が次の研究課題として残っている
LLM内部で発見された単純な知識検索の仕組み
- MITと複数機関の研究チームは、複雑なトランスフォーマー言語モデルが保存された事実を回収する際に、単純な線形関数を使うことが多いという結果を得た
- 線形関数は、2つの変数の間の直線的な関係を表す単純な形である
- 複雑な非線形計算を行うLLMの内部でも、一部の知識検索はこのような単純なメカニズムで動作している
- 関連論文は “Linearity of Relation Decoding in Transformer Language Models” で、研究はInternational Conference on Learning Representationsで発表される予定である
事実は主語と目的語の関係として扱われる
- トランスフォーマーに保存された多くの知識は、主語と目的語を結ぶ関係として表現できる
- “Miles Davis plays the trumpet” は、主語のMiles Davisと目的語のtrumpetを結ぶ関係である
- “Miles Davis plays the...” というプロンプトでは、Miles Davisが生まれた州であるIllinoisではなく、trumpetを答える必要がある
- モデルがある主題についてより多くの知識を得ると、その主題に関する複数の事実が複数の層にわたって保存される
- 問い合わせが入ると、モデルは応答生成のために最も関連性の高い事実をデコードしなければならない
関係の種類ごとに異なる線形デコーディング関数
- 研究チームはLLMを調べる実験を通じて、モデルが関係情報を単純な線形関数でデコードする場合があることを確認した
- 回収しようとする事実の種類によって、関数も異なる
- ある人が演奏する楽器を出力するときに使う関数と、ある人が生まれた州を出力するときに使う関数は異なる
- 研究チームはこうした関数を推定する方法を作り、「国の首都」「バンドのリードシンガー」など47個の関係について関数を計算した
- 可能な関係は無限に多いため、実験ではこの方法で扱える事実の種類を代表する部分集合が使われた
60%以上の回収成功と線形保存の限界
- 各関数は、主語を変えながら正しい目的語情報を回収できるかどうかテストされた
- 「国の首都」関数は、主語がNorwayのときはOsloを、EnglandのときはLondonを回収しなければならない
- 関数は60%以上のケースで正しい情報を回収した
- トランスフォーマー内部の一部の情報は、このような方法でエンコードされ、回収できる
- しかし、すべての情報が線形にエンコードされているわけではない
- ある事実についてモデルが知っており、その事実と整合するテキストを予測できても、研究チームが線形関数を見つけられないことがある
- この場合、モデルはその情報を保存するために、より複雑な方法を使っている
モデルが何を知っているかを見るattribute lens
- 推定された関数は、モデルが特定の主題について何を真だとみなしているかを確認するために使われる
- ある実験は “Bill Bradley was a” というプロンプトから始め、「スポーツをした」「大学に通った」に対応するデコーディング関数を適用する
- モデルが、Bill Bradley上院議員がバスケットボール選手で、Princetonに通っていたという情報を知っているかを確認する方法である
- この方法は、モデルがテキスト生成中に別の情報へ注意を向けていても、内部には複数の関連情報がエンコードされている可能性があることを示している
- これをもとにattribute lensというグリッドが作られた
- attribute lensは、特定の関係に関する情報がトランスフォーマーの複数の層のうちどこに保存されているかを可視化する
- 自動生成が可能で、モデル理解のための簡素化された手法として使える
誤答の修正可能性と残された研究課題
- モデルがプロンプトに誤って答えても、内部には正しい情報を保存している場合が多い
- このアプローチは、モデル内部の誤った情報を見つけて修正するために使うことができ、AIチャットボットが不正確または無意味な回答を出す傾向を減らすことにつながる可能性がある
- 今後の研究は、線形的に保存されていない事実で何が起きているのかをよりよく理解することに焦点を当てる
- より大きなモデルを対象に実験し、線形デコーディング関数の精度も研究する計画である
- Tel Aviv UniversityのMor Geva Pipekは、この研究がLLMが推論中に事実知識を想起する方法を理解するうえで欠けていたピースを明らかにし、属性抽出のための複雑な非線形計算が単純な線形関数でうまく近似できることを示したと評価した
1件のコメント
Hacker News のコメント
素晴らしい仕事だが、いまの AI の流れが抱える大きな問題も示していると思う。実際には単純な総和関数に近いパーセプトロンと大きく変わらないニューロンやルール集合から抜け出そうとしていない
単一ニューロン段階の順伝播トポロジーが学習と GPU 実行に最も容易だという理由だけで、タスク遂行に本当に最善だと言えるのかは疑問だ
大きなライブラリがサポートしていないため使われていない独特な学習方法やエンコーディング方式も多く、ニューラルネットの根本的なルール集合に本当の変化が出てくるまでは、結局「段階が追加されたパーセプトロン」と戦い続けることになりそうだ
NP 完全性の一側面は、その複雑性クラスのどんなアルゴリズムも結局「総和関数」のようなものに還元できる、という意味だと理解している
GPT が同じ性能に到達するのにニューロン数を10倍必要とするとしても、そのニューロンのための計算とメモリを買う費用がより安いなら、GPT のほうが目的達成にはより良い手段だ
より単純で学習可能な構造を見つけたのなら、何かをつかんだのかもしれない。複雑に飾ろうとする試みはすでに行われ、消えていった
「事実が線形関数として保存される」というのは、LLM の中に何らかの形でエンコードされた N 次元の事実空間があり、事実が点・超球・ボロノイ多様体のような形で埋め込まれている、という意味なのか気になる
だとすれば、事実を思い出すことは抽象的に見ると、ニューラルネットが使うキーを計算または記憶したうえで、その空間でキー・バリュー検索をすることなのか?
だとすれば、エッジ伝播グラフモデルの中にキー・バリューストアをどう入れるのか、今でも人が手でそう作るよく知られた手法があるのかも気になる
ついでに、「記憶の宮殿」テクニックも、人間の脳がより容易な検索のために事実を線形関数に入れる例だと見なせるのではないだろうか?
クエリをキーと内積したあと softmax でほとんどの場合1つの勝者キー、つまりクエリに最も近いキーを選び、それに対応する値を使う
ただし少し滑らかなので複数のキーにヒットでき、適切な QKV マッピングを見つけるよう勾配降下系の方法で最適化できる点が異なる
論文はざっと読んだだけだが、より大きなネットワークの中に隠れていたり回収可能だったりする比較的単純な関数があり、それらが概念間の特定の関係カテゴリを扱うという点が核心に見える
そうした関数を分離できれば理論的にはより直接に最適化できるので、この種のモデルの学習方法の発展につながる可能性もある
結局、「現代の」AI に対するよい批判の一つは、私たちは線形代数のスープを混ぜているだけだという考えだが、ある程度のモジュール性や還元主義を許せば、単純なブラックボックスではなく、構成要素中心のアプローチに近づけるかもしれない
そのためには、脳は位置をよく記憶し、その内外の経路を計画し、それを言葉や動きに変えることに非常に優れていなければならない
本当に興味深い。すぐに、プログラミング知識をどんな関数にエンコードしているのか、しかもそれが単純な線形関数なら、標準ライブラリや他のライブラリを、高価な学習や性能を損なうファインチューニングなしで LLM の脳に直接アップロードできるのではないかと思い浮かぶ
まだ SF のような能力だが、だんだん近づいているように思う
どこかではこれを読んで、Excel やデータベースを LLM にエクスポートする方法を考えている人がいそうだ
ブラックボックスの内部をうまくのぞき込む研究が出てくるのは心強い
この分野のもう一つの大きな成果として、ゲームをするよう学習した LLM の中にゲーム盤の表現を見つけた論文があった。この方向で他に良い成果があるのか気になる
著者たちが指摘しているように、LLM は述語的情報をエンコードする以上のことをしており、それはその一部にすぎない
より多くの計算を注ぎ込んだ最新モデルでも、この関係がまだ成り立つのか気になる
直感的には、言語に内在する構造のおかげで Word2Vec が可能になったのだと思う。その次に、Word2Vec と位置エンコーディングでエンコードした人間のテキスト数テラバイトを学習すると、学習中にも次のエンコーディングを超人的なレベルの認知で予測できるようになるように見える
入出力方式としてのバッグ・オブ・ワーズと、位置エンコーディングが機能するようにした限られたコンテキストウィンドウは、内部の認知構造と大きなインピーダンス不整合を作っていると感じる
だから GPT-4 などにずっと多くの計算が投入された分、新しい形の表現が進化した可能性は十分あり、人間がすべての重みを探査してまだ発見しなければならないのかもしれない
MemGPT は無制限の長期記憶のために最終的には AGI になるかもしれないと思うが、よりあり得る姿は Memento の主人公に近いものだと思う
[1] https://en.wikipedia.org/wiki/Memento_(film)
有名な「King - Man + Woman = Queen」という埋め込みの例を思い出す。埋め込みの中に意味的属性があるという事実が、単純な線形関数でもうまく機能する理由を説明してくれる
word2vec の関係ベクトルに似ていると感じる。「Xの」のようなベクトルを足すと、しばしば正しい答えが出る
原理は今も同じで、Transformer はエンティティを埋め込み空間にマッピングすることを「単に」よりうまくやれるようになっただけかもしれない
つまり x = 0 は「飛ぶ」、x = 0.01 は「運転する」、x = 0.02 は「紫色」というようなものというより、x < 1.5 は「冷たい」、x > 1.5 は「熱い」に近いと見ている
だから量子化、さらには 1 ビット量子化でさえ、しばしば機能する理由の一つでもある
また、テキストや画像を BERT や CLIP 系のモデルに入れた後、線形決定境界をよく使う古典的な機械学習モデルを適用しても良い結果が出る理由でもある
LLM は優れた圧縮メカニズムのように見える
PC に llama のコピーをローカルに置いて、事実上インターネット全体にアクセスできるという点が驚きだ
最新のダンプ基準で Common Crawl は 43 億ページだが、Google は 2016 年に Web 上には 130 兆ページあると推定していた
130 兆と 43 億の差は、ほとんど 130 兆だ。Google の検索可能なテキストインデックスに絞っても「数千億ページ」で、およそ 100PB あり、Common Crawl の 400TB と比較される
PAC 学習可能性、有限 VC 次元、そして次の形の圧縮は完全に同値である
https://arxiv.org/abs/1610.03592
基本的に、個々のニューロンやパーセプトロンは空間を 2 つの部分空間に分けるだけだ
4 ビット重みの「パラメータ」700 億個からなる CSV ファイル・データベース・モデルが、どうしてあらゆる話題にほぼ博識な対話型 LLM/GPT になるのか理解できない
調べてみると、4 ビットは単なる圧縮方式で、モデルは結局 f32 を見ることになるのだろうか?
量子化とは、ニューラルネットワークの重みである 32 ビット浮動小数点数を、保存とメモリ効率のために 4 ビット値のようなはるかに小さいビット表現へマッピングする過程だという
逆量子化は、モデルが使われるとき、つまり推論時や場合によっては学習中に起こり、4 ビット量子化重みが実際の計算に使われる浮動小数点数へ再変換される
では「パラメータ」と「モデルが知っている固有トークン数、つまり語彙サイズ」との関係は何なのか気になる
見たところ、LLaMA は GPT-3 と比べて語彙サイズ 32,000 個、パラメータ 650 億個しかないという
LLaMA のようなモデルの 650 億パラメータは、訓練データ内のトークン間で学習された関係に基づき、入力にどう応答するかを決定する非常に複雑なマッピングシステムとして機能するという
もう少し複雑に言えば、圧縮した Wikipedia のテキストダンプでさえ 70GB 未満であり、これはインターネットの非可逆圧縮である
そのモデルのトークン埋め込み長が 1024 なら、1 ビット量子化であっても各トークンは 2^1024 個の可能な値を持つ
コンテキスト長が 32,000 トークンなら、可能な入力は 32,000^2^1024 個である
LLM は学習モードで、以前は不可能だった膨大な情報から多数の IF-THEN ルールを自動的に作り出している、と大まかに言えるだろうか?
この論文は素晴らしいし、こうしたアイデアを検証するために実験を回している点も良い。ただ、アイデア自体がどれほど新しいのかはよく分からない
LLM が単語間の単純な統計的傾向を自然に学習するなら、こうした結果は予想できるのではないか?
むしろ、LLM のすべての振る舞いがこれほど単純に説明できるわけではないことを明確に示した点のほうが、はるかに素晴らしいと思う