VRChatで自律機械知能P-AMI<Q>を作ってみた!実装設計のポイントと課題を解説
詳細情報
※以下文章はスライド資料を元に自動生成されたものです。
発表のハイライト
- VRChat内で動作する自律機械知能「P-AMI<Q>」の実装設計について解説
- 好奇心ベースのシンプルな設計と、モジュール化による拡張性の高さを実現
- HydraやPyTorch Lightningを活用した開発事例を紹介
- 今後の課題として、非同期処理や多入力・出力への対応などを検討
VRChatで活躍する個性豊かなアバターたち。もしも、そのアバターたちが自分で考えて行動できるようになったら…?そんな未来を実現すべく、GesonAnkoさんは「自律機械知能P-AMI<Q>」の開発に取り組んでいます。
2023年11月15日に開催されたVRChatのML集会で、GesonAnkoさんは「自律機械知能P-AMI<Q>の実装設計について」と題した発表を行いました。本記事では、発表内容とスライドを参考に、P-AMI<Q>の設計思想から実装、そして今後の展望までを分かりやすく解説していきます。
自律機械知能P-AMI<Q>とは?
P-AMI<Q>は、「Primitive Autonomous Machine Intelligence based on Q(Cu)riosity」の略で、好奇心ベースの原始的な自律機械知能です。
好奇心と原始性
P-AMI<Q>の最大の特徴は、好奇心をベースに設計されている点です。これは、エージェント(P-AMI<Q>)が、VRChatの世界で未知の領域を探求しようとする性質のこと。まるで子供のように、周囲を自由に動き回り、新しい発見を求めて行動します。
また、原始性も重要な要素です。複雑な処理ではなく、自律性を構築するために必要な最低限のパーツのみで構成されています。これは、シンプルで理解しやすいシステムを実現し、将来的に拡張性を高めるためです。
P-AMI<Q>の設計思想:壊れない、そして誰でも作れるように
GesonAnkoさんは、P-AMI<Q>の設計において、以下の2つのことを重視しました。
- 壊れても必ず直せるコード:二度とP-AMI<Q>のような機械知能を失わないように、コードの保守性を重視した設計
- 誰でも一緒に作りやすい設計:多くの仲間と協力して開発を進め、P-AMI<Q>を育てていきたいという思いから、モジュール化を採用
これらの思想は、P-AMI<Q>の開発を長期的に継続し、より多くの開発者に参加してもらうための土台となっています。
オブジェクト構造:登場人物たちと彼らの役割
P-AMI<Q>の世界には、様々な「登場人物」がいます。彼らは、それぞれ独自の役割を持って、P-AMI<Q>の動作を支えています。
主要なオブジェクトと役割
- Environment(環境):VRChatとP-AMI<Q>の仲介役。VRChatからセンサ情報を受け取り、P-AMI<Q>への入力に変換したり、P-AMI<Q>の行動をVRChatに反映させたりします。
- Agent(エージェント):P-AMI<Q>そのもの。Environmentから受け取った情報に基づいて、行動を決定し、Environmentに返します。
- Interaction(相互作用):AgentとEnvironmentを繋ぐ役割。AgentとEnvironmentの間で、どのくらいの頻度で情報交換を行うかなどを管理します。
- Neural Networks(ニューラルネットワーク):P-AMI<Q>の頭脳。VAE、Forward Dynamics、PPOなどの深層学習モデルが集約されています。
- Data Collector(データコレクター):Agentの行動や環境の情報などを収集し、Trainerに渡す役割。
- Trainer(トレーナー):Neural Networksの学習を行います。
処理構造:P-AMI<Q>が動き出すまで
P-AMI<Q>は、大きく分けて以下の3つの段階で動作します。
起動フェーズ
- 設定ファイルを読み込む
- 各オブジェクトをインスタンス化する
- メインループを開始する
メインループ
メインループでは、InteractionとTrainerを交互に実行します。
- Interact:AgentがEnvironmentとやり取りを行い、行動を決定するフェーズ
- Train:TrainerがData Collectorからデータを受け取り、Neural Networksの学習を行うフェーズ
開発の課題:まだまだ改善の余地あり!
GesonAnkoさんは、P-AMI<Q>の開発を通して、いくつかの課題に直面しました。
- 学習処理中の停止:学習中はAgentが動作しない状態になる
- Agentの複雑化:観測処理と行動生成の分離など、コードの見通しが悪くなりがち
- コードの可読性の低下:階層構造が複雑になり、コードの理解が難しくなる
次の設計構想:さらなる進化を目指して
GesonAnkoさんは、今後のP-AMI<Q>の開発において、以下の課題に取り組むことを考えています。
- 非同期処理:インタラクションと学習を同時に行い、学習処理中の停止を解消
- 多入力・出力への対応:視覚情報だけでなく、音声や触覚など、様々な情報に対応できるようにする
- 記憶の保存・引き継ぎ:P-AMI<Q>の経験を記憶し、学習内容を引き継ぐ
まとめ
VRChatで動作する自律機械知能「P-AMI<Q>」は、好奇心ベースのシンプルな設計と、モジュール化による拡張性の高さを実現した、非常に興味深いプロジェクトです。GesonAnkoさんは、P-AMI<Q>をより多くの開発者と協力して発展させたいと考えており、今後、非同期処理や多入力・出力への対応など、さらなる進化を目指していくとのこと。
VRChatの世界が、P-AMI<Q>のような自律機械知能によって、より豊かでインタラクティブな空間へと変化していく未来が楽しみです!