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
【RSJ2025】PAMIQ Core: リアルタイム継続学習のための⾮同期推論・学習フレームワーク
Search
Geson Anko
September 04, 2025
Science
0
100
【RSJ2025】PAMIQ Core: リアルタイム継続学習のための⾮同期推論・学習フレームワーク
第43回 日本ロボット学会学術講演会(RSJ 2025)で発表した際に用いたスライドです。
公開にあたり、一部修正があります。
https://ac.rsj-web.org/2025/
Geson Anko
September 04, 2025
Tweet
Share
More Decks by Geson Anko
See All by Geson Anko
Pythonクラス基礎
gesonanko
1
96
自律機械知能基礎論 2024
gesonanko
0
19
2024年5月18日 XRMTGエンジニア飲み集会LT
gesonanko
0
9
AMI System基礎 2025
gesonanko
0
59
2025年1月10日 エンジニア集会 誰かと開発するために
gesonanko
0
77
2024年3月27日 ML集会 非同期AMI基盤システムα
gesonanko
0
39
非同期AMI Sys ロードマップ to Milestone 2
gesonanko
0
29
AMI System 非同期処理の事前知識
gesonanko
0
45
非同期更新AMI基盤システム
gesonanko
0
100
Other Decks in Science
See All in Science
安心・効率的な医療現場の実現へ ~オンプレAI & ノーコードワークフローで進める業務改革~
siyoo
0
330
Symfony Console Facelift
chalasr
2
470
Accelerated Computing for Climate forecast
inureyes
PRO
0
120
Explanatory material
yuki1986
0
400
ttl2html (RDF/Turtle to HTML)
masao
0
110
AI(人工知能)の過去・現在・未来 —AIは人間を超えるのか—
tagtag
1
120
02_西村訓弘_プログラムディレクター_人口減少を機にひらく未来社会.pdf
sip3ristex
0
610
04_石井クンツ昌子_お茶の水女子大学理事_副学長_D_I社会実現へ向けて.pdf
sip3ristex
0
620
データマイニング - グラフ構造の諸指標
trycycle
PRO
0
170
データベース10: 拡張実体関連モデル
trycycle
PRO
0
980
データベース05: SQL(2/3) 結合質問
trycycle
PRO
0
800
Ignite の1年間の軌跡
ktombow
0
150
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Docker and Python
trallard
46
3.6k
How GitHub (no longer) Works
holman
315
140k
Done Done
chrislema
185
16k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
BBQ
matthewcrist
89
9.8k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Making Projects Easy
brettharned
117
6.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Transcript
リアルタイム継続学習のための ⾮同期推論・学習フレームワーク ML集会, GOP Co., Ltd. 撮影OK
1 はじめに • ⼀般の深層学習 ⼤規模なオフライン学習 → 静的なパイプライン実⾏ • 強化学習 推論(環境インタラクション)と学習を交互実⾏
→ 推論停⽌時間が発⽣ 動的に学習したい。しかし、 推論停⽌する間も時間は進む! 学習と推論の同時実⾏の必要性 • “PAMIQ Core” を実装 リアルタイムに継続学習する機械知能を簡単に作れるように • PAMIQにおいて、これらの課題を解決したシステムを実装 汎⽤的な枠組みの発⾒ → 再利⽤可能にする価値
2 PAMIQ Coreの特徴 • マルチスレッドアーキテクチャ シンプル・軽量な3スレッド(制御・推論・学習)実装 • モジュラー設計 コンポーネントを基底クラスを元に実装。 •
既存フレームワークとの統合 PyTorch, Gymansium (OpenAI Gym) • 継続学習の運⽤⽀援機能 インタラクティブ制御コンソール、状態保存など • 段階的なサンプル 最⼩実装から実⽤サンプル、VRChatへの実装まで • “pip install pamiq-core” で即利⽤可能 Python Package Index (PyPI)へ公開済
3 PAMIQ Coreの特徴 • マルチスレッドアーキテクチャ シンプル・軽量な3スレッド(制御・推論・学習)実装 • モジュラー設計 コンポーネントを基底クラスを元に実装。 •
既存フレームワークとの統合 PyTorch, Gymansium (OpenAI Gym) • 継続学習の運⽤⽀援機能 インタラクティブ制御コンソール、状態保存など • 段階的なサンプル 最⼩実装から実⽤サンプル、VRChatへの実装まで • “pip install pamiq-core” で即利⽤可能 Python Package Index (PyPI)へ公開済 起動 推論 スレッド 学習 スレッド 制御 スレッド
4 PAMIQ Coreの特徴 • マルチスレッドアーキテクチャ シンプル・軽量な3スレッド(制御・推論・学習)実装 • モジュラー設計 コンポーネントを基底クラスを元に実装。 •
既存フレームワークとの統合 PyTorch, Gymansium (OpenAI Gym) • 継続学習の運⽤⽀援機能 インタラクティブ制御コンソール、状態保存など • 段階的なサンプル 最⼩実装から実⽤サンプル、VRChatへの実装まで • “pip install pamiq-core” で即利⽤可能 Python Package Index (PyPI)へ公開済
5 PAMIQ Coreの特徴 • マルチスレッドアーキテクチャ シンプル・軽量な3スレッド(制御・推論・学習)実装 • モジュラー設計 コンポーネントを基底クラスを元に実装。 •
既存フレームワークとの統合 PyTorch, Gymansium (OpenAI Gym) • 継続学習の運⽤⽀援機能 インタラクティブ制御コンソール、状態保存など • 段階的なサンプル 最⼩実装から実⽤サンプル、VRChatへの実装まで • “pip install pamiq-core” で即利⽤可能 Python Package Index (PyPI)へ公開済 Gymnasium
6 PAMIQ Coreの特徴 • マルチスレッドアーキテクチャ シンプル・軽量な3スレッド(制御・推論・学習)実装 • モジュラー設計 コンポーネントを基底クラスを元に実装。 •
既存フレームワークとの統合 PyTorch, Gymansium (OpenAI Gym) • 継続学習の運⽤⽀援機能 インタラクティブ制御コンソール、状態保存など • 段階的なサンプル 最⼩実装から実⽤サンプル、VRChatへの実装まで • “pip install pamiq-core” で即利⽤可能 Python Package Index (PyPI)へ公開済
7 PAMIQ Coreの特徴 • マルチスレッドアーキテクチャ シンプル・軽量な3スレッド(制御・推論・学習)実装 • モジュラー設計 コンポーネントを基底クラスを元に実装。 •
既存フレームワークとの統合 PyTorch, Gymansium (OpenAI Gym) • 継続学習の運⽤⽀援機能 インタラクティブ制御コンソール、状態保存など • 段階的なサンプル 最⼩実装から実⽤サンプル、VRChatへの実装まで • “pip install pamiq-core” で即利⽤可能 Python Package Index (PyPI)へ公開済
8 PAMIQ Coreの特徴 • マルチスレッドアーキテクチャ シンプル・軽量な3スレッド(制御・推論・学習)実装 • モジュラー設計 コンポーネントを基底クラスを元に実装。 •
既存フレームワークとの統合 PyTorch, Gymansium (OpenAI Gym) • 継続学習の運⽤⽀援機能 インタラクティブ制御コンソール、状態保存など • 段階的なサンプル 最⼩実装から実⽤サンプル、VRChatへの実装まで • “pip install pamiq-core” で即利⽤可能 Python Package Index (PyPI)へ公開済
9 PAMIQ Coreの特徴 • マルチスレッドアーキテクチャ シンプル・軽量な3スレッド(制御・推論・学習)実装 • モジュラー設計 コンポーネントを基底クラスを元に実装。 •
既存フレームワークとの統合 PyTorch, Gymansium (OpenAI Gym) • 継続学習の運⽤⽀援機能 インタラクティブ制御コンソール、状態保存など • 段階的なサンプル 最⼩実装から実⽤サンプル、VRChatへの実装まで • “pip install pamiq-core” で即利⽤可能 Python Package Index (PyPI)へ公開済 詳細は論⽂要旨 ドキュメンテーションサイトへ https://mlshukai.github.io/pamiq-core/
11 システムの外観 フラグ・命令 フラグ・命令 起動 推論スレッド 学習スレッド 制御スレッド • ⼀時停⽌
• 再開 • 終了 • 状態保存 • 世界と インタラクション • 学習データを収集 観測取得 ⾏動⽣成 データ収集 • モデルパラメータを 更新 実⾏条件チェック 学習を実⾏ パラメータ同期 移動 モデル パラメータ 学習 データ 同期 コマンド フラグ ユーザー定義領域
12 各コンポーネントについて
14 各コンポーネントについて • Interaction, Agent, Environment 強化学習的な観測・⾏動ループの実装 推論スレッド⽤ • Agent:
意思決定(ユーザー定義) • 観測から⾏動を⽣成 • 学習データを収集 • Environment: 観測・⾏動処理(ユーザー定義) • 観測を返す(実環境から取得) • ⾏動を作⽤(実環境で実⾏) • Interaction: 観測・⾏動ループの実現 • AgentとEnvironmentを繋げる Interaction Environment 観測 ⾏動 Agent Gymnasiumの環境を Environmentとして利⽤可能!
16 各コンポーネントについて • TrainingModel, InferenceModel 機械学習モデル定義 • TrainingModel(⚠ モデルの主体) •
学習スレッド上の処理フローを記述 • InferenceModelの⽣成 • パラメータの同期処理 • InferenceModel • 推論スレッド上の処理フローを記述 ⚠ 同期排他制御の実装要求 • 推論時 • パラメータ同期時 Training Model Inference Model ⽣成 パラメータ 同期 パラメータ更新 推論 排他制御
17 各コンポーネントについて • TrainingModel, InferenceModel 機械学習モデル定義 • TrainingModel(⚠ モデルの主体) •
学習スレッド上の処理フローを記述 • InferenceModelの⽣成 • パラメータの同期処理 • InferenceModel • 推論スレッド上の処理フローを記述 ⚠ 同期排他制御の実装要求 • 推論時 • パラメータ同期時 Training Model Inference Model ⽣成 パラメータ 同期 パラメータ更新 推論 PyTorchモデルを 簡単に導⼊可能! 排他制御
22 各コンポーネントについて • DataBuffer, DataCollector, DataUser 学習データの貯蔵と収集、利⽤ • DataBuffer :ユーザー定義(蓄積、取得)
• DataCollector :推論スレッドインターフェイス • DataUser :学習スレッドインターフェイス DataCollector DataUser Queue DataBuffer update add ⼀時的に蓄積 (推論スレッド内) 同期時にバッファへadd (学習スレッド内) get_data collect 排他制御(スレッドセーフ化)
24 各コンポーネントについて • Trainer 学習処理や実⾏可能条件の記述 学習スレッド⽤ • 学習データの取得とパラメータ更新、同期 • 実⾏可能条件の実装(ユーザー定義可能)
• デフォルトの条件 • ⼗分なデータの蓄積 • ⼗分な新規データ数 → 安定した継続学習のため 処理順序 PyTorch統合では 便利な基底クラスを実装済! 実⾏条件チェック 学習を実⾏ パラメータ同期
25 各コンポーネントについて • launch, LaunchConfig 全てをまとめ、システムを起動する。 • launch関数 処理の起点 •
ユーザー定義のInteraction(Agent, Environment), Model, Buffer, Trainerを与える
26 各コンポーネントについて • launch, LaunchConfig 全てをまとめ、システムを起動する。 • launch関数 処理の起点 •
ユーザー定義のInteraction(Agent, Environment), Model, Buffer, Trainerを与える • システムの状態保存設定 • リスタートする状態パス • 時間スケール • などなど設定可能 LaunchConfig
27 同期システムについて
28 同期システム • 設計哲学 絶対に推論処理を⽌めない リアルタイム処理の実現
32 同期システム • PyTorchモデル 学習スレッドで更新したパラメータを推論スレッドに同期する • 純粋なパラメータコピーは !(size) の計算時間 →
同期時間増加、⼤規模モデルを採⽤しにくい • ソリューション → 参照スワップ (擬似同期処理) 推論スレッドから学習スレッドにコピー • Pros: 参照移動のみのため !(() の計算時間 • Cons: RNNの隠れ状態などをAgentクラス内で管理する必要性 → スワップ時に⼊れ替わる問題 交換 旧 モデル 新 モデル 新 モデル 旧 モデル パラメータコピー 推論 スレッド 学習 スレッド
33 同期システム • 学習データ 推論スレッドで収集したデータを学習スレッドへ受け渡す 参照移動で同期時間を最⼩化 同期処理 1. キューを新規⽣成 2.
既存キューと置換 3. キューオブジェクトごと移動 • Cons: キューのサイズを事前に設定する必要性 (オーバーフロー対策) キュー 推論 スレッド 学習 スレッド バッファ
34 同期システム • 学習データ 推論スレッドで収集したデータを学習スレッドへ受け渡す 参照移動で同期時間を最⼩化 同期処理 1. キューを新規⽣成 2.
既存キューと置換 3. キューオブジェクトごと移動 • Cons: キューのサイズを事前に設定する必要性 (オーバーフロー対策) 推論 スレッド 学習 スレッド バッファ 移動 キュー 新規作成・置換
35 同期システム • 学習データ 推論スレッドで収集したデータを学習スレッドへ受け渡す 参照移動で同期時間を最⼩化 同期処理 1. キューを新規⽣成 2.
既存キューと置換 3. キューオブジェクトごと移動 • Cons: キューのサイズを事前に設定する必要性 (オーバーフロー対策) 推論 スレッド 学習 スレッド バッファ 移動 キュー 新規作成・置換 +
36 同期システム • 学習データ 推論スレッドで収集したデータを学習スレッドへ受け渡す 参照移動で同期時間を最⼩化 同期処理 1. キューを新規⽣成 2.
既存キューと置換 3. キューオブジェクトごと移動 • Cons: キューのサイズを事前に設定する必要性 (オーバーフロー対策) 推論 スレッド 学習 スレッド バッファ 移動 キュー 新規作成・置換 +
37 サンプル実装について • 段階的な3つのサンプル(リンクは要旨に記載) • “minimum.py” 最⼩限の起動処理のみ記述。 フレームワークのスタート地点 • “vae-torch”
Variational AutoEncoder の継続学習例を実装 PyTorch統合の実践的なサンプル • “pamiq-vrchat” 仮想世界 VRChat への実装サンプル より複雑的な応⽤例
None
39 より深くPAMIQ Coreを知りたい⼈のために • 9/6(⼟) 21:00 より、YouTube配信! VTuberのアイシア・ソリッドさんと! • より深い、開発のアレコレや⾃律機械知能PAMIQについ
てもお話しします。 公式チャンネル
40 より深くPAMIQ Coreを知りたい⼈のために • 質問・ご感想は⼤歓迎! • なんでスレッドベース? • 他のフレームワークとの統合は? •
類似アプローチってないの? • 今後の展望は…? • そもそもPAMIQとは…? • 発表後、ぜひお話ししましょ〜! PAMIQ Core 公式リポジトリ