{
  "id": "openvla-vla-scripts-train-py",
  "name": "OpenVLA: FSDP VLA training and full fine-tuning",
  "summary": "Pinned training entrypoint for OpenVLA action policies over configured Open X-Embodiment/RLDS mixtures using PyTorch FSDP. Statically reviewed source only; not run and no Hub preparation adapter.",
  "framework": "openvla",
  "kind": "official_example",
  "source_registry": "official-robot-workflows-v1",
  "capabilities": [
    "policy-training",
    "robot-workflow"
  ],
  "robot_types": [
    "source-defined"
  ],
  "robot_scope": "Source-configured workflow. The selected dataset, checkpoint, simulator/controller and observation/action schema determine applicability; no specific robot names, compatibility combinations or Hub support are inferred.",
  "source": {
    "repository": "https://github.com/openvla/openvla",
    "commit": "c8f03f48af692657d3060c19588038c7220e9af9",
    "tag": "main",
    "path": "vla-scripts/train.py",
    "url": "https://github.com/openvla/openvla/blob/c8f03f48af692657d3060c19588038c7220e9af9/vla-scripts/train.py",
    "raw_url": "https://raw.githubusercontent.com/openvla/openvla/c8f03f48af692657d3060c19588038c7220e9af9/vla-scripts/train.py",
    "sha256": "8ea12ec90b66ef88f6f206ea9ddbb33ed11ce20f8a714f0f73f35a3a3eda2f49",
    "bytes": 12141,
    "authors": [
      "Moo Jin Kim",
      "Karl Pertsch",
      "Siddharth Karamcheti"
    ]
  },
  "license": {
    "spdx": "MIT",
    "url": "https://github.com/openvla/openvla/blob/c8f03f48af692657d3060c19588038c7220e9af9/LICENSE",
    "sha256": "c4ee2ba5958af03d74b1d3dfa174e3749171d689fb4c23cc170749c05ae3eeb5",
    "scope": "Selected first-party Python workflow source only. Preserve upstream copyright and per-file notices. Model weights, datasets, third-party code, robot drivers/firmware and services retain separate terms; no rights for those assets are inferred.",
    "bytes": 1105
  },
  "access": {
    "mode": "source_reference",
    "hub_prepare": false,
    "instructions": "Fetch the pinned repository, verify this source checksum, and use upstream installation and invocation. This record does not install or execute code.",
    "setup_url": "https://github.com/openvla/openvla/blob/c8f03f48af692657d3060c19588038c7220e9af9/README.md",
    "setup_evidence": [
      {
        "path": "README.md",
        "url": "https://github.com/openvla/openvla/blob/c8f03f48af692657d3060c19588038c7220e9af9/README.md",
        "sha256": "ba8e9a2884e38a8000dafc98af4116512e37b0e143dad2f940100482bfd6b75c",
        "bytes": 38458,
        "purpose": "Author/setup, separate model-license declaration, training and robot evaluation instructions"
      },
      {
        "path": "pyproject.toml",
        "url": "https://github.com/openvla/openvla/blob/c8f03f48af692657d3060c19588038c7220e9af9/pyproject.toml",
        "sha256": "1ea10f21c13dd82cb9255f6edbd5ac477143937ff51d22740830e4e7d08d3b45",
        "bytes": 2553,
        "purpose": "First-party code authors, Python minimum and pinned packages"
      },
      {
        "path": "requirements-min.txt",
        "url": "https://github.com/openvla/openvla/blob/c8f03f48af692657d3060c19588038c7220e9af9/requirements-min.txt",
        "sha256": "bc8177f94a408f1c034f5efb4d34dafb29beb6d1ff9cfba6cf1f73835f7af98d",
        "bytes": 86,
        "purpose": "Minimal inference dependency pins"
      },
      {
        "path": "experiments/robot/libero/libero_requirements.txt",
        "url": "https://github.com/openvla/openvla/blob/c8f03f48af692657d3060c19588038c7220e9af9/experiments/robot/libero/libero_requirements.txt",
        "sha256": "ab74171b8df14e391b7759f01c4c4a2334c9a362e91abeb67337f3a0d9447369",
        "bytes": 63,
        "purpose": "LIBERO evaluation-specific package declarations"
      }
    ]
  },
  "requirements": {
    "python": ">=3.8 in metadata; README installation uses Python 3.10.",
    "packages": [
      "Pinned OpenVLA checkout",
      "Upstream PyTorch 2.2.0, transformers 4.40.1, timm 0.9.10 and tokenizers 0.19.1 pins",
      "Workflow-specific dependencies in pinned README and source"
    ],
    "display": "Hardware: Source uses CUDA and distributed FSDP; its header assumes CUDA toolkit >=11.0 for BF16. README full-fine-tuning example uses eight A100 GPUs. The script also documents a one-GPU debug launch; the example cluster size is not a universal minimum. Weights: Loads either an explicit pretrained VLA checkpoint or the configured base VLM. README full-fine-tuning path uses a separate Prismatic-compatible OpenVLA checkpoint. Datasets: Requires configured training mixtures and local dataset root; README uses separately downloaded BridgeData V2/Open X-Embodiment data. Services/auth: Source reads the configured Hugging Face token from .hf_token by default or a named environment variable, and defaults metrics trackers to jsonl and wandb. README explicitly directs creating an HF user access token. No token was read or requested.",
    "execution_domain": "computation",
    "source_imports": [
      "dataclasses",
      "draccus",
      "json",
      "os",
      "pathlib",
      "prismatic.conf",
      "prismatic.models",
      "prismatic.overwatch",
      "prismatic.training",
      "prismatic.util",
      "prismatic.vla",
      "prismatic.vla.datasets.rlds.utils.data_utils",
      "re",
      "torch",
      "torch.distributed",
      "typing",
      "yaml"
    ],
    "notes": "The upstream .hf_token location is documentation data, not a local credential path to inspect. No credentials, models or datasets were loaded. Code licensing does not establish model, checkpoint, dataset or service permission.",
    "declared_requirements": {
      "python": ">=3.8 in metadata; README installation uses Python 3.10.",
      "weights": "Loads either an explicit pretrained VLA checkpoint or the configured base VLM. README full-fine-tuning path uses a separate Prismatic-compatible OpenVLA checkpoint.",
      "datasets": "Requires configured training mixtures and local dataset root; README uses separately downloaded BridgeData V2/Open X-Embodiment data.",
      "hardware": "Source uses CUDA and distributed FSDP; its header assumes CUDA toolkit >=11.0 for BF16. README full-fine-tuning example uses eight A100 GPUs. The script also documents a one-GPU debug launch; the example cluster size is not a universal minimum.",
      "external_services_and_auth": "Source reads the configured Hugging Face token from .hf_token by default or a named environment variable, and defaults metrics trackers to jsonl and wandb. README explicitly directs creating an HF user access token. No token was read or requested.",
      "evidence": [
        {
          "anchor": "Path(\".hf_token\")",
          "line": 76
        },
        {
          "anchor": "torch.cuda.set_device",
          "line": 111
        },
        {
          "anchor": "hf_token = cfg.hf_token.read_text()",
          "line": 128
        }
      ],
      "license_scopes": {
        "code": "MIT for selected first-party workflow source.",
        "weights": "README explicitly says the released OpenVLA models derive from Llama-2 and are subject to the Llama Community License. No checkpoint/model card/base-model license was fetched or evaluated here; MIT is asserted only for the selected first-party Python source.",
        "datasets": "README names BridgeData V2, Open X-Embodiment and LIBERO datasets. Individual dataset terms were not reviewed, and repository MIT is not applied to them.",
        "third_party_code": "External dependencies retain their own licenses."
      },
      "interpretation": "Pinned upstream declarations only; no dependency resolution, model/data access, compatibility inference or runtime validation was performed."
    }
  },
  "invocation": {
    "entrypoint": "torchrun --standalone --nnodes 1 --nproc-per-node <reviewed-gpu-count> vla-scripts/train.py --data_root_dir <reviewed-data> --vla.type <reviewed-vla-config>",
    "notes": "The upstream .hf_token location is documentation data, not a local credential path to inspect. No credentials, models or datasets were loaded."
  },
  "popularity": {
    "metric": "github_stars",
    "repository_stars": 7166,
    "checked_at": "2026-10-17",
    "meaning": "Dated repository interest, not robot-skill usage, compatibility or runtime success."
  },
  "evidence": {
    "level": "source_reviewed",
    "runtime_verification": "not_run",
    "checked_at": "2026-10-17",
    "inspection": "Verified exact source, applicable license and author/setup document bytes at a full Git commit; parsed the Python AST and reviewed this guarded operational entrypoint and its explicit license notices. No upstream code, installation, robot command, dataset, mesh or checkpoint was executed or loaded.",
    "entrypoint_kind": "python_main",
    "inspection_method": "automated_static"
  },
  "artifact": {
    "kind": "workflow",
    "format": "python",
    "workflow_role": "policy-training"
  }
}
