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
91
【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
76
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
Symfony Console Facelift
chalasr
2
470
動的トリートメント・レジームを推定するDynTxRegimeパッケージ
saltcooky12
0
180
データベース03: 関係データモデル
trycycle
PRO
1
260
Ignite の1年間の軌跡
ktombow
0
150
機械学習 - DBSCAN
trycycle
PRO
0
1k
地表面抽出の方法であるSMRFについて紹介
kentaitakura
1
870
05_山中真也_室蘭工業大学大学院工学研究科教授_だてプロの挑戦.pdf
sip3ristex
0
630
科学で迫る勝敗の法則(電気学会・SICE若手セミナー講演 2024年12月) / The principle of victory discovered by science (Lecture for young academists in IEEJ-SICE))
konakalab
0
130
統計的因果探索: 背景知識とデータにより因果仮説を探索する
sshimizu2006
4
1k
データベース01: データベースを使わない世界
trycycle
PRO
1
770
データベース12: 正規化(2/2) - データ従属性に基づく正規化
trycycle
PRO
0
970
How To Buy, Verified Venmo Accounts in 2025 This year
usaallshop68
4
270
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
72
11k
The Language of Interfaces
destraynor
161
25k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Fireside Chat
paigeccino
39
3.6k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Bash Introduction
62gerente
615
210k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Balancing Empowerment & Direction
lara
3
620
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Speed Design
sergeychernyshev
32
1.1k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.2k
Site-Speed That Sticks
csswizardry
10
820
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 公式リポジトリ