Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
非同期更新AMI基盤システム
Search
Geson Anko
January 09, 2024
0
68
非同期更新AMI基盤システム
Geson Anko
January 09, 2024
Tweet
Share
More Decks by Geson Anko
See All by Geson Anko
2024年3月27日 ML集会 非同期AMI基盤システムα
gesonanko
0
32
非同期AMI Sys ロードマップ to Milestone 2
gesonanko
0
21
AMI System 非同期処理の事前知識
gesonanko
0
36
仮想AI研 ML集会 2023年12月27日
gesonanko
0
22
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1366
200k
Practical Orchestrator
shlominoach
186
10k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
180
The Pragmatic Product Professional
lauravandoore
32
6.3k
A Tale of Four Properties
chriscoyier
157
23k
How STYLIGHT went responsive
nonsquared
96
5.2k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
Why Our Code Smells
bkeepers
PRO
335
57k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Making the Leap to Tech Lead
cromwellryan
133
9k
Code Review Best Practice
trishagee
65
17k
Transcript
<企画書> ⾮同期AMI システムの実装 GesonAnko
1 Virtual AI Exploresについて • 和名:仮装AI研究所 仮想世界上で AI, 特に⾃律機械知能 (AMI)
を造る集団 • テーマ 「なぜと問い、探求する知性を造る。」 ͜ͷԾੈքʹ৽ͨͳੑΛੜͤ͞Δɻ ͨͪɺ൴Βػցೳʹڵฃ͍͍ͯͨ͠ɻ ͦΜͳ൴ΒΛੜΈग़͠ɺ୳ڀ͍͍ͯͨ͠ɻ ͦͯ͠൴ΒʹΑ͕ͬͯΕΔະདྷΛݟಧ͚͍ͨɻ
2 概要 • 背景と⽬的 • VRChatに⾃律機械知能 ぱみきゅー を作成したが、学習中は動作 が⽌まる問題がある。 •
学習と推論を⾮同期に並⾏して⾏うシステムを造る • ぱみきゅーが常に動くようになる!より強いモデルが使える! • 進め⽅ • ⼩さなマイルストーンを定め、着実に達成していく⽅針 • 週1ミーティングで進捗確認&タスク決定 • 期間 • 2024年 1⽉18⽇ ‒ 4⽉ 3⽇ (予定)
3 背景
4 ⾃律機械知能(AMI)とは? ⾃律動作する機械でできた知能のこと。 • ⾃律性 ある系の中で、定められた⽬的に従って動作し続けること • 系とは? AMIとその周りの環境のこと Autonomous
Machine Intelligence • ⽬的は? 報酬によって定められる (強化学習の場合) • 機械知能におけるロケット 様々な技術の総結集
5 P-AMI<Q>:ぱみきゅーとは? 好奇⼼ベースの原始⾃律機械知能 Primitive Autonomous Machine Intelligence based on Q(Cu)riosity.
⾃律性 • 系 : VRChat • ⽬的: 探索(好奇⼼)← 今回は解説しないよ 好奇⼼に従って VRChatのワールド上を動き回っている。 バーチャル学会2023 で発表したよ。 アップデートに伴い原始性は消失。 でも「ぱみきゅー」の語感が良いのでそのまま Japan Streetに いるよ! 2023年9⽉ 誕⽣
6 VRChatにAMIを作るには? Linux上にPythonで構築 • 映像の取得 VRChatをOBSでキャプチャ OpenCVで読取り • ⾏動の送信 “OSC
as Input Controller”で操作 前後左右の移動、⽔平回転 ジャンプ、ラン OBS OpenCV VRChat OSC API Ubuntu Linux Python 観測 ⾏動 ⼀つのVRChatterとして • 専⽤のPC • VRCアカウント作成
7 P-AMI<Q>の構成パーツは? Data Collectors Neural Networks Interaction Environ- ment Agent
Trainers 観測 データ ⾏動 収集 使⽤ モデル 使⽤ 学習 実データ VRChatと 直接やり取り インタラクション 形式の設定 観測 → ⾏動 ⼿続き 学習する AIモデル群 学習のための データ収集 データを使って モデルを更新
8 処理の⼿続きは? 起動 インタラクション 学習 観測 取得 ⾏動 ⽣成 次の観測
予測 報酬(予測誤差)計算 ⼤枠 インタラクション ×128回 (10 fps) 観測 取得 次の観測 予測 ⾏動 ⽣成 セット アップ
9 システムの課題 • 定期的に⽌まる 推論と学習を交互に⾏うため。 • 問題 • 経験の連続性が切れる:現実の時間進⾏との不⼀致 →
プランニングアルゴリズムなどに悪影響 • モデルサイズを⼤きくできない:学習時間が増加→停⽌時間も増加 → ⼤規模化は深層モデルの要 • 計算リソースの⾮効率的使⽤
10 ⽬的・⽬標 • 以上の課題より、推論と学習を⾮同期に並⾏して⾏う システムが必須。 • ⽬標 • ⾮同期更新システムが実装され、推論(ロールアウト、インタラ クション)処理と学習処理が並⾏して⾏われることによって、
AMIが常時動作していること。 • ⾮同期システムを新たに作成し、そこに既存のモデルを移⾏する。 • さらに、今まで不可能だったモデルの⼤規模化の試運転までやっ てみたい。
11 嬉しいこと • ずっと動く • ⽌まっている間は ぱみきゅーがどんな⾵に動くか⾒れない。 • いつもインタラクションできるようになる! •
⼤きなモデルで、⾼度な知能に • より複雑で興味深い⾏動を獲得する可能性 • プランニングアルゴリズムが使えるようになる • ようは「考えること」をするための基盤が作れる。
12 ⾒通し
13 構想 起動 前準備 メイン スレッド 推論 スレッド 学習 スレッド
CUI System制御 VRChatと やり取り 内部モデルの 学習 共有オブジェクトは スレッド開始前に全て集めるよ! 並⾏処理中に新たに 共有なんてされたら…
14 構想:スレッド間の関係性 メイン スレッド 推論 スレッド 学習 スレッド 終了命令 ⼀時停⽌・再開命令
学習 スレッド 推論 スレッド モデル更新後 パラメータ同期 集めた経験バッファ 推論⽤ モデル 学習⽤ モデル データ データ データ ※現時点での深層モデルは推論モードと 学習モードがあるため、⼆つモデルが必要
15 ロードマップ • ステップ1 ⾮同期システムが動作する。 • 推論スレッド:モデルの推論をしつつ、データ収集 • 学習スレッド:集められたデータでパラメータ更新、同期 •
メインスレッド:終了、⼀時停⽌、再開ができる モデル • ランダムな⼊⼒を与えて、AutoEncoderを学習してみる(構想) • AutoEncoderは Encoderのみしか推論では使わない → 簡単に実装できて実際の動作形式に近い
16 ロードマップ • ステップ2 既存の深層モデルが引き継がれる 現状P-AMI<Q>に使われているモデル群を移⾏する。 • Observation Encoder: VAE
• Forward Dynamics: SConv, ResnetFD • Policy: PPO • Hydraによる設定ファイルからの起動
17 ロードマップ • ステップ3 モデルの規模拡⼤ 計算リソースをフル活⽤できるようにする • 基本はパラメータ数を単純に増やしてみる • 発⽣する問題の調査(メモリオーバーフローなど)
• 解決策の提案
18 スケージューリング 1/21 2/4 2/18 3/3 3/17 3/27 ⾮同期システム 既存モデル引き継ぎ
モデル規模拡⼤ 最終報告・振り返り 中間報告 LTしても いいかも
19 進め⽅ • プロジェクト • 週 1 程度でミーティング。進捗確認とタスク決定 • ML集会
Discord #ディスカッション フォーラムでやるよ • 実装 • 機能設計 • GitHub上で開発。 Issueにタスク書く → Branch切って作業 → Pull Request → レビュー してマージ
20 メンバー募集!
21 募集 • 1〜2⼈ほど 既に Myxyさんが参戦。私は設計や実装⽅⾯。 • 実装担当 ← ゆんたんさん
IN (1/17) • マネージャー担当 • 要件 • PyTorchなどでMLのプログラムを書いた事がある⽅ • C++/C#など、静的型付け⾔語(または mypy) を使⽤した経験 • GitなどのCIを⽤いた開発経験 • ⾮同期処理を書いた事がある⽅ (Udon#でのグローバル同期など、所有権のお話がわかる⽅…)
22 得られるもの • スキル • ⾮同期システムを安全に造る設計・実装⽅法 • Pythonによる機械学習の実装能⼒ • 実時間スケールで動作する機械知能システムの実装⼒
→ ロボティクス⽅⾯への応⽤ • ドキュメンテーション能⼒(タスクをissueに書くので)