見出し画像

VoT"はLLMに空間推論とオープンソースの「大規模アクションモデル」を提供する

今日はオープンソースの大規模アクションモデルについて紹介します。これは、自然言語で話すだけでAndroid環境内のアプリケーションを制御できるラビットR1と非常に似ていますが、今回はWindows環境用にMicrosoftからリリースされた完全にオープンソースのバージョンです。Microsoftは、この技術をどのように実現したかを説明する研究論文を発表しただけでなく、すぐにダウンロードして使用できるオープンソースプロジェクトも提供しています。今日はその実際の例をお見せします。

まず、ホワイトペーパーを見ていきましょう。これは「Visualization of Thought Elicits Spatial Reasoning in Large Language Models」というもので、大規模言語モデルに空間推論を与える方法を説明しています。空間推論とは何かをご存知ない方のために説明すると、これは3D環境や2D環境で異なるオブジェクト間の関係を視覚化する能力のことです。これまで、大規模言語モデルはこの分野で非常に苦手とされていました。Meta AIのリーダーであるYan LeCunも、これはAGI(汎用人工知能)に到達する上での大きな欠点であると指摘しています。しかし、この論文では、大規模言語モデルでも空間推論が可能であることを示しています。

例を挙げてみましょう。北極点に立っていると想像してください。そして、ある方向に50ヤード歩き、左に曲がり、その後も無限に歩き続けるとします。もし歩き続けたら、最初の地点に戻ることはあるでしょうか?この問題を考えるとき、あなたは言語を使わずに頭の中で空間推論を行っています。これが空間推論であり、Yan LeCunが言語モデルでは不可能だと考えている理由です。しかし、この論文によれば、それは可能です。

では、具体的に見ていきましょう。今回紹介するのはMicrosoft Researchからのものです。論文の冒頭では、大規模言語モデルが非常に優れている一方で、人間の認知において重要な側面である空間推論の能力は未だにあまり探求されていないと述べられています。人間は、見えないオブジェクトや行動の心象を「心の眼」を通じて創り出し、見えない世界を想像する素晴らしい能力を持っています。この認知能力に触発され、我々は思考の視覚化プロンプトを提案します。この技術をユーザーインターフェースに応用することで、実際にそのユーザーインターフェースを制御できるようになります。これが大規模アクションモデルの本質です。

次に、この図を見てみましょう。これは人間の心の中で起こっていることを示しています。視覚と言語を組み合わせ、「心の眼」で考えていることの心象を作り出します。右側は大規模言語モデルの「心の眼」です。テキスト言語のみを使い、それを組み合わせて心象を作り出します。大規模言語モデルでも同じことができるかどうかを見てみましょう。

従来のプロンプトでは、入力があり、出力が得られます。より高度なプロンプト技術として、Chain of Thoughtがあります。これは入力があり、思考を一歩一歩進めて出力に到達する方法です。Chain of Thoughtプロンプトやリフレクションなどの他のプロンプト技術を使用すると、大規模言語モデルのパフォーマンスが大幅に向上することがわかっています。そして、思考の視覚化(Visualization of Thought)では、入力があり、各ステップで視覚化を行い、最終的な出力に到達します。これは理論的なもので、実際の例をすぐにお見せします。

人間は空間推論の過程で心象を作り出し、空間認識を高めて意思決定を行います。同様に、大規模言語モデルも内部の心象を作り出すことができます。我々は、空間推論のために大規模言語モデルの「心の眼」を引き出す思考の視覚化プロンプトを提案します。

空間推論は、運転、ビデオゲーム、チェスのプレイ、単に歩くことなど、生活のあらゆる側面で非常に重要です。思考の視覚化プロンプト(VoT)を使ってこの能力、つまり空間認識を引き出す方法について話しましょう。この方法は、大規模言語モデルに視覚的な空間スケッチパッドを追加して、推論のステップを視覚化し、次のステップを情報に基づいて行うようにします。VoTは、数ショットのデモンストレーションやテキストから画像への視覚化を使用せずに、ゼロショットプロンプトを採用します。空間推論の有効性を評価するために、自然言語ナビゲーション、視覚ナビゲーション、視覚タイルを含む3つのタスクを選びました。これらのタスクは、大規模言語モデルに空間認識を要求します。視覚ナビゲーションと視覚タイルタスクでは、特別な文字を使用して2Dグリッドワールドを設計しました。

大規模言語モデルはグラフを解釈できないため、2Dタイルを組み合わせてモデルに渡しても理解できません。2D空間を自然言語で表現する必要があります。論文で提案されたVoTプロンプトは、推論ステップを視覚化し、次のステップに情報を提供することで、一貫して大規模言語モデルに空間認識を引き出し、対応するタスクのパフォーマンスを大幅に向上させました。

次に、いくつかの2Dグリッドを見てみましょう。それぞれ異なるサイズで、異なるオブジェクトが配置されています。例えば、k=2のグリッドでは、家が始点でオフィスが終点です。大規模言語モデルに、家からオフィスまでのナビゲートをステップバイステップで指示します。人間にとっては「右に行く、上に行く」などと簡単ですが、大規模言語モデルにとっては非常に難しいものです。しかし、もはやそうではありません。

空間推論とは、オブジェクト間の空間的関係、その動きや相互作用を理解し、推論する能力を指します。これはナビゲーション、ロボティクス、自動運転などの技術に応用されます。この文脈では、正方形の地図は対応するオブジェクトに沿ったランダムウォーク指示のシーケンスとして定義され、アルゴリズムでグラフと歩行経路を示します。

視覚ナビゲーションでは、2Dグリッドワールドを提示し、視覚的な手がかりを使ってナビゲートするタスクを設定します。モデルは、左、右、上、下の4方向に移動するナビゲーション指示を生成し、始点から目的地まで障害物を避けて進む必要があります。これは、マルチホップの空間推論を必要とするルート計画と次のステップ予測の2つのサブタスクを含みます。より複雑なものが前者です。

次に、視覚タイルを見てみましょう。ポリオミノタイルは、クラシックな空間推論の課題です。この概念を拡張し、大規模言語モデルの形状を理解し、整理し、推論する能力をテストします。例えば、グリッドに新しいオブジェクトを配置する場所を見つけるタスクです。このグリッド内に赤の1x4オブジェクトを配置する場所を見つけるというものです。

VoTプロンプトの重要な点は、各ステップで視覚化することです。Chain of Thoughtのように、一度に全てを行うのではなく、各ステップの軌跡を見せることです。VoTプロンプトを紹介し、各推論ステップ後の状態を視覚化するようにします。この新しい空間推論のパラダイムは、推論の軌跡と視覚化を交互に生成することを目指します。

まず左側の例を見てみましょう。視覚ナビゲーションです。家が始点で、障害物のないマスを通ってオフィスまでナビゲートするタスクです。各ステップを視覚化しながら進んでいきます。視覚タイルでは、グリッドと3つの異なるオブジェクトを提供し、それらを全て収める場所を見つけるタスクです。各ステップを視覚化しながら進みます。

次に、自然言語ナビゲーションです。3x3のグリッドを説明し、各ステップを指示します。ステップごとに視覚化し、最終的な状態を確認します。4つのバージョンをテストしました。GPT-4 with Chain of Thought、GPT-4 without visualization、GPT-4 with vision、GPT-4 with VoTです。パフォーマンスを見てみましょう。Route planning、Next Step prediction、Visual tiling、Natural language navigationの全てのタスクで、VoTプロンプトが最高のパフォーマンスを示しました。

では、実際にWindows環境での例を見てみましょう。このプロジェクトは「PiWin Assistant」と呼ばれ、オープンソースの大規模アクションモデルです。自然言語だけでWindowsのユーザーインターフェースを完全に制御することができます。Firefoxを開く、YouTubeをクリックするなど、指示を与えることで操作を行います。

指示を与えると、アシスタントが実行し、各ステップで視覚化を行います。YouTubeで「Rick Roll」を検索し、2番目のビデオをクリックするなどの操作が可能です。アシスタントは、視覚化しながら各ステップを実行します。

最後に、Twitterで新しい投稿を作成する例を見てみましょう。「Hello world」と挨拶を投稿する指示を与えます。アシスタントは、各ステップを視覚化しながら操作を行います。

他にも多くの実例があります。研究論文を読み、PiWin Assistantの詳細を知りたい場合は、コメントでお知らせください。興味があれば、完全なチュートリアルを行うことも可能です。動画が気に入ったら、いいねとチャンネル登録をお願いします。それでは次回の動画でお会いしましょう。

この記事が気に入ったらサポートをしてみませんか?