
TinyVLA र SmolVLA ले 1 B प्यारामिटर भन्दा कममा काम गर्ने VLA राख्छन्। दुवै पेपरबाट वास्तविक संख्याहरू, lerobot पूर्वनिर्धारितहरू, मापन गरिएको विलम्बता, र 24 GB कार्डमा एक रनको लागत कति हुन्छ।
लगभग हरेक भिजन-ल्याङ्ग्वेज-एक्शन मोडेल जसको बारेमा लेखिन्छ, त्यसले डेटासेन्टर कार्डको आवश्यकता मान्छ। OpenVLA ७ अर्ब प्यारामिटरको छ। GR00T N1.7 र Pi0.5 करिब ३ अर्ब प्यारामिटरका छन् र फाइन-ट्युन गर्न A100 80 GB चाहिन्छ। यदि तपाईंको डेस्कमा भएको कार्ड 4090 हो भने, त्यो वर्गको मोडेल पहुँच बाहिर छ।
दुईवटा पेपरले यसको आवश्यकता नभएको तर्क गर्छन्। TinyVLA (arXiv 2409.12514, फेब्रुअरी २०२५ मा IEEE Robotics and Automation Letters द्वारा स्वीकृत) ले ४०० M देखि १.३ B ब्याकबोन र डिफ्युजन एक्शन हेडबाट VLA बनाउँछ। SmolVLA (arXiv 2506.01844, २ जुन २०२५ मा पेश गरिएको) ले खुला वजन, खुला डेटा र एउटा उपभोक्ता कार्डमा चल्ने स्क्रिप्टसहित ४५० M प्यारामिटरहरू प्रदान गर्छ। यहाँ दुवैले के मापन गरे, र जहाँ १ अर्ब भन्दा कमको तर्क टिक्न छोड्छ।
तपाईंले जान्नुपर्ने कुराहरू
- •TinyVLA तीन आकारमा उपलब्ध छ: कुल ४२२ M जसमा १०१ M तालिम योग्य, ७४० M जसमा १३८ M, १.३ B जसमा १४३ M। पहिलो दुई मात्र १ B भन्दा कम छन्।
- •यसको तालिका IV ले एउटा A6000 मा TinyVLA-1B को लागि प्रति एक्शन भविष्यवाणी १४ ms मापन गर्छ, जबकि OpenVLA-7B को लागि २९२ ms र सानो OpenVLA-1B को लागि १४० ms।
- •गति हेडले कायम राख्छ, ब्याकबोनले होइन: TinyVLA-H को डिफ्युजन हेडलाई ACT हेडसँग साट्दा पाँच वास्तविक-रोबोट कार्यहरू ९४.० को औसतबाट एकल अंकमा झर्छन्। एउटा MLP हेडले सबै ठाउँमा ० स्कोर गर्छ।
- •SmolVLA ४५० M को छ, जसमध्ये करिब १०० M एक्शन विशेषज्ञ हो, ४८१ सामुदायिक LeRobot डेटासेट र १०.६ M फ्रेमहरूमा प्रिट्रेन गरिएको छ। यसले LIBERO मा ८७.३ रिपोर्ट गर्छ, जबकि रोबोटिक्स-प्रिट्रेन गरिएको Pi0 ३.३ B मा ८६.०, र तीन वास्तविक SO-100 कार्यहरूमा ७८.३ रिपोर्ट गर्छ, जबकि Pi0 ३.५ B मा ६१.७।
- •त्यो प्रिट्रेनिङ बिना एकल-कार्यमा तालिम दिँदा, SmolVLA ती कार्यहरूमा ४०.० मा झर्छ, ACT को ४८.३ भन्दा कम। सानो हुनु स्वचालित रूपमा सजिलो होइन।
- •TinyVLA मा LeRobot एकीकरण छैन र CUDA 11.7 व्हील स्ट्याक पिन गर्छ। SmolVLA lerobot मा छ र यहाँ २४ GB टियरमा प्रति रन लगभग १ देखि ३ USD खर्च लाग्छ।
वास्तवमा सानो VLA केलाई मानिन्छ
मोडेल कार्डमा प्यारामिटर गणना एउटा मात्र संख्या होइन। यसको अर्थ कुल तौल, अनुमानको समयमा लोड गरिएका तौल, वा ग्रेडियन्ट प्राप्त गर्ने तौल हुन सक्छ । TinyVLA ले दुवै रिपोर्ट गर्छ, र भिन्नता ठूलो छ: TinyVLA-H कुल 1.3 B छ तर 143 M तालिम योग्य छ, किनभने भिजन टावर र धेरैजसो भाषा मोडेल स्थिर रहन्छन् जबकि LoRA एडाप्टरहरू र कार्य हेड चल्छन्। पेपरले तालिम योग्य हिस्सा लगभग 5 प्रतिशतमा राखेको छ।
| मोडेल | प्याराम्स | ब्याकबोन | कार्य हेड | स्रोत |
|---|---|---|---|---|
| TinyVLA-S | 422 M total, 101 M trainable | Llava-Pythia ~400 M | Diffusion (droid_diffusion U-Net) | arXiv 2409.12514 |
| TinyVLA-B | 740 M total, 138 M trainable | Llava-Pythia ~700 M | Diffusion | arXiv 2409.12514 |
| TinyVLA-H | 1.3 B total, 143 M trainable | Llava-Pythia ~1.3 B | Diffusion | arXiv 2409.12514 |
| SmolVLA | 450 M, ~100 M action expert | SmolVLM2-500M-Video-Instruct | Flow matching expert | arXiv 2506.01844 |
| Octo-Small | 27 M | ViT-S scale, T5-Base text encoder | Diffusion | octo-small-1.5 card |
| ACT | ~80 M | ResNet, no language model | Direct chunk regression | AY-Robots catalog |
| OpenVLA | 7 B | Llama 2 7 B, DINOv2 and SigLIP encoders | Autoregressive action tokens | arXiv 2406.09246 |
दुई पङ्क्तिहरूमा बहस गर्न लायक छ। लगभग 80 M मा यहाँका अन्य सबै भन्दा सानो छ तर यसमा कुनै भाषा मोडेल छैन, त्यसैले यो VLA होइन: यसले एउटा कार्य सिक्छ र अर्को गर्न भन्न सकिँदैन। 27 M मा T5-Base टेक्स्ट एन्कोडर मार्फत कन्डिसन गरिएको छ, 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, TinyVLA को लागि ब्याकबोन साटियो | 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 |
२९२ / १४० / १४ मिलिसेकेन्डका अंकहरू तालिका IV मा छन्, सबै एउटै A6000 मा। यी प्रति कार्य भविष्यवाणीका लागि हुन् र क्यामेरा क्याप्चर, प्रिप्रेसेसिङ र सर्भोहरूमा सिरियल राइटलाई समावेश गर्दैनन्। प्रकाशित विलम्बतालाई तल्लो सीमाको रूपमा लिनुहोस्, नियन्त्रण दरको रूपमा कहिल्यै होइन। हाम्रा आफ्नै नम्बरहरूमा पनि यही सीमा लागू हुन्छ: हेर्नुहोस् इन्फरेन्स विलम्बता।
TinyVLA ले के स्कोर गर्यो
| बेन्चमार्क | प्रोटोकल | TinyVLA-H | बेसलाइनहरू |
|---|---|---|---|
| मेटावर्ल्ड, ५० कार्यहरू, सिम | बहु-कार्य, ५० डेमो, ३ सीड | कठिनाई अनुसार ७७.६ / २१.५ / ११.४ / १५.८, औसत ३१.६ | Diffusion Policy average 10.5 |
| वास्तविक फ्रान्का पाण्डा, ५ कार्यहरू | प्रति कार्य १०० ट्र्याजेक्टरी, २० परीक्षण | ९४.० औसत | OpenVLA 68.3, Diffusion Policy 35.3 |
| द्वि-म्यानुअल UR5, ३ कार्यहरू | बहु-कार्य, प्रति कार्य १० परीक्षण | ७६.७ / ३६.७ / ३०.० | OpenVLA 0 / 0 / 0, Diffusion Policy 40.3 / 31.3 / 43.0 |
द्वि-म्यानुअल पङ्क्तिमा पेपरले आफैंले दिएको एक नीरस व्याख्या छ: OpenVLA Open X-Embodiment मा पूर्व-प्रशिक्षित छ, जसमा पूर्ण रूपमा एकल-हात डेटा समावेश छ, त्यसैले दुई-हात कार्य स्थान वितरण बाहिर छ र यसले शून्य स्कोर गर्छ। डिफ्युजन नीति बेसलाइनले ती तीन कार्यहरू मध्ये दुईमा TinyVLA-H लाई हराउँछ। पृष्ठभूमि Open X-Embodiment को लेख.

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 ले torch==2.0.1, transformers==4.37.1, deepspeed==0.9.5, peft==0.4.0, diffusers==0.11.1, numpy==1.24.4, र CUDA स्ट्याकलाई 11.x व्हीलहरूमा पिन गर्छ: nvidia-cuda-runtime-cu11==11.7.99, nvidia-cudnn-cu11==8.5.0.96, triton==2.0.0। README ले Python 3.10 को लागि सोध्छ; lerobot 0.6.1 लाई 3.12 वा नयाँ चाहिन्छ, त्यसैले दुईले एउटै वातावरण साझा गर्न सक्दैनन्। पहिले तपाईंको GPU जेनेरेसनको लागि torch 2.0.1 बिल्ड अवस्थित छ कि छैन भनी पुष्टि गर्नुहोस्। यदि रन VRAM मा मर्यो भने, मेमोरी अभाव चेकलिस्ट अनुमान गर्नु भन्दा छिटो हुन्छ।
TinyVLA ले LeRobot डेटासेटहरू पनि पढ्दैन। यसको ढाँचा ACT-शैली HDF5 हो: action, language_raw, र multi-view images, joint_positions, qpos र qvel सहितको एउटा observations समूह। भण्डारले 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 GPU मा, 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 पेपरको Meta-World तालिकाले 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 सेकेन्डको गति समेट्छ।
- एसिन्क्रोनस अनुमानले अर्को खण्ड गणना गर्छ जबकि हालको खण्ड अझै कार्यान्वयन भइरहेको हुन्छ: 9.7 s औसत कार्य सम्पन्नता 13.75 s सिन्क्रोनसको तुलनामा, लगभग 30 प्रतिशत छिटो, र निश्चित 60-सेकेन्डको विन्डोमा 9 को तुलनामा 19 पिक-एन्ड-प्लेस चक्र।
- सफलता दरहरू राम्रो हुनुको सट्टा तुलनायोग्य थिए, 78.3 सिन्क्रोनस 73.3 एसिन्क्रोनसको तुलनामा। एसिन्कले थ्रुपुट किन्छ, शुद्धता होइन।
- चंकिङले कम्प्युट विलम्बता लुकाउँछ, नेटवर्क विलम्बता होइन, र यसले नीतिलाई कम प्रतिक्रियाशील बनाउँछ किनभने यो 50 कार्यहरूमा प्रतिबद्ध छ।
AY-Robots ले क्लाउड GPU पोडलाई स्वचालित रूपमा प्रावधान गर्न सक्छ जसले तपाईंको नीतिलाई सेवा दिन्छ जबकि स्थानीय रोबोट क्लाइन्टले त्यो एन्डपोइन्टसँग कुरा गर्छ, र पोडले एक निष्क्रिय वाचडग बोक्छ ताकि यसले चुपचाप बिलिङ गर्नुको सट्टा आफैलाई नष्ट गर्छ। यसले सार्वजनिक-इन्टरनेट राउन्ड ट्रिप हटाउँदैन। यहाँका पाँच नीतिहरूमा नियन्त्रण लूप कुनै पनि नेटवर्क बिना नै प्रति कार्य चरण २० देखि ४८५ मिलिसेकेन्ड हुन्छ, त्यसैले रिमोट इन्फरेन्स ढिलो पिक-एन्ड-प्लेसका लागि सम्भव छ, तर छिटो प्रतिक्रियात्मक गतिको लागि होइन।

एउटा उपभोक्ता कार्डमा SmolVLA को फाइन-ट्यूनिङ
म्यानुअल मार्ग, lerobot 0.6.1 मा, २३ अगस्ट २०२६ सम्मको हालको PyPI रिलीज। तलका सबै कुरा Hugging Face lerobot SmolVLA डकुमेन्टेसनबाट आएका हुन्, जुन सोही दिन प्राप्त गरिएको थियो; निर्देशित संस्करण अझ सरल छ।
- 1smolvla अतिरिक्तको साथ lerobot स्थापना गर्नुहोस्
SmolVLA निर्भरताहरू ऐच्छिक अतिरिक्त हुन्, आधारभूत स्थापनाको अंश होइनन्। यसलाई स्थापना नगरी नीति प्रकार किन अज्ञात छ भनेर सोच्नु सामान्य आधा घण्टाको बर्बादी हो।
bashgit clone https://github.com/huggingface/lerobot.git cd lerobot pip install -e ".[smolvla]" - 2पर्याप्त एपिसोडहरू भएको डेटासेट प्राप्त गर्नुहोस्
कागजातहरूले लगभग ५० एपिसोडहरू सिफारिस गर्छन् र २५ एपिसोडको साथ उही कार्य पर्याप्त नभएको बताउँछन्। AY-Robots ले न्यूनतम ३० मा सेट गर्छ। आफ्नो रेकर्ड गर्नुहोस्, वा डेटासेट डाइरेक्टरी बाट सुरु गर्नुहोस्।
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 मा लगभग ४ घण्टा लाग्ने बताउँछन्। २४ 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 पूर्वनिर्धारित रूपमा सिड १००० मा हुन्छ; GR00T को फाइन-ट्यूनिङ एन्ट्री पोइन्टले कुनै सिड देखाउँदैन, त्यसैले ती रनहरू बिट-फर-बिट पुनरुत्पादन योग्य छैनन्। प्रशिक्षण कागजातहरू मा मेकानिक्स।
सानो VLA लाई आर्ममा राख्ने दुई तरिकाहरू
तपाईं मेसिन र विफलता मोडहरूको मालिक हुनुहुन्छ। SmolVLA को लागि यो उचित छ: एउटा pip अतिरिक्त, एउटा ट्रेन कमाण्ड, एउटा रोलआउट कमाण्ड। TinyVLA को लागि यो जमेको पिनहरू, बिग्रिएको DeepSpeed पाथ र तपाईंले आफैं लेख्नुपर्ने डेटा रूपान्तरणको साथ एउटा अनुसन्धान पुनरुत्पादन हो।
- २४ GB कार्ड प्राप्त गर्नुहोस्, ३० देखि ५० एपिसोडहरू रेकर्ड गर्नुहोस्, क्यामेरा स्ट्रिमहरू फ्रेम-बाइ-फ्रेम प्रमाणित गर्नुहोस्।
- pip install -e ".[smolvla]", lerobot/smolvla_base विरुद्ध lerobot-train गर्नुहोस्, त्यसपछि आर्म जोडिएको मेसिनमा चेकपोइन्ट सेवा गर्नुहोस्।
- TinyVLA को लागि: छुट्टै conda env, डेटालाई HDF5 मा रूपान्तरण गर्नुहोस्, constants.py मा कार्य दर्ता गर्नुहोस्, zero2.json पाथ ठीक गर्नुहोस्, train.sh लाई आठ GPU बाट एकमा काट्नुहोस्।
- कार्डको भुक्तानी भएपछि प्रति-घण्टा बिलिङ छैन।
- इन्फरेन्स सर्भोको छेउमा बस्छ, छिटो नियन्त्रण लूप प्राप्त गर्ने एक मात्र तरिका।
- तपाईं नीति कोड प्याच गर्न सक्नुहुन्छ, र TinyVLA यसरी मात्र उपलब्ध छ।
- एउटा ४०९० ले प्रत्येक ~३ B नीतिलाई अस्वीकार गर्छ, त्यसैले GR00T N1.7 वा Pi0.5 विरुद्ध कुनै स्थानीय तुलना छैन।
- वातावरण सेटअप नै वास्तविक काम हो। TinyVLA को पिनहरू मात्रै एक दिन लाग्न सक्छ।
- कुनै कतार छैन, कुनै पुन:प्रयास छैन, कुनै चेकपोइन्ट भण्डारण छैन। १४००० चरणमा रिबुट गर्नुको अर्थ फेरि सुरु गर्नु हो।
SmolVLA यहाँका पाँच नीतिहरू मध्ये एक हो। तपाईंले फारममा मोडेल र डेटासेट छान्नुहुन्छ, ब्याकएन्डले आवश्यक VRAM अनुसार GPU भाडामा लिन्छ, ट्रेनर चलाउँछ र चेकपोइन्टहरू वस्तु भण्डारणमा लेख्छ। चरणबद्ध रूपमा: SO-100 मा SmolVLA, वा पूर्ण म्याट्रिक्स प्रशिक्षण पृष्ठ मा।
| प्लेटफर्मले SmolVLA को लागि के पठाउँछ | मान |
|---|---|
| ब्याच साइज | 2 |
| लर्निङ रेट | 1e-4 |
| अधिकतम चरणहरू | 20000 |
| ग्रेडियन्ट सञ्चय | 8, र यो ट्रेनरमा पुग्दैन |
| फारममा अतिरिक्त नबहरू | seed, logFreq |
| GPU टियर | RTX 4090 or any 24 GB card |
| डेटासेट ढाँचा | LeRobot v3.0 |
| न्यूनतम एपिसोडहरू | 30 |
पहिलो, यहाँ पूर्वनिर्धारित ब्याच साइज २ हो, lerobot कागजात उदाहरणमा ६४ होइन, र ग्रेडियन्ट सञ्चय सेटिङ पठाइएको छ तर SmolVLA को लागि यसको कुनै प्रभाव छैन, त्यसैले प्रभावकारी ब्याच वास्तवमा २ हो। पूर्वनिर्धारित अपस्ट्रिमसँग मेल खान्छ भनी अनुमान गर्नुको सट्टा यसलाई जानाजानी बढाउनुहोस्। दोस्रो, TinyVLA यहाँ बिल्कुलै तालिम योग्य छैन।
२४ GB टियरमा एक रनलाई प्रति घण्टा ०.३० देखि ०.६० USD मा २ देखि ५ घण्टा लाग्छ, लगभग १ देखि ३ USD। A100 टियरमा ~३ B नीतिलाई प्रति घण्टा १.२० देखि २.०० USD मा ३ देखि ६ घण्टा लाग्छ, लगभग ४ देखि १२ 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 card, no base model to download |
| केही सम्बन्धित कार्यहरू, प्रत्येकका लागि एउटा निर्देशन | SmolVLA | 450 M, in lerobot, 30 episode minimum, 1 to 3 USD per run |
| विशेष गरी TinyVLA नतिजा पुन: उत्पादन गर्दै | TinyVLA-B or TinyVLA-H | रेपो एक मात्र मार्ग हो: पृथक वातावरण, रूपान्तरित डेटा |
| बहु-कार्य, विविध निर्देशनहरू, A100 बजेट | GR00T N1.7 or Pi0.5 | ~3 B, 152 ms and 485 ms per step, 4 to 12 USD per run |
| अहिलेसम्म रोबोट छैन | वास्तविक पाखुरा चलाउनुहोस् | कतार-आधारित लाइभ पाखुरालाई कुनै साइनअप र कुनै हार्डवेयर आवश्यक पर्दैन |
अन्तिम पङ्क्तिको लागि, लाइभ आर्म एउटा भौतिक SO-100 स्ट्रिम गर्छ जसलाई तपाईं खाता बिना ब्राउजरबाट चलाउन सक्नुहुन्छ, र सुरु गर्ने तीन तरिकाहरू बाँकीलाई समेट्छ। SO-100 यहाँ सन्दर्भ आर्म हो, जसको पार्टपुर्जामा लगभग 110 देखि 150 EUR लाग्छ, साथमा एउटा पूर्ण सेटअप गाइड।
सब-1 B मोडेलहरू पछि के आउँछ
प्यारामिटर गणना घटाउनु VLA लाई सस्तो बनाउने एउटा तरिका हो र यो स्पष्ट रूपमा जित्ने तरिका होइन। OpenVLA-OFT (arXiv 2502.19645) ले 7 B ब्याकबोन राख्छ र कार्यहरू कसरी डिकोड गरिन्छ भन्नेमा मात्र परिवर्तन गर्छ, जसले कार्य उत्पादन थ्रुपुटमा 26 गुणा वृद्धि र LIBERO 76.5 बाट 97.1 प्रतिशतमा बढेको रिपोर्ट गर्छ। BitVLA (arXiv 2506.07530) ले 1-बिट BitNet b1.58 2B4T ब्याकबोनको प्रत्येक वजनलाई टर्नरी बनाउँछ, जसले 11.0 गुणा कम मेमोरी र 4.4 गुणा कम एन्ड-टु-एन्ड विलम्बता रिपोर्ट गर्छ जबकि पूर्ण-परिशुद्धता 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 मा 87.3 विरुद्ध 86.0, रोबोटिक्स-प्रिट्रेन्ड Pi0 3.3 B मा, र तीन वास्तविक SO-100 कार्यहरूमा 78.3 विरुद्ध 61.7 जहाँ सोही पेपरले Pi0 लाई 3.5 B मा लेबल गर्दछ। सीमा सोही पेपरमा छ: रोबोटिक्स प्रिट्रेनिङ बिना एकल-कार्यमा, SmolVLA 40.0 मा झर्छ, जुन ACT को 48.3 भन्दा कम हो।
एउटा सानो VLA ले केही गर्नु अघि मलाई कति एपिसोड चाहिन्छ?▾
AY-Robots ले SmolVLA को न्यूनतम 30 एपिसोड र ACT को न्यूनतम 50 एपिसोड तोकेको छ। lerobot कागजातहरूले लगभग 50 सिफारिस गर्दछ र रिपोर्ट गर्दछ कि सोही कार्यको लागि 25 पर्याप्त थिएन। संख्या जत्तिकै संरचना पनि महत्त्वपूर्ण छ: पेपरको सेटले प्रत्येकमा 10 एपिसोड सहित 5 क्यूब पोजिसन प्रयोग गर्यो।
प्रकाशित विलम्बता संख्याहरू किन यति धेरै फरक हुन्छन्?▾
तिनीहरूले फरक-फरक कुराहरू मापन गर्छन्। 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