2017 年 9 月 17 日、Unity Machine Learning Agents Toolkit(ML-Agents)の最初のバージョンがリリースされました。ゲーム開発者や AI 研究者が、機械学習分野の最新の成果を利用してインテリジェントなエージェントを訓練して組み込むためのプラットフォームとして Unity を使用できるようにする、というシンプルなミッションでした。最初のバージョンをリリースして以来、コミュニティとツールキットは大きく成長し、プロジェクトは 8400 以上の GitHub スターを獲得しました。そして本日、2 年半以上の開発期間と 15 回以上のリリースアップデートを経て、ML-Agents Unity パッケージがバージョン 1.0 となり、プレビュー版パッケージとして利用可能になったことをお知らせいたします。また、ML-Agents の新しい製品とリソースのページをローンチしたことも合わせてお知らせいたします。
ML-Agents はオープンソースのプロジェクトで、ゲームやシミュレーションをインテリジェントなエージェントを訓練するための環境として利用できるようにするものです。シーンを設定し、その中でエージェントを定義するための C# SDK と、2D、3D、VR/AR 環境でエージェントを訓練するための最先端の機械学習ライブラリが含まれています。
本日、ML-Agents は製品版に向けて重要なマイルストーンを迎えました。C# SDK は最初のメジャーバージョンである v1.0 に移行し、現在、Unity パッケージマネージャーから com.unity.ml-agents というプレビューパッケージとして提供されています。これにより、ユーザーには 3 つの重要なメリットがもたらされます。
このブログ記事では、ML-Agents の簡単な歴史、最新のマイルストーンリリースである ML-Agents Release 1 の概要、そして今後予定されている ML-Agents の改良について紹介します。
最初に ML-Agents を紹介したブログ記事では、次のように書きました。
「世界で最も人気のある制作エンジンである Unity は、機械学習とゲームの交差点に位置しています。機械学習の研究者が最も強力なトレーニングシナリオを利用できるようにすることは、私たちの使命であり、最新の機械学習技術を利用できるようにすることでゲームコミュニティに恩返しをすることは、非常に重要なことです。」
その後の 2 年半の間に、ML-Agents はその使命を忠実に守り、ゲーミングと機械学習のコミュニティの中で進化してきました。私たちは、カリキュラム学習のような新しい学習オプションの追加、スパース報酬環境のための Curiosity モジュールの実現、学習の速度と効率の向上、マルチエージェントシナリオのための Self-Play の有効化、ML-Agents で学習されたすべてのモデルへのネイティブでクロスプラットフォームな推論サポートの提供など、ツールキットを継続的に改善してきました(ML-Agents のすべての機能については、GitHub の ML-Agents 概要ページを参照してください)。これらの改善により、Puppo のような新しいデモや環境、Jam City の『Snoopy Pop』や Carry Castle の『Source of Madness』のような実際のゲームとの統合が可能になったことを、私たちは実際に目の当たりにしてきました。
また、特に AI 研究者の皆さんに向けて、ML-Agents を使って視覚、制御、計画のベンチマークとなる「Obstacle Tower Environment」を構築し、コンテストも開催しました。また、他の研究者や研究室でも、研究ベンチマークを作成するために ML-エージェントを採用しているのを見てきました。代表的な例としては、マルチエージェント環境「Arena」、「Animal AI Olympics」、連続制御の「Marathon Environments」などがあります。
最初のリリース以来、ML-Agents コミュニティは、AI 研究者、ゲーム開発者、学生のゆるやかな連帯から、何千人もの参加者が参加するコミュニティへと成長しました。これには、オンラインまたは直接私たちに共有された、ML-Agents のいくつかの創造的なデモンストレーションも含みます。その結果、私たちの GitHub リポジトリは 8,400 以上のスターと 2,300 回以上のフォークを獲得し、また、私たちの研究論文「Unity: A General Platform for Intelligent Agents」は 115 回以上引用されています。
本日、最新リリースの ML-Agents Unity パッケージが v1.0.0 となり、Unity パッケージマネージャーのプレビューパッケージとして利用できるようになりました。私たちの研究論文「Unity: A General Platform for Intelligent Agents」も、ML-Agents Release 1 を反映して更新されました。
このバージョン変更は、ML-Agents の中核に関わる 2 つの改善を反映したものです。
ML-Agents Release 1 から、GitHub でリリースが行われるたびに、ML-Agents を構成する各パッケージの新しいバージョンが公開されます。ML-Agents Release 1 では、以下のバージョンを設定しています。
パッケージのバージョニングと GitHub リリースの対応する変更の詳細はバージョニングのページで確認できます。
ML-Agents Release 1 は、非常にエキサイティングな旅の始まりです。私たちは、学習アルゴリズムの性能と効率を改善し、皆さんからのフィードバックに基づいて Unity パッケージを進化させ、ML-Agents のゲームや産業用アプリケーションから着想を得つつ、サンプル環境を追加することで、ツールキットの開発を続けていく予定です。ML-Agents フォーラムでは、私たちのロードマップに関する最新情報をご提供しています。また、ロードマップに対するご意見やご要望も同じフォーラムでお受けします。
中核となるツールキットの進化に加えて、いくつかのエキサイティングな改良が計画されていますので、その概要を簡単にご紹介します。
Unity であるパッケージを検証済みにすることには、そのパッケージが重要なテストを受け、特定のバージョンの Unity で安全に動作することが検証されていることを伝え、ユーザーに安心感を提供するという意味があります。つまり、もし皆さんが製品版のゲームに ML-Agents を使いたいと思ったときに、Unity として皆さんをサポートできるようにしたいと考えているということです。私たちは、Unity 2020.2 に向けて、ML-Agents の検証済みパッケージのリリースを計画しています。これは同時に、Unity 2020 の LTS サイクルで ML-Agents の Unity パッケージをサポートする予定であるということにもなります。
ML-Agents のユーザーからのフィードバックでよく受けるものとして、Python をインストールせずに学習したいというものがあります。また、ユーザーがローカルマシン上で学習を行うには限界があり、一度に学習できる環境やハイパーパラメーターのバリエーションの数が制限されてしまうこともあります。ML-Agents Cloud は、ML-Agents のユーザーがスケーラブルなクラウドインフラ上でトレーニングを行うことができるようにするためのクラウドサービスで、今年中に提供を開始する予定です。ユーザーは、多数の学習セッションを同時に送信したり、多くのマシンにまたがって学習セッションを簡単にスケールアウトして、より速い結果を得ることができるようになります。
現在、ML-Agents Cloud への早期プレビューアクセスのための登録を受け付けています。既存の ML-Agents ユーザーで、実験のスケーリングや管理にお困りの方はぜひご検討ください。登録はこちらから行えます。
Unity のコアは、Data-Oriented Technology Stack(DOTS)を使って再構築されつつあります。DOTS は、ビルドのサイズを小さくして高速に実行できるようにすることで、パフォーマンスに大きなメリットをもたらします。これらの利点は、シミュレーションや機械学習の文脈ではさらに大きくなります。このような事情から、DOTS 用に構築されたバージョンの ML-Agents を Unity 社内で試作しています。DOTS プロトタイプをサンプルシーン(上記参照)や「MegaCity」や「TinyRacing」などの Unity デモに統合することにすでに成功しています。その結果は目を見張るものがありました。MegaCity のような複雑で大規模な環境でも、標準的なノートパソコンを使ってわずか数時間でエージェントに学習させることができました。今年中には、DOTS 用の ML-Agents の実験的なバージョンをリリースする予定です。
Unity のロボティクス研究者にとって、NVIDIA PhysX 4.0 を搭載した Unity は、ロボティクスシミュレーションの品質を劇的に向上させました(「Unity 2019.3 における物理関連の変更事項」を参照)。Unity 2020.1 には、Nvidia の PhysX 4.1 を搭載した新しいアーティキュレーション関節システムが含まれており、ロボットアームと連続関節のシミュレーションが劇的に向上しています。このシステムでは、Featherstone のアルゴリズム、次元削減された座標表現、新しい非線形反復ソルバーを使用して、関節内の不要なストレッチを大幅に削減しています。実際に、多くの関節を連鎖させても、安定した正確な動きを実現できるようになりました。
Unity 2020.1 ベータ版では、すでに新しいアーティキュレーション関節システムを利用することができます。上記のロボティクス環境を試してみたい方や、独自のロボティクス環境を作成するためのサンプルプロジェクトとして使用したい方は、Unity Robotics Demo プロジェクト(ML-Agents Release 1 と統合されています)をチェックしてみてください。さらに、ML-Agents 内のサンプル環境を拡張して、さらにロボティクス環境や連続制御環境を追加する予定です。
Immersive Limit と提携して Unity Learn コース「ML-Agents: Hummingbirds」を作成しました。このコースでは、ML-Agents Release 1 を使った実装方法を演習、コードのウォークスルー、有益なディスカッションを通して学ぶことができます。
6 自由度を持ち、複雑な経路を飛ぶハチドリを花のあるところまで連れていく難しいタスクを遂行するよう、ニューラルネットワークを学習させる方法を学びます。このコースの終了時には、ML-Agents Release 1 の能力を活用してインテリジェントなエージェントを作成し、Unity のゲームやシミュレーションプロジェクトに統合する方法を十分に理解できるようになるでしょう。
このコースは 5 月末に提供予定です。ご興味のある方は、こちらのフォームからご登録ください。コースに関する最新情報をご提供いたします。
Unity ML-Agents チームを代表して、皆様の長年にわたる継続的なご支援に感謝いたします。引き続き、ML-Agents へのご期待とご支援を頂ければ幸いです。
ML-Agents の利用を開始したい方は、まず GitHub 上のホームページをチェックしてください。
このリリースで提供されている機能をお使いの方は、ぜひご連絡ください。ML-Agents に関するフィードバック、一般的な問題、質問などは、ML-Agents フォーラムに連絡するか、直接メールでお気軽にお問い合わせください。バグに遭遇した場合は、ML-Agents GitHub の issues ページから連絡してください。
機械学習とゲームのエキサイティングな交差点で働きたい方は、いくつかのポジションで求人を出しておりますので、ぜひご応募ください。