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

SmolVLA のファインチューニング

SmolVLA は Hugging Face の Vision-Language-Action(VLA)ポリシーで、基盤重みは lerobot/smolvla_base です。多視点画像、ロボットの状態、任意の言語指示を入力とし、連続的なアクションを出力します。プラットフォームではモデル識別子 smolvla で登録し、lerobot トレーニングフレームワークを使用して、LeRobot v2 と v3 のデータセットに対応します。

対象ロールと前提条件​

対象ロール​

ロールトレーニングタスクを作成可能か説明
管理者可モジュール権限の制限を受けない
プロジェクトマネージャー権限が必要管理者がモジュール権限で「トレーニングタスクを作成」を付与
アノテーター権限が必要同上
レビュアー権限が必要同上
収集者権限が必要同上

トレーニングタスクと指標の表示だけには「トレーニングを表示」が必要です。

前提条件​

項目要件
データセットバージョンLeRobot v2、v3。トレーニングサービスはデータセットの meta/info.json にある codebase_version でバージョンを識別し、トレーニングイメージを選択します
フレームワークlerobot
GPU メモリ固定の下限はありません。batch_size、画像解像度、凍結方針によって決まります。既定では視覚エンコーダを凍結します
依存関係プラットフォームのモデルトレーニングサービスが有効で、トレーニング場所が 1 つ以上設定されていること。トレーニングイメージには LeRobot のトレーニングエントリ lerobot-train と動画デコードの依存関係が必要です
データセット構造ディレクトリ内に meta/info.json、data/、videos/ が含まれ、各 episode の画像フィールドが一致し、observation.state と action の次元が固定であること
権限作成には「トレーニングタスクを作成」、表示には「トレーニングを表示」が必要

トレーニングタスクの作成とパラメータ​

手順​

  1. 「モデル」→「トレーニング」に進み、「トレーニングタスクを作成」をクリックします。
  2. トレーニング場所を選択します。ローカル GPU または管理者が有効にしたクラウドトレーニング場所から選べます。
  3. 「選択されたモデル」で smolvla を選びます。
  4. 「トレーニングデータセット」でデータソースを選択します。エクスポート履歴、アップロード済みの LeRobot データセット、ダウンロードリンク、HuggingFace から選べます。
  5. 「トレーニングパラメータ」でパラメータを設定します。意味と既定値は下表のとおりです。
  6. メモを入力します(任意)。
  7. 「トレーニングタスクを作成」をクリックします。

トレーニングパラメータ​

lerobot フレームワークは先に共通のトレーニングパラメータを適用します。

パラメータ説明既定値取り得る値
batch_sizeバッチサイズ1整数、1 以上
stepsトレーニングステップ数10000整数、1 以上
seed乱数シード1000整数
num_workersDataLoader のプロセス数4整数、1 以上
eval_freq評価間隔1000整数、1 以上、かつ steps 以下
log_freqログ間隔100整数、1 以上、かつ steps 以下
save_freqチェックポイントの保存間隔5000整数、1 以上、かつ steps 以下
save_checkpointチェックポイントを保存するかtruetrue / false

さらに policy. プレフィックス付きのモデルパラメータを追加します。

パラメータ説明既定値取り得る値
policy.n_obs_steps入力観測ステップ数1整数
policy.chunk_sizeアクション予測長50整数
policy.n_action_steps1 回の呼び出しで実行するアクションステップ数50整数
policy.max_state_dim状態ベクトルのパディング次元32整数
policy.max_action_dimアクションベクトルのパディング次元32整数
policy.resize_imgs_with_padding画像の前処理サイズ[512, 512]2 要素のタプル
policy.empty_cameras空カメラのプレースホルダー数0整数
policy.tokenizer_max_lengthトークナイザーの最大長48整数
policy.num_stepsデコードステップ数10整数
policy.use_cacheアテンションキャッシュを使用するかtruetrue / false
policy.freeze_vision_encoder視覚エンコーダを凍結するかtruetrue / false
policy.train_expert_onlyアクションエキスパートのみを学習するかtruetrue / false
policy.train_state_proj状態投影層を学習するかtruetrue / false
policy.vlm_model_name視覚言語バックボーンモデルHuggingFaceTB/SmolVLM2-500M-Video-Instruct文字列
policy.attention_modeアテンションモードcross_attncross_attn、self_attn
policy.pad_language_to言語のパディング方法longestlongest、max_length
policy.num_vlm_layers視覚言語バックボーンの層数16整数
policy.self_attn_every_n_layers自己アテンション層を挿入する間隔2整数
policy.expert_width_multiplierアクションエキスパートの隠れ層幅の比率0.75浮動小数点数
policy.optimizer_lrオプティマイザの学習率1e-4浮動小数点数
policy.optimizer_grad_clip_norm勾配クリッピングのしきい値1.0浮動小数点数
policy.scheduler_decay_steps学習率の減衰ステップ数100000整数
policy.scheduler_decay_lr減衰後の最終学習率1e-5浮動小数点数

結果の確認​

トレーニングの監視​

トレーニング詳細ページは LeRobot のログ形式で指標を解析し、曲線を描画します。

指標意味判断基準
step完了したトレーニングステップ数設定した steps まで段階的に増加
sample処理済みサンプル数step に伴い増加
episode処理済み episode 数step に伴い増加
epoch学習済みエポック数step に伴い増加
lossトレーニング損失全体として低下
gradient_norm勾配ノルム持続的な増大がない
learning_rate現在の学習率スケジュールに従って変化
update_time_s1 ステップの更新時間安定しており、持続的な増大がない
data_time_sデータ読み込み時間安定

オフライン loss は、モデルがトレーニング分布にどれだけ適合しているかを示すだけです。ポリシーの効果を評価する場合は、初期状態を固定し、物体の位置や照明条件を変えたときの実機成功率を基準にします。

確認チェックリスト​

トレーニングサービスはコンテナの終了コードでタスクの最終状態を判定します。終了コードが 0 の場合は成功、0 以外の場合は失敗として記録されます。

確認項目合格基準
タスク状態トレーニング詳細ページのステータスが「成功」で、コンテナの終了コードが 0
出力ディレクトリ出力ディレクトリ配下の checkpoints/
チェックポイント「チェックポイント」にチェックポイントが一覧表示され、内容に pretrained_model/ が含まれます。last が指す項目のタイプは「最終」、それ以外は「ステップ」
指標の曲線「トレーニング指標」が step、loss、gradient_norm、learning_rate を描画します
ログ「リアルタイムログ」が読み取れ、持続的なエラーがない

「チェックポイント」内のチェックポイントはダウンロード、オブジェクトストレージへの同期、または推論サービスの作成に使用できます。推論側の説明はモデル推論を参照してください。

エラー時の対処​

現象考えられる原因対処責任者
トレーニングがすぐに失敗し、データセットが見つからないと表示されるデータセットに meta/info.json がない、または選択したソースのパスが誤っている正しいエクスポート履歴またはアップロード済みデータセットを選び直すプロジェクトマネージャー
動画のデコードに失敗するトレーニングイメージに ffmpeg または動画デコードの依存関係がないプラットフォームのトレーニングイメージを使用するか、エクスポートした MP4 動画データに切り替えるアルゴリズムエンジニア
GPU メモリ不足batch_size または画像解像度が大きすぎるbatch_size を下げる。policy.resize_imgs_with_padding を確認するアルゴリズムエンジニア
loss は下がるが実機の効果が乏しいデータの網羅性が不足している、タスクテキストとアクションが一致していない物体の位置、照明、初期姿勢のサンプルを追加する。タスクテキストを確認するアルゴリズムエンジニア
保存間隔がトレーニングステップ数より大きいと表示されるsave_freq が steps より大きいsave_freq を steps 以下に下げるアルゴリズムエンジニア
loss が長時間低下しない学習率が適切でない、データ量が少なすぎるデータセットの episode 数を確認する。policy.optimizer_lr を調整するアルゴリズムエンジニア
トレーニング場所が利用できないプラットフォームでそのトレーニング場所が有効でない、またはその GPU が利用できないトレーニング場所を変更する。管理者に連絡してトレーニングサービスを確認する管理者

関連ページ​

ページ用途
モデルトレーニングトレーニングタスクの作成、監視、割り当て
LeRobot データセットとトレーニングデータエクスポートとトレーニングの概要
LeRobot v2 と v3 のフォーマット差異2 つのデータ形式の違いと移行
データエクスポートLeRobot トレーニングパッケージの生成