※本記事は、スタンフォード大学コンピュータサイエンス学科博士課程のShikhar J. Murty氏による講義「Lecture 14 - Reasoning and Agents」の内容を基に作成されています。この講義はスタンフォード大学のコースCS224N「NLP with Deep Learning(深層学習による自然言語処理)」の一部で、「推論と言語モデルエージェント」について取り上げています。講義の詳細情報は https://www.youtube.com/watch?v=I0tj4Y7xaOQ でご覧いただけます。本記事では、講義の内容を要約・構造化しております。
なお、本記事の内容は原講義の内容を正確に反映するよう努めていますが、要約や解釈による誤りがある可能性もありますので、正確な情報や文脈については、オリジナルの講義動画をご視聴いただくことをお勧めいたします。
講師のShikhar J. Murty氏はスタンフォード大学コンピュータサイエンス学科の博士課程候補生です。この講座はChristopher Manning教授(スタンフォード大学のThomas M. Siebel機械学習教授、言語学・コンピュータサイエンス教授、スタンフォード人工知能研究所(SAIL)ディレクター)が監修しています。
スタンフォード大学のオンライン人工知能プログラムについての詳細は https://stanford.io/ai をご覧ください。
1. イントロダクション
1.1. 講義の概要:推論とエージェントの2つのトピック
今日の講義では、言語モデルの2つの興味深い応用について見ていきます。講義の前半では、数学や幾何学、空間的推論などの領域で言語モデルを用いた推論について話し、後半では言語モデルを使ってグラウンドされた環境で行動を取る方法について説明します。
少し免責事項を述べておくと、今日の内容の多くは過去3〜4年間に行われた研究に基づいており、まだ多くの疑問があり、十分に答えられていない問題も多くあります。ですので、これらのトピックについてはより議論的なアプローチで進めていければと思います。
1.2. 研究分野としての新しさと未解決の問題の存在
今日の講義内容は過去3-4年の間に行われた研究に基づいており、このトピックには非常に多くの疑問があり、まだ答えられていない問題も数多く存在します。特に言語モデルの推論能力やエージェントとしての応用は急速に発展している分野であり、確立された理論やベストプラクティスというよりも、現在進行形の研究領域です。
このため、今日の講義では従来の教科書的な知識を伝えるというよりも、むしろこれらのトピックについてより議論的なアプローチを取りたいと思います。推論やエージェントのような複雑な言語モデルの応用には、まだ解明されていない側面が多く、学術的にも産業的にも活発に研究が進められている分野です。これらの新しい研究領域について一緒に考えていけることを楽しみにしています。
2. 推論の基礎
2.1. 推論の種類の定義
推論に関する講義を始める専門家は、まず様々な種類の推論について説明することが多いので、私もそうしたいと思います。高いレベルでは、推論とは事実と論理を使って答えに到達することです。
より具体的には、私たちが話せる推論には3つの異なるカテゴリーがあります。
演繹的推論(Deductive reasoning)
最初のカテゴリーは、おそらく皆さんが最も馴染みのある演繹的推論です。これは論理の規則と前提から確固たる結論に至るものです。例えば、「すべての哺乳類は腎臓を持っている」と「すべてのクジラは哺乳類である」という文があった場合、「すべてのクジラは腎臓を持っている」という結論を導き出すことができます。このような推論のステップを複数行うこともできます。
帰納的推論(Inductive reasoning)
2番目の推論形式は帰納的推論で、観察から結論を導き出すものです。例えば、翼を持つ生き物はたいてい鳥であるという経験から学び、翼を持つ生き物を観察した場合、その生き物はおそらく鳥であるという結論を導き出すことができます。このような形の推論が帰納的です。
発想的推論(Abductive reasoning)
最後に、発想的推論があります。これは観察が与えられた後、可能な説明を導き出していく推論です。例えば、エンジンの下に液体の水たまりがあり始動しない車を見た場合、その状況についての推論を始めます。そのうちの一つは、車のラジエーターが漏れているというものかもしれません。
2.2. 形式的推論と非形式的推論の区別
上記の分類とは別に、推論を形式的なものと非形式的なものに分けて考えることもできます。形式的推論は公理と形式論理の規則を使用して真理条件を導出するものです。
一方、非形式的推論はおそらく皆さんと私が毎日行っているもので、日常的な状況について推論し、常識を用いて結論を導き出します。
この講義の大部分で、私が「推論」と言う場合、非形式的な演繹的推論を意味しており、それは多くの場合、複数のステップを伴うものです。
3. 言語モデルにおける推論
3.1. Chain of Thought(思考連鎖)プロンプティング
言語モデルに話を戻しましょう。講義9、10、11で学んだように、大規模言語モデルは人間の好みや制約を反映したテキストの妥当な続きを生成することが非常に得意です。今日は、それらがまた推論もできるかどうかを探っていきます。
この質問に答えるための最も基本的な方法の一つは、プロンプティングを使うことです。おそらく皆さんはすでにこれを見たことがあるでしょう。Chain of Thought(思考連鎖)プロンプティングという人気のある手法があり、言語モデルに答えを出す前に推論のステップを生成させます。これは、言語モデルがテスト時に模倣できるような明示的な推論ステップを持つインコンテキスト例をいくつか提供することで実現できます。
"Let's think step by step"の有効性
Chain of Thoughtプロンプティングに関するもう一つの驚くべき特性は、時にはこれらのインコンテキスト例を示す必要さえないということです。単に「Let's think step by step(一歩ずつ考えましょう)」という文でプロンプトするだけで、言語モデルに答えを出す前に推論の根拠を生成させることができます。
これは非常にシンプルですが、さらに進めていきましょう。
3.2. Self-consistency(自己一貫性)手法
複数のパスを生成して多数決を取る手法
言語モデルに推論をさせるためのもう一つの人気のある方法は、self-consistency(自己一貫性)を通じたものです。ここでは、推論のステップとそれに続く答えを貪欲にサンプリングする代わりに、複数の推論ステップと、それに対応する複数の答えをサンプリングします。
右側の図に示されているように、質問があり、通常のChain of Thoughtプロンプティングでは推論過程を貪欲にデコードし、その推論に基づいて答えを生成します。self-consistencyでは、複数回サンプリングするので、複数の推論過程が生成され、それらはすべて複数の答えにつながります。そして、最も一般的なものを選びます。
この考え方は、ある答えが複数の推論過程で繰り返し現れ、大多数の推論過程が同意するなら、その答えは正しい可能性が高いというものです。self-consistencyの著者たちは、様々な数学的推論タスクにおいて、複数回サンプリングして多数決を取るというこの単純なアイデアを追加すると、標準的なChain of Thoughtよりもパフォーマンスが劇的に向上することを発見しました。
単純なアンサンブルより優れた性能を示す実験結果
興味深いことに、この結果を初めて見たとき、これは単なるアンサンブリングだと思いました。これはCS229で学んだことで、システムのパフォーマンスを向上させたい場合、異なるランダムシードを持つ10個の分類器を作成し、分類決定を行い、多数決を行うというアイデアです。しかし、これは単純なアンサンブリング以上のことをしているかもしれないことが分かりました。
著者たちはまた、複数の異なるプロンプトを持つ同じ言語モデルでアンサンブリングアプローチを比較し、その後多数決を行うアプローチと比較しました。結果として、self-consistencyは単純なアンサンブリングよりも優れていることが判明しました。
4. 複数ステップの推論手法
4.1. Least to Most(最小から最大へ)プロンプティング
問題分解戦略の統合
今日、私は複数ステップの推論について話すと言いましたが、これまでは数学の問題やプロンプティングについて見てきましたが、必ずしも複数ステップの推論ではありませんでした。複数ステップの推論の主な側面の一つは、大きな問題をいくつかの部分に分解し、それぞれのサブパートに答え、すべてを組み合わせて解決策にすることを含みます。
この種の分解戦略は、Least to Most(最小から最大へ)プロンプティングと呼ばれる別のプロンプティング手法に統合されました。Least to Mostプロンプティングの背後にある考え方は、質問が与えられたときに、まず図に示されているようにサブ質問に分解し、これらのサブ質問に基づいて言語モデルにそれぞれのサブ質問に答えさせ、そしてサブ質問への回答に基づいて最終的な答えを生成するというものです。
数学の推論問題に対する標準的なChain of Thoughtプロンプティングでは、質問の後に推論過程と答えが続きますが、Least to Mostプロンプティングではこの分解戦略を使用します。質問を取り、直接推論過程を生成するのではなく、言語モデルに問題を分解するよう求め、そして2つの異なるサブ問題を持ち、それらのサブ問題の両方に答え始め、それらのサブ問題への回答に基づいて最終的な答えを出します。
少ない推論ステップから多くのステップへの一般化
Least to Mostプロンプティングの興味深い実験の一つは、少数の推論ステップから多くの推論ステップへの一般化が可能であることを示すものでした。ここでは数学の文章問題で、2つの推論ステップがあり、これをインコンテキスト例として言語モデルに示すと、5つ以上の推論ステップを必要とする例でも一般化し続けることがわかります。
これは標準的なChain of Thoughtよりもはるかに優れていますが、このような方法で推論を構造化することが本当に根本的なものなのかははっきりしていません。彼らが報告したもう一つの結果は、十分なプロンプトエンジニアリングを行えば、「最良の」通常のChain of Thoughtの行に対応する結果はLeast to Mostプロンプティングと同等であるということでした。しかし、問題をサブ問題に分解し、サブ問題を解決し、そしてサブ問題への回答に基づいて解決策を構築するという考え方は興味深いものです。
4.2. プロンプトエンジニアリングの限界と可能性
これまで見てきたのは、言語モデルから推論行動を引き出すための様々なプロンプティング手法でした。しかし、十分なプロンプトエンジニアリングを行えば、通常のChain of Thoughtアプローチでも「Least to Most」と同等のパフォーマンスを達成できることが研究結果から示されています。
プロンプトエンジニアリングには明らかな可能性がありますが、同時に限界もあります。例えば、最適なプロンプトを見つけるために多くの試行錯誤が必要であり、タスクが変わると同じプロンプトが効果的でなくなる可能性があります。また、大規模なChain of Thoughtプロンプトを利用すると、コンテキストウィンドウの多くが占有され、モデルが処理できる問題の複雑さに制限が生じることもあります。
これらのプロンプティング手法は言語モデルから推論行動を引き出すのに役立ちますが、推論自体をモデルに直接教える方法ではありません。むしろ、モデルが持っている潜在的な能力を引き出すための方法と考えるべきでしょう。
問題分解のようなアプローチは複雑な問題を解決するのに役立ちますが、言語モデルが本当に「推論」を行っているのか、それとも単にプロンプトで示されたパターンに従っているだけなのかという根本的な疑問は残ります。この点については、後の反事実的評価のセクションでさらに詳しく検討します。
5. 知識蒸留による推論能力の向上
5.1. Orcaモデルの紹介
これまでのプロンプティング手法は言語モデルから推論行動を引き出す方法でしたが、他にもできることはあるでしょうか?例えば、非常に大規模な言語モデルに推論をさせるのではなく、何らかの方法でこの種の推論行動をより小さな言語モデルに取り込むことに興味があるかもしれません。そのための一般的なアプローチの一つが蒸留(distillation)です。おそらく、より小さなLLaMAモデルを、より大きなLLaMAモデルを模倣するように微調整したいと考えるでしょう。
GPT-4からの説明を小規模モデルに蒸留
このモデルはOrcaと呼ばれ、高いレベルでは、Orcaは小さい13億パラメータのLLaMAモデルをGPT-4によって生成された説明で微調整します。
説明データセットの構築手法
このデータを構築するのは非常に簡単で、3つのステップがあります。最初のステップとして、FLAN V2コレクションから様々な指示を取得します。FLAN V2は基本的にデータセットであり、複数のデータセットを1つのコレクションにまとめたもので、指示と質問と回答のペアで構成されています。すぐに例を示します。
次に、システムメッセージとともにこれらの指示でGPT-4またはChatGPTにプロンプトを与えます。システムメッセージの目的は、ChatGPTやGPT-4に回答とともに情報量の多い説明を生成させることです。ここに、中央値の計算に関する単純なデータ処理の質問があります。それに対してシステム指示があり、「あなたのステップを正当化し、ステップバイステップで答えてください」と述べています。
出力を生成する際、モデルはどのように答えに至ったのか、非常に詳細な説明を提供します。Orcaはまさにこの説明を使用して、はるかに小さなモデルを微調整します。
これらの説明を手に入れた後、13億パラメータのLLaMAモデルをこれらの説明で微調整します。これは、大規模モデルから小規模モデルへの知識の効果的な移転方法を示しています。
5.2. Big Bench Hard ベンチマークでの評価
ここまでは主に算数の推論について見てきましたが、ここからは別の推論のベンチマークであるBig Bench Hardに目を向けましょう。これは複数ステップの推論のための別のデータセットです。
多様な推論タスクとその複雑性
Big Bench Hardの例をいくつか見てみましょう。これは合計23の異なるサブタスクで構成されており、いくつかの例を示します。一つはブール式の評価です。例えば「true and false and not true and true is 」という質問があり、Chain of Thoughtを使えば、モデルはそれぞれの部分式を評価して最終的な答えに到達できます。
Big Bench Hardからのもう一つのタスク例は日付理解です。「明日は特定の日付です。今日から1年前の日付は何ですか?」という質問があり、いくつかの選択肢が提示されます。ここでもモデルは基本的なChain of Thoughtに従って段階的に考え、答えを導き出すことができます。
これが、Big Benchのタスクの雰囲気です。これらのほとんどは複数ステップの推論を含み、かなり人工的ですが、言語モデルにとっては妥当に難しいものです。
もう一つの例は幾何学的形状で、これは言語モデルが何かできることは驚きです。SVGパス要素が与えられ、「このSVGはどのような形になりますか?」という質問があります。いくつかの選択肢があり、モデルは「Let's think step by step」とプロンプトされると、答えを生成します。その答えが正しいかどうかはわかりませんが、何らかの答えを生成します。
このデータセットは空間的推論、データ理解、ブールの評価など様々な種類の推論をカバーしており、多肢選択式なので精度の数値を得やすくなっています。
左側には大規模言語モデルのパフォーマンスがあります。これはゼロショットで、「Let's think step by step」というプロンプトを用いたChain of Thoughtです。GPT-4はBig Bench Hardとの潜在的な汚染問題があるのでその列は無視するかもしれません。WunaはLLaMA 13Bをベースとした指示調整モデルで、数ヶ月前は最先端でした。そしてOrcaも同じくLLaMA 13Bですが、ChatGPTやGPT-4からの説明データで特別に微調整されています。全体的に見ると、推論問題に特化しているためかChatGPTを上回り、また広範な説明で訓練されていないWunaも上回っています。
これが、より小さな言語モデルに推論行動を示させる一つの方法です。
6. 強化型自己訓練(Reinforced Self-Training)
6.1. RESTメソッドの詳細
ここまで見てきたのはすべて素晴らしいのですが、大規模言語モデルから推論を生成し、それでより小さなモデルを微調整できることを知りました。しかし、誰かが「なぜ大規模言語モデルをその自身の推論で微調整しないのか?」と疑問に思うかもしれません。
実際にそれも探求されており、これを行うさまざまな方法があります。その一つである強化型自己訓練(Reinforced Self-Training)、略してRESTについて説明します。これは2つのステージを交互に行います。
正しい答えを導く推論の強化
最初のステージでは、推論問題と「Let's think step by step」というプロンプトがあれば、言語モデルに複数の推論を生成させます。そして、これらの推論が正しい答えを導くかどうかに基づいてフィルタリングします。
例えば、代数の文章問題で「誰かが3つのリンゴを持ち、別の人が4つのリンゴを持っている」という問題があるとします。推論を生成して答えが7になれば、その推論を保持します。答えが12なら、その推論は除外します。
自己生成した推論による反復訓練
次に更新ステップを行います。最初のステージでフィルタリングした推論を取り、言語モデルをその上で微調整します。そしてこれを反復的に行うことができます。更新された言語モデルができれば、より良い推論を得られることを期待し、さらに良い推論で言語モデルを更新して、さらに良い言語モデルを得るという流れです。
結果は有望です。GSM 8K(代数的な文章問題を扱う小学校レベルの数学データセット)では、自己訓練の反復回数を増やすとパフォーマンスが若干向上し、その後低下し始めることがわかります。MATHも複数ステップの推論をカバーする別のデータセットで、ここでも強化型自己訓練を繰り返し行うことでパフォーマンスの向上が見られます。
オレンジ色の数字はより大きなPalmモデル、青色の数字はより小さなモデル、破線は人間が提供した推論で教師あり微調整を行った場合の結果を表しています。このアプローチの有望な点の一つは、自分自身の推論で複数回の訓練を行うと、人間が生成した推論を上回ることができるということです。
6.2. 人間提供の推論よりも優れた性能を示す実験結果
この強化型自己訓練(REST)アプローチの実験結果は非常に有望です。このグラフに示されているように、Palmモデルを人間が提供した推論で教師あり微調整した場合の精度は青いバーで表されています。そして、訓練例ごとに人間が提供した1つの推論で微調整した場合はオレンジ色のバーで表されています。これらは人間によって書かれたものです。
緑色のバーは、モデルによって生成された、質問ごとにランダムに選ばれた1つの推論で微調整した場合の結果です。これは推論の数を制御しており、興味深いことに人間が提供した推論よりも優れたパフォーマンスを示しています。
さらに、完全な多段階反復手順を実行し、モデルを継続的に改善していくと、再びパフォーマンスの向上が見られます。これは非常に有望な結果です。
これらの実験は、大規模言語モデルが自身の推論に基づいて自己改善できることを示しています。特に注目すべき点は、モデルが生成した推論で微調整されたモデルが、人間が提供した推論で微調整されたモデルよりも優れた性能を発揮する場合があることです。これは、モデルが潜在的により多様で適切な推論パターンを生成できることを示唆しています。
しかし、始めに尋ねた質問に立ち返ってみましょう。言語モデルは本当に推論できるのでしょうか?これらのベンチマークを見て全ての手法を適用することで一つの答え方ができますが、より体系的なアプローチをとり、反事実的なタスクを考案し、データ汚染の可能性に非常に注意する必要があるかもしれません。
7. 言語モデルの推論の評価と限界
7.1. 推論の忠実性(Faithfulness)評価実験
講義の冒頭で言語モデルにおける推論について質問を投げかけましたが、この質問に答える方法の一つはより体系的であることかもしれません。反事実的なタスクを考案し、データ汚染の可能性について非常に注意深く検討する必要があります。その結果について示していきます。
Chain of Thoughtで始めたので、最初に尋ねるべき質問は、モデルが生成する推論がChain of Thoughtで忠実か(faithful)どうかということかもしれません。「忠実」という言葉で私が意味するのは、モデルが推論を生成し、その後答えを生成するとき、その答えが実際にその推論に依存しているかどうかということです。
推論途中での早期終了テスト
このプロットでは、非常に注意深く行われた実験を示しています。横軸には推論サンプルの数があります。実験のセットアップは次のようなものです:すべての質問に対して、モデルは推論と答えを生成します。ここでの推論は複数の文章です。私たちが行うのは、モデルに推論を途中で終了させ、答えを生成するよう強制することです。
例えば、モデルが4つの推論を生成した場合、最初の推論の直後に終了させて答えを生成させることができます。2番目の推論の後に終了させることもでき、以下同様です。縦軸にプロットするのは、早期終了した後のモデルの精度です。
例えば、1つだけ推論をした後に終了させて、モデルが4つの文すべてを見た場合と全く同じ答えを生成した場合、おそらくその推論は忠実ではないと結論付けることができます。つまり、モデルが完全な推論を見るか最初の文だけを見るかは重要ではないということになります。極端な場合、推論なしで訓練しても同じ答えが得られるかもしれません。
結果はやや混在していますが、モデルが完全な推論を見る前に答えるか、早期終了した場合でも同じ答えが得られるデータセットが十分にあることがわかります。これは、時にこれらの推論が、モデルの答えの事後的な説明である可能性があることを意味します。
推論の破損が結果に与える影響分析
まさに同じ質問に答えようとするもう一つの実験は、これらの推論を破損させることです。例えば、推論が4つの文から成り、最初の推論、2番目の推論を生成し、3番目の推論では単に破損させるとします。その後、4番目の推論を生成し、モデルに答えを生成するよう依頼します。
推論をどれだけ破損しても、モデルが同じ答えを生成するならば、答えは推論に依存していないと結論付けることができます。横軸では、推論に誤りを加える前の推論ステップの割合を見ています。
ここで見られるべきは、厳密に増加するトレンドです。最初のステップの後に誤りを加えると、おそらく答えを大きく変えることになり、最後のステップの後に誤りを加えると、答えはそれほど変わらないかもしれません。しかし、いくつかのデータセットでは、推論の最初の文に誤りを加えても、答えはそれほど変わらないことがわかります。これも、これらの推論がモデルの行動の事後的な説明である可能性があるという指標です。
7.2. 反事実的評価
モデルが推論に忠実かどうかについて検討しましたが、別の疑問も立てることができます。もし設定を少し変えるとどうなるでしょうか?例えば、モデルが10進法で算術ができると観察したとしても、それはモデルが本当に算術の方法を知っているということを意味するのでしょうか?あるいは、まさに同じ例がトレーニングデータに存在していたのかもしれません。
10進法から9進法への変更実験
これをテストする一つの方法は、データに関する私たちの理解に基づいて、トレーニングデータにそれほど頻繁には存在しないと予想される反事実的な状況を作ることです。10進法での加算の代わりに、9進法での加算を行うことができます。モデルが9進法でも同じ精度を持つなら、モデルは加算の方法を理解していると結論づけることができます。
質問がありましたね。なぜ9進法が反事実的なのか、10進法と比べてどうなのかということですが、これは10進法の加算がトレーニングデータでよく観察されるのに対し、9進法の加算を行う人はとても少なく、トレーニングデータにはそのような例がはるかに少ないだろうという意味での反事実です。
分布外(OOD)データでの性能低下
同様に論理についても、モデルが論理問題を解くのが非常に得意なのは、トレーニングデータで非常に似たようなものを見たからかもしれません。もし「コーギーは爬虫類である」という世界を構築したら、モデルはその論理問題をまだ解くことができるでしょうか?
実験の結果、10進法から9進法に移行する際や、常識的な前提を変更する際には、かなり有意な性能低下が見られます。複数ステップの推論を伴わない非常に単純な論理問題でさえ、パフォーマンスが大幅に低下することがわかります。これは、モデルがそれほど推論を行っておらず、より多くの暗記に依存している可能性を示唆しています。
このパラダイムをさらに続け、問題設定を変更して、トレーニングコーパスに対して分布外になるようにすることができます。これは正確に、類推的推論を調査したこの論文で行われたことです。
7.3. 類推推論の限界
アルファベット変更による性能低下
この論文が行った実験は、文字列変換の一定のパターンを言語モデルに示し、新しい例に一般化するよう求めるものでした。例えば、「文字列を拡張する」問題では、「ABCD」という入力に対して出力は「ABCDEe」となります。そして「IJKL」が与えられたとき、モデルは「IJKLMm」を生成する必要があります。
この実験をさらに反事実的なものにしたり、分布外にしたりする方法として、「文字列拡張」とは何かを変更することが考えられます。例えば、「ABCDEe」ではなく「ABCDF」を出力するようにします。つまり、次の文字ではなく、その次の文字を出力する必要があります。
もう一つの反事実的な設定として、標準のアルファベットの代わりに、完全に異なるアルファベットを使用することが考えられます。ABCで始まるアルファベットの代わりに、XYZで始まるアルファベットを使うなどです。
我々が発見したことは2つあります。1つ目は、標準的な類推的推論問題から、アルファベットを変更したり、タスクの説明を変更して若干不自然にしたりするような反事実的な問題に移行すると、パフォーマンスが著しく低下することです。
人間との性能差の観察
一方で、著者たちは人間の被験者に対しても全く同じ実験を行いました。人間の場合、パフォーマンスの低下はほとんど見られませんでした。
全体として、この結果が示唆するのは、言語モデルにおいて何らかの推論能力はあるかもしれませんが、それは体系的なものではなく、ある程度の暗記に依存している可能性があるということです。
これは新興分野であるため、プロンプトを少し変更すれば、モデルが推論できるようになるという発見があるかもしれません。しかし、これが現在の状況です。
以上が推論に関する講義のパートでした。ここからは視点を変えて、言語モデルエージェントについて話していきます。これは推論とも関連しており、推論は事実から全く新しい結論に到達するための複数ステップの推論を含みますが、エージェントでは高レベルの目標があり、モデルは事後条件、オブジェクトの機能、世界の不確実性について推論して一連のステップを実行する必要があります。
8. 言語モデルエージェントの基礎
8.1. エージェントの定義と用語
ここからは視点を変えて、言語モデルエージェントについて話していきます。これは推論とも関連しています。推論では事実から新しい結論に至る複数ステップの推論が関わりますが、エージェントでは高レベルの目標があり、モデルは事後条件、オブジェクトの機能、世界の不確実性について推論して一連のステップを実行する必要があります。
まずは用語から始めましょう。右側にエージェントがあります。これは何らかのニューラルネットワークで、環境と相互作用します。この環境の例については後ほど説明します。
エージェントは環境から観測を受け取り、その観測に基づいて行動を発行します。それと共に、Gという第二の変数も受け取ります。Gは言語による指示を表しています。
この設定や、これらのモデルには多くの名前があります:デジタルエージェント、言語条件付きポリシー、指示に従うエージェントなどです。
環境の例としては、ウェブブラウザがあるかもしれません。ブラウジング環境では、目標はサンフランシスコからニューヨークへの航空券を予約することかもしれません。観測は、モデルが見る生のピクセルであるか、またはHTML DOMの表現かもしれません。
ウェブ環境での行動空間は、特定のウェブ要素へのタイピング、ウェブ要素のクリック、マウスを特定のウェブ要素に移動して相互作用するなどが考えられます。
8.2. 環境とのインタラクション
エージェントは環境から観測を受け取り、その観測に基づいて行動を発行します。同時に言語指示(G)も受け取ります。この相互作用は基本的に、観測・行動・状態変化の継続的なサイクルです。
形式的には、このインタラクションは次のように表現できます。目標Gが与えられた場合のエージェントの軌跡(一連の行動)の確率は、目標が与えられた状態での状態、行動、次の状態の確率です。これは2つの要素に分解できます:
- 環境の遷移ダイナミクス - 特定の状態で特定の行動を取った場合、状態がどのように変化するか
- エージェントのポリシー - 目標と、これまでの軌跡が与えられた場合、次に取るべき行動は何か
言語モデルエージェントの場合、これはすべて生成的な問題として扱うことができます。意思決定を生成的な軌跡モデリング問題として扱い、自己回帰言語モデルを訓練して次の行動を予測させることができます。
右上の図のような変換器(トランスフォーマー)を使用すると、これまでに取った行動の履歴、現在の状態、達成すべきタスクの指示(ここでは報酬に基づくものですが、自然言語の文字列にもなりえます)を入力として、次の行動を予測します。
オフラインRLのケースでは、この自己回帰言語モデルを訓練してこれを行うことが非常にうまくいくことがわかりました。そのため、潜在的な計画を得て意味解析器を訓練したり、強化学習を試みる代わりに、言語モデルをポリシーとして使用するようになりました。
そのための簡単な方法は、言語モデルをループ内でプロンプトすることです。テキストで行動空間を指定し(例えばデジタル環境では入力、クリック、文字入力、マウス移動など)、指示を提供し、これまでに受け取った行動と観測の連続を提供します。それらすべてを条件として、次の行動を予測するようモデルに求めます。ここで行われているのは、ループ内のChain of Thoughtプロンプティングだけです。意思決定の問題を自己回帰モデリングに還元するだけなので、これが機能する可能性があります。実際、これのより複雑なバージョンはいくつかの環境でうまく機能します。
8.3. 応用分野
こうしたエージェント技術の応用分野は非常に幅広いものがあります。実際、すべての応用分野をカバーすることはできませんが、いくつか見ていきましょう。
デジタルアシスタント
明らかな応用例として、デジタルアシスタントがあります。私はここで名前は言いませんが、モバイル端末が反応してしまう可能性があるからです。こうしたアシスタントには自然言語コマンドを与えることができ、アラームの設定やリマインダーの設定などのタスクを実行してくれます。
自然言語プログラミング
また、自然言語プログラミングも可能です。自然言語での説明が与えられた場合に、モデルにPythonコードを書かせることができます。
UIオートメーション
別の例としてUIオートメーションがあります。例えばUI要素の自動テストを行いたい場合、UI要素が正しく機能するかどうかを人間が確認する代わりに、特定の指示に対応する行動を実行するモデルを使うことができます。
また、より一般的にはユーザー向けの応用例もあります。例えばSpotifyのような複雑な環境で、エージェントに曲を再生するよう依頼するなどです。
最後に、言語モデルに追加ツールやプラグインを追加して、様々なアプリケーションを制御できるようにする新たな応用分野も登場しています。これにより、言語モデルの能力を拡張し、より多様なタスクを実行できるようになります。
9. 言語モデル登場以前のエージェント技術
9.1. 機械翻訳アプローチ
言語モデルを使って指示に従う方法を見る前に、言語モデル以前にこれがどのように行われていたかを見ておくと非常に役立つでしょう。
発話から論理形式への変換
基本的に3つの主要なアイデアがありました。時として、発話と論理形式のペアの例を収集するのが正しいアプローチでした。論理形式とは、知識グラフやデータベースに対して実行して答えを得るための実行可能な表現です。
例えば、「テキサス州と接するのはどの州ですか」というクエリがあるとします。そして、知識グラフに対して実行して、答えやリストを得るためのプログラム記述が存在します。
考え方の1つ目は、これをほぼ機械翻訳として扱うことでした。つまり、ソース言語が英語のコマンドで、ターゲット言語がこれらの意味表現や論理形式であるとみなします。そして、課題3(assignment 3)で学んだのと同じ機械を適用して、自然言語インターフェースを構築することができます。
このアプローチでは、目標やコマンドが与えられた場合の行動のシーケンスの確率を直接最大化します。
9.2. プラン推論アプローチ
命令からプランへの変換
2つ目のアイデアはもう少し複雑なものでした。ここでは、命令と行動がペアになっています。命令を行動に直接マッピングする代わりに、命令から実行可能なプランを推論します。これらの命令と行動シーケンスからプランを推論し、命令からこれらのプランへのマッピングをモデルに訓練します。そして、これらのプランを実行する非常に豊かな実行モデルを定義します。
このアプローチの利点は、直接行動軌跡を生成するようにモデルを訓練するよりも、プランにより高レベルな決定をエンコードできる可能性があることです。
実行モデルによるプラン実行
2011年のシステムの例があります。これは基本的に地上環境を航行できるエージェントでした。ここでのアイデアは、命令を取ってプランを取得し、命令をこのプランのシーケンスに変換する意味解析器(基本的には機械翻訳システムのようなもの)を訓練するというものでした。それが訓練されたら、テスト時には全く新しい命令が与えられたときに、意味解析器を実行してこのプランを取得し、それを実行モデルで実行します。
2011年のシステムからの命令とプランの例もあります。このアプローチは、直接行動を生成するよりも、まず高レベルのプランを生成し、そのプランを実行するモジュールを持つことで、より柔軟な制御と理解が可能になります。
9.3. 強化学習アプローチ
命令から行動への直接マッピング
三つ目のアイデアは、おそらく皆さんがこのような設定を見たときに最初に思いつくものかもしれませんが、直接強化学習を使用するというものです。ここでは、RLを使って命令を行動に直接マッピングします。
自然言語命令と観測に条件付けられた、何らかの報酬を最大化する行動を出力するポリシーを学習します。この報酬は、タスク全体を実行して環境から「タスクを達成したかどうか」のフィードバックを得るというスパース(疎)なものかもしれません。あるいは、各ステップ後に得られるもので、行動を実行して環境がその行動がタスクの何パーセントを完了したかを教えてくれるというものかもしれません。
図の上部には、2009年の自動Windowsデバッグを行うシステムの例を示しています。ここでは、UIエレメントをクリックするための自然言語指示があり、それがモデルが一つずつ実行するAPI命令にマッピングされます。
これらが言語モデル以前に人々が持っていた主な3つのアイデアでした。意味解析器を訓練するか、命令と軌跡のペアからプランを推論し、プランを直接モデル化することを学び、プランを実行できる実行モデルを持つか、あるいは報酬信号があれば強化学習を行うというものでした。
10. 現代の言語モデルエージェント
10.1. 生成的軌跡モデリング
決定問題の自己回帰モデリングへの変換
では、2024年に私たちはどのようにエージェントを構築しているのでしょうか?これを考えるいくつかの方法があります。おそらく最も有益なのは、私たちが達成しようとしていることを考えることでしょう。私たちは軌跡、つまり何らかの目標に条件づけられた一連の行動をモデル化しようとしています。例えば、モデルにサンフランシスコからニューヨークへの航空券を予約させたいと考え、おそらくタイピングやクリックなどの行動の軌跡を生成させたいと思っています。
これがどのように分解されるか見てみましょう。目標や指示に条件づけられた軌跡の確率は、目標に条件づけられた状態、行動、次の状態などの確率にすぎません。これを二つの項に分解することができます。
最初の項は環境の遷移ダイナミクスであり、それは特定の状態で特定の行動をとった場合、状態がどのように変化するかということです。二つ目のオブジェクトはエージェントのポリシーであり、これは私の目標と、これまでの軌跡が与えられた場合、次に取るべき行動は何かということです。
そして、人々はすぐにこれを一種の生成的問題として扱えることに気づきました。環境での意思決定の問題を生成的な軌跡モデリング問題として扱い、右上に示しているのはトランスフォーマーの例です。これは単に、これまでに取った行動の履歴、現在の状態、そして何らかのタスクを達成すべきという指示(ここでは報酬に基づいていますが、自然言語の文字列でもありえます)を取り、次の行動を予測するように訓練されています。
自己回帰型言語モデルをこれを行うよう訓練することができ、オフラインRLの場合にはこれが非常にうまく機能することが判明しました。そのため、潜在的な計画を取得し意味解析器を訓練したり、強化学習を試みたりする代わりに、私たちは言語モデルをポリシーとして使用し始めました。
10.2. プロンプトループによるシンプルなエージェント設計
これをすべて実現するための単純な方法は、言語モデルをループ内でプロンプトすることです。これは非常にシンプルな言語モデルエージェントの例ですが、全く機能しないかもしれませんが、エージェントがどのように構築できるかを示すには役立つでしょう。
まず、テキストで行動空間を指定します。例えば、デジタル環境であれば、モデルはタイピングができるかもしれません。クリックできるかもしれません。文字をタイプできるかもしれません。あるいはマウスをどこかに移動させることができるかもしれません。
次に、指示を提供し、これまでに受け取った行動と観測のシーケンスも提供します。それらすべてを条件として、次の行動を予測するようモデルに依頼します。
ここで深く考える必要はなく、これは単にループ内のChain of Thoughtプロンプティングにすぎません。しかし、私たちが意思決定の問題を自己回帰モデリングに還元したため、これが機能する可能性があるという希望があります。実際、これのわずかに複雑なバージョンは、いくつかの環境でうまく機能します。
10.3. ベンチマーク環境
MiniWoB(簡易ブラウザ環境)
MiniWoBは言語モデルをエージェントとして評価するための最も単純な環境です。これはサンドボックス環境で、基本的なブラウザ操作を評価します。例えば、ミニTwitter環境でモデルが特定のツイートをリツイートできるか、模擬メールクライアントでメールを転送したり作成したりできるか、特定のボタンをクリックできるかなどを評価します。
この環境は実世界のものではなく、実際のウェブサイトではありません。また、比較的短い時間軸で、どの指示も通常3アクション以内で達成できます。しかし、このとても単純なベンチマークでさえ、最高の言語モデルのゼロショット性能は完璧からはほど遠い状態です。
WebArena(実世界に近いウェブサイト)
WebArenaも同様にサンドボックス環境ですが、実際のウェブサイトにかなり近い近似となっています。これらのサイトはeコマース(Amazonに似たサイト)、ソーシャルメディア(Twitterに似たもの)などをカバーしています。さらに、地図などのユーティリティツールもあります。例えば、指示によってはモデルが地図アプリケーションを開き、ポイントAからポイントBへの最短経路を見つけ、その情報を後のアクション連鎖で使用する必要があるかもしれません。
MiniWoBとは異なり、WebArenaはマルチタブブラウジングをサポートしています。エージェントは複数のタブやアプリケーション間を切り替えることができます。ここでも機能的な正確さを評価します。つまり、モデルが最終的に正しい答えを出したか、モデルがとった一連のステップが意図した動作をもたらしたかどうかを評価します。これはユーザーがあらかじめプログラムしたステップのシーケンスをモデルが実行したかどうかとは異なります。
WebShop(実際のウェブサイト)
WebShopも(訂正:講演では「WebLinks」と言及されています)マルチタブブラウジングを備えており、実際のウェブサイト上でのウェブ操作を特徴としています。これはサンドボックス化された実際のウェブサイトの近似ではなく、サンドボックス化されたブラウザ操作でもなく、実際の本物のウェブサイトです。
また、エージェントがユーザーとコミュニケーションを取れる新しいアクションも導入しています。例えば、映画のチケットを購入するような指示があり、ある時点でモデルがクレジットカード情報を要求する必要がある場合、人間がエージェントとコミュニケーションを取るための追加のアクションがあります。
これは環境というよりも、インタラクションのコレクションです。したがって、例えば探索やオンライン学習などは行えませんが、評価には確実に使用できます。
11. エージェントの訓練手法
11.1. コンテキスト内学習とその限界
意思決定を因果的言語モデリングとして扱うアプローチを採用する場合、標準的な手法はfew-shotの例を用いたインコンテキスト学習です。この手法では、新しいタイプのウェブサイトや新しいユースケースに対して、通常は人間にそれらのタスクを実行してもらい、その結果を言語モデルのプロンプトにインコンテキストデモンストレーションとして提供します。これにより、モデルは似たようなタスクを非常に類似したウェブサイト上で解決するための参考にできます。
しかし、この方法には明らかなスケーラビリティの問題があります。何千もの環境が存在し、各環境では多くの異なるインタラクションが可能です。そのため、すべての新しいユースケースに対して人間のデモンストレーションを提供するよりも、もっと効率的な方法が必要です。
言語モデルを使用して理由付け(rationals)を生成し、それに対して微調整するという講義の前半で見たアプローチを応用することができます。ただし、ここでは理由付けではなく、アクショントラジェクトリを生成し、それを教師信号として使用します。
インコンテキスト学習には「プロンプティングギャップ」と呼ぶべき大きな課題があります。広範なプロンプティングを行わず、異なる環境ごとに異なるfew-shotの例を使用しない場合、最高の言語モデルでさえMiniWoBのような非常に単純なタスクでも完璧からはほど遠い性能しか発揮できません。
さらに、MiniWoBのような単純な環境でも、広範なプロンプティングとfew-shotの例を使用した後でさえ、指示を単一のアクションにマッピングするような最も単純なタスクから、指示を5つや10のアクションにマッピングするタスクに移行すると性能が大きく低下します。つまり、長期的な計画立案は、これらの非常に単純なベンチマークでも依然として非常に困難です。
WebArenaのようなより複雑な環境になると、人間レベルのタスク成功率と最高のモデルが達成する成功率の間には、プロンプティングやfew-shotの例を使用しても、依然として大きな差があります。
11.2. 合成データ生成手法
ランダム探索による軌跡生成
インコンテキスト学習のスケーラビリティの問題に対処するため、言語モデルを使って環境をランダムに探索する方法があります。この方法では、エージェントが環境内でクリック、入力、スクロールなどのランダムな一連の操作を実行します。これにより、様々なトラジェクトリ(行動の軌跡)が生成されます。
言語モデルによる軌跡のラベル付け
生成されたトラジェクトリをフィルタリングするために、第二の言語モデルを使用します。数学の問題のように正解が明確なケースとは異なり、ウェブサイトとのインタラクションにおいて「良いトラジェクトリ」を特定することは難しいためです。
第二の言語モデルは、これらのトラジェクトリの説明を生成します。その背後にある考え方は、モデルがアクションのシーケンスに対応する説明を生成できるなら、それは良いトラジェクトリの指標になるということです。例えば、あるトラジェクトリに対して「サンフランシスコからニューヨークまでの航空券を予約する」という説明が生成され、別のトラジェクトリには「指定された日付を設定する」という説明が生成されるかもしれません。一部のトラジェクトリに対しては、適切な指示を生成できない場合もあります。
反復的な改善プロセス
この方法は反復的に実行されます。生成された説明(目標)を使って、言語モデルにその目標に基づいた行動を取らせます。例えば「指定された日付を設定する」という目標が与えられると、モデルはランダム探索ではなく、この指示に対応した一連のアクションを生成します。
その後、粗いフィルターを使用して、指示とアクションのシーケンス、モデルが訪れた状態の間の対応関係を確認し、そのトラジェクトリがその指示に対して適切かどうかを判断します。適切と判断された場合は、トレーニング例のセットに追加されます。
しかし、全てがうまくいくわけではありません。例えば「サンフランシスコからニューヨークまでの航空券を予約する」という生成されたラベルに対して、モデルが失敗するトラジェクトリを生成する場合もあります。インタラクションはコストがかかるため、これを単に破棄するのではなく、再びラベラーを呼び出して、実際に達成されたことの最良の推測を提供します。例えば「出発地をSFO、目的地をニューヨーク市に設定する」といった新しいラベルが割り当てられ、これが言語モデルにフィードバックされます。
このプロセスは、フィルターがこれを良い指示-トラジェクトリのペアとして識別するまで反復的に続けられます。このアプローチでは、言語モデルを使用して出力を生成し、良いトレーニング例のセットを生成する反復的な手順を利用します。
合成データが収集されると、これを使って微調整を行うか、よりシンプルな方法として、インコンテキストで人間が提供したデモンストレーションをこれらの合成デモンストレーションに置き換えることができます。この方法はMiniWoBベンチマークで13ポイントの性能向上をもたらし、マルチステップのツール使用環境でも改善が見られました。
12. ビジョン言語モデルとエージェント
12.1. LLaVAの紹介
画像とテキストの共同訓練
これまでの議論はテキストのみに焦点を当てていましたが、実世界のアプリケーションでは、すべての環境からHTMLを取得してそれを言語モデルのコンテキストに供給することは非現実的な場合があります。環境によっては何万ものDOM要素が存在し、対応するJavaScriptも含めてそれらすべてを言語モデルのコンテキストに入力することは困難です。また、環境の状態を表示する最良の方法は、直接ピクセルを表示することかもしれません。
LLaVA(Large Language and Vision Assistant)は、Orcaと同様のアプローチを採用しています。GPT-4を使用して、画像のテキスト記述に基づいた指示と応答の両方を生成します。具体的には、画像に関するメタデータを使用してテキスト記述を作成し、それをGPT-4に供給して、可能な質問と応答を生成するよう依頼します。
その後、画像エンコーダー(ここではCLIP)とテキストデコーダー(Llama modelの指示調整バージョンであるVicuna)を共同で微調整します。この共同微調整を通じて、最終的に言語応答を出力できる画像エンコーダーが得られます。これにより、画像に関する質問をしたり、HTMLのDOM要素の代わりにスクリーンショットを直接入力したりすることができるようになります。
このアプローチでは、GPT-4を使って画像のテキスト記述に基づいた合成質問と回答を生成するという比較的シンプルな事前訓練を行います。これにより、画像とテキストの相互作用を学習するビジョン言語モデルが構築され、それをエージェントの基盤として使用することができます。
12.2. Pix2Structアプローチ
スクリーンショットからHTMLの生成
マルチモーダルな事前訓練
Pix2Structも、LLaVAと同様に画像エンコーダーとテキストデコーダーを組み合わせたアプローチを採用しています。画像エンコーダーは画像をパッチに変換し、各パッチに位置IDを割り当て、それをトランスフォーマーに通します。そして、デコーダーがテキストを出力します。
しかし、Pix2Structが導入した最も重要な新しい要素は、新しい事前訓練タスクです。LLaVAの事前訓練は比較的シンプルで、GPT-4を使用して画像のテキスト記述に基づく合成的な質問と回答を生成するものでした。しかし、画像のテキスト記述だけでは限界があります。
Pix2Structはウェブサイトのスクリーンショットを使用し、スクリーンショットの一部をマスクアウトして、トランスフォーマーデコーダーにマスクされた要素に対応するHTMLを生成するよう求めます。例えば、Pythonに対応するリストの最初の回答をマスクアウトし、モデルにマスクされたパッチだけに対応するHTMLを生成するよう求めることができます。
これはより自然な事前訓練の目的であり、画像とテキストの間のより良い相互作用を可能にします。つまり、ウェブページの視覚的要素とその構造的HTMLの関係を学習するのです。
例えば、ウェブページ上のリストがあり、それに対応するHTMLがあります。データポイントの一つでは、「Python」に対応する最初の回答をマスクアウトし、モデルにマスクされたパッチだけに対応するHTMLを生成するよう求めることができます。
この事前訓練手法は、画像とテキストの間のより自然な関係を捉え、マルチモーダルエージェントの構築に適応されています。視覚要素と構造的なHTML表現の間の関係を理解することは、ウェブベースのエージェントにとって非常に有用です。
13. 現状の課題と限界
13.1. プロンプティングギャップの存在
この領域には「プロンプティングギャップ」と呼ぶべき大きな課題が存在します。広範なプロンプティングを行わず、さまざまな環境ごとに異なるfew-shotの例を使用しない場合、最高の言語モデルでさえ、MiniWoBのような非常に単純なタスクでも完璧からはほど遠い性能しか発揮できません。
MiniWoBにおけるタスクは単にいくつかの要素をクリックしたり、メールに返信したりするだけの単純なものです。通常わずか5つのアクションで達成できるほど簡単なものです。それにもかかわらず、最高の言語モデルでもプロンプトエンジニアリングなしでは十分な性能を発揮できません。
適切なプロンプティングとfew-shotの例を使用した後でさえ、非常に単純なタスク(指示を単一のアクションにマッピングするもの)から、指示を5つや10のアクションにマッピングするタスクに移行すると、性能が大きく低下します。つまり、長期的な計画立案は、これらの非常に単純なベンチマークでさえも依然として非常に困難な課題なのです。
WebArenaのような、実際のウェブサイトを近似し、マルチタブブラウジングや外部ツールを持つより複雑な環境では、人間レベルのタスク成功率と最高のモデルが達成する成功率の間には、プロンプティングやfew-shotの例を使用した後でも、依然として大きな差があります。
13.2. 長期計画の難しさ
MiniWoBのような単純な環境でさえ、指示を単一のアクションにマッピングする最も単純なタスクから、指示を5つや10のアクションにマッピングするタスクに移行すると、モデルの性能に大きな低下が見られます。これは、長期的な計画立案が非常に単純なベンチマークでも依然として非常に困難な課題であることを示しています。
モデルが犯すエラーの種類も特徴的です。WebLinksの例では、タスクが単にGoogle翻訳を開き、資格情報を使用してサインインするという単純なものでした。メールアドレスとパスワードが提供されていましたが、GPT-4 Vはパスワードを入力する代わりに、パスワード欄にメールアドレスを入力してしまいました。
さらに、このエラーから回復することができませんでした。サインインを試みると、エラーが発生し、モデルは再びメールアドレスを入力しようとして同じエラーを繰り返しました。
別の例では、モデルが検索を実行する必要がありましたが、正しい用語で検索する代わりに、同じ用語を3回繰り返してしまいました。明らかにそれでは結果は返ってきません。
広範なプロンプティングによりこれらの問題は修正できるかもしれませんが、それは本質的な問題ではありません。これらの例は、現在のモデルが計画を立て、複数のステップにわたってタスクを実行する際に直面する根本的な課題を示しています。
長期的な計画立案には、環境の状態を追跡し、エラーから回復し、複数のステップにわたって目標を達成するための戦略を立てる能力が必要です。現在のモデルはこれらの能力において依然として限界があり、そのため複数のステップを必要とするタスクの実行において著しい性能低下が見られるのです。
13.3. 単純なエラーと回復の課題
モデルが犯すエラーの種類は時に予想外で初歩的なものです。WebLinksからの例として、Google翻訳を開いて資格情報を使用してサインインするという単純なタスクがありました。メールアドレスとパスワードが提供されていましたが、GPT-4 Vはパスワードを入力する代わりに、パスワード欄にメールアドレスを入力してしまいました。
さらに問題なのは、モデルがこのエラーから回復できなかったことです。サインインを試みると、当然エラーが発生しましたが、モデルは状況を理解せず、再びメールアドレスを入力しようとして同じエラーを繰り返しました。このエラーのループから抜け出すことができなかったのです。
別の例では、モデルが検索を実行する必要がありましたが、正しい検索語で検索する代わりに、同じ用語を3回繰り返してしまいました。当然、そのような検索では結果が返ってきません。
これらの事例は、現在のモデルが直面している根本的な課題を示しています:
- 入力フィールドの目的を理解し、適切なデータを入力する能力
- エラーが発生した時にそれを認識する能力
- エラーから回復し、異なるアプローチを試みる能力
- 環境からのフィードバックに基づいて戦略を調整する能力
広範なプロンプティングによってこれらの特定の問題は修正できるかもしれませんが、それが根本的な解決策になるわけではありません。モデルは予期しない状況や予期しないエラーに直面した際に適応し、回復するための基本的な能力を欠いています。
これらの基本的なエラーと回復の課題は、言語モデルベースのエージェントをより複雑な実世界のタスクに適用する際の大きな障壁となっています。実際の応用では、環境は予測不可能であり、エラーの発生は避けられません。したがって、エラーを認識し、それから回復する能力は不可欠です。
13.4. 人間とAIの性能差
実際のウェブサイトを近似し、マルチタブブラウジングや外部ツールを持つWebArenaのようなより複雑な環境では、人間レベルのタスク成功率と最高のモデルが達成する成功率の間には、プロンプティングやfew-shotの例を使用した後でも、依然として大きな差があります。
モデルはウェブインターフェースを理解し、操作するという基本的なことでさえ苦戦しています。人間にとっては簡単なタスク、例えばフォームに正しい情報を入力する、メニューからオプションを選択する、検索結果から関連情報を見つけるといった作業がモデルにとっては困難です。
この性能差は、人間がウェブインターフェースに対して持っている直感的な理解とモデルの限られた理解の間のギャップを示しています。人間は過去の経験から学び、視覚的な手がかりを解釈し、エラーから素早く回復することができますが、現在のモデルはこれらの能力において制限されています。
モデルは単純なアクションを実行することはできますが、長期的な目標に向かって一連のアクションを計画し、実行することや、予期しない状況に適応することは依然として困難です。また、視覚的情報と言語情報を効果的に統合する能力も限られています。
この人間とAIの性能差は、モデルがウェブインターフェースと効果的に対話するために必要な多くの暗黙的な知識と直感を獲得する必要があることを示しています。インターフェースの目的、一般的なウェブパターン、エラーメッセージの意味など、人間が当たり前に理解していることをモデルは明示的に学習する必要があります。
この領域は発展途上であり、改善の余地が非常に大きいことは明らかです。モデルの能力向上、より効果的な訓練データの収集、そしてより洗練された学習アルゴリズムの開発により、この性能差は徐々に縮まっていくことが期待されます。
14. まとめ
14.1. 推論における進歩と課題
本日の講義では、言語モデルにおける推論について検討しました。言語モデルから推論のような振る舞いを引き出すには、いくつかの方法があることがわかりました。
最も単純な方法は、Chain of Thought(思考連鎖)プロンプティングです。このアプローチでは、モデルに回答する前に推論のステップを生成させます。また、Chain of Thoughtを拡張して複数の推論プロセスを生成し、それらを調整して最も頻出する回答を選ぶ方法もあります。さらに、プロンプトにおいて問題を明示的に複数のステップに分解するよう指示することで、より効果的な推論を促すことも可能です。
推論のための専門的な小規模言語モデルを訓練する方法として、大規模言語モデルから生成された推論過程を用いて、小規模モデルを微調整するアプローチも紹介しました。あるいは、大規模言語モデル自体を自身の生成した推論過程で反復的に微調整することも可能で、場合によっては人間が提供した推論過程よりも優れた性能を示すこともあります。
しかし、反事実的評価を行うと、モデルがトレーニングデータに含まれる特定の問題を解決する能力を示しているのか、それとも本当に推論能力を獲得しているのかは明確ではないという結果も見られました。例えば、10進法での計算から9進法に変更すると性能が大幅に低下する、あるいは標準的な論理問題から条件を変更すると同様に性能が落ちるといった現象が観察されました。
このような結果は、現在の言語モデルにおける「推論」が、実際には推論というよりも記憶に基づいている可能性を示唆しています。反事実的評価や分布外の問題設定で大きな性能低下が見られることから、体系的な推論能力の獲得には依然として課題が残されています。
言語モデルの推論能力の向上は今後も発展していく分野であり、より洗練されたプロンプティング手法やトレーニング手法の開発により、より確かな推論能力を持つモデルの実現が期待されます。
14.2. エージェント技術の現状
言語モデルエージェントについては、意思決定を因果的言語モデリングとして捉え直す方法で進展が見られています。歴史的には、自然言語命令からアクションへのマッピングにはセマンティックパーサーの訓練、計画の推論と実行モデルの構築、または強化学習の活用などの方法が使われてきました。
2024年の現在では、言語モデルをポリシーとして活用するアプローチが主流になっています。これはシンプルなループ内でのプロンプティングで実現でき、行動空間をテキストで指定し、指示と共にこれまでの行動と観察の履歴を提供することで、モデルに次のアクションを予測させます。これは本質的にはループ内でのChain of Thoughtプロンプティングに過ぎませんが、決定問題を自己回帰モデリングに還元することで効果的に機能します。
しかし、現状のエージェント技術には依然として大きな課題があります。MiniWoBやWebArenaのようなベンチマーク環境では、広範なプロンプティングとfew-shotの例を使用した後でさえ、最高の言語モデルの性能は人間レベルからは大きく劣っています。特に長期的な計画立案や複数ステップにわたるタスクの実行、エラーからの回復において顕著な困難が見られます。
合成データ生成によるエージェント訓練には進展が見られ、ランダム探索と言語モデルによるラベル付けを組み合わせた反復的な改善プロセスが有望です。また、LLaVAやPix2Structのようなビジョン言語モデルの導入により、テキストだけでなく視覚情報も処理できるエージェントの開発も進んでいます。
エージェント技術は発展途上であり、改善の余地が非常に大きいことは明らかです。モデルの基本的な能力向上、より効果的な訓練データの収集、そしてより洗練された学習アルゴリズムの開発により、現在の限界は徐々に克服されていくでしょう。ただし、人間のような適応能力と柔軟性を持つエージェントの実現には、まだ多くの研究が必要です。
14.3. 反事実的評価の重要性
言語モデルの推論能力を真に評価するためには、体系的なアプローチをとり、反事実的タスクを考案し、データ汚染の可能性に非常に注意を払う必要があります。ベンチマークで単に方法を適用して結果を見るだけでは不十分です。
反事実的評価の重要な側面の一つは、モデルが生成する推論過程がどれだけ「忠実」であるかを検証することです。例えば、モデルが推論過程を生成してから答えを出す際に、その答えが実際に推論過程に依存しているのかどうかを調査しました。実験では、モデルの推論過程を途中で終了させ、早期に答えを生成するよう強制しました。多くのデータセットで、完全な推論過程を見た場合と、最初の文だけを見た場合でも、モデルは同じ答えを生成しました。これは、これらの推論過程が実際の思考過程ではなく、事後的な説明である可能性を示唆しています。
別の実験では、推論過程に意図的にエラーを挿入し、それが最終的な答えにどう影響するかを観察しました。理想的には、早い段階でのエラーは答えに大きな影響を与えるはずですが、一部のデータセットではそうではありませんでした。これも推論過程と答えの間の依存関係が弱い可能性を示しています。
さらに重要なのは、タスクの設定を変更して訓練コーパスに対して分布外になるようにすることです。例えば、10進法の計算が得意なモデルに9進法の計算をさせる、標準的な論理問題から条件を変更する、アルファベットや変換タスクの定義を変更するなどの方法があります。これらの変更により、多くの場合、モデルの性能は大幅に低下しました。一方、同様の実験を人間に対して行った場合、性能の低下はわずかでした。
これらの反事実的評価は、現在の言語モデルが示す「推論」が、本当の推論というよりも記憶や分布内のパターン認識に依存している可能性が高いことを示しています。真に体系的な推論能力を評価し開発するためには、このような厳密な評価方法が不可欠です。
今後も、この分野は発展し続け、プロンプトを少し変更するだけで本当の推論が可能になるような発見があるかもしれませんが、現在の状況ではまだそこに到達していません。反事実的評価は、モデルの真の能力を理解し、限界を明らかにするための重要なツールであり続けるでしょう。
14.4. 将来の研究方向性
この分野には多くの発展の余地があり、複数の重要な研究方向性が考えられます。
まず、言語モデルの推論能力の向上について、単なるプロンプティング技術を超えた体系的な推論能力の獲得が求められています。反事実的評価で明らかになったように、現在のモデルは実際のデータから離れると性能が大きく低下します。このギャップを埋めるための基礎研究が必要です。
エージェント技術に関しては、長期的な計画立案の改善が重要な課題です。現在のモデルは短期的なアクションを実行することはできますが、複数ステップにわたる計画を立てて実行することには依然として困難を抱えています。階層的な計画立案や抽象的な目標の分解など、より洗練された手法の開発が期待されます。
エラー回復と適応性の向上も重要な研究方向です。現在のモデルは予期しないエラーに直面すると回復が困難です。環境からのフィードバックを理解し、戦略を動的に調整できるエージェントの開発が必要です。
マルチモーダル統合の改善も重要です。LLaVAやPix2Structのようなアプローチはテキストと視覚情報を組み合わせていますが、より深い統合と理解が求められます。これにより、ウェブインターフェースや実世界の環境とより自然に対話できるエージェントの開発が可能になるでしょう。
合成データ生成の手法も改善の余地があります。現在の方法はランダム探索に大きく依存していますが、より効率的で情報量の多いトラジェクトリを生成するための目標指向の探索方法の開発が有望です。
最後に、評価方法の改善も重要です。現在のベンチマークはシンプルなタスクに焦点を当てていますが、より複雑で多様な環境での評価が必要です。また、単なるタスク成功率だけでなく、効率性、適応性、説明可能性などの側面も評価する方法の開発が求められています。
これらの研究方向性の進展により、より強力で適応性の高い言語モデルエージェントの開発が期待されます。これは単に学術的関心だけでなく、実用的なアプリケーションの可能性を大きく拡大するものです。