リッチな LLM 統合を使用し、Muse Chat で適合性と信頼性を高める

NICO PERONY Director of AI Research
May 21, 2024|9 分
リッチな LLM 統合を使用し、Muse Chat で適合性と信頼性を高める

Unity Muse は、AI 機能により、リアルタイム 3D エクスペリエンスの模索、アイデア生成、イテレーションを支援します。Muse Chat は、制作を加速させるために使用できる多くのツールのうち 1 つです。Muse Chat はユーザーのアシスタントとなり、ユーザーが Unity の知識やエディターの情報に簡単にアクセスできるようにし、Unity エディターとプロジェクトのコンテキストを考慮しながら、デバッグに関するアドバイス、コード生成機能で初期コードを生成する方法などについて、役立つ情報を提供します。

役立つソリューションを提供する Muse Chat の設計について具体的に理解してもらえるよう、応答を生成するプランがどのように構成されているかについて紹介します。また、LLM パイプラインの現在の模索と今後の展開についてもご紹介します。

リッチな知識拡張による信頼性の高い回答

Muse Chat は、クエリプランニングや異なる情報のアービトレーションのために、複数の異なるシステムと大規模言語モデル(LLM)の統合からなるパイプラインとして構築されています。各リクエストに対して、チャットはエディターの選択や提供された情報、そして解決しようとしている問題に基づいて、今後の対応策のフォーマットを概説する実行プランを導き出します。

「Muse を個人的なアシスタントとして活用し、すべての構築やコーディングを自分で行いました。もちろん同僚のサポートはありましたが、Muse がなかったら、この短期間でここまでの結果は出せなかったでしょう。」



– 『Space Purr-suit』の共同制作者、Jéssica Souza 氏

信頼できる応答を構築するにあたっては、2 つの課題があります。ひとつは応答を構築するための関連情報を検索、そしてもうひとつは会話の文脈と履歴に基づいてその情報が応答に有用に埋め込まれるようにすることです。

Muse Chat の知識は、これらの両方の課題に対処するために集められており、ドキュメントのセクションやコードスニペットなど 80 万件以上の情報のチャンクで構築されています。これらのチャンクは処理され、周囲の情報への参照で強化され、それぞれが有用で独立した情報の単位となります。また、これらのチャンクはその内容と、ドキュメントからたどられる一意の文脈の両方によって分類されています。システムの透明性と解釈可能性を提供し、互換性のある情報を効果的に検索できるようにしています。現在のパイプラインがどのような構造になっているかについては、以下の図と説明をご参照ください。

チャットリクエストの取得から、チャットがエディター内にあるかどうかの判断、エディター内にある場合は関連するエディターのコンテキストの抽出、クエリの拡大、知識検索、定式化、そして最後に応答の出力までの手順を詳細に示す図。
  • リクエスト:リクエストを受信します。
  • エディターコンテキスト:エディターを使用している場合は、リクエストと共に関連するコンテキストがエディターから動的に抽出され、Muse に適切な情報を提供します。クエリ拡張:初期プランニングシステムが、正確なプランを導き出すためにクエリ拡張を実行します。
  • 知識カタログのフォーマットを可能な限り再現し、各ステップでチャンクの理想的な構造を再現するように LLM に指示します。このアプローチにより、システムは、対象となるチャンクに関して求められているコンテキスト、コンテンツ、ユースケースを反映した埋め込みを計算することができます。
  • これらのプランステップはそれぞれ、きめ細かな意味検索のために使用されます。知識検索:適合性の高い情報を見つけるため、対称的意味検索とメタデータフィルタリングを使用し、クエリ拡張の段階で特定された、理想的な推定チャンクとの類似度が最も高い知識カタログのチャンクを取得します。
  • 構築:最終的な応答を生成するために、別の LLM を使って、フィルタリングされたオリジナルプランのステップと、関連する基本情報を伝えるために必要なソースの両方を含む詳細なアウトラインに基づいて、応答を生成します。応答:Muse Chat が回答を返します。
エディター統合を可能にするコンテキストアウェアパイプラインの構築

エディター内で Muse Chat が利用できる仕組みを詳しく説明するため、パイプラインの 2 番目のステップであるエディターのコンテキスト抽出をご紹介しました。これをパイプラインの一番最初に追加することで、クエリを分析してエディターから抽出すべき情報を特定し、結果を解析して Muse に次のステップを指示します。皆様からのフィードバックに基づき、プロジェクトのセットアップ、プロジェクトの設定、ゲームオブジェクト/プレハブ、コンソールアクセスから着手しました。

警告やメッセージを含むコンソールエラーが発生した場合、コンソールの該当する行をクリックするだけで、エラーが選択項目の一部に追加されます。以下の例では、スクリプト内の波かっこが抜けているためエラーが発生しています。

質問の横にある選択肢として追加するコンソールエラーをクリックし、プロンプトに「What is this error about?(このエラーは何についてのエラーですか)」と入力すると、Muse Chat から、波かっこが欠落しているためにコンパイルエラーになっていることを通知する応答が返されます。
現在のパイプラインを実践に落とし込む

エディター内の新規の会話で、「スクリプタブルな機能を作成し、ユニバーサルレンダラーに追加するにはどうすればよいですか?」

  • という質問に答える簡単な例を見てみましょう。このタスクは、プランステップに変換されます。
  • リクエスト:「現在使用しているレンダーパイプラインに適したスクリプタブルな機能を作成するにはどうすればよいですか?」

エディターコンテキスト:Muse は、使用しているレンダーパイプライン、実行している Unity バージョン、そして質問に関連するプロジェクト設定を特定します。

そして、動的なコンテキストやエディター内の選択に関する情報を抽出します。

クエリ拡張:LLM は以下のプランステップを持つプランを生成します。

  • URP のスクリプタブルな機能の概念と目的を紹介します。 URP でスクリプタブルな機能を作成する手順を説明します。
  • ユニバーサルレンダラーにスクリプタブルな機能を追加する方法を説明するための例を提供します。知識検索:この例では、埋め込みから情報を取得する手順を踏むことでリクエストが満たされます。
  • 構築:LLM が最終的な応答を仲介します。応答:コードスニペットとともに、以下のような回答が返されます。
「How can I create a scriptable feature appropriate for my render pipeline?(レンダリングパイプラインに適したスクリプタブルな機能を作成するにはどうすればよいですか)」というプロンプトを入力すると、Muse Chat から、使用しているレンダーパイプラインとスクリプタブルな機能を作成するための適切な手順を定義する応答が返され、実装できるコードスニペットの例も表示されます。

URP に関係する上記の例では、最終的な応答プランは、URP ドキュメントの「Scriptable Renderer Feature とは」のセクションに基づいた導入部、「スクリプタブルなレンダラー機能を作成し、ユニバーサルレンダラーに追加する」に沿ったステップバイステップの指示、およびカスタムレンダラフィーチャーをユニバーサルレンダラーアセットに最終的に追加する方法に関するサブセクション内の手順によって構成されています。

こうすることで、LLM の基本知識から得られるジェネリックな情報と、ファーストパーティのソースから得られる、推奨されるアプローチや実装の詳細に関連した Unity に関する特定の知識を効率的に置き換えることができます。LLM を使用する場合、時に不正確な情報が発生することは避けられないものの、当社のシステムは信頼できる Unity の知識に頼ることで、その頻度を最小限に抑えるように構築されています。

進化するパイプライン

当社は、タスクに特化したモデルで構成される幅広いエコシステムの開発に取り組んでいます。エディターとの相互運用性を拡大し、ワークフローを加速させることで、よりお客様のニーズに応えられるようにしたいと考えています。そのために重要なのは、研究や業界の発展に迅速に対応し、迅速な実験が可能な文化を受け入れ、育成することだと考えています。

統合された Unity エージェントに向けて

Muse Chat は、エディター上での AI アシスト制作をサポートします。現在、エディター内でコンテキストの一部として選択できる内容を拡張しており、階層全体や Project ウィンドウ、ゲームオブジェクトに関連するコードも含められるようになる予定です。さらに、システムの幅広い改善や、Unity の知識とコード生成のパフォーマンスベンチマークの改善を行っており、エディターで Muse がユーザーの代わりにアクションを実行できるよう、エージェントの動作を有効にできるような将来にも備えています。

GDC では、Muse の 5 つの機能をすべて使用して、URP サンプルプロジェクトの庭のシーンのゲームループをカスタマイズする方法を紹介しました。「Unity Muse:Accelerating prototyping in the Unity Editor with AI(Unity Muse:AI を活用した Unity エディターでのプロトタイピングの高速化)」では、Muse のすべての機能を使用してプロジェクトのシーンとゲームプレイを素早くカスタマイズする方法を学ぶことができます。Muse 機能間の相互運用性は、Muse チャットの新たな改良を実装するにつれ、さらに向上していきます。

Muse のオンボーディング体験をアップデートし、より簡単に Muse の無料トライアルを開始し、Muse パッケージをプロジェクトに追加できるようにしました。新しい Muse Explore ページをご覧いただき、Discussions で最新の機能や改善点に関するご意見をお聞かせください。