
AIの脳を解剖:GPT-4の16百万パターンから見えるもの
大規模言語モデルのニューラルネットワークの内部の仕組みはブラックボックスであるといわれ解明されていません。OpenAI公式は、「Extracting Concepts from GPT-4」という公式ブログを書き、GPT-4が出力を生成するために重要な特徴を特定する方法「スパースオートエンコーダ」についての論文について解説しています。このNoteでは、この論文をわかりやすく解説していきます。
ニューラルネットワークの解釈の難しさ
普通の人間が作ったものとは違って、ニューラルネットワークの内部の仕組みを私たちはあまり理解していません。例えば、エンジニアは車を設計し、その部品の仕様に基づいて安全性や性能を評価し、修理することができます。しかし、ニューラルネットワークは直接設計されるのではなく、それを訓練するためのアルゴリズムを設計します。その結果としてできあがるネットワークは、内部の仕組みがよく理解されておらず、簡単に分解して理解することができません。つまり、AIの安全性について、車の安全性と同じように考えることはできないのです。
現実世界の概念は非常に疎(スパース)です
ニューラルネットワークを理解し解釈するためには、まずニューラル計算のための有用な構成要素を見つける必要があります。しかし、言語モデルの内部でのニューラルアクティベーション(活性化)は予測不可能なパターンで動作し、多くの概念を同時に表現しているように見えます。また、それらは非常に密に活性化し、すべての入力に対して常に活動しています。しかし、現実世界の概念は非常にスパース(疎)です。つまり、ある状況で関連する概念は全体のごく一部に過ぎません。これが、スパースオートエンコーダの使用を促す理由です。
スパースオートエンコーダとは
スパースオートエンコーダは、ニューラルネットワーク内で特定の出力を生成するために重要な少数の「特徴」を特定する方法です。これは、人がある状況について考えるときに心に浮かべる少数の概念に似ています。これらの特徴はスパースな活性化パターンを示し、直接的な解釈のためのインセンティブがなくても、人間が理解しやすい概念と自然に一致します。
論文「Scaling and evaluating sparse autoencoders」の解説
この論文では、スパースオートエンコーダという技術について研究しています。スパースオートエンコーダは、コンピュータがデータを理解するのを助けるために使われる特別なツールです。具体的には、たくさんの情報から重要な部分だけを取り出して、それを元にデータを再現するものです。
スパースオートエンコーダとは?
スパースオートエンコーダ:たくさんのデータの中から、重要な部分(特徴)だけを見つけ出すためのツールです。たとえば、大きな文章の中からキーワードだけを抜き出すようなものです。
使い方:これを使うと、コンピュータがデータを効率的に処理できるようになります。
この研究のポイント
スパースネスのコントロール:
スパースネスとは、たくさんの情報の中で本当に重要な部分だけを使うことです。この研究では、スパースネスを簡単に調整できる方法を見つけました。
大規模モデルのトレーニング:
非常に大きなデータ(16百万の潜在変数)を使って、最新のAIモデル(GPT-4)にこの技術を適用しました。
新しい評価方法:
どれだけうまく重要な部分を見つけられるか、どれだけ効率的にデータを再現できるかを評価する新しい方法を考案しました。
デッドラテンツの防止:
時々、スパースオートエンコーダの中でまったく役に立たない部分(デッドラテンツ)が出てくることがありますが、それを防ぐ方法も見つけました。
オープンソースの提供:
誰でもこの技術を使えるように、トレーニングのためのコードやビジュアライザーを公開しました。
オートエンコーダのサイズが大きくなるにつれて改善される
提案されたオートエンコーダの品質を評価するために、回復された仮定された特徴、アクティベーションパターンの説明可能性、下流効果のスパースネスに基づく新しい指標を導入しました。これらの指標は一般にオートエンコーダのサイズが大きくなるにつれて改善されることが示されました。
何が起きているのか?
オートエンコーダのサイズが大きくなると、つまりコンピュータが使える記憶領域(データを保存したり処理する場所)が増えると、オートエンコーダの性能(どれだけうまく仕事ができるか)が良くなることがわかりました。
具体的にはどういうことか?
オートエンコーダのサイズ:
ここで言う「サイズ」は、オートエンコーダが持つ「潜在変数(特徴を表すデータの小さな部分)」の数です。
例えると、オートエンコーダが持っている「引き出し」の数です。この引き出しに重要な情報をしまっておくことができます。
サイズが大きくなるとどうなるのか?:
引き出しがたくさんあると、たくさんの重要な情報を整理して保存することができます。
だから、オートエンコーダがデータを処理して、元のデータに戻すときに、もっと正確に、効率よくできるようになります。
なぜ指標が改善されるのか?:
「指標」は、オートエンコーダがどれだけうまく仕事をしているかを測るための基準です。
サイズが大きいオートエンコーダは、もっと多くの情報を正確に再現することができるので、結果として仕事の質が良くなるのです。
例えば、スパースネスや再現性などの指標が改善されるということです。
簡単な例え
小さなオートエンコーダ:引き出しが少ないクローゼット。たくさんの物を入れようとすると、無理やり詰め込むことになり、必要な物がすぐに見つからない。
大きなオートエンコーダ:引き出しが多い大きなクローゼット。たくさんの物をきちんと整理して入れることができ、必要な物がすぐに見つかる。
だから、オートエンコーダが大きくなると、重要な情報をもっと整理して保存できるので、仕事の質が良くなるということです。
デッドコンテンツとは?
デッドラテンツというのは、オートエンコーダの中でまったく役に立たない部分のことです。具体的には、情報を全然処理しない「潜在変数(隠れたデータ)」を指します。ちょうど、クローゼットの中にある使われない引き出しのようなものです。
デッドラテンツが発生するとどうなるのか?
効率の低下:
オートエンコーダはたくさんの引き出し(潜在変数)を持っていますが、デッドラテンツがあると、それらの引き出しは空っぽで何も入っていません。
その結果、必要な情報を収納するためのスペースが減り、オートエンコーダの効率が悪くなります。
再現性の低下:
デッドラテンツがあると、情報を正確に再現する能力が下がります。必要な情報が全て収まらないため、データを元通りに再現できなくなります。
例えば、作文を元に戻すときに、いくつかの単語が欠けてしまうようなものです。
計算の無駄:
デッドラテンツがあると、それを計算するための時間や資源が無駄になります。使われない引き出しを何度も開け閉めするようなものです。
なぜデッドラテンツが発生するのか?
初期設定や学習方法の問題:
オートエンコーダが学習する際に、一部の潜在変数が全く使われなくなることがあります。これは、初期設定や学習方法に問題がある場合に起こります。
デッドラテンツを防ぐ方法
この研究では、デッドラテンツを防ぐための方法をいくつか提案しています:
初期設定の改善:
オートエンコーダの最初の設定を工夫することで、全ての潜在変数が活性化するようにします。たとえば、すべての引き出しに少しずつ物を入れておくような感じです。
補助損失の導入:
学習中に、デッドラテンツが発生しないようにするための追加の目標(補助損失)を設定します。これにより、全ての潜在変数が使われるようになります。ちょうど、どの引き出しも使うようにチェックするようなものです。
簡単な例え
デッドラテンツがある場合:学校のロッカーにたくさんの引き出しがあるけど、一部の引き出しには何も入っていない。そのため、他の引き出しに物が詰め込まれて探しにくくなります。
デッドラテンツがない場合:全ての引き出しに適切に物が入っているので、必要な物をすぐに見つけることができます。
デッドラテンツを防ぐことで、オートエンコーダはもっと効率的に働き、情報を正確に処理できるようになります。