メインコンテンツまでスキップ

モデルトレーニング

EmbodyFlowプラットフォームは、データの事前処理からモデルのデプロイまで、エンドツーエンドのワークフローをサポートする完全なロボット学習モデルトレーニング機能を提供します。プラットフォームには、さまざまな主流のロボット学習アルゴリズムが統合されており、研究者や開発者に効率的なモデルトレーニング環境を提供します。

製品の特徴

柔軟なアーキテクチャ

システム拡張性を確保するために、レイヤー化されたアーキテクチャ設計を採用しています。トレーニングの計算リソースは、以下のオプションから選択可能です:

  • プライベートクラウド:ローカルデータセンターのGPUサーバーを使用(マルチGPU並列トレーニングをサポート)
  • パブリッククラウド:クラウドサービスプロバイダーの計算リソースをオンデマンドでレンタル(実際のトレーニング時間に基づいて課金)

トレーニング場所の選択

データからモデルへ

プラットフォームは、データの収集、アノテーション、エクスポート、トレーニングの微調整、モデルのデプロイまで、データチェーンの全行程をカバーしています。

サポートされているモデルタイプ

プラットフォームは、ロボット分野の主流学習モデルをサポートしており、視覚・言語・動作(VLA)融合、模倣学習、強化学習などの技術ルートを網羅しています:

視覚・言語・動作モデル

  • SmolVLA - 軽量マルチモーダルモデル。自然言語指示、視覚認識、ロボット動作をエンドツーエンドで学習します。
  • OpenVLA - 大規模な事前学習済み視覚・言語・動作モデル。複雑なシーン理解と操作計画をサポートします。

模倣学習モデル

  • ACT (Action Chunking Transformer) - Transformerアーキテクチャに基づくアクションチャンキングモデル。連続動作シーケンスを離散ブロックに分解して学習します。
  • Pi0 / Pi0.5 - Physical Intelligenceが提供するオープンソースのフラッグシップVLAモデル。OpenPIフレームワークを通じて微調整可能で、非常に強力な汎用操作能力を備えています。詳細はPi0微調整ガイドを参照してください。
  • Pi0-Fast - Pi0アルゴリズムの最適化バージョン。自己回帰アーキテクチャを採用し、推論速度を向上させています。

ポリシー学習モデル

  • Diffusion Policy - 拡散プロセスに基づくポリシー学習。ノイズ除去プロセスを通じて、連続したロボット動作軌道を生成します。
  • VQBET - ベクトル量子化ビヘイビアトランスフォーマー。連続的な動作空間を離散化した後、Transformerを使用してモデリングします。

強化学習モデル

  • SAC (Soft Actor-Critic) - 最大エントロピー強化学習アルゴリズム。連続動作空間において探索と利用のバランスをとります。
  • TDMPC - 時間差分モデル予測制御。モデルベースの計画とモデルフリーの学習の利点を組み合わせています。

備考

上記のモデルは主流の技術ルートをカバーしており、以下のような様々なロボットタスクに適用可能です:

応用シナリオ使用モデル説明
デスク整理タスクSmolVLA, Pi0ロボットは「デスク上の物を整理してください」といった自然言語指示を理解し、ピッキング、移動、配置動作を実行します。
物品仕分けタスクACT専門家の仕分けデモンストレーションを学習することで、ロボットは異なる物品を識別し、カテゴリごとに仕分けることができます。
複雑操作タスクDiffusion Policyロボットは組み立てや調理など、精密な制御が必要な複雑な動作シーケンスの実行を学習できます。
適応制御SAC などの強化学習アルゴリズムロボットは動的な環境において最適な制御ポリシーを学習し、環境の変化に適応できます。

トレーニングワークフロー

プラットフォームは製品化されたトレーニングフローを提供しており、コーディング能力は不要です。データ準備からモデルデプロイまでの全行程をWebブラウザ経由で実現できます。

1. データ準備

トレーニングデータの選択

プラットフォームは、以下のような様々なデータソースをサポートしています:

  • プラットフォームエクスポートデータ - プラットフォームでアノテーションおよびエクスポートされたロボットデモンストレーションデータを使用します。 トレーニングデータのエクスポート
  • 外部データセット - URLリンクを通じて公開データセットをインポートします。
  • ローカルデータアップロード - HDF5、LeRobotなどの標準形式をサポートします。
  • HuggingFaceデータセット - HuggingFace Hubから公開データを直接取得します。

2. トレーニング設定

計算リソースの選択

プラットフォームは柔軟な計算リソースの選択をサポートし、様々な規模のトレーニングニーズに対応します:

トレーニング場所の選択:

  • ローカルGPU(local-gpu) - ローカルデータセンターのGPUサーバーを使用します。長期的なトレーニングタスクやプライベートデプロイに適しています。

    • マルチGPU並列トレーニングをサポート
    • GPUステータス(ビデオメモリ使用量、温度、利用率)をリアルタイムで表示
    • 大規模データセットや長時間のトレーニングに適しています
  • パブリッククラウドソース - クラウドサービスプロバイダーの計算リソースをオンデマンドでレンタルし、実際のトレーニング時間に基づいて課金されます。

    • RunPod - GPUコンテナの迅速なデプロイをサポート
    • AWS EC2/SageMaker/Batch - Amazon Web Servicesの統合
    • Tencent Cloud/Alibaba Cloud - 主要な国内クラウドプロバイダーのサポート
    • 一時的なトレーニングタスクやリソース拡張のニーズに適しています

プラットフォームの自動検出:

  • CUDAプラットフォーム - NVIDIA GPUを自動検出し、CUDAアクセラレーションによるトレーニングをサポート
  • MPSプラットフォーム - Apple Silicon(M1/M2など)のMetal Performance Shadersアクセラレーションをサポート
  • CPUプラットフォーム - GPUがない場合、自動的にCPUトレーニングにフォールバックします(速度は遅く、小規模なテストに適しています)

GPUの選択と監視:

  • トレーニング前に利用可能なGPUリストとリアルタイムステータスを確認可能
  • 特定のGPUの手動選択またはマルチGPU並列処理をサポート
  • GPU利用率、ビデオメモリ占有、温度などの情報をリアルタイムで監視
  • ビデオメモリの割り当てを自動的に最適化し、リソースの無駄を回避

トレーニング場所の選択

モデルアーキテクチャの選択

具体的なタスク要件に応じて適切なモデルを選択します:

  • 自然言語指示の理解が必要なタスクには、SmolVLAまたはOpenVLAを選択
  • 専門家のデモンストレーションデータがある模倣学習タスクには、ACT、Pi0、またはPi0-Fastを選択
  • オンライン学習が必要なタスクには、SACまたはTDMPCを選択

トレーニングパラメータ設定

プラットフォームは豊富なトレーニングパラメータ設定オプションを提供し、異なるモデルの特定のニーズに対応します:

一般的なトレーニングパラメータ:

  • batch_size(バッチサイズ) - 1回のトレーニングステップで使用するサンプル数を制御します。推奨範囲は1〜32です。バッチサイズが大きいほどトレーニングは安定しますが、より多くのビデオメモリを必要とします。
  • steps(トレーニングステップ数) - モデルトレーニングの総ステップ数です。10,000から開始し、検証結果に基づいて調整することをお勧めします。
  • seed(ランダムシード) - トレーニング結果の再現性を確保します。1000や42などの固定値の使用をお勧めします。
  • num_workers(データローダーのワーカープロセス数) - データ読み込みを加速させます。CPUコア数の1/2から1倍に設定することをお勧めします。
  • eval_freq(評価頻度) - 何ステップごとにモデル評価を行うかです。総ステップ数の10%にすることをお勧めします。
  • log_freq(ログ頻度) - 何ステップごとにトレーニングログを出力するかです。10〜100ステップをお勧めします。
  • save_freq(保存頻度) - 何ステップごとにチェックポイントを保存するかです。総ステップ数の30%にすることをお勧めします。
  • save_checkpoint(チェックポイントを保存するかどうか) - 有効にするとモデルのチェックポイントを保存し、トレーニングの再開やデプロイを容易にします。

オプティマイザパラメータ:

  • optimizer_lr(学習率) - パラメータ更新の振幅を制御します。推奨範囲は1e-4から1e-5です。大きすぎるとトレーニングが不安定になり、小さすぎると収束が遅くなります。
  • optimizer_weight_decay(ウェイトデケイ) - 過学習を防ぐための正規化パラメータです。推奨範囲は0.0から0.01です。
  • optimizer_grad_clip_norm(勾配クリッピング閾値) - 勾配爆発を防ぎます。1.0に設定することをお勧めします。
  • scheduler_warmup_steps(学習率ウォームアップステップ数) - トレーニング初期に学習率を徐々に上げます。総ステップ数の5〜10%をお勧めします。
  • scheduler_decay_steps(学習率減衰ステップ数) - トレーニング後半に学習率を下げます。総ステップ数の80〜90%をお勧めします。

モデル固有のパラメータ:

モデルごとに異なる固有のパラメータをサポートしています:

  • ACTモデル

    • chunk_size(アクションチャンクサイズ) - 1回の予測における動作シーケンスの長さ。推奨範囲は10〜50です。
    • n_obs_steps(観測履歴ステップ数) - 使用する履歴観測フレーム数。多くの場合、1を使用します。
    • n_action_steps(実行ステップ数) - 実際に実行される動作ステップ数。通常はchunk_sizeと等しく設定します。
    • vision_backbone(ビジョンバックボーン) - resnet18/34/50/101/152から選択可能。
    • dim_model(モデル次元) - Transformerの主要な隠れ層次元。デフォルトは512です。
    • n_heads(アテンションヘッド数) - マルチヘッドアテンションのヘッド数。デフォルトは8です。
  • Diffusion Policyモデル

    • horizon(予測期間) - 拡散モデルの動作予測の長さ。16をお勧めします。
    • num_inference_steps(推論ステップ数) - サンプリングステップ数。10をお勧めします。
  • SmolVLA/OpenVLAモデル

    • max_input_seq_len(最大入力シーケンス長) - 入力トークン数を制限します。256〜512をお勧めします。
    • max_decoding_steps(最大デコードステップ数) - アクションシーケンス生成の最大イテレーション回数。256をお勧めします。
    • freeze_lm_head(言語モデルヘッドの凍結) - 微調整時に有効にすることをお勧めします。
    • freeze_vision_encoder(ビジョンエンコーダの凍結) - 微調整時に有効にすることをお勧めします。
  • SACなどの強化学習モデル

    • latent_dim(潜在空間次元) - エンコーダ出力の次元。256をお勧めします。
ヒント

パラメータ設定のアドバイス:

  • 初めてのトレーニングではデフォルトパラメータを使用して、正常に進行することを確認することをお勧めします。
  • GPUのビデオメモリ容量に応じてbatch_sizeを調整し、メモリ不足(OOM)を回避してください。
  • 事前学習済みモデルの微調整では、学習率を低く設定し(1e-5)、一部の層を凍結することをお勧めします。
  • 定期的にトレーニングログを確認し、損失曲線に基づいて学習率を調整してください。

トレーニングパラメータ設定

トレーニング開始後、プラットフォームは完全な監視および管理機能を提供します:

3. トレーニングの実行と監視

トレーニング開始後、プラットフォームは完全なリアルタイム監視および管理機能を提供します:

リアルタイム監視

トレーニング指標の可視化:

  • 損失関数曲線 - トレーニング損失と検証損失をリアルタイムで表示し、モデルの収束状況を判断しやすくします。
  • 検証精度指標 - 検証セット上でのモデルのパフォーマンスを表示します。
  • 学習率の変化 - 学習率スケジューリング戦略の実行状況を可視化します。
  • トレーニングの進捗 - 完了したステップ数、総ステップ数、推定残り時間などを表示します。

モデル出力のプレビュー:

  • トレーニング中に定期的に予測サンプルを出力します。
  • 検証データに対するモデルの予測結果を可視化します。
  • モデルの学習状況の観察や潜在的な問題の発見に役立ちます。

システムログ:

  • 各トレーニングステップの詳細情報を含む詳細なトレーニングログ。
  • エラーや警告情報をリアルタイムで表示し、問題の迅速な特定を支援します。
  • ログのリアルタイムストリーミングをサポートし、いつでも最新のトレーニングステータスを確認できます。

リソース監視:

  • GPU利用率、ビデオメモリ占有のリアルタイム監視。
  • CPUとメモリの使用状況の追跡。
  • ネットワークI/OおよびディスクI/Oの監視(該当する場合)。

トレーニング詳細ページではリアルタイムの監視および管理機能を提供

トレーニング管理

プロセス制御:

  • トレーニングの一時停止 - トレーニングタスクを一時的に停止し、現在の進捗を保持します。
  • トレーニングの再開 - 一時停止ポイントからシームレスに再開します。
  • トレーニングの停止 - 安全に停止し、現在のチェックポイントを保存します。
  • トレーニングの再起動 - トレーニングタスクを最初からやり直します。

チェックポイント管理:

  • 自動保存 - 設定された保存頻度に基づいてチェックポイントを自動的に保存します。
  • チェックポイントリスト - トレーニングステップ数、保存時間などの情報とともに保存されたすべてのチェックポイントを表示します。
  • チェックポイントのダウンロード - チェックポイントファイルをローカルにダウンロード可能です。
  • 中断からの再開 - 任意のチェックポイントからトレーニングを再開でき、予期せぬ中断後の継続をサポートします。
  • バージョンロールバック - 過去のチェックポイントを選択してモデルをロールバック可能です。

タスク操作:

  • パラメータ調整 - トレーニング中に一部のパラメータを確認および調整可能です(注意して使用してください)。
  • タスクの複製 - 成功したトレーニング設定に基づいて新しいタスクを迅速に作成し、最適な構成を再利用します。
  • タスクの削除 - 不要なトレーニングタスクを削除し、ストレージ容量を解放します。
ヒント

トレーニングのアドバイス:

  • 定期的にログを確認し、早期に問題を発見してください。
  • 損失曲線に応じて学習率を調整するか、トレーニングを停止してください。
  • 中断によるデータ損失を防ぐため、定期的にチェックポイントを保存してください。
  • タスク複製機能を使用して、異なるパラメータの組み合わせを迅速に試してください。

4. モデル評価とエクスポート

トレーニング完了後、プラットフォームは完全なモデル評価、エクスポート、およびデプロイ機能を提供します:

モデル評価

パフォーマンス指標:

  • 検証セット上でのモデルの様々な指標を自動的に計算します。
  • 精度、成功率、動作誤差など、複数の評価指標をサポートします。
  • パフォーマンスレポートと比較分析を提供します。

モデルの比較:

  • 異なるトレーニングタスク間のパフォーマンスを比較します。
  • 複数のモデル指標の比較チャートを可視化します。
  • 最適なモデルバージョンの選択を支援します。

チェックポイント管理

トレーニング中および完了後、保存されたすべてのチェックポイントが詳細ページに表示されます:

モデルチェックポイントリスト

チェックポイント情報:

  • チェックポイント名 - 自動生成またはカスタム名("step_1000"、"last"など)。
  • トレーニングステップ数 - このチェックポイントに対応するステップ数。
  • 保存時間 - チェックポイントの保存タイムスタンプ。
  • ファイルサイズ - チェックポイントファイルのサイズ。
  • パフォーマンス指標 - 検証セット上でのパフォーマンス。

チェックポイント操作:

  • 詳細の表示 - 詳細情報と評価結果を確認。
  • チェックポイントのダウンロード - ローカルにダウンロードして、オフラインデプロイやさらなる分析に使用。
  • ベストとしてマーク - 最もパフォーマンスの高いチェックポイントをベストモデルとして指定。
  • 推論デプロイ - チェックポイントからワンクリックで推論サービスとしてデプロイ(詳細は次章)。
備考

チェックポイントの説明:

  • last - 最後に保存されたチェックポイント。通常、最新のモデル状態です。
  • best - 検証セットで最高のパフォーマンスを示したチェックポイント。通常、本番デプロイに使用されます。
  • step_xxx - 特定のステップ数で保存されたチェックポイント。トレーニングプロセスの分析に使用されます。

モデルエクスポート

トレーニング完了後、モデルをエクスポートして以下の用途に使用できます:

  • ロボットのローカル環境へのオフラインデプロイ
  • 他のシステムとの統合
  • モデルのバージョン管理とアーカイブ

これで、EmbodyFlowプラットフォームを使用して、独自のモデルを迅速かつ簡単にトレーニングできるようになりました。トレーニングが完了したチェックポイントは、次の章で推論サービスとしてデプロイでき、トレーニングからアプリケーションまでの全工程をクローズドループで実現できます。