618ZXW

大規模モデルは独自の言語理解を持つ!MITの論文が大規模モデルの「思考プロセス」を解明 | ICML 24

大きなモデルは現実世界に対する独自の理解を形成することができます。

MIT の研究により、モデルが強力になるにつれて、現実の理解が単なる模倣を超える可能性があることがわかった。

たとえば、大きな模型が一度も香りを嗅いだことがなければ、香りを理解できないということでしょうか?

研究により、いくつかの概念を自発的にシミュレートして理解しやすくすることができることが判明しました。

この研究は、大規模モデルが将来、言語と世界をより深く理解する可能性を秘めていることを示唆しており、論文は最高峰の会議である ICML 24 に採択されました。

この論文の著者は、MIT のコンピュータ科学および人工知能研究所 (CSAIL) の中国系アメリカ人博士課程学生 Charles Jin 氏と、彼の指導教官 Martin Rinard 教授です。

この研究では、著者らは大規模なモデルにコードテキストのみを学習させ、モデルが徐々にその背後にある意味を理解していることを発見した。

リナード教授は、この研究は現代の人工知能の核心的な問題に直接取り組んでいると述べた。

大規模モデルの機能は、単に膨大な統計的相関関係によるものなのか、それとも、それらが扱う現実世界の問題に対する有意義な理解を生み出すものなのか?

出典:MIT公式サイト

この研究もまた大きな議論を巻き起こした。

一部のネットユーザーは、大規模なモデルは人間とは異なる方法で言語を理解するかもしれないが、少なくともこの研究は、モデルがトレーニングデータを記憶する以上のことを行っていることを示しているとコメントした。

大規模モデルに純粋なコードを学習させる

大規模モデルが意味理解を生成できるかどうかを調べるために、著者らはプログラム コードとそれに対応する入力および出力で構成される合成データセットを構築しました。

これらのコード プログラムはKarelと呼ばれる教育言語で記述されており、主にロボットが 2D メッシュ ワールド内を移動できるようにするために使用されます。

このグリッドワールドは8x8のマス目で構成されており、各マス目には障害物、マーカー、または空きスペースを配置できます。ロボットはマス目間を移動し、マーカーの設置や回収などの操作を行うことができます。

Karel言語には、move(前進)、turnLeft(左に90度回転)、turnRight(右に90度回転)、pickMarker(マーカーを拾う)、putMarker(マーカーを置く)という5つの基本操作が含まれています。プログラムはこれらの基本操作のシーケンスで構成されます。

著者らは、それぞれの長さが 6 ~ 10 の 500,000 個の Karel プログラムを含むトレーニング セットをランダムに生成しました。

各トレーニングサンプルは、5つの入力状態、5つの出力状態、そして完全なプログラムコードの3つの部分で構成されています。入力状態と出力状態は、特定の形式で文字列にエンコードされています。

著者らはこのデータを使用して、標準の Transformer アーキテクチャに基づく CodeGen モデルのバリアントをトレーニングしました。

トレーニング中、モデルは各サンプルの入力および出力情報とプログラムプレフィックスにアクセスできますが、プログラム実行の完全な軌跡と中間状態を確認することはできません

著者らは、トレーニング セットに加えて、モデルの一般化パフォーマンスを評価するために 10,000 個のサンプルを含むテスト セットも構築しました。

言語モデルがコードの背後にあるセマンティクスを理解しているかどうかを調査し、モデルの「思考プロセス」をより深く理解するために、著者らは線形分類器と単一/二重隠し層 MLP を含む検出器の組み合わせを設計しました。

検出器への入力は、プログラムトークン生成中の言語モデルの隠れ状態であり、予測対象はプログラム実行の中間状態であり、具体的には、ロボットの向き、初期位置からのオフセット、障害物に面しているかどうかという 3 つの特徴が含まれます。

生成モデルのトレーニング中、著者らは上記の 3 つの特徴を 4000 ステップごとに記録し、同時に生成モデルの隠れた状態を記録して、検出器のトレーニング データセットを形成しました。

大規模モデル学習の3段階

著者らは、訓練プロセスの進行に伴って言語モデルによって生成されたプログラムの多様性や複雑性などの指標の変化を観察することにより、訓練プロセスを3つの段階に分けました。

  • バブリング段階: 出力プログラムの繰り返しが多く、検出器の精度が不安定です。
  • 文法獲得段階では、プログラムの多様性が急速に増加し、生成精度がわずかに向上し、困惑度が減少しました。これは、言語モデルがプログラムの構文構造を学習したことを示しています。
  • 意味学習段階: プログラムの多様性と構文構造の習得度は安定していますが、生成精度と検出器のパフォーマンスは大幅に向上しており、言語モデルがプログラムの意味を学習したことを示しています。

具体的には、バブリングフェーズは学習プロセス全体の最初の50%を占めます。例えば、学習が約20%に達すると、入力仕様に関わらず、モデルは「pickMarker」を9回繰り返す固定プログラムのみを生成します。

学習プロセスの50%から75%に相当する文法獲得フェーズでは、Karelプログラムにおけるモデルのパープレキシティが大幅に減少しました。これは、言語モデルがKarelプログラムの統計的特性により適応し始めたことを示しています。しかし、生成されたプログラムの精度はそれほど向上せず(約10%から約25%)、依然としてタスクを正確に完了することはできませんでした。

セマンティック学習段階は最後の 25% で、この段階ではプログラムの精度が約 25% から 90% 以上に劇的に向上し、生成されたプログラムは指定されたタスクを正確に完了できるようになります。

さらなる実験により、検出器は時刻 t における同時タイムステップを予測できるだけでなく、後続のタイムステップにおけるプログラム実行状態も予測できることが明らかになりました。

たとえば、生成モデルが時刻 t にトークン「move」を生成し、時刻 t+1 に「turnLeft」を生成するとします。

一方、時刻 t ではロボットは北を向いており、座標 (0,0) にありますが、時刻 t+1 ではロボットは西を向いており、位置は変わりません。

検出器が時刻 t における言語モデルの隠れ状態から、時刻 t+1 にロボットが西を向くことを正常に予測できる場合、それは、「turnLeft」が生成される前に、この操作によってもたらされる状態変化情報が隠れ状態にすでに含まれていたことを意味します。

この現象は、モデルが生成されたプログラム部分の意味を理解するだけでなく、生成プロセスの各ステップで次に生成されるコンテンツを予測して計画し、将来について推論する予備的な能力を示していることを示しています。

しかし、この発見は、この研究に新たな疑問をもたらした。

実験で観察された精度の向上は、本当に生成モデルの改善によるものでしょうか、それとも検出器自身の推論の結果なのでしょうか?

この疑問を解決するために、著者らは意味検出介入実験を追加しました。

実験の基本的な考え方は、プログラム操作の意味解釈ルールを変更することであり、具体的には「反転」と「敵対的」の 2 つの方法に分かれています。

「flip」はコマンドの意味を強制的に反転させるもので、例えば「turnRight」を「turn left」と強制的に解釈するといった意味です。しかし、このような反転を実行できるのは「turnLeft」と「turnRight」だけです。

「adversarial」は、以下の表に示すように、すべてのコマンドのセマンティクスをランダムにシャッフルします。

生成モデルの隠し状態が意味情報ではなくプログラムの構文構造のみをエンコードする場合でも、検出器は同等のパフォーマンスで隠し状態から変更された意味情報を抽出できるはずです。

逆に、検出器のパフォーマンスが大幅に低下した場合、検出器によって示されたパフォーマンスの向上は、実際のセマンティクスをエンコードする生成モデルの隠し状態によるものであることを示しています。

実験結果によれば、両方の新しいセマンティクスでは検出器のパフォーマンスが大幅に低下したことがわかりました。

これは特に「敵対的」モードで顕著であり、このモードのセマンティクスが元のセマンティクスと大きく異なるという特徴と一致しています。

これらの結果は、検出器が「独自に意味マッピングを学習する」可能性を強く排除し、生成モデルが実際にコードの意味を把握していることをさらに確認しています。

論文アドレス: https://icml.cc/virtual/2024/... 参考リンク: [1]https://news.mit.edu/2024/llm... [2]https://www.reddit.com/r/Loca...\_develop\_their\_own\_understanding\_of\_reality/