{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/openvla-an-open-source-vision-language-action","title":"OpenVLA: An Open-Source Vision-Language-Action Model","arxiv_id":"2406.09246","date":"2024-06-13","proceeding":null,"authors":["Moo Jin Kim","Karl Pertsch","Siddharth Karamcheti","Ted Xiao","Ashwin Balakrishna","Suraj Nair","Rafael Rafailov","Ethan Foster","Grace Lam","Pannag Sanketi","Quan Vuong","Thomas Kollar","Benjamin Burchfiel","Russ Tedrake","Dorsa Sadigh","Sergey Levine","Percy Liang","Chelsea Finn"],"abstract":"Large policies pretrained on a combination of Internet-scale vision-language data and diverse robot demonstrations have the potential to change how we teach robots new skills: rather than training new behaviors from scratch, we can fine-tune such vision-language-action (VLA) models to obtain robust, generalizable policies for visuomotor control. Yet, widespread adoption of VLAs for robotics has been challenging as 1) existing VLAs are largely closed and inaccessible to the public, and 2) prior work fails to explore methods for efficiently fine-tuning VLAs for new tasks, a key component for adoption. Addressing these challenges, we introduce OpenVLA, a 7B-parameter open-source VLA trained on a diverse collection of 970k real-world robot demonstrations. OpenVLA builds on a Llama 2 language model combined with a visual encoder that fuses pretrained features from DINOv2 and SigLIP. As a product of the added data diversity and new model components, OpenVLA demonstrates strong results for generalist manipulation, outperforming closed models such as RT-2-X (55B) by 16.5% in absolute task success rate across 29 tasks and multiple robot embodiments, with 7x fewer parameters. We further show that we can effectively fine-tune OpenVLA for new settings, with especially strong generalization results in multi-task environments involving multiple objects and strong language grounding abilities, and outperform expressive from-scratch imitation learning methods such as Diffusion Policy by 20.4%. We also explore compute efficiency; as a separate contribution, we show that OpenVLA can be fine-tuned on consumer GPUs via modern low-rank adaptation methods and served efficiently via quantization without a hit to downstream success rate. Finally, we release model checkpoints, fine-tuning notebooks, and our PyTorch codebase with built-in support for training VLAs at scale on Open X-Embodiment datasets.","url_abs":"https://arxiv.org/abs/2406.09246v3","url_pdf":"https://arxiv.org/pdf/2406.09246v3.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"openvla-an-open-source-vision-language-action","repo_url":"https://github.com/openvla/openvla","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"openvla-an-open-source-vision-language-action","repo_url":"https://github.com/pie33000/OpenVLA","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"openvla-an-open-source-vision-language-action","repo_url":"https://github.com/stanford-iliad/openvla-mini","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"imitation-learning","task_name":"Imitation Learning"},{"task_slug":"language-modelling","task_name":"Language Modelling"},{"task_slug":"quantization","task_name":"Quantization"},{"task_slug":"robot-manipulation","task_name":"Robot Manipulation"},{"task_slug":"vision-language-action","task_name":"Vision-Language-Action"},{"task_slug":"model","task_name":"model"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"},{"method_slug":"llama","method_name":"LLaMA"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/robot-manipulation-on-calvin","task":"Robot Manipulation","dataset":"CALVIN","model":"OpenVLA","rank_in_archive_order":13,"of":19,"metrics":{"avg. sequence length (D to D)":"3.27"},"uses_additional_data":false},{"leaderboard":"/sota/robot-manipulation-on-simpler-env","task":"Robot Manipulation","dataset":"SimplerEnv-Google Robot","model":"OpenVLA","rank_in_archive_order":8,"of":9,"metrics":{"Variant Aggregation":"0.411","Variant Aggregation-Move Near":"0.477","Variant Aggregation-Open/Close Drawer":"0.177","Variant Aggregation-Pick Coke Can":"0.545","Visual Matching":"0.277","Visual Matching-Move Near":"0.462","Visual Matching-Open/Close Drawer":"0.356","Visual Matching-Pick Coke Can":"0.163"},"uses_additional_data":true},{"leaderboard":"/sota/robot-manipulation-on-simplerenv-widow-x","task":"Robot Manipulation","dataset":"SimplerEnv-Widow X","model":"OpenVLA","rank_in_archive_order":7,"of":7,"metrics":{"Average":"0.010","Put Carrot on Plate":"0.000","Put Spoon on Towel":"0.000","Stack Green Block on Yellow Block":"0.000"},"uses_additional_data":true}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2406.09246","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2406.09246"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/stanford-iliad/openvla-mini","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/openvla/openvla","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/pie33000/OpenVLA","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":2,"unverified":8},"by_repo_kind":{"listed":{"samples":10,"ran":2,"repositories":3}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"d4883358a40b04e4","entry":"crop_and_resize","repo":"openvla/openvla","repo_kind":"listed","path":"experiments/robot/openvla_utils.py","file_url":"https://github.com/openvla/openvla/blob/HEAD/experiments/robot/openvla_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d4883358a40b04e4"}},{"code_sha256_prefix":"01fa10b1e4f2b232","entry":"get_image_resize_size","repo":"openvla/openvla","repo_kind":"listed","path":"experiments/robot/robot_utils.py","file_url":"https://github.com/openvla/openvla/blob/HEAD/experiments/robot/robot_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"01fa10b1e4f2b232"}},{"code_sha256_prefix":"883da746d4398ec2","entry":"get_openvla_prompt","repo":"stanford-iliad/openvla-mini","repo_kind":"listed","path":"vla-scripts/extern/verify_openvla.py","file_url":"https://github.com/stanford-iliad/openvla-mini/blob/HEAD/vla-scripts/extern/verify_openvla.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"883da746d4398ec2"}},{"code_sha256_prefix":"5dcd468341e1592d","entry":"get_openvla_prompt","repo":"openvla/openvla","repo_kind":"listed","path":"vla-scripts/deploy.py","file_url":"https://github.com/openvla/openvla/blob/HEAD/vla-scripts/deploy.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5dcd468341e1592d"}},{"code_sha256_prefix":"886ca388dfb17143","entry":"get_processor","repo":"openvla/openvla","repo_kind":"listed","path":"experiments/robot/openvla_utils.py","file_url":"https://github.com/openvla/openvla/blob/HEAD/experiments/robot/openvla_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"886ca388dfb17143"}},{"code_sha256_prefix":"ef2c04230ed3e692","entry":"hr_name","repo":"stanford-iliad/openvla-mini","repo_kind":"listed","path":"experiments/robot/robot_utils.py","file_url":"https://github.com/stanford-iliad/openvla-mini/blob/HEAD/experiments/robot/robot_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ef2c04230ed3e692"}},{"code_sha256_prefix":"81047a80f05792ed","entry":"parse_stanford_hydra_dataset","repo":"pie33000/OpenVLA","repo_kind":"listed","path":"convert_tf_to_numpy.py","file_url":"https://github.com/pie33000/OpenVLA/blob/HEAD/convert_tf_to_numpy.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"81047a80f05792ed"}},{"code_sha256_prefix":"6595ff27135d42d4","entry":"parse_viola_dataset","repo":"pie33000/OpenVLA","repo_kind":"listed","path":"convert_tf_to_numpy.py","file_url":"https://github.com/pie33000/OpenVLA/blob/HEAD/convert_tf_to_numpy.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6595ff27135d42d4"}},{"code_sha256_prefix":"7af07bf1a8a753fe","entry":"remap_state_dicts_for_hf","repo":"stanford-iliad/openvla-mini","repo_kind":"listed","path":"vla-scripts/extern/convert_openvla_weights_to_hf.py","file_url":"https://github.com/stanford-iliad/openvla-mini/blob/HEAD/vla-scripts/extern/convert_openvla_weights_to_hf.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7af07bf1a8a753fe"}},{"code_sha256_prefix":"a6a8431fbd02a85e","entry":"round_to_n","repo":"stanford-iliad/openvla-mini","repo_kind":"listed","path":"experiments/robot/robot_utils.py","file_url":"https://github.com/stanford-iliad/openvla-mini/blob/HEAD/experiments/robot/robot_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a6a8431fbd02a85e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}