ITADN

版本发布 1

v2024.05
? · 2024-05-12

## Abstract 非同期に学習・推論を行うシステムを構築し、現在運用されていたPrimitiveAMIのモデルおよび機能のほとんどの移植を完了しました。 これより先はモデル自体や振る舞いの改良、実験を行っていきます。 ## What's Changed * 環境クラスを実装するための抽象クラス群を追加 by @Geson-anko in https://github.com/MLShukai/ami/pull/2 * Feature/#3/base threads by @Geson-anko in https://github.com/MLShukai/ami/pull/4 * Dataを取り扱うための基底クラスと周辺クラスを整備 by @Geson-anko in https://github.com/MLShukai/ami/pull/7 * Mypyをstrictモードに変更 by @Geson-anko in https://github.com/MLShukai/ami/pull/8 * Fix/mypy checking action by @Geson-anko in https://github.com/MLShukai/ami/pull/10 * ベースモデルクラスとその集約クラスの実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/11 * `data` モジュールのファイル構造を整備 by @Geson-anko in https://github.com/MLShukai/ami/pull/13 * Make generics by @Geson-anko in https://github.com/MLShukai/ami/pull/15 * Feature/#14/manage environments structure by @Geson-anko in https://github.com/MLShukai/ami/pull/16 * Trainerのベースモジュールを追加 by @Geson-anko in https://github.com/MLShukai/ami/pull/18 * 開発用Dockerファイルを作成 by @Geson-anko in https://github.com/MLShukai/ami/pull/19 * エージェントの基底クラスを追加しました。 by @Geson-anko in https://github.com/MLShukai/ami/pull/21 * typoを修正 by @Geson-anko in https://github.com/MLShukai/ami/pull/24 * Model Wrapperクラスの作成 by @Geson-anko in https://github.com/MLShukai/ami/pull/28 * ベースイメージを `ubuntu:22.04`に更新 by @Geson-anko in https://github.com/MLShukai/ami/pull/30 * 実装した`ModelWrapper`に合うように`BaseTrainer`を更新 by @Geson-anko in https://github.com/MLShukai/ami/pull/31 * スレッド制御を実行するためのクラスを実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/34 * ロギングの設定ファイルを仮実装 by @yuntan in https://github.com/MLShukai/ami/pull/35 * `Interaction`モジュールを実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/36 * PlatformがLinuxでない場合は SleepIntervalAdjustorのテストをスキップ by @Geson-anko in https://github.com/MLShukai/ami/pull/40 * logger モジュールをリファクタリング. by @Geson-anko in https://github.com/MLShukai/ami/pull/43 * #37 VAEをPrimitiveAMIから移植 by @myxyy in https://github.com/MLShukai/ami/pull/38 * メインスレッドにWeb APIを仮実装 by @yuntan in https://github.com/MLShukai/ami/pull/39 * EncoderWrapperを作成 by @myxyy in https://github.com/MLShukai/ami/pull/46 * 基底スレッドクラスと空実装クラスを追加 by @Geson-anko in https://github.com/MLShukai/ami/pull/49 * 動作の模擬試験用 `DummyEnvironment` クラスの追加 by @Geson-anko in https://github.com/MLShukai/ami/pull/47 * `BaseAgent`に推論モデルとData Collectorをアタッチ by @Geson-anko in https://github.com/MLShukai/ami/pull/48 * スレッド間でオブジェクトを共有する機能を追加 by @Geson-anko in https://github.com/MLShukai/ami/pull/50 * スレッド制御オブジェクトの共有機能を実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/55 * `TrainersList`クラスを追加 by @Geson-anko in https://github.com/MLShukai/ami/pull/52 * Conv2dEncoder/Decoderを作成 by @myxyy in https://github.com/MLShukai/ami/pull/61 * 起動スクリプトの基礎部分を記述 by @Geson-anko in https://github.com/MLShukai/ami/pull/66 * RandomDataBufferを実装 by @myxyy in https://github.com/MLShukai/ami/pull/68 * 各スレッドクラスを実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/70 * ImageEncodingAgentを実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/67 * ImageVAETrainerの実装 by @myxyy in https://github.com/MLShukai/ami/pull/75 * 非同期排他制御のためのクラスに`ThreadSafe`プリフィクスを付与した。 by @Geson-anko in https://github.com/MLShukai/ami/pull/82 * DataUserのget_new_datasetをget_datasetにした by @Geson-anko in https://github.com/MLShukai/ami/pull/81 * Interactionモジュールのデフォルト設定ファイルの作成 by @Geson-anko in https://github.com/MLShukai/ami/pull/76 * `threads` モジュールのデフォルト設定ファイル作成 by @yuntan in https://github.com/MLShukai/ami/pull/83 * Image VAEをインスタンス化する設定ファイルを追加 by @Geson-anko in https://github.com/MLShukai/ami/pull/86 * ImageVAETrainerを用いたTrainersListの設定ファイル記述 by @myxyy in https://github.com/MLShukai/ami/pull/87 * DataCollectorsをインスタンス化する設定ファイルを記述した by @Geson-anko in https://github.com/MLShukai/ami/pull/84 * 起動スクリプトの作成 by @Geson-anko in https://github.com/MLShukai/ami/pull/89 * DataCollector/UserをDataBufferのGenericsにした by @Geson-anko in https://github.com/MLShukai/ami/pull/91 * Trainerに学習可能判定フラグを追加 by @Geson-anko in https://github.com/MLShukai/ami/pull/93 * Markdownのテーブルの自動フォーマットを無効化 by @yuntan in https://github.com/MLShukai/ami/pull/102 * 環境セットアップ用のドキュメントを更新 by @Geson-anko in https://github.com/MLShukai/ami/pull/59 * PrimitiveAMIのPolicyを引継 by @Geson-anko in https://github.com/MLShukai/ami/pull/105 * SConvとCausalDataBufferを実装 by @myxyy in https://github.com/MLShukai/ami/pull/104 * PPOTrajectoryBufferの実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/109 * BaseDataBufferをreconstructable_initから生成するようリファクタリング by @myxyy in https://github.com/MLShukai/ami/pull/110 * PPOPolicyTrainerの実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/112 * StackedHiddenStateの軸対応 by @myxyy in https://github.com/MLShukai/ami/pull/118 * PolicyValueCommonNetをリファクタリング by @Geson-anko in https://github.com/MLShukai/ami/pull/120 * FullyConnectedFixedStdNormalと既存実装を受け継ぐためのNormalクラスを実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/119 * DataCollector, Model, Trainerをインスタンス化する関数を追加 by @Geson-anko in https://github.com/MLShukai/ami/pull/122 * ForwardDynamics実装 by @myxyy in https://github.com/MLShukai/ami/pull/121 * ForwardDynamicsTrainer実装 by @myxyy in https://github.com/MLShukai/ami/pull/123 * `OpenCVImageSensor` を実装 by @yuntan in https://github.com/MLShukai/ami/pull/126 * `VRChatOSCDiscreteActuator` を実装 by @yuntan in https://github.com/MLShukai/ami/pull/127 * configファイル内でpythonの簡易呼び出しを可能に by @Geson-anko in https://github.com/MLShukai/ami/pull/100 * forward_dynamicsの移動 by @myxyy in https://github.com/MLShukai/ami/pull/131 * ImageVAETrainerにmax_epochsとminumum_dataset_size追加 by @myxyy in https://github.com/MLShukai/ami/pull/133 * MultiEmbeddingsを実装 by @myxyy in https://github.com/MLShukai/ami/pull/134 * multi_embedding.pyをcomponentsディレクトリに移動 by @Geson-anko in https://github.com/MLShukai/ami/pull/136 * CuriosityImagePPOAgentの実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/137 * テスト時の GPU デバイスから mpsを削除 by @Geson-anko in https://github.com/MLShukai/ami/pull/138 * ModelWrappersDictに`save_state`を実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/140 * OmegaConf内でtorch dtypeオブジェクトを生成可能に by @Geson-anko in https://github.com/MLShukai/ami/pull/107 * Trainerモジュールに`save_state`を実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/141 * `data`モジュールに`save_state`を実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/142 * システム制御用CLIアプリケーションを実装 by @yuntan in https://github.com/MLShukai/ami/pull/150 * `interaction`モジュールに`save_state`を実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/139 * ModelWrappersDictに`load_state`を実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/148 * TensorBoardLogger実装 by @myxyy in https://github.com/MLShukai/ami/pull/147 * `data`モジュールに`load_state`機能を実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/149 * `Interaction`モジュールに`load_state`メソッドを追加 by @Geson-anko in https://github.com/MLShukai/ami/pull/153 * Trainerモジュールに`load_state`メソッドを実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/152 * threadsモジュールに`save_state`と`load_state`を実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/154 * Thread Name周りをリファクタリング by @Geson-anko in https://github.com/MLShukai/ami/pull/157 * PrimitiveAMIの設定ファイルを引き継ぎ by @Geson-anko in https://github.com/MLShukai/ami/pull/146 * SensorWrapperとActuatorWrapperにsave_state/load_stateを実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/161 * `pause`と`resume`のイベントコールバックの呼び出し処理を実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/155 * ImageVAETrainerにlogger追加 by @myxyy in https://github.com/MLShukai/ami/pull/158 * チェックポイントの保存・読み込み処理を実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/163 * 各Trainerの設定ファイルを個別に用意し、それらの組み合わせを指定して設定するように変更 by @Geson-anko in https://github.com/MLShukai/ami/pull/164 * ForwardDynamicsTrainerとPPOPolicyTrainerにlogger追加 by @myxyy in https://github.com/MLShukai/ami/pull/166 * CuriosityPPOAgentにlogger追加 by @myxyy in https://github.com/MLShukai/ami/pull/169 * SaveAndLoadStateMixinを実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/162 * 並列システムが動作中にチェックポイントを保存する機能を追加 by @Geson-anko in https://github.com/MLShukai/ami/pull/171 * PredictionErrorRewardクラスを実装 by @Geson-anko in https://github.com/MLShukai/ami/pull/174 * その場しのぎで推論パフォーマンスの改善 by @Geson-anko in https://github.com/MLShukai/ami/pull/176 * `time.sleep`でGILを解放 by @Geson-anko in https://github.com/MLShukai/ami/pull/177 * VAEEncoderのinfer出力をサンプルからmeanに変更 by @myxyy in https://github.com/MLShukai/ami/pull/180 * TensorBoardへハイパーパラメータを記録 by @Geson-anko in https://github.com/MLShukai/ami/pull/183 * ThreadSafeFlagを追加 by @Geson-anko in https://github.com/MLShukai/ami/pull/184 * Thread制御をリファクタリング by @Geson-anko in https://github.com/MLShukai/ami/pull/185 * TensorBoardへモデルパラメータ数を記録 by @Geson-anko in https://github.com/MLShukai/ami/pull/187 * 各コンポーネントクラスにシステムイベントのコールバックメソッドを実装 by @yuntan in https://github.com/MLShukai/ami/pull/179 * チェックポイント保存処理の定期実行 by @Geson-anko in https://github.com/MLShukai/ami/pull/188 * システムがpauseした際に停止コマンドを送信する機能をアクチュエータに追加 by @Geson-anko in https://github.com/MLShukai/ami/pull/189 * 学習スレッドや推論スレッドで実行時間のログ出力処理を追加 by @Geson-anko in https://github.com/MLShukai/ami/pull/193 * 指定した数 データバッファが更新された場合に学習を実行する機能 by @Geson-anko in https://github.com/MLShukai/ami/pull/194 * 設定ファイル間で共有される値だけを保持するファイルを追加 by @Geson-anko in https://github.com/MLShukai/ami/pull/195 ## New Contributors * @yuntan made their first contribution in https://github.com/MLShukai/ami/pull/35 * @myxyy made their first contribution in https://github.com/MLShukai/ami/pull/38 **Full Changelog**: https://github.com/MLShukai/ami/commits/v2024.05