Upgrade to Pro — share decks privately, control downloads, hide ads and more …

非同期更新AMI基盤システム

Geson Anko
January 09, 2024
66

 非同期更新AMI基盤システム

Geson Anko

January 09, 2024
Tweet

Transcript

  1. 1 Virtual AI Exploresについて • 和名:仮装AI研究所 仮想世界上で AI, 特に⾃律機械知能 (AMI)

    を造る集団 • テーマ 「なぜと問い、探求する知性を造る。」 ͜ͷԾ૝ੈքʹ৽ͨͳ஌ੑΛ஀ੜͤ͞Δɻ ๻ͨͪ͸ɺ൴Βػց஌ೳʹڵฃ͍͍ͯͨ͠ɻ ͦΜͳ൴ΒΛੜΈग़͠ɺ୳ڀ͍͍ͯͨ͠ɻ ͦͯ͠൴ΒʹΑͬͯ๰͕ΕΔະདྷΛݟಧ͚͍ͨɻ
  2. 2 概要 • 背景と⽬的 • VRChatに⾃律機械知能 ぱみきゅー を作成したが、学習中は動作 が⽌まる問題がある。 •

    学習と推論を⾮同期に並⾏して⾏うシステムを造る • ぱみきゅーが常に動くようになる!より強いモデルが使える! • 進め⽅ • ⼩さなマイルストーンを定め、着実に達成していく⽅針 • 週1ミーティングで進捗確認&タスク決定 • 期間 • 2024年 1⽉18⽇ ‒ 4⽉ 3⽇ (予定)
  3. 4 ⾃律機械知能(AMI)とは? ⾃律動作する機械でできた知能のこと。 • ⾃律性 ある系の中で、定められた⽬的に従って動作し続けること • 系とは? AMIとその周りの環境のこと Autonomous

    Machine Intelligence • ⽬的は? 報酬によって定められる (強化学習の場合) • 機械知能におけるロケット 様々な技術の総結集
  4. 5 P-AMI<Q>:ぱみきゅーとは? 好奇⼼ベースの原始⾃律機械知能 Primitive Autonomous Machine Intelligence based on Q(Cu)riosity.

    ⾃律性 • 系 : VRChat • ⽬的: 探索(好奇⼼)← 今回は解説しないよ 好奇⼼に従って VRChatのワールド上を動き回っている。 バーチャル学会2023 で発表したよ。 アップデートに伴い原始性は消失。 でも「ぱみきゅー」の語感が良いのでそのまま Japan Streetに いるよ! 2023年9⽉ 誕⽣
  5. 6 VRChatにAMIを作るには? Linux上にPythonで構築 • 映像の取得 VRChatをOBSでキャプチャ OpenCVで読取り • ⾏動の送信 “OSC

    as Input Controller”で操作 前後左右の移動、⽔平回転 ジャンプ、ラン OBS OpenCV VRChat OSC API Ubuntu Linux Python 観測 ⾏動 ⼀つのVRChatterとして • 専⽤のPC • VRCアカウント作成
  6. 7 P-AMI<Q>の構成パーツは? Data Collectors Neural Networks Interaction Environ- ment Agent

    Trainers 観測 データ ⾏動 収集 使⽤ モデル 使⽤ 学習 実データ VRChatと 直接やり取り インタラクション 形式の設定 観測 → ⾏動 ⼿続き 学習する AIモデル群 学習のための データ収集 データを使って モデルを更新
  7. 8 処理の⼿続きは? 起動 インタラクション 学習 観測 取得 ⾏動 ⽣成 次の観測

    予測 報酬(予測誤差)計算 ⼤枠 インタラクション ×128回 (10 fps) 観測 取得 次の観測 予測 ⾏動 ⽣成 セット アップ
  8. 9 システムの課題 • 定期的に⽌まる 推論と学習を交互に⾏うため。 • 問題 • 経験の連続性が切れる:現実の時間進⾏との不⼀致 →

    プランニングアルゴリズムなどに悪影響 • モデルサイズを⼤きくできない:学習時間が増加→停⽌時間も増加 → ⼤規模化は深層モデルの要 • 計算リソースの⾮効率的使⽤
  9. 10 ⽬的・⽬標 • 以上の課題より、推論と学習を⾮同期に並⾏して⾏う システムが必須。 • ⽬標 • ⾮同期更新システムが実装され、推論(ロールアウト、インタラ クション)処理と学習処理が並⾏して⾏われることによって、

    AMIが常時動作していること。 • ⾮同期システムを新たに作成し、そこに既存のモデルを移⾏する。 • さらに、今まで不可能だったモデルの⼤規模化の試運転までやっ てみたい。
  10. 11 嬉しいこと • ずっと動く • ⽌まっている間は ぱみきゅーがどんな⾵に動くか⾒れない。 • いつもインタラクションできるようになる! •

    ⼤きなモデルで、⾼度な知能に • より複雑で興味深い⾏動を獲得する可能性 • プランニングアルゴリズムが使えるようになる • ようは「考えること」をするための基盤が作れる。
  11. 13 構想 起動 前準備 メイン スレッド 推論 スレッド 学習 スレッド

    CUI System制御 VRChatと やり取り 内部モデルの 学習 共有オブジェクトは スレッド開始前に全て集めるよ! 並⾏処理中に新たに 共有なんてされたら…
  12. 14 構想:スレッド間の関係性 メイン スレッド 推論 スレッド 学習 スレッド 終了命令 ⼀時停⽌・再開命令

    学習 スレッド 推論 スレッド モデル更新後 パラメータ同期 集めた経験バッファ 推論⽤ モデル 学習⽤ モデル データ データ データ ※現時点での深層モデルは推論モードと 学習モードがあるため、⼆つモデルが必要
  13. 15 ロードマップ • ステップ1 ⾮同期システムが動作する。 • 推論スレッド:モデルの推論をしつつ、データ収集 • 学習スレッド:集められたデータでパラメータ更新、同期 •

    メインスレッド:終了、⼀時停⽌、再開ができる モデル • ランダムな⼊⼒を与えて、AutoEncoderを学習してみる(構想) • AutoEncoderは Encoderのみしか推論では使わない → 簡単に実装できて実際の動作形式に近い
  14. 18 スケージューリング 1/21 2/4 2/18 3/3 3/17 3/27 ⾮同期システム 既存モデル引き継ぎ

    モデル規模拡⼤ 最終報告・振り返り 中間報告 LTしても いいかも
  15. 19 進め⽅ • プロジェクト • 週 1 程度でミーティング。進捗確認とタスク決定 • ML集会

    Discord #ディスカッション フォーラムでやるよ • 実装 • 機能設計 • GitHub上で開発。 Issueにタスク書く → Branch切って作業 → Pull Request → レビュー してマージ
  16. 21 募集 • 1〜2⼈ほど 既に Myxyさんが参戦。私は設計や実装⽅⾯。 • 実装担当 ← ゆんたんさん

    IN (1/17) • マネージャー担当 • 要件 • PyTorchなどでMLのプログラムを書いた事がある⽅ • C++/C#など、静的型付け⾔語(または mypy) を使⽤した経験 • GitなどのCIを⽤いた開発経験 • ⾮同期処理を書いた事がある⽅ (Udon#でのグローバル同期など、所有権のお話がわかる⽅…)