
TinyVLA और SmolVLA 1 बिलियन पैरामीटर के तहत एक कार्यशील VLA प्रदान करते हैं। दोनों पेपरों से वास्तविक संख्याएँ, lerobot डिफ़ॉल्ट, मापी गई विलंबता, और 24 GB कार्ड पर एक रन की लागत।
लगभग हर विजन-लैंग्वेज-एक्शन मॉडल जिसके बारे में लिखा जाता है, वह एक डेटासेंटर कार्ड मानता है। OpenVLA में 7 बिलियन पैरामीटर हैं। GR00T N1.7 और Pi0.5 लगभग 3 बिलियन हैं और फाइन-ट्यून करने के लिए एक A100 80 GB चाहते हैं। यदि आपके डेस्क पर कार्ड 4090 है, तो उस श्रेणी का मॉडल पहुंच से बाहर है।
दो पेपर तर्क देते हैं कि आपको इसकी आवश्यकता नहीं है। TinyVLA (arXiv 2409.12514, फरवरी 2025 में IEEE रोबोटिक्स एंड ऑटोमेशन लेटर्स द्वारा स्वीकृत) 400 मिलियन से 1.3 बिलियन बैकबोन और एक डिफ्यूजन एक्शन हेड से एक VLA बनाता है। SmolVLA (arXiv 2506.01844, 2 जून 2025 को प्रस्तुत) 450 मिलियन पैरामीटर खुले वज़न, खुले डेटा और एक स्क्रिप्ट के साथ भेजता है जो एक उपभोक्ता कार्ड पर चलती है। यहां बताया गया है कि दोनों ने क्या मापा, और जहां सब-1 बिलियन का तर्क मान्य नहीं रहता।
आपको क्या जानने की आवश्यकता है
- •TinyVLA तीन आकार में आता है: 422 मिलियन कुल जिसमें 101 मिलियन प्रशिक्षित करने योग्य हैं, 740 मिलियन जिसमें 138 मिलियन हैं, 1.3 बिलियन जिसमें 143 मिलियन हैं। केवल पहले दो 1 बिलियन से कम हैं।
- •इसकी तालिका IV एक A6000 पर TinyVLA-1B के लिए प्रति एक्शन प्रेडिक्शन 14 मिलीसेकंड मापती है, जबकि OpenVLA-7B के लिए 292 मिलीसेकंड और एक सिकुड़े हुए OpenVLA-1B के लिए 140 मिलीसेकंड।
- •हेड उस गति को बनाए रखता है, न कि बैकबोन: TinyVLA-H के डिफ्यूजन हेड को ACT हेड से बदलें और पांच वास्तविक-रोबोट कार्य 94.0 औसत से एकल अंकों में गिर जाते हैं। एक MLP हेड हर जगह 0 स्कोर करता है।
- •SmolVLA 450 मिलियन है, जिसमें से लगभग 100 मिलियन एक्शन एक्सपर्ट है, जिसे 481 सामुदायिक LeRobot डेटासेट और 10.6 मिलियन फ़्रेम पर प्रीट्रेन किया गया है। यह LIBERO पर 87.3 रिपोर्ट करता है, जबकि 3.3 बिलियन पर रोबोटिक्स-प्रीट्रेन किए गए Pi0 के लिए 86.0, और तीन वास्तविक SO-100 कार्यों पर 78.3, जबकि 3.5 बिलियन पर Pi0 के लिए 61.7।
- •उस प्रीट्रेनिंग के बिना एकल-कार्य पर प्रशिक्षित, SmolVLA उन कार्यों पर 40.0 तक गिर जाता है, जो ACT के 48.3 से कम है। छोटा होना स्वचालित रूप से आसान नहीं है।
- •TinyVLA में कोई LeRobot एकीकरण नहीं है और यह एक CUDA 11.7 व्हील स्टैक को पिन करता है। SmolVLA lerobot में है और यहां 24 GB टियर पर प्रति रन लगभग 1 से 3 USD खर्च होता है।
वास्तव में एक छोटा VLA क्या माना जाता है
एक मॉडल कार्ड पर पैरामीटर गणना एक संख्या नहीं होती है। इसका मतलब कुल भार, अनुमान के समय लोड किए गए भार, या वे भार हो सकते हैं जिन्हें ग्रेडिएंट प्राप्त होते हैं । TinyVLA दोनों की रिपोर्ट करता है, और अंतर बड़ा है: TinyVLA-H कुल 1.3 B है लेकिन 143 M प्रशिक्षित करने योग्य है, क्योंकि विजन टावर और अधिकांश भाषा मॉडल स्थिर रहते हैं जबकि LoRA एडेप्टर और एक्शन हेड चलते हैं। पेपर में प्रशिक्षित करने योग्य हिस्सेदारी लगभग 5 प्रतिशत बताई गई है।
| मॉडल | पैरामीटर्स | बैकबोन | एक्शन हेड | स्रोत |
|---|---|---|---|---|
| TinyVLA-S | 422 M कुल, 101 M प्रशिक्षित करने योग्य | Llava-Pythia ~400 M | Diffusion (droid_diffusion U-Net) | arXiv 2409.12514 |
| TinyVLA-B | 740 M कुल, 138 M प्रशिक्षित करने योग्य | Llava-Pythia ~700 M | Diffusion | arXiv 2409.12514 |
| TinyVLA-H | 1.3 B कुल, 143 M प्रशिक्षित करने योग्य | Llava-Pythia ~1.3 B | Diffusion | arXiv 2409.12514 |
| SmolVLA | 450 M, ~100 M एक्शन विशेषज्ञ | SmolVLM2-500M-Video-Instruct | Flow matching expert | arXiv 2506.01844 |
| Octo-Small | 27 M | ViT-S स्केल, T5-बेस टेक्स्ट एनकोडर | Diffusion | octo-small-1.5 card |
| ACT | ~80 M | ResNet, कोई भाषा मॉडल नहीं | डायरेक्ट चंक रिग्रेशन | AY-Robots catalog |
| OpenVLA | 7 B | Llama 2 7 B, DINOv2 and SigLIP encoders | ऑटोरिग्रेसिव एक्शन टोकन | arXiv 2406.09246 |
दो पंक्तियों पर बहस करने लायक है। लगभग 80 M पर यहाँ बाकी सभी से छोटा है लेकिन इसमें कोई भाषा मॉडल नहीं है, इसलिए यह VLA नहीं है: यह एक कार्य सीखता है और इसे दूसरा करने के लिए नहीं कहा जा सकता। 27 M पर T5-बेस टेक्स्ट एनकोडर के माध्यम से कंडीशन किया जाता है, न कि LLM बैकबोन के माध्यम से। अच्छे बेसलाइन, लेकिन कोई भी आपको वह निर्देश पालन नहीं देता है जो लेबल इंगित करता है।
TinyVLA-H, वह वेरिएंट जो मुख्य परिणाम देता है, 1.3 B है और इस सीमा से ऊपर है। बेहतर सवाल यह है कि क्या एक मॉडल प्रशिक्षण के दौरान 24 GB में फिट होता है और अनुमान के समय आपकी नियंत्रण दर को पूरा करता है। आप यहाँ जिन पाँच नीतियों को प्रशिक्षित कर सकते हैं, वे नीतियों के पृष्ठ पर हैं; यदि आप इसके नंबर दूसरों के साथ देखना चाहते हैं तो TinyVLA का एक एरेना एंट्री है।
TinyVLA: गति हेड से आती है, बैकबोन से नहीं
स्पष्ट व्याख्या यह है कि उन्होंने भाषा मॉडल को छोटा कर दिया, जिससे वह तेज़ हो गया। पेपर का एब्लेशन इसके विपरीत कहता है। OpenVLA के 7 B बैकबोन को लगभग 1 B वाले से बदलने पर प्रति-एक्शन प्रेडिक्शन 292 ms से घटकर 140 ms हो गया, जो 2x का लाभ है। TinyVLA-H, तुलनीय पैरामीटर गणना पर, उसी कार्ड पर 14 ms पर चलता है। अन्य 10x एक्शन हेड है।
| मॉडल | प्रति-एक्शन प्रेडिक्शन | मापा गया |
|---|---|---|
| OpenVLA-7B | 292 ms | single A6000 |
| OpenVLA-1B, backbone swapped for TinyVLA's | 140 ms | single A6000 |
| TinyVLA-1B (TinyVLA-H) | 14 ms | single A6000 |
OpenVLA भाषा मॉडल हेड के माध्यम से असतत टोकन के रूप में एक्शन उत्सर्जित करता है, प्रति एक्शन आयाम एक, ऑटोरेग्रेसिव रूप से। TinyVLA एक डिफ्यूजन डिकोडर संलग्न करता है जो पूरे चंक को एक ही बार में उत्पन्न करता है। तालिका V TinyVLA-H पर आर्किटेक्चर को दर्शाती है और उसी पांच वास्तविक-रोबोट कार्यों पर केवल हेड को बदलती है। यह किसी भी पेपर में इस तर्क के लिए सबसे स्पष्ट प्रमाण है कि फ्लो मैचिंग नीतियां बनाती हैं, और यही कारण है कि Pi0 टोकन डिकोडिंग से दूर चला गया।
| TinyVLA-H पर हेड | टेनिस रखें | मग पलटें | क्यूब्स स्टैक करें | दराज बंद करें | बॉक्स खोलें |
|---|---|---|---|---|---|
| डिफ्यूजन (droid_diffusion) | 90.0 | 98.3 | 98.3 | 96.7 | 86.7 |
| एक्शन चंकिंग ट्रांसफार्मर | 13.3 | 8.3 | 8.3 | 13.3 | 23.3 |
| मल्टी-लेयर परसेप्ट्रॉन | 0 | 0 | 0 | 0 | 0 |
292 / 140 / 14 ms के आंकड़े तालिका IV के हैं, सभी एक A6000 पर। ये प्रति एक्शन भविष्यवाणी के लिए हैं और इसमें कैमरा कैप्चर, प्रीप्रोसेसिंग और सर्वो को सीरियल राइट शामिल नहीं है। प्रकाशित विलंबता को निचली सीमा मानें, कभी भी नियंत्रण दर के रूप में नहीं। हमारे अपने नंबरों की भी यही सीमा है: इन्फ्रेंस विलंबता देखें।
TinyVLA ने क्या स्कोर किया
| बेंचमार्क | प्रोटोकॉल | TinyVLA-H | बेसलाइन |
|---|---|---|---|
| मेटावर्ल्ड, 50 कार्य, सिम | मल्टी-टास्क, 50 डेमो, 3 सीड्स | 77.6 / 21.5 / 11.4 / 15.8 कठिनाई के अनुसार, औसत 31.6 | डिफ्यूजन पॉलिसी औसत 10.5 |
| रियल फ्रैंका पांडा, 5 कार्य | प्रति कार्य 100 ट्रेजेक्टरी, 20 परीक्षण | 94.0 औसत | ओपनवीएलए 68.3, डिफ्यूजन पॉलिसी 35.3 |
| द्वि-मैनुअल UR5, 3 कार्य | मल्टी-टास्क, प्रति कार्य 10 परीक्षण | 76.7 / 36.7 / 30.0 | ओपनवीएलए 0 / 0 / 0, डिफ्यूजन पॉलिसी 40.3 / 31.3 / 43.0 |
द्वि-मैनुअल पंक्ति की एक नीरस व्याख्या है जो पेपर स्वयं देता है: OpenVLA को Open X-Embodiment पर प्रीट्रेन किया गया है, जिसमें पूरी तरह से सिंगल-आर्म डेटा शामिल है, इसलिए दो-आर्म एक्शन स्पेस डिस्ट्रीब्यूशन से बाहर है और यह शून्य स्कोर करता है। डिफ्यूजन पॉलिसी बेसलाइन उन तीन कार्यों में से दो पर TinyVLA-H को हरा देती है। पृष्ठभूमि ओपन एक्स-एम्बॉडमेंट राइट-अप.

TinyVLA रेपो, अगस्त 2026 तक
यह पेपर अच्छा है। कोड एक रिसर्च ड्रॉप है। रिपॉजिटरी github.com/liyaxuanliyaxuan/TinyVLA है; इसकी README कोड रिलीज़ की तारीख 17 फरवरी 2025 और अंतिम कमिट 11 मार्च 2025 बताती है। एक पेपर को पुनरुत्पादित करने के लिए ठीक है, लेकिन यदि आप एक अनुरक्षित लाइब्रेरी चाहते हैं तो यह एक समस्या है।
git clone https://github.com/liyaxuanliyaxuan/TinyVLA
conda create -n tinyvla python=3.10 -y
conda activate tinyvla
pip install --upgrade pip
pip install -r requirements.txt
cd policy_heads && pip install -e .
cd ../llava-pythia && pip install -e .requirements.txt pins torch==2.0.1, transformers==4.37.1, deepspeed==0.9.5, peft==0.4.0, diffusers==0.11.1, numpy==1.24.4, and the CUDA stack to the 11.x wheels: nvidia-cuda-runtime-cu11==11.7.99, nvidia-cudnn-cu11==8.5.0.96, triton==2.0.0. The README asks for Python 3.10; lerobot 0.6.1 requires 3.12 or newer, so the two cannot share an environment. Confirm a torch 2.0.1 build exists for your GPU generation first. If a run dies on VRAM instead, the आउट-ऑफ-मेमोरी चेकलिस्ट अनुमान लगाने से तेज़ है।
TinyVLA भी नहीं पढ़ता है LeRobot डेटासेट. इसका प्रारूप ACT-शैली का HDF5 है: एक्शन, language_raw, और मल्टी-व्यू इमेज, joint_positions, qpos और qvel के साथ एक ऑब्जर्वेशन ग्रुप। रेपो RLDS इनपुट के लिए data_utils/rlds_to_h5py.py भेजता है, और प्रत्येक कार्य को aloha_scripts/constants.py में उसके dataset_dir, episode_len और camera_names के साथ मैन्युअल रूप से पंजीकृत किया जाता है। यदि आपके एपिसोड lerobot या डेस्कटॉप क्लाइंट से आए हैं, तो रूपांतरण की जिम्मेदारी आपकी है।
# scripts/train.sh, the real flags from the repository
ACTION_HEAD=droid_diffusion
deepspeed --master_port 29600 --num_gpus=8 --num_nodes=1 ./train_tinyvla.py \
--deepspeed scripts/zero2.json \
--lora_enable True \
--lora_module 'vit llm' \
--lora_r 64 \
--lora_alpha 256 \
--non_lora_lr 2e-5 \
--task_name "example_task_config" \
--model_name_or_path /path/to/pretrained_vlm \
--freeze_vision_tower True \
--freeze_backbone True \
--bf16 True \
--max_steps 10000 \
--per_device_train_batch_size 32 \
--gradient_accumulation_steps 1 \
--learning_rate 2e-4 \
--lr_scheduler_type "cosine" \
--warmup_ratio 0.005 \
--save_steps 1000 \
--action_head_type $ACTION_HEAD \
--use_state True \
--window_size 6- --num_gpus=8 एक आठ-कार्ड नोड मानता है। इसे 1 पर सेट करें और बैच आकार को 32 से काफी नीचे कर दें। कोई भी सिंगल-GPU वेरिएंट अपस्ट्रीम शिप नहीं होता है, इसलिए कमांड को 4090 पर हूबहू नहीं चलाया जा सकता है।
- --deepspeed scripts/zero2.json एक ऐसी फ़ाइल की ओर इशारा करता है जो टॉप-लेवल स्क्रिप्ट्स डायरेक्टरी में नहीं है। DeepSpeed कॉन्फ़िग llava-pythia/scripts/zero2.json पर शिप होते हैं। अपनी पहली रन से पहले पाथ को ठीक करें।
- README के लिए आवश्यक है कि आउटपुट डायरेक्टरी के नाम में llava_pythia शामिल हो, साथ ही यदि LoRA सक्षम है तो lora भी हो।
- बैकबोन एक अलग डाउनलोड है: lesjie/Llava-Pythia-400M, -700M या -1.3B। कोई एक बेस चेकपॉइंट नहीं है जिस पर आप एक पॉलिसी को इंगित कर सकें, जैसे आप lerobot/smolvla_base पर इंगित करते हैं।
SmolVLA: वह सब-1 B मॉडल जिसे आप आज दोपहर चला सकते हैं
SmolVLA एक अनुरक्षित लाइब्रेरी के भीतर वही तर्क प्रस्तुत करता है। यह SmolVLM2-500M-Video-Instruct बैकबोन पर 450 M पैरामीटर का है, और दक्षता उन सेटिंग्स से आती है जिन्हें आप configuration_smolvla.py से पढ़ सकते हैं, न कि छोटे होने के दावे से।
| configuration_smolvla.py में सेटिंग | डिफ़ॉल्ट | यह क्या प्रदान करता है |
|---|---|---|
| num_vlm_layers | 16 | केवल पहले 16 भाषा मॉडल लेयर चलते हैं |
| expert_width_multiplier | 0.75 | एक्शन एक्सपर्ट का हिडन आकार VLM के 75 प्रतिशत है |
| self_attn_every_n_layers | 2 | क्रॉस-अटेंशन के साथ सेल्फ-अटेंशन इंटरलीव्ड |
| chunk_size / n_action_steps | 50 / 50 | एक पास 50 क्रियाएँ उत्सर्जित करता है और सभी 50 निष्पादित की जाती हैं |
| num_steps | 10 | फ्लो मैचिंग डीनोइजिंग 10 स्टेप्स पर फिक्स किया गया |
| tokenizer_max_length | 48 | निर्देश को 48 टोकन तक छोटा किया गया है |
| freeze_vision_encoder / train_expert_only | True / True | फाइन-ट्यूनिंग विशेषज्ञ को स्थानांतरित करती है, न कि विजन टावर को |
| optimizer_lr, warmup, decay | 1e-4, 1000 steps, to 2.5e-6 over 30000 | पेपर की रेसिपी नहीं: इसके प्रीट्रेनिंग में 200000 स्टेप्स पर 100-स्टेप वार्मअप का उपयोग किया गया था |
प्रीट्रेनिंग में 481 कम्युनिटी LeRobot डेटासेट, 22.9 K एपिसोड और 10.6 M फ़्रेम का उपयोग 4 GPUs पर, 256 के ग्लोबल बैच पर 200000 स्टेप्स के लिए किया गया; पेपर के अनुसार पूरे प्रोजेक्ट में लगभग 30 K GPU घंटे लगे। एक संख्या जिस पर ध्यान देना है: Hugging Face लॉन्च ब्लॉग में 487 क्यूरेटेड डेटासेट का उल्लेख है जबकि पेपर की तालिका में 481 कहा गया है। हम पेपर के आंकड़े का उपयोग करते हैं और इस असहमति को चिह्नित करते हैं।

| बेंचमार्क | SmolVLA 0.45 B | SmolVLA 2.25 B | Pi0 | ACT |
|---|---|---|---|---|
| LIBERO औसत, मल्टी-टास्क | 87.3 | 88.75 | 86.0 (3.3 B, robotics-pretrained) | - |
| Meta-World औसत, मल्टी-टास्क | 57.3 | 68.24 | 47.9 (3.5 B, robotics-pretrained) | - |
| वास्तविक SO-100, 3 कार्य, मल्टी-टास्क प्रशिक्षण | 78.3 | - | 61.7 (3.5 B) | - |
| वास्तविक SO-100, 3 कार्य, सिंगल-टास्क, कोई रोबोटिक्स प्रीट्रेनिंग नहीं | 40.0 | - | - | 48.3 |
| SO-101 लेगो पिक-प्लेस, सिंगल-टास्क, इन-डिस्ट्रीब्यूशन | 90 | - | - | 70 |
| SO-101 लेगो पिक-प्लेस, सिंगल-टास्क, आउट-ऑफ-डिस्ट्रीब्यूशन | 50 | - | - | 40 |
LIBERO सिमुलेशन है और अब वहां सभी सक्षम स्कोर अस्सी के दशक में हैं। वास्तविक SO-100 पंक्ति, जहां एक 450 M मॉडल 3.5 B वाले को 16.6 अंकों से हराता है, वह दिलचस्प है; इसके नीचे की पंक्ति इसका प्रतिभार है। कम्युनिटी प्रीट्रेनिंग और मल्टी-टास्क प्रशिक्षण को हटाने पर वही मॉडल ACT के तहत 40.0 तक गिर जाता है। बचाव योग्य दावा यह है कि एक छोटा मॉडल स्वचालित रूप से खराब नहीं होता, न कि वह बेहतर होता है।
एक संयोग सहायक है: SmolVLA पेपर की मेटा-वर्ल्ड तालिका में TinyVLA के अपने प्रकाशित नंबरों को एक आधार रेखा के रूप में शामिल किया गया है, इसलिए एक बार के लिए दोनों मॉडल एक ही तालिका में हैं, SmolVLA-0.45B 57.3 पर TinyVLA-H के 31.6 के मुकाबले। यह यह भी बताता है कि SmolVLA की ट्रेनिंग Pi0 की तुलना में लगभग 40 प्रतिशत तेज़ और 6 गुना कम मेमोरी पर होती है। यह सब SmolVLA के लेखकों से आता है; अखाड़ा प्रविष्टि प्रत्येक मान को उसके स्रोत से जोड़ता है।
SmolVLA अपना समय कहाँ व्यतीत करता है
AY-Robots SmolVLA को प्रति एक्शन स्टेप 245 ms और ACT को 20 ms पर नीति कैटलॉग में सूचीबद्ध करता है। TinyVLA प्रति एक्शन प्रेडिक्शन 14 ms की रिपोर्ट करता है। ये संख्याएँ तुलनीय नहीं हैं, और उन्हें ऐसा मानना इस विषय में सबसे आम गलती है: कुछ एक फॉरवर्ड पास का समय लेते हैं, कुछ उस पास को एक चंक में विभाजित करते हैं जब एक्शन चंकिंग इसे अमोर्टाइज़ करता है।
- SmolVLA प्रति फॉरवर्ड पास 50 एक्शन उत्सर्जित करता है और सभी 50 को निष्पादित करता है। 30 fps पर, जिसका उपयोग पेपर वास्तविक रोबोटों पर करता है, एक इन्फेरेंस लगभग 1.7 सेकंड की गति को कवर करता है।
- एसिंक्रोनस इन्फेरेंस अगले चंक की गणना करता है जबकि वर्तमान वाला अभी भी निष्पादित हो रहा होता है: 13.75 s सिंक्रोनस के मुकाबले 9.7 s औसत कार्य पूर्णता, लगभग 30 प्रतिशत तेज़, और एक निश्चित 60-सेकंड की विंडो में 9 के मुकाबले 19 पिक-एंड-प्लेस चक्र।
- सफलता दर बेहतर होने के बजाय तुलनीय थी, 73.3 एसिंक्रोनस के मुकाबले 78.3 सिंक्रोनस। एसिंक थ्रूपुट खरीदता है, सटीकता नहीं।
- चंकिंग कंप्यूट लेटेंसी को छुपाता है, नेटवर्क लेटेंसी को नहीं, और यह नीति को कम प्रतिक्रियाशील बनाता है क्योंकि यह 50 एक्शन के लिए प्रतिबद्ध है।
AY-Robots एक क्लाउड GPU पॉड को स्वतः-प्रावधानित कर सकता है जो आपकी पॉलिसी को सेवा प्रदान करता है जबकि स्थानीय रोबोट क्लाइंट उस एंडपॉइंट से बात करता है, और पॉड में एक निष्क्रिय वॉचडॉग होता है ताकि वह चुपचाप बिलिंग करने के बजाय खुद को नष्ट कर दे। जो यह नहीं करता वह सार्वजनिक-इंटरनेट राउंड ट्रिप को हटाना है। यहां की पांच पॉलिसियों में कंट्रोल लूप किसी भी नेटवर्क से पहले प्रति एक्शन स्टेप 20 से 485 ms है, इसलिए रिमोट इन्फेरेंस धीमी पिक-एंड-प्लेस के लिए व्यवहार्य है, न कि तेज़ प्रतिक्रियाशील गति के लिए।

एक उपभोक्ता कार्ड पर SmolVLA की फाइन-ट्यूनिंग
मैनुअल तरीका, lerobot 0.6.1 पर, जो 23 अगस्त 2026 तक की वर्तमान PyPI रिलीज़ है। नीचे दी गई सभी जानकारी उसी दिन प्राप्त की गई Hugging Face lerobot SmolVLA डॉक्यूमेंटेशन से आती है; निर्देशित संस्करण अधिक सौम्य है।
- 1smolvla अतिरिक्त के साथ lerobot स्थापित करें
SmolVLA निर्भरताएँ एक वैकल्पिक अतिरिक्त हैं, जो मूल इंस्टॉलेशन का हिस्सा नहीं हैं। इसे स्थापित किए बिना और फिर यह सोचने में कि नीति का प्रकार अज्ञात क्यों है, आमतौर पर आधा घंटा बर्बाद हो जाता है।
bashgit clone https://github.com/huggingface/lerobot.git cd lerobot pip install -e ".[smolvla]" - 2पर्याप्त एपिसोड वाला डेटासेट प्राप्त करें
दस्तावेज़ लगभग 50 एपिसोड की सलाह देते हैं और बताते हैं कि 25 के साथ वही कार्य पर्याप्त नहीं था। AY-Robots न्यूनतम 30 निर्धारित करता है। अपना खुद का रिकॉर्ड करें, या डेटासेट निर्देशिका से शुरू करें।
bash# any LeRobotDataset on the Hub works as --dataset.repo_id # lerobot/svla_so100_pickplace is the paper's own 50-episode set: # 5 cube positions, 10 episodes each - 3फाइन-ट्यून शुरू करें
lerobot गाइड से कमांड, अपरिवर्तित। दस्तावेज़ एक A100 पर 20000 चरणों को लगभग 4 घंटे बताते हैं। 24 GB कार्ड पर, अधिक समय की अपेक्षा करें और इसे मापें।
bashcd lerobot && lerobot-train \ --policy.path=lerobot/smolvla_base \ --dataset.repo_id=${HF_USER}/mydataset \ --batch_size=64 \ --steps=20000 \ --output_dir=outputs/train/my_smolvla \ --job_name=my_smolvla_training \ --policy.device=cuda \ --wandb.enable=true - 4बैच आकार को तब तक कम करें जब तक वह फिट न हो जाए
batch_size=64 एक दस्तावेज़ित उदाहरण है, आपके कार्ड के बारे में कोई वादा नहीं। दस्तावेज़ छोटे से शुरू करने और लोडिंग समय कम रहने तक बढ़ाने की सलाह देते हैं।
bashlerobot-train --help - 5आर्म पर चेकपॉइंट रोल आउट करें
वही लाइब्रेरी, एक कमांड। रियल-टाइम चंकिंग फ़्लैग दस्तावेज़ों में टिप्पणी किए गए हैं और कम-शक्ति वाले हार्डवेयर पर उपयोग करने के लिए हैं।
bashlerobot-rollout \ --strategy.type=base \ --robot.type=so101_follower \ --robot.port=/dev/ttyACM0 \ --robot.id=my_blue_follower_arm \ --robot.cameras="{ front: {type: opencv, index_or_path: 8, width: 640, height: 480, fps: 30}}" \ --task="Grasp a lego block and put it in the bin." \ --policy.path=HF_USER/FINETUNE_MODEL_NAME
आप कोई भी रास्ता अपनाएं, आपको एक चेकपॉइंट और उसे बनाने वाला कॉन्फ़िग मिलता है। डेटासेट संशोधन, चरण गणना और सीड को इसके साथ रखें। lerobot डिफ़ॉल्ट रूप से सीड 1000 पर सेट होता है; GR00T का फाइन-ट्यूनिंग एंट्री पॉइंट कोई सीड उजागर नहीं करता है, इसलिए वे रन बिट-फॉर-बिट रिप्रोड्यूसिबल नहीं होते हैं। प्रशिक्षण दस्तावेज़ों में यांत्रिकी।
एक छोटे VLA को आर्म पर लाने के दो तरीके
आप मशीन और विफलता मोड के मालिक हैं। SmolVLA के लिए यह उचित है: एक pip अतिरिक्त, एक ट्रेन कमांड, एक रोलआउट कमांड। TinyVLA के लिए यह जमे हुए पिन, एक टूटे हुए DeepSpeed पथ और एक डेटा रूपांतरण के साथ एक शोध पुनरुत्पादन है जिसे आप स्वयं लिखते हैं।
- एक 24 GB कार्ड प्राप्त करें, 30 से 50 एपिसोड रिकॉर्ड करें, कैमरा स्ट्रीम को फ्रेम दर फ्रेम सत्यापित करें।
- pip install -e ".[smolvla]", lerobot/smolvla_base के खिलाफ lerobot-train चलाएं, फिर उस मशीन पर चेकपॉइंट को सर्व करें जिससे आर्म जुड़ा हुआ है।
- TinyVLA के लिए: अलग conda env, डेटा को HDF5 में बदलें, constants.py में कार्य को पंजीकृत करें, zero2.json पथ को ठीक करें, train.sh को आठ GPUs से एक में काटें।
- कार्ड का भुगतान हो जाने के बाद प्रति घंटे बिलिंग नहीं।
- अनुमान सर्वो के बगल में बैठता है, तेज़ नियंत्रण लूप प्राप्त करने का एकमात्र तरीका।
- आप नीति कोड को पैच कर सकते हैं, और TinyVLA केवल इसी तरह उपलब्ध है।
- एक 4090 हर ~3 B नीति को बाहर कर देता है, इसलिए GR00T N1.7 या Pi0.5 के खिलाफ कोई स्थानीय तुलना नहीं।
- पर्यावरण सेटअप ही असली काम है। TinyVLA के पिन अकेले एक दिन का खर्च कर सकते हैं।
- कोई कतार नहीं, कोई पुनः प्रयास नहीं, कोई चेकपॉइंट स्टोरेज नहीं। चरण 14000 पर रीबूट का मतलब फिर से शुरू करना है।
SmolVLA यहाँ की पाँच नीतियों में से एक है। आप एक फॉर्म में मॉडल और डेटासेट चुनते हैं, बैकएंड आवश्यक VRAM द्वारा एक GPU किराए पर लेता है और ट्रेनर चलाता है और चेकपॉइंट को ऑब्जेक्ट स्टोरेज में लिखता है। चरण दर चरण: SO-100 पर SmolVLA, या प्रशिक्षण पृष्ठ पर पूर्ण मैट्रिक्स।
| प्लेटफ़ॉर्म SmolVLA के लिए क्या भेजता है | मान |
|---|---|
| बैच आकार | 2 |
| लर्निंग रेट | 1e-4 |
| अधिकतम चरण | 20000 |
| ग्रेडिएंट संचय | 8, and it does not reach the trainer |
| फॉर्म में अतिरिक्त नॉब | seed, logFreq |
| GPU टियर | RTX 4090 or any 24 GB card |
| डेटासेट प्रारूप | LeRobot v3.0 |
| न्यूनतम एपिसोड | 30 |
पहला, यहाँ डिफ़ॉल्ट बैच आकार 2 है, न कि lerobot दस्तावेज़ उदाहरण में 64, और ग्रेडिएंट संचय सेटिंग भेजी जाती है लेकिन SmolVLA के लिए इसका कोई प्रभाव नहीं होता है, इसलिए प्रभावी बैच वास्तव में 2 है। इसे जानबूझकर बढ़ाएँ बजाय यह मानने के कि डिफ़ॉल्ट अपस्ट्रीम से मेल खाता है। दूसरा, TinyVLA यहाँ बिल्कुल भी प्रशिक्षित करने योग्य नहीं है।
24 GB टियर पर एक रन 0.30 से 0.60 USD प्रति घंटे की दर से 2 से 5 घंटे लेता है, लगभग 1 से 3 USD। A100 टियर पर एक ~3 B नीति 1.20 से 2.00 USD प्रति घंटे की दर से 3 से 6 घंटे लेती है, लगभग 4 से 12 USD। मूल्य निर्धारण देखें, और CLI और MCP सर्वर से समान संचालन।
जब एक छोटा मॉडल गलत विकल्प होता है
दोनों पेपर सारांशों की तुलना में यहाँ अधिक सतर्क हैं। TinyVLA का विफलता विश्लेषण विशिष्ट है: 0.4 B वेरिएंट निर्देश को गलत पढ़ने के कारण तीन बार विफल रहा, जिसे लेखक छोटे VLM में सीमित भाषा समझ के लिए जिम्मेदार ठहराते हैं, और वह मोड 1.3 B पर गायब हो गया। SmolVLA दूसरे छोर से वही वक्र दिखाता है: समान आर्किटेक्चर का 2.25 B संस्करण LIBERO पर 88.75 और Meta-World पर 68.24 स्कोर करता है, जबकि 0.45 B मॉडल के लिए यह 87.3 और 57.3 है।
- 24 GB कार्ड में फिट बैठता है, जिससे एक प्रयोग का खर्च दसियों डॉलर से घटकर कुछ डॉलर हो जाता है।
- आर्म के बगल में चलने के लिए पर्याप्त तेज़, जिससे नियंत्रण लूप में कोई नेटवर्क हॉप नहीं होता।
- उस डेटा पर फाइन-ट्यून होता है जिसे एक व्यक्ति रिकॉर्ड कर सकता है, हजारों के बजाय दसियों एपिसोड।
- SmolVLA के वेट, डेटा सूची और कोड सार्वजनिक हैं, इसलिए एक खराब परिणाम को डीबग किया जा सकता है।
- कमजोर निर्देश पालन: कम भाषा पैरामीटर, समान संदर्भ अभिव्यक्तियों को अलग करने की कम क्षमता।
- उन सेटअपों के लिए कम स्थानिक और दृश्य सामान्यीकरण जिन्हें आपने रिकॉर्ड नहीं किया।
- डेटासेट दोषों के प्रति अधिक संवेदनशील, कम प्रीट्रेनिंग के साथ जिस पर निर्भर किया जा सके।
- मल्टी-टास्क और लंबी-अवधि का काम अभी भी बड़े मॉडलों का पक्षधर है, जिसमें SmolVLA का अपना 2.25 B वेरिएंट भी शामिल है।
चलाने लायक तुलना TinyVLA बनाम SmolVLA नहीं है। यह आपके अपने कार्य पर SmolVLA बनाम ACT है, और SmolVLA पेपर इसका तर्क प्रस्तुत करता है। बिना रोबोटिक्स प्रीट्रेनिंग के सिंगल-टास्क प्रशिक्षित, SmolVLA ने तीन SO-100 कार्यों में औसतन 40.0 स्कोर किया, जहाँ सिंगल-टास्क ACT ने 48.3 का प्रबंधन किया। जो इसे 78.3 तक बढ़ाता है वह सामुदायिक प्रीट्रेनिंग और मल्टी-टास्क प्रशिक्षण है, न कि केवल आर्किटेक्चर। SO-101 लेगो कार्य पर, दोनों सिंगल-टास्क में, SmolVLA जीतता है: वितरण में 70 के मुकाबले 90। फिर SmolVLA बनाम Pi0.5 यदि बजट अनुमति देता है।
खराब डेटा को कवर करने के लिए कम प्रीट्रेनिंग होती है, इसलिए एक दोषपूर्ण डेटासेट पर एक स्वच्छ लॉस कर्व आपको एक ऐसी नीति देता है जो आत्मविश्वास से दोष को दोहराती है। lerobot डॉक्स संरचना के बारे में स्पष्ट हैं: 5 क्यूब स्थितियों में 50 एपिसोड, प्रति स्थिति 10, काम किया; 25 ने नहीं किया। यदि लॉस ठीक दिखता है और भुजा कुछ भी उपयोगी नहीं करती है, तो लॉस गिरता है, नीति कुछ नहीं करती, नीति केवल एक सेटअप में काम करती है या वास्तव में उपयोग करने योग्य VLA प्रशिक्षण डेटा एकत्र करना से शुरू करें।
पांच नीतियां, एक तुलना तालिका
GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA और ACT वास्तविक पैरामीटर गणना, प्रति एक्शन स्टेप अनुमान विलंबता, प्रत्येक को आवश्यक GPU टियर और कुछ भी उपयोगी करने से पहले न्यूनतम एपिसोड गणना के साथ।
नीतियों की तुलना करेंएक निर्णय तालिका जिस पर आप कार्रवाई कर सकते हैं
| आपकी स्थिति | इससे शुरू करें | क्यों |
|---|---|---|
| एक कार्य, अच्छे प्रदर्शन, कोई भाषा नहीं | ACT | ~80 M, 20 ms, 24 GB कार्ड, डाउनलोड करने के लिए कोई बेस मॉडल नहीं |
| कुछ संबंधित कार्य, प्रत्येक के लिए एक निर्देश | SmolVLA | 450 M, lerobot में, न्यूनतम 30 एपिसोड, प्रति रन 1 से 3 USD |
| विशेष रूप से TinyVLA परिणाम को दोहराना | TinyVLA-B or TinyVLA-H | रेपो ही एकमात्र मार्ग है: पृथक वातावरण, परिवर्तित डेटा |
| बहु-कार्य, विविध निर्देश, A100 बजट | GR00T N1.7 or Pi0.5 | ~3 B, प्रति स्टेप 152 ms और 485 ms, प्रति रन 4 से 12 USD |
| अभी तक कोई रोबोट नहीं | एक वास्तविक भुजा चलाएं | कतार-आधारित लाइव भुजा को किसी साइनअप और किसी हार्डवेयर की आवश्यकता नहीं है |
अंतिम पंक्ति के लिए, लाइव आर्म एक भौतिक SO-100 को स्ट्रीम करता है जिसे आप बिना खाते के ब्राउज़र से चला सकते हैं, और शुरू करने के तीन तरीके बाकी को कवर करते हैं। SO-100 यहाँ संदर्भ आर्म है, पुर्जों में लगभग 110 से 150 EUR का, एक पूर्ण सेटअप गाइड के साथ।
सब-1 बी मॉडल के बाद क्या आता है
पैरामीटर गणना को कम करना VLA को सस्ता बनाने का एक तरीका है और यह स्पष्ट रूप से जीतने वाला नहीं है। OpenVLA-OFT (arXiv 2502.19645) 7 B बैकबोन को बरकरार रखता है और केवल यह बदलता है कि क्रियाओं को कैसे डीकोड किया जाता है, क्रिया जनरेशन थ्रूपुट में 26x वृद्धि और LIBERO में 76.5 से 97.1 प्रतिशत तक की वृद्धि की रिपोर्ट करता है। BitVLA (arXiv 2506.07530) 1-बिट BitNet b1.58 2B4T बैकबोन के प्रत्येक भार को टर्नरी बनाता है, 11.0x कम मेमोरी और 4.4x कम एंड-टू-एंड लेटेंसी की रिपोर्ट करता है जबकि पूर्ण-परिशुद्धता OpenVLA-OFT से मेल खाता है। X-VLA-0.9B (arXiv 2510.10274) फ्लो मैचिंग के साथ 1 B लाइन पर बैठता है।
सामान्य बात: एक्शन डिकोडर, न कि भाषा मॉडल, वह जगह है जहाँ लेटेंसी रहती है। यह पूछने से पहले कि किसी पॉलिसी में कितने पैरामीटर हैं, यह पूछें कि वह क्रियाओं को कैसे उत्सर्जित करती है। अखाड़ा में 85 मॉडल और 332 परिणाम हैं, प्रत्येक अपने स्रोत से जुड़ा हुआ है; एक व्यापक अवलोकन हमारे VLA परिचय में है।
क्या मैं RTX 4090 पर SmolVLA को फाइन-ट्यून कर सकता हूँ?▾
हाँ। SmolVLA 450 M पैरामीटर का है और AY-Robots इसे RTX 4090 / 24 GB टियर पर चलाता है। lerobot उदाहरण --batch_size=64 का उपयोग करता है, जो आपके कार्ड के लिए गारंटी के बजाय एक उदाहरण है; दस्तावेज़ छोटे से शुरू करने और लोडिंग समय कम रहने तक बढ़ाने की सलाह देते हैं। A100 पर 20000 स्टेप्स के लिए दस्तावेज़ों में उद्धृत लगभग 4 घंटे से अधिक समय की अपेक्षा करें।
क्या TinyVLA lerobot या AY-Robots पर उपलब्ध है?▾
दोनों के लिए नहीं। TinyVLA केवल अपने शोध रिपॉजिटरी में मौजूद है, अंतिम कमिट 11 March 2025 को हुआ था, और इसका प्रारूप LeRobot के बजाय ACT-शैली का HDF5 है। AY-Robots GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA और ACT को प्रशिक्षित करता है। यदि आप TinyVLA चाहते हैं तो आपको इसे स्वयं बनाना होगा, और आपको पहले scripts/train.sh में DeepSpeed कॉन्फ़िग पाथ को ठीक करना होगा।
क्या 450 M मॉडल वास्तव में 3 B वाले मॉडल के साथ प्रतिस्पर्धी है?▾
लेखकों के अपने बेंचमार्क पर, हाँ: LIBERO पर 86.0 के मुकाबले 87.3 बनाम 3.3 B पर एक रोबोटिक्स-प्रीट्रेन्ड Pi0, और तीन वास्तविक SO-100 कार्यों पर 61.7 के मुकाबले 78.3 जहाँ उसी पेपर में Pi0 को 3.5 B पर लेबल किया गया है। सीमा उसी पेपर में है: रोबोटिक्स प्रीट्रेनिंग के बिना एकल-कार्य, SmolVLA 40.0 तक गिर जाता है, जो ACT के 48.3 से नीचे है।
एक छोटे VLA के कुछ भी करने से पहले मुझे कितने एपिसोड की आवश्यकता है?▾
AY-Robots SmolVLA के लिए न्यूनतम 30 एपिसोड और ACT के लिए न्यूनतम 50 एपिसोड निर्धारित करता है। lerobot दस्तावेज़ लगभग 50 की सलाह देते हैं और रिपोर्ट करते हैं कि उसी कार्य के लिए 25 पर्याप्त नहीं थे। संख्या के साथ-साथ संरचना भी मायने रखती है: पेपर के सेट में 5 क्यूब पोजीशन का उपयोग किया गया था, प्रत्येक में 10 एपिसोड थे।
प्रकाशित विलंबता संख्याएँ इतनी भिन्न क्यों होती हैं?▾
वे अलग-अलग चीजें मापते हैं। TinyVLA A6000 पर प्रति एक्शन प्रेडिक्शन 14 ms रिपोर्ट करता है; AY-Robots SmolVLA को 245 ms और ACT को प्रति एक्शन स्टेप 20 ms पर सूचीबद्ध करता है। कुछ आंकड़े एक फॉरवर्ड पास को कवर करते हैं, कुछ एक पास को 50-एक्शन चंक में विभाजित करते हैं, और लगभग कोई भी कैमरा कैप्चर या सर्वो को लिखने को शामिल नहीं करता है।
क्या क्लाउड इन्फरेंस GPU समस्या का समाधान करता है?▾
आंशिक रूप से। AY-Robots एक पॉड को स्वतः-प्रावधानित करता है जो नीति को सेवा प्रदान करता है जबकि स्थानीय क्लाइंट उस एंडपॉइंट से बात करता है, जिसमें एक निष्क्रिय वॉचडॉग होता है ताकि यह चुपचाप बिलिंग करने के बजाय खुद को नष्ट कर दे। यह सार्वजनिक-इंटरनेट राउंड ट्रिप को हटा नहीं सकता है, और नियंत्रण लूप पहले से ही प्रति एक्शन स्टेप 20 से 485 ms है। धीमी पिक-एंड-प्लेस के लिए ठीक है, लेकिन तेज़ प्रतिक्रियाशील गति के लिए नहीं।
Sources
- TinyVLA: रोबोटिक मैनिपुलेशन के लिए तेज़, डेटा-कुशल विजन-लैंग्वेज-एक्शन मॉडल की ओर
- TinyVLA आधिकारिक कोड रिपॉजिटरी (README, requirements.txt, scripts/train.sh)
- TinyVLA प्रोजेक्ट पेज
- lesjie/Llava-Pythia-1.3B, TinyVLA-H बैकबोन वेट्स
- SmolVLA: किफायती और कुशल रोबोटिक्स के लिए एक विजन-लैंग्वेज-एक्शन मॉडल
- lerobot दस्तावेज़: SmolVLA को फाइन-ट्यून करना
- lerobot: configuration_smolvla.py, SmolVLA के डिफ़ॉल्ट सेटिंग्स
- lerobot/smolvla_base मॉडल कार्ड
- SmolVLA: कुशल विजन-लैंग्वेज-एक्शन मॉडल (Hugging Face ब्लॉग)
- PyPI पर lerobot (0.6.1, Python 3.12 या नए की आवश्यकता है)
- OpenVLA: एक ओपन-सोर्स विजन-लैंग्वेज-एक्शन मॉडल
- विजन-लैंग्वेज-एक्शन मॉडल को फाइन-ट्यून करना: गति और सफलता का अनुकूलन (OpenVLA-OFT)
- BitVLA: रोबोटिक्स मैनिपुलेशन के लिए 1-बिट विजन-लैंग्वेज-एक्शन मॉडल
- X-VLA: स्केलेबल क्रॉस-एम्बॉडमेंट विजन-लैंग्वेज-एक्शन मॉडल के रूप में सॉफ्ट-प्रॉम्प्टेड ट्रांसफार्मर
- rail-berkeley/octo-small-1.5 मॉडल कार्ड (27 M पैरामीटर)
Sources
- TinyVLA: Towards Fast, Data-Efficient Vision-Language-Action Models for Robotic Manipulation
- TinyVLA official code repository (README, requirements.txt, scripts/train.sh)
- TinyVLA project page
- lesjie/Llava-Pythia-1.3B, the TinyVLA-H backbone weights
- SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics
- lerobot documentation: fine-tuning SmolVLA
- lerobot: configuration_smolvla.py, the SmolVLA defaults
- lerobot/smolvla_base model card
- SmolVLA: Efficient Vision-Language-Action Model (Hugging Face blog)
- lerobot on PyPI (0.6.1, requires Python 3.12 or newer)
- OpenVLA: An Open-Source Vision-Language-Action Model
- Fine-Tuning Vision-Language-Action Models: Optimizing Speed and Success (OpenVLA-OFT)
- BitVLA: 1-bit Vision-Language-Action Models for Robotics Manipulation
- X-VLA: Soft-Prompted Transformer as Scalable Cross-Embodiment Vision-Language-Action Model
- rail-berkeley/octo-small-1.5 model card (27 M parameters)
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started