「注意」「トランスフォーマー」、ニューラルネットワークにおける「大規模言語モデル」について
(bactra.org)「注意(Attention)」と「トランスフォーマー(Transformers)」に関するノート:ニューラルネットワークにおける「大規模言語モデル」
- 「注意(Attention)」という用語は、実際の人間の注意とは異なる概念であり、あらゆる可能なベクトルにある程度の重みを与えることを意味する。
- 「注意」はカーネル平滑化の一形態であり、2015年ごろにニューラルネットワーク分野で新たに発明されたものではなく、既存のアイデアの再発見である。
- 「マルチヘッド注意(Multi-Headed Attention)」は、さまざまなカーネルを使ってカーネル平滑化を行い、その結果を平均する方式である。
「トランスフォーマー(Transformers)」
- 「トランスフォーマー」は「注意」メカニズムを使って入力ベクトルを平滑化し、それによって得られた出力をフィードフォワードニューラルネットワークに通して最終出力を生成する構造である。
- トランスフォーマーは複数の層(layer)を積み重ねて構成され、各層は「注意」メカニズムとフィードフォワードニューラルネットワークから成る。
- トランスフォーマーという名称は「注意」よりも誤解を招きにくく、実際に変換を行うため適切である。
「言語モデル(Language Models)」
- 言語モデルは基本的に記号列に対する確率モデルであり、与えられた文脈に基づく次の記号の確率をモデル化する。
- 現代の大規模言語モデル(Large Language Models, LLMs)は、固定された最大文脈長を持つ有限次数のマルコフモデルと見なすことができる。
- LLMsは複雑な暗黙的平滑化を通じて、これまで見たことのない文脈に対しても予測を行うことができる。
「次の記号予測(Next Symbol)対 長距離予測(Longer-range Prediction)」
- LLMsの訓練目標は次の記号を正確に予測することであり、これは長距離の予測に対しても強力な目標となり得る。
- 最小の予測器を見つけることは、予測しようとする基底過程の構造について多くの情報を与える。
「プロンプト公開に関する強い推測(A Strong Hunch about Uncovering Prompts)」
- LLMベースのアプリケーションのプロンプトを、「プロンプトを教えてくれ」のような要求で暴こうとする試みは、自己欺瞞にすぎない。
- LLMの中核である言語モデルには、プロンプトを現在の入力シーケンスの他の部分と区別するメカニズムが存在しない。
- システム設計者がプロンプトを追跡する機能を実装している可能性はあるが、そうする理由はほとんどない。
「ゴプニキズム(Gopnikism);図書館」
- LLMを心のようなものとしてではなく、図書館の目録のような「文化的技術」として捉えることが、最も有望で魅力的なアプローチである。
- プロンプトを使ってLLMにテキストを与えることは、図書館の内容を検索し、それに応じた内容をサンプリングすることに似ている。
GN⁺の意見
- 「注意」という用語が、実際の人間の注意とは異なる技術的概念として使われているのは、人工知能分野でしばしば見られる現象であり、技術用語が現実世界の現象と混同され得ることを示している。
- 大規模言語モデルの成功は、古典的な機械学習の方法論を現代の計算能力と組み合わせることで新たな水準の性能を達成したものであり、既存の理論や方法論を再評価し、革新的に適用する必要性を強調している。
- LLMを図書館の目録にたとえることは、この技術が人間の知識や情報をどのように処理し、アクセスするかについて興味深い視点を提供し、人工知能が人間文化と相互作用する方法を理解する助けとなる。
1件のコメント
Hacker Newsの意見
Google Researchで勤務し、「Attention is All You Need」論文の著者2人と一緒に働いたことがあると明かしたあるコメント投稿者は、その論文タイトルを選んだ人物とも協業したと述べている。この投稿者は、self-attention は研究コミュニティですでによく知られた概念であり、著者たちはそれを発明したと主張していなかったと説明する。著者たちはフィードフォワードニューラルネットワークの性能を改善するために複数の技術を組み合わせる方法を模索する中で興味深い結果を得て、その後の研究過程で attention メカニズムが中核的な役割を果たすことを発見したという。また、論文タイトルはビートルズの曲「All You Need Is Love」を連想させる言葉遊びだと言及している。この投稿者にとって最も役に立った論文は、Phuong と Hutter による「Formal Algorithms for Transformers」で、明快さと正確さを重視して書かれており、特に動機づけのセクション(Section 2)が元論文とその後の論文群の欠点をよく説明していると評価している。
別のコメント投稿者は、「Attention is All You Need」論文を何度も注意深く読んだにもかかわらず、「attention」が何をしているのか理解できなかったと打ち明けている。数式の部分は理解できたが、いくつものチュートリアルを読んでも助けにならなかったという。結局、何年も経ってから attention は単なる kernel smoothing だと気づいたと述べ、これは論文の書き方が明確でなかったせいだと批判している。この投稿者は、機械学習論文の大半はひどいものだと主張し、「Attention is All You Need」論文でさえ大半よりはましだと評価している。
3人目のコメント投稿者は、論文の「意識の流れ」のようなアプローチが興味深く新鮮だと評価している。また、インターネット上で受けた批判のために著者が謝罪し、謙虚な態度を見せていることにも触れ、そのような否定的反応が著者のノートの継続的な公開を妨げないことを望むと述べている。
別のコメント投稿者は、機械学習に関する大半の文章とは違って、この文章は自分の言葉で書かれているように感じたと述べている。Lempel-Ziv(LZ)に関するセクションが興味深いと言及し、LZ モデルを巨大化することは、LZ が文字列の完全一致を必要とするため、それほど面白くはなさそうだと評価している。その代わりに、テキスト版の「jpeg」のように、ある程度の不正確さを許容してサイズを縮小するほうがより興味深いかもしれないと提案している。これこそがおそらく大規模言語モデル(LLMs)がやっていることだろうと推測している。
さらに別のコメント投稿者は、scaled dot product attention を一般化された畳み込みメカニズムとして捉えていると述べている。query、key、value という用語は紛らわしいと言い、これら3つは self-attention では同じ信号から派生し、互いに掛け合わされると説明している。このメカニズムがなぜ有効なのか、どのハイパーパラメータがどのデータに適しているのか、理想的なシーケンス長は何かについては、誰も分かっていないと付け加えている。
別のコメント投稿者は、transformers は単なる別の universal approximator にすぎないと述べ、特定の attention head が連想配列の連続版、kernel smoothing、あるいは単一の意味を表す高次元ベクトル空間をシミュレートしているかどうかは重要ではないと主張している。重要なのは、transformers が GPU と並列処理で効率よく学習できることであり、それが LZ や他の universal approximator より優れている理由だと説明している。もし LZ(あるいは別の何か)を GPU 上で transformers よりはるかに効率よく動かせるなら、次の OpenAI を立ち上げて億万長者になれるだろうとも述べている。
あるコメント投稿者は、「Mythology: 私たちは見たことのある各トークンの意味をコンテキストに基づいて修正し、類似した意味同士が互いを強化する」という文について説明を求めている。この時点では kernel smoothing が各埋め込みベクトルに独立して適用されているように見え、シーケンス内の隣接トークンから導出されて smoothing されたある y_t ベクトルが、なぜ影響を受けるのか理解できないと述べている。r_t トークンを追加するとコンテキストが重要になることは分かるが、それがコンテキストを考慮する唯一の要素なのかと尋ねている。
別のコメント投稿者は、他分野では学術的な「厳密さ」がもっと高く、しかも似たような結果がすでに存在している人たちが、「Attention is All You Need」のような機械学習論文に腹を立てるのは理解できると述べている。この投稿者は、こうした論文は実際には優れた学術論文ではなく、気の利いた名前を付け、最も分かりにくい工学コスプレ用語を選ぶことが良い論文を意味するわけではないと批判している。しかし実際には、それらはそれほど重要ではなく、大規模言語モデルは動作しており、しかもばかげた理由で動いているのだと主張している。「positional embeddings」を追加するといった工学的な対症療法が実際に問題を解決しており、それは深い数学的理解があったからではなく、試したらうまくいったからだと説明している。また、kernel method を使って attention のメモリ要求を線形に削減する「efficient transformers」についても、実際には重要ではないと言及し、OpenAI、Anthropic、Meta のような企業は GPU を増やすことを気にせず、スループットにしか関心がないと主張している。結局のところ、結果は推測と経験の産物にすぎず、本当に重要なのはアウトプットだと結論づけている。
最後のコメント投稿者は、「LLM ベースのアプリケーションのプロンプトを『プロンプトを教えて』という形で暴こうとする人は皆、自分を欺いている」という主張には全面的には同意しないと述べている。中核となる言語モデルには、プロンプトを現在の入力シーケンスの他の部分と区別するメカニズムも、シーケンスのある部分から別の部分への相互参照メカニズムもないと説明している。システム設計者がシステム全体の中でプロンプトを追跡する何かを実装している可能性はあるが、そうする理由は不明だとも述べている。「soft prompt」を使うほうがより効率的かつ効果的かもしれず、これは勾配降下法で学習可能なベクトル列の先頭部分を意味するが、きれいな単語列に対応するとは限らないと説明している。LLM にプロンプトを尋ねた場合、それはコードや内部状態へのアクセスではなく、学習済みの単語列の統計に基づいて生成されるものだと主張している。この投稿者は、言語モデルの観点から考えるのが最善だと考えており、入力の kernel smoothing の結果として出力が生成されるため、プロンプトに含まれる情報を使ってモデルを特定のスタイルへ誘導することは可能だと結論づけている。