
Physical Intelligence बाट फ्लो-म्याचिङ VLA, Pi0.5 लाई आफ्नो रोबोट डेटामा फाइन-ट्यून गर्नुहोस्। openpi र lerobot pi05 का लागि वास्तविक कमाण्डहरू, डेटासेट ढाँचाका समस्याहरू, VRAM र विलम्बताका सीमाहरू।
Pi0.5 एउटा यस्तो मोडेल हो जुन तपाईंले नीतिले कहिल्यै नदेखेको कोठामा काम गर्नुपर्दा प्रयोग गर्नुहुन्छ। यो यहाँका पाँचवटा मध्ये सबैभन्दा अप्ठ्यारो पनि हो प्रशिक्षण योग्य नीतिहरू यहाँ फाइन-ट्युन हातले गर्नका लागि: अपस्ट्रिम रिपोजिटरी पहिले JAX हो, LeRobot पोर्टले 0.6.0 मा lerobot-record बाट डिप्लोयमेन्ट हटायो र आधारभूत इन्स्टललाई तालिम दिन नसकिने गरी सानो बनायो, र पूर्ण फाइन-ट्युन 4090 मा फिट हुँदैन। तल: फ्लो म्याचिङ इन्फरेन्समा कति खर्च हुन्छ, दुई कमाण्ड मार्गहरू, र परिणाम प्रयोग योग्य छ कि छैन भनेर निर्णय गर्ने 485 ms संख्या।
तपाईंले जान्नुपर्ने कुराहरू
- •एउटा फ्लो-म्याचिङ VLA: एउटा 3B PaliGemma VLM र एउटा 300M एक्शन एक्सपर्ट जसले निरन्तर एक्शन चङ्कहरू डिकोड गर्छ। यसलाई फाइन-ट्युन गर्नका लागि दुई मार्गहरू, openpi र LeRobot pi05, LIBERO औसतमा 0.65 अंकको फरकमा छन्।
- •पूर्ण फाइन-ट्युनिङका लागि 70 GB भन्दा बढी VRAM चाहिन्छ। openpi ले LoRA लाई 22.5 GB मा सूचीबद्ध गर्दछ, यसको JAX मार्गमा मात्र।
- •डेटासेट LeRobotDataset v3.0 हुनुपर्छ जसमा meta/stats.json मा q01 र q99 क्वान्टाइलहरू छन्, अन्यथा ब्याचले त्रुटि दिन्छ।
- •पहिले आफ्नो lerobot संस्करण जाँच गर्नुहोस्: 0.6.0 ले आधारभूत प्याकेजलाई हल्का बनायो र lerobot-record बाट डिप्लोयमेन्ट हटायो।
- •यहाँ यो प्रति एक्शन स्टेप 485 ms मा चल्छ, 50 एपिसोडहरू चाहिन्छ, र प्रति रन लगभग 4 देखि 12 USD खर्च हुन्छ।
Pi0.5 वास्तवमा के हो
Physical Intelligence ले अक्टोबर 2024 मा pi0 प्रकाशित गर्यो: एउटा फ्लो म्याचिङ भिजन-ल्याङ्ग्वेज-एक्शन मोडेल एउटा प्रिट्रेन्ड VLM मा आधारित: PaliGemma 3 बिलियन प्यारामिटरहरू सहित र स्क्र्याचबाट इनिसियलाइज गरिएको 300M एक्शन एक्सपर्ट, कुल 3.3 बिलियन। पेपरले 7 रोबोट कन्फिगरेसन र 68 कार्यहरूमा 10,000 घण्टा भन्दा बढी रोबोट डेटामा प्रिट्रेनिङ रिपोर्ट गर्दछ। थप जानकारी pi0 लेख।
Pi0.5 (arXiv 2504.16054, 22 April 2025) ले त्यो संरचना कायम राख्छ र प्रशिक्षण आहार परिवर्तन गर्छ: वेब डेटा, वस्तु पत्ता लगाउने, रोबोटलाई तालिम दिने मानवबाट मौखिक निर्देशनहरू, उपकार्य लेबलहरू, धेरै घरहरूमा रहेका रोबोटहरूबाट क्रस-एम्बोडिमेन्ट डेटा। यसको नतिजा प्रशिक्षण सेटमा नभएका घरहरूमा भान्सा सफा गर्ने रोबोट हो। openpi README ले शीर्षकमा नभएको एउटा विवरण थप्छ: जारी गरिएको pi0.5 लाई ज्ञान इन्सुलेशन (arXiv 2505.23705) सँग तालिम दिइएको थियो।
| विशेषता | pi0 | pi0.5 |
|---|---|---|
| VLM backbone variant | gemma_2b (PaliGemma) | gemma_2b (PaliGemma) |
| Action expert variant | gemma_300m | gemma_300m |
| action_dim | 32 | 32 |
| action_horizon default | 50 | 50 |
| max_token_len | 48 | 200 |
| discrete_state_input | false | true, prompt मा स्टेटलाई बिनहरूमा विभाजित गरिएको छ |
| Base checkpoint | gs://openpi-assets/checkpoints/pi0_base | gs://openpi-assets/checkpoints/pi05_base |
openpi README स्पष्ट छ: भण्डारले pi0.5 प्रशिक्षण र अनुमान दुवैका लागि फ्लो म्याचिङ हेडलाई मात्र समर्थन गर्दछ। पेपरले दुई चरणहरू वर्णन गर्दछ र कोडले दोस्रो मात्र बोक्छ: पूर्व-प्रशिक्षणले FAST टोकेनाइजर मार्फत प्रत्येक कार्यलाई अलग टोकनको रूपमा प्रतिनिधित्व गर्दछ, र डिप्लोयमेन्टमा मोडेलले प्रत्येक कार्य खण्ड अघि उच्च-स्तरको उपकार्य अनुमान गर्दछ। ती मध्ये कुनै पनि भण्डारमा छैन। lerobot/pi05_base कार्डले उही सूची दिन्छ र RL थप्छ, यद्यपि pi0.5 पेपरले कुनै पनि सुदृढीकरण सिकाउने चरणको वर्णन गर्दैन। LeRobot पोर्टले त्यो दायरा विरासतमा प्राप्त गर्दछ, र यसमा होस्ट गरिएका प्रत्येक प्रशिक्षकले पनि, यहाँको सहित। लाइसेन्सिङ पनि विभाजित छ: pi05 कागजात पृष्ठले Apache 2.0 भन्छ, lerobot/pi05_base कार्ड license: gemma ट्याग गरिएको छ।
फ्लो म्याचिङले प्रशिक्षण र अनुमानको बारेमा के परिवर्तन गर्छ
एउटा नीति जुन तपाईं SO-100 मा तालिम दिन सक्नुहुन्छ, या त कार्यहरूलाई सिधै रिग्रेस गर्छ (ACT) वा तिनीहरूलाई टोकनाइज गर्छ र स्वतः-रिग्रेसिभ रूपमा डिकोड गर्छ (pi0-FAST)। फ्लो म्याचिङले दुवै गर्दैन: यसले एउटा भेक्टर फिल्ड सिक्छ जसले आवाजलाई सफा कार्य खण्ड, त्यसपछि यसलाई एकीकृत गर्छ। pi0 पेपरले 0.1 को चरण आकारमा 10 एकीकरण चरणहरू प्रयोग गर्दछ; LeRobot को pi05 कन्फिगरेसनमा उही num_inference_steps: int = 10 छ।
- तालिम: हानिले नोइज्ड कार्य खण्डलाई रिग्रेस गर्छ। ट्युन गर्न कुनै टोकेनाइजर छैन, तपाईंको जोइन्ट कोणहरूको कुनै विच्छेदन छैन।
- अनुमान: एउटा खण्डमा कार्य विशेषज्ञ मार्फत दस फर्वार्ड पास लाग्छ। त्यो संरचनात्मक हो, ट्युनिङ समस्या होइन।
- आउटपुट: 32 आयामका निरन्तर कार्यहरू, आन्तरिक रूपमा प्याड गरिएको, तपाईंको रोबोटमा भएका आयामहरूमा हानि लिइन्छ। 6-DoF पाखुरा र ग्रिपरले 7 प्रयोग गर्छ।
# openpi/src/openpi/models/pi0_config.py - the defaults every pi05 config inherits
@dataclasses.dataclass(frozen=True)
class Pi0Config(_model.BaseModelConfig):
dtype: str = "bfloat16"
paligemma_variant: _gemma.Variant = "gemma_2b"
action_expert_variant: _gemma.Variant = "gemma_300m"
action_dim: int = 32
action_horizon: int = 50
max_token_len: int = None # 200 if pi05 else 48
pi05: bool = False # flips discrete_state_input to TruePaliGemma ब्याकबोन, र यसको अगाडिको गेट
PaliGemma (arXiv 2407.07726) एउटा SigLIP-So400m भिजन इन्कोडर हो जुन Gemma-2B भाषा मोडेलमा आधारित छ, लगभग 3B प्यारामिटरहरू सहित। Pi0.5 ले यसको टोकेनाइजर विरासतमा प्राप्त गर्दछ, र त्यो टोकेनाइजर एउटा गेटेड रिपोजिटरीमा छ। यो पहिलो रन असफल हुने सबैभन्दा सामान्य तरिका हो, पहिलो तालिम चरण अघि।
LeRobot pi05 कागजातहरूले स्पष्ट रूपमा भन्छ: pi0.5 ले गेटेड google/paligemma-3b-pt-224 टोकेनाइजर प्रयोग गर्दछ, त्यसैले Hub मा यसको लाइसेन्स स्वीकार गर्नुहोस् र पहिले hf auth login चलाउनुहोस्। पहुँच म्यानुअल रूपमा प्रदान गरिन्छ, तुरुन्तै होइन। यसलाई छोड्नुहोस्, सशुल्क क्लाउड रन सुरु गर्नुहोस्, र तपाईंले टोकेनाइजर डाउनलोड गर्न नसक्ने पोडको लागि भुक्तानी गर्नुहुनेछ।
सुरु गर्नु अघि: डेटासेट ढाँचा, एपिसोडहरू, हार्डवेयर
LeRobot मा Pi0.5 ले एउटा LeRobot डेटासेट v3.0 लेआउटमा पढ्छ, जुन अक्टोबर 2025 मा lerobot 0.4.0 सँग आएको थियो: प्रति Parquet र MP4 फाइलमा धेरै एपिसोडहरू, प्रति एपिसोड को सट्टा, फाइलनामहरूको सट्टा meta/episodes/ मा सीमानाहरू सहित। डेस्कटप क्लाइन्ट सँग रेकर्ड गर्नुहोस् वा आफ्नो पहिलो डेटासेट रेकर्ड गर्नुहोस् पालना गर्नुहोस् र तपाईंसँग यो हुनेछ।
| मोड | आवश्यक GPU मेमोरी | उदाहरण GPU |
|---|---|---|
| इन्फरेन्स | more than 8 GB | RTX 4090 |
| फाइन-ट्यूनिङ, LoRA | more than 22.5 GB | RTX 4090 |
| फाइन-ट्यूनिङ, पूर्ण | more than 70 GB | A100 80 GB or H100 |
Pi0.5 र SmolVLA लाई LeRobot v3.0 चाहिन्छ। GR00T N1.7 र GR00T N1.5 लाई v2.0 वा v2.1 चाहिन्छ र v3.0 डेटासेटमा क्र्यास हुन्छ। एउटै रेकर्डिङ सत्रले रूपान्तरण बिना दुवैलाई खुवाउन सक्दैन, र त्रुटिले "गलत डेटासेट संस्करण" भन्दैन। डेटासेट अस्वीकृत: v3 आवश्यक हेर्नुहोस्।
# v2.1 -> v3.0, run against a dataset already on the Hub
python -m lerobot.scripts.convert_dataset_v21_to_v30 --repo-id=<HF_USER/DATASET_ID>
# aggregates episode-0000.parquet, episode-0001.parquet, ... -> file-0000.parquet
# aggregates episode-0000.mp4, episode-0001.mp4, ... -> file-0000.mp4
# rewrites meta/episodes/* with per-episode lengths, tasks and offsetsप्लेटफर्मलाई Pi0.5 को लागि कम्तिमा 50 एपिसोडहरू चाहिन्छ, जुन GR00T र ACT को लागि पनि समान न्यूनतम हो। पूर्व-प्रशिक्षणले धेरै काम गर्छ, त्यसैले 50 सफा एपिसोडहरू 200 अव्यवस्थित एपिसोडहरू भन्दा राम्रो हुन्छन्। यसमा नयाँ हुनुहुन्छ? यसबाट सुरु गर्नुहोस् डेटा सङ्कलन गाइड.

मार्ग A: openpi भण्डारको साथ फाइन-ट्यून गर्नुहोस्
सन्दर्भ कार्यान्वयन: JAX पहिले, Ubuntu 22.04 मा मात्र परीक्षण गरिएको, फ्ल्यागहरूको सट्टा कन्फिग वस्तुहरूद्वारा संचालित। PyTorch मार्ग सेप्टेम्बर 2025 मा आइपुग्यो, LIBERO मा प्रमाणित गरियो। तीन चरणहरू: आफ्नो डेटा रूपान्तरण गर्नुहोस्, कन्फिग परिभाषित गर्नुहोस्, तालिम दिनुहोस् र सेवा दिनुहोस्।
- 1क्लोन गर्नुहोस् र स्थापना गर्नुहोस्
openpi ले uv प्रयोग गर्छ। GIT_LFS_SKIP_SMUDGE ले LeRobot लाई LFS ब्लब बिना निर्भरताको रूपमा आउन दिन्छ।
bashgit clone --recurse-submodules git@github.com:Physical-Intelligence/openpi.git cd openpi GIT_LFS_SKIP_SMUDGE=1 uv sync GIT_LFS_SKIP_SMUDGE=1 uv pip install -e . - 2आफ्नो डेटालाई LeRobot डेटासेटमा रूपान्तरण गर्नुहोस्
अपस्ट्रीमले LIBERO र DROID का लागि कन्भर्टरहरू पठाउँछ र तपाईंले एउटा अनुकूलन गर्ने अपेक्षा गर्दछ। काम भनेको कुञ्जी म्यापिङ हो।
bashuv run examples/libero/convert_libero_data_to_lerobot.py --data_dir /path/to/your/data - 3तालिम कन्फिग थप्नुहोस्
कन्फिगहरू src/openpi/training/config.py मा TrainConfig प्रविष्टिहरू हुन्। यो pi05_droid_finetune लाई अनुकूलन गर्दछ, जसमा वजन लोडर pi05_base मा लक्षित छ।
pythonTrainConfig( name="pi05_so100", model=pi0_config.Pi0Config( pi05=True, action_dim=32, # pi05 is trained with 32-dim actions action_horizon=16, ), # Copy LeRobotLiberoDataConfig in the same file and rewrite the key # mapping for your camera names, then reference your copy here. data=LeRobotLiberoDataConfig( repo_id="your_hf_username/my_so100_dataset", base_config=DataConfig(prompt_from_task=True), ), weight_loader=weight_loaders.CheckpointWeightLoader( "gs://openpi-assets/checkpoints/pi05_base/params" ), batch_size=32, num_train_steps=20_000, ) - 4मानक तथ्याङ्कहरू गणना गर्नुहोस्
यो कन्फिग नाम विरुद्ध चल्छ, डेटासेट विरुद्ध होइन। यसलाई छोड्नु यहाँको क्लासिक पहिलो असफलता हो।
bashuv run scripts/compute_norm_stats.py --config-name pi05_so100 - 5तालिम दिनुहोस्
यो चरले JAX लाई पूर्वनिर्धारित 75 को सट्टा GPU मेमोरीको 90 प्रतिशत प्रयोग गर्न दिन्छ। 80 GB कार्डमा यसले रन जीवित रहन्छ कि रहँदैन भनेर निर्धारण गर्छ।
bashXLA_PYTHON_CLIENT_MEM_FRACTION=0.9 uv run scripts/train.py pi05_so100 \ --exp-name=my_experiment \ --overwrite - 6यसलाई सेवा दिनुहोस्
सर्भरले पोर्ट 8000 मा सुन्छ र अवलोकन प्रश्नहरूको जवाफ दिन्छ; तपाईंको रोबोट रनटाइम ग्राहक हो।
bashuv run scripts/serve_policy.py policy:checkpoint \ --policy.config=pi05_so100 \ --policy.dir=checkpoints/pi05_so100/my_experiment/20000
openpi को PyTorch कार्यान्वयनले pi0-FAST, मिश्रित परिशुद्धता, FSDP, LoRA वा EMA तौलहरूलाई समर्थन गर्दैन, त्यसैले 22.5 GB पुग्ने LoRA JAX मात्र हो, gemma_2b_lora र gemma_300m_lora भेरियन्टहरू मार्फत। अझ खराब: सेटअपले तपाईंको स्थापित transformers 4.53.2 मा प्याच गरिएका फाइलहरू प्रतिलिपि गर्छ, र README ले चेतावनी दिन्छ कि uv को पूर्वनिर्धारित हार्डलिंक मोडले uv क्यास भित्र transformers लाई स्थायी रूपमा परिमार्जन गर्छ र अन्य परियोजनाहरूमा चुहावट हुन सक्छ। यसलाई uv cache clean transformers मार्फत पूर्ववत गर्नुहोस्।
मार्ग B: lerobot pi05 सँग फाइन-ट्यून गर्नुहोस्
LeRobot पोर्टले तपाईंले पहिले नै प्रयोग गरिरहनुभएको CLI मा उही तौलहरू समावेश गर्दछ ACT र SmolVLA। तलका सबै कुरा lerobot 0.6.1, 3 अगस्ट 2026 देखिको रिलीज, र 23 अगस्ट 2026 मा pi05 कागजातहरू विरुद्ध जाँच गरिएको थियो। संस्करणहरू यहाँ महत्त्वपूर्ण छन्: v3.0 डेटासेटहरू अक्टोबर 2025 मा 0.4.0 सँग आइपुगे, 9 मार्च 2026 को 0.5.0 ब्लगले pi0-FAST र Real-Time Chunking प्रस्तुत गर्दछ, र 6 जुलाई 2026 मा 0.6.0 ले आधार प्याकेजलाई हल्का बनायो र डिप्लोयमेन्टलाई lerobot-rollout मा सारियो।
एउटा कुरा सरेको छैन: lerobot-train र lerobot-record पहिले नै 0.3.2, अगस्ट 2025 मा प्रवेश बिन्दुहरू थिए। एउटा ट्यूटोरियल जसले अझै पनि python -m lerobot.scripts.train लाई कल गर्छ, त्यो एक वर्षको परिवर्तन भन्दा पुरानो हो र बाँकीमा पनि विश्वास गर्न लायक छैन।
- 1सही एक्स्ट्रासहित स्थापना गर्नुहोस्
0.6.0 देखि, आधारभूत स्थापनाले मुख्य ML निर्भरताहरू मात्र बोक्छ, र pi एक्स्ट्राले कुनै डेटासेट वा प्रशिक्षण कोड थप्दैन, त्यसैले फाइन-ट्युनलाई प्रशिक्षण एक्स्ट्रा पनि चाहिन्छ। पुराना एक-लाइनरहरू यहाँ आयात समयमा असफल हुन्छन्।
bash# policy dependencies plus the training stack pip install 'lerobot[pi,training]' # from a source checkout pip install -e ".[pi,training]" # driving an SO-100 afterwards needs the robot extras too pip install 'lerobot[core_scripts,feetech]' - 2प्रमाणीकरण गर्नुहोस्
ब्राउजरमा paligemma-3b-pt-224 लाइसेन्स स्वीकार गर्नुहोस्, त्यसपछि प्रशिक्षण गर्ने मेसिनमा लग इन गर्नुहोस्।
bashhf auth login - 3क्वान्टाइल तथ्याङ्कहरू थप्नुहोस्
Pi0.5 ले STATE र ACTION लाई क्वान्टाइलहरूसँग सामान्यीकरण गर्छ, त्यसैले meta/stats.json लाई q01 र q99 चाहिन्छ। पुराना डेटासेटहरूमा केवल min, max, mean, std मात्र हुन्छ।
bashlerobot-edit-dataset \ --repo_id your_dataset \ --new_repo_id your_dataset \ --operation.type recompute_stats \ --operation.overwrite true - 4lerobot/pi05_base बाट फाइन-ट्युन गर्नुहोस्
ब्याच साइजलाई तपाईंको कार्डले धान्ने जतिमा सेट गर्नुहोस्; कागजातहरूले 80 GB मा LIBERO मा 64 प्रयोग गर्छन्। bfloat16 स्पष्ट रूपमा पास गर्नुहोस्, कन्फिग डिफल्ट float32 हो।
bashlerobot-train \ --dataset.repo_id=${HF_USER}/my_so100_dataset \ --policy.type=pi05 \ --policy.pretrained_path=lerobot/pi05_base \ --policy.gradient_checkpointing=true \ --policy.dtype=bfloat16 \ --policy.device=cuda \ --policy.push_to_hub=false \ --output_dir=./outputs/pi05_so100 \ --job_name=pi05_so100 \ --batch_size=4 \ --num_workers=8 \ --steps=30000 \ --save_freq=5000 \ --seed=1000 - 5यसलाई आर्ममा चलाउनुहोस्
0.6.x मा यो lerobot-rollout हो: lerobot-record ले नीति अस्वीकार गर्छ र eval_ डेटासेट नामहरू अस्वीकार गर्छ। बेसले आर्म चलाउँछ, सेन्ट्रीले रोलआउट रेकर्ड गर्छ।
bashlerobot-rollout \ --strategy.type=base \ --policy.path=${HF_USER}/my_policy \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM1 \ --robot.cameras="{ up: {type: opencv, index_or_path: /dev/video10, width: 640, height: 480, fps: 30}}" \ --task="Put lego brick into the transparent box" \ --duration=60 # same run, recorded into an eval_ dataset lerobot-rollout \ --strategy.type=sentry \ --policy.path=${HF_USER}/my_policy \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM1 \ --dataset.repo_id=${HF_USER}/eval_so100 \ --dataset.single_task="Put lego brick into the transparent box" \ --duration=600
| फ्ल्याग | यसले के गर्छ | नोट |
|---|---|---|
| --policy.type=pi05 | Pi0.5 चयन गर्छ | pretrained_path सँग आवश्यक छ, --policy.path सँग छोड्नुहोस् |
| --policy.pretrained_path | केवल तौलहरू लोड गर्छ | तपाईंको डेटासेटबाट फिचर नामहरू, भण्डारण गरिएका सेटिङहरू रिसेट हुन्छन् |
| --policy.path | तौलहरू र चेकपोइन्ट config.json | n_action_steps जस्ता भण्डारण गरिएका सेटिङहरू विरासतमा प्राप्त हुन्छन् |
| --policy.n_action_steps | प्रत्येक खण्डमा खपत हुने चरणहरू | 50 मा फर्किन्छ, chunk_size (पूर्वनिर्धारित 50) भन्दा माथि कहिल्यै हुँदैन |
| --policy.train_expert_only | VLM लाई फ्रिज गर्छ, विशेषज्ञलाई प्रशिक्षण दिन्छ | पूर्वनिर्धारित false, कम मेमोरी, सफलतामा केही लागत |
| --policy.gradient_checkpointing | सक्रियताहरू भण्डारण गर्नुको सट्टा पुन: गणना गर्छ | पूर्वनिर्धारित false, जब रन फिट हुँदैन तब पहिलो लिभर |
| --peft.method_type=LORA | पूर्ण तौलको सट्टा LoRA एडाप्टरहरू | peft एक्स्ट्रा चाहिन्छ, दस्तावेज गरिएको उदाहरण SmolVLA हो |
| --policy.rtc_training_max_delay | RTC को लागि कार्य-प्रिफिक्स कन्डिसनिङ | मुख्य शाखामा मात्र, 0.6.1 मा छैन, chunk_size भन्दा तल रहनुपर्छ |
| --rename_map | डेटासेट स्तम्भहरूलाई नीति सुविधाहरूमा म्याप गर्छ | तपाईंको क्यामेरा कुञ्जीहरू फरक हुँदा आवश्यक पर्छ |
क्वान्टाइलहरू बिना तपाईंले ब्याच एकमा ValueError: QUANTILES normalization mode requires q01 and q99 stats पाउनुहुनेछ। तथ्याङ्कहरू पुन: गणना गर्नुहोस्, तर परिणाम $HF_LEROBOT_HOME/your_dataset मा जान्छ, क्यास --dataset.repo_id ले पढ्ने ठाउँमा होइन, त्यसैले --dataset.root लाई त्यहाँ देखाएर प्रशिक्षण दिनुहोस् वा हबमा पुश गर्नुहोस्। वा --policy.normalization_mapping='{"ACTION": "MEAN_STD", "STATE": "MEAN_STD", "VISUAL": "IDENTITY"}' सँग क्वान्टाइलहरू छोड्नुहोस्, जसरी LIBERO सन्दर्भ कमाण्डले गर्छ।
पूर्वनिर्धारितका तीन सेटहरू, र कुन-कुन प्रशिक्षकसम्म पुग्छन्
openpi को TrainConfig सन्दर्भ हो, LeRobot को PI05Config lerobot-train ले केही नभन्दा प्रयोग गर्छ, र यहाँको फारमले तेस्रो सेट पठाउँछ। अचम्मको कुरा सिक्ने दर हो: दुवै अपस्ट्रिम पूर्वनिर्धारितहरू 2.5e-5 मा पुग्छन्, जबकि openpi को आफ्नै pi05_libero कन्फिग र यो प्लेटफर्मले यसलाई 5e-5 मा बढाउँछ।
| सेटिङ | openpi TrainConfig | lerobot pi05 र lerobot-train | AY-Robots ले पठाउँछ |
|---|---|---|---|
| ब्याच साइज | 32 | 8 | 1 |
| उच्चतम सिक्ने दर | 2.5e-5, कोसाइन क्षय | optimizer_lr 2.5e-5 | 5e-5 |
| तालिम चरणहरू | 30,000 | 100,000 | 30,000 |
| चेकपोइन्ट अन्तराल | 1,000 चरणहरू | 20,000 चरणहरू | फारममा छैन |
| सिड | 42 | 1,000 | फारममा छ |
| कार्य खण्ड | action_horizon 50 | chunk_size 50, n_action_steps 50 | फारममा छैन |
| तौल dtype | bfloat16 | float32 until you pass --policy.dtype | फारममा छैन |
| ग्रेडियन्ट संचय | त्यस्तो कुनै नब छैन, यसको सट्टा fsdp_devices | अहिलेसम्मका हरेक रिलीजबाट अनुपस्थित | 16, र यो हटाइएको छ |
के पोर्ट विश्वसनीय छ? LeRobot टोलीले LIBERO आधार मोडेललाई थप 6k चरणहरूको लागि फाइन-ट्यून गर्यो र openpi को सन्दर्भ संख्याहरूसँग चार सुइटहरूमा तुलना गर्यो: 96.85 को विरुद्धमा 97.5 प्रतिशत औसत, Libero 10 मा अगाडि, Spatial मा पछाडि। यो मार्ग उपकरणको छनोट हो, गुणस्तरको होइन।
- यसको पछाडि 10,000 घण्टा भन्दा बढी रोबोट पूर्व-तालिम छ, त्यसैले तपाईंको कार्यको 50 एपिसोडहरू पर्याप्त हुन सक्छ।
- निरन्तर कार्यहरू: ट्युन गर्न कुनै टोकेनाइजर छैन, तपाईंको जोइन्ट कोणहरूमा कुनै डिस्क्रीटाइजेशन फ्लोर छैन।
- LeRobot पोर्टले openpi को 96.85 को विरुद्धमा LIBERO औसतमा 97.5 प्रतिशत अंक प्राप्त गर्दछ, त्यसैले मित्रवत CLI को कुनै मापनयोग्य लागत छैन।
- दुवै पक्षमा प्यारामिटर-कुशल मार्गहरू: openpi को JAX LoRA भेरियन्टहरू, LeRobot को PEFT एकीकरण।
- पूर्ण फाइन-ट्यूनिङलाई 70 GB भन्दा बढी चाहिन्छ। 22.5 GB LoRA अंक openpi को JAX नम्बर हो; PEFT अन्तर्गत pi05 को लागि कुनै प्रकाशित गरिएको छैन।
- प्रति कार्य चरण 485 ms, यहाँका पाँचमध्ये सबैभन्दा ढिलो: SmolVLA भन्दा दुई गुणा, ACT भन्दा चौबीस गुणा।
- LeRobot v3.0 आवश्यक छ, त्यसैले GR00T रनको लागि रेकर्ड गरिएको डेटासेट रूपान्तरण गर्नुपर्छ, र यसको विपरीत।
- नयाँ विकल्पहरू पहिले मुख्यमा आउँछन्: तालिम-समय RTC र MEM मेमोरी 0.6.1 मा छैनन्, त्यसैले नवीनतम कागजातहरूको अर्थ git बाट स्थापना गर्नु हुन सक्छ।
485 ms को वास्तविकता, र यो कहाँ प्रयोग गर्न योग्य रहँदैन
यसले तपाईंको परियोजनाको निर्णय गर्छ, त्यसैले यो लागत तालिका भन्दा पहिले आउँछ। Pi0.5 को लागि यहाँ मापन गरिएको प्रति कार्य चरण 485 ms छ। अन्य चारको तुलनामा:
| नीति | प्रति कार्य चरण इन्फरेन्स | प्यारामिटरहरू | GPU टियर | न्यूनतम एपिसोडहरू |
|---|---|---|---|---|
| ACT | 20 ms | ~80 M | RTX 4090 or any 24 GB card | 50 |
| GR00T N1.7 | 152 ms | ~3 B | A100 80 GB or H100 80 GB | 50 |
| GR00T N1.5 | 165 ms | ~3 B | A100 80 GB or H100 80 GB | 50 |
| SmolVLA | 245 ms | ~450 M | RTX 4090 or any 24 GB card | 30 |
| Pi0.5 | 485 ms | ~3 B | A100 80 GB or H100 80 GB | 50 |

यी पाँच मोडेलहरूमा नियन्त्रण लूप प्रति कार्य चरणमा २० देखि ४८५ मिलिसेकेन्डसम्म चल्छ। ४८५ मिलिसेकेन्डभन्दा बढी सार्वजनिक इन्टरनेट राउन्ड ट्रिपहरूले काम गर्ने नीतिलाई हिचकिचाहटपूर्ण बनाउँछ। रिमोट इन्फरेन्स ढिलो पिक-एन्ड-प्लेसका लागि सम्भव छ, तर द्रुत प्रतिक्रियात्मक गतिको लागि होइन। हामी LAN मा मात्र काम गर्ने डेमो बेच्नुभन्दा यो भन्न रुचाउँछौं। यदि तपाईंको पाखुरा चङ्कहरू बीचमा रोकिन्छ भने, नीति मध्य-गतिमा रोकिन्छ बाट सुरु गर्नुहोस्।
अपस्ट्रिमसँग एउटा उत्तर छ, र त्यसको आधा भाग तपाईंले स्थापना गर्न सक्ने रिलीजमा पहिले नै छ। रियल-टाइम चङ्किङले पाखुराले हालको चङ्क कार्यान्वयन गरिरहेको बेला अर्को चङ्क उत्पन्न गर्छ, त्यसपछि नयाँ चङ्कका ओभरल्यापिङ चरणहरूलाई पहिले नै कार्यान्वयन भइसकेको भागको नजिक राख्न मार्गदर्शन गर्छ, ताकि पाखुरा सिमामा नअड्कियोस् वा नझुक्ियोस्। Pi0, Pi0.5 र SmolVLA का लागि 0.4.2 चेन्जलॉगमा पठाइएको इन्फरेन्स-टाइम फारम रोलआउट फ्ल्याग हो, रिट्रेन होइन:
lerobot-rollout \
--strategy.type=base \
--policy.path=${HF_USER}/my_policy \
--inference.type=rtc \
--inference.rtc.execution_horizon=10 \
--inference.rtc.max_guidance_weight=10.0 \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM1 \
--robot.cameras="{ up: {type: opencv, index_or_path: /dev/video10, width: 640, height: 480, fps: 30}}" \
--task="Put lego brick into the transparent box" \
--duration=60यसले मोडेललाई छिटो बनाउँदैन। यसले खाली ठाउँ लुकाउँछ: ४८५ मिलिसेकेन्ड अझै खर्च हुन्छ, तर महत्वपूर्ण मार्गबाट बाहिर, त्यसैले चङ्कहरू बीचमा कतार सुक्दैन। arXiv 2512.05964 बाट प्रशिक्षण-समय भेरियन्ट अझ अगाडि जान्छ: मोडेलले सफा कार्य उपसर्गमा सर्त गर्न सिक्छ, त्यसैले इन्फरेन्समा ओभरल्याप निर्देशित हुनुको सट्टा प्रति-कार्य प्रवाह टाइमस्टेपहरूसँग हार्ड-इनपेन्टेड हुन्छ, र मार्गदर्शन ब्याकवर्ड पास हराउँछ। प्रशिक्षणको क्रममा यसले प्रति उदाहरण एक उपसर्ग लम्बाइ नमूना गर्छ र बाँकी पोस्टफिक्समा प्रवाह हानि लिन्छ। त्यो फ्ल्याग मुख्यमा मात्र रहन्छ, 0.6.1 मा होइन, र तपाईंले प्रशिक्षण गर्ने ढिलाइ chunk_size भन्दा कम हुनुपर्छ।
Pi0.5 चेकपोइन्ट प्राप्त गर्ने दुई तरिकाहरू
तपाईंले ८० GB कार्ड भाडामा लिनुहुन्छ वा आफ्नै छ, माथिका स्ट्याकहरू मध्ये एउटा स्थापना गर्नुहुन्छ, आफ्नो डेटासेट रूपान्तरण गर्नुहुन्छ र रनको निगरानी गर्नुहुन्छ। तपाईंले हरेक नियन्त्रण राख्नुहुन्छ: openpi को JAX LoRA, LeRobot को PEFT एडाप्टरहरू, सापेक्षिक कार्यहरू, अनुकूलित कुञ्जी म्यापिङहरू। तपाईंले हरेक असफलता पनि राख्नुहुन्छ।
- हार्डवेयर: A100 80 GB वा H100, वा openpi को JAX LoRA पाथमा २४ GB कार्ड।
- सेटअप: पहिलो रनको लागि एक दिउँसो, प्रायः कुञ्जी म्यापिङ र गेटेड टोकेनाइजर।
- होस्टेड फारममा छैन: PEFT एडाप्टरहरू, सापेक्षिक कार्यहरू, प्रशिक्षण-समय RTC, MEM मेमोरी।
lerobot-train \
--dataset.repo_id=${HF_USER}/my_so100_dataset \
--policy.type=pi05 \
--policy.pretrained_path=lerobot/pi05_base \
--policy.rtc_training_max_delay=10 \
--policy.gradient_checkpointing=true \
--policy.dtype=bfloat16 \
--batch_size=4 --steps=30000 --seed=1000तपाईंले मोडल र डेटासेट प्रशिक्षण फारम मा छान्नुहुन्छ, ब्याकएन्डले आवश्यक VRAM अनुसार स्पट बजारमा GPU भाडामा लिन्छ, ट्रेनर चलाउँछ र चेकपोइन्टहरू अब्जेक्ट भण्डारणमा लेख्छ। Pi0.5 यहाँ क्लाउड-मात्र हो। SO-100, SO-101, Koch v1.1 र LeKiwi को लागि गाइडहरू उपलब्ध छन्।
| सेटिङ | प्लेटफर्मले Pi0.5 को लागि के पठाउँछ |
|---|---|
| आधार चेकपोइन्ट | lerobot/pi05_base |
| नीति प्रकार | pi05 |
| ब्याच साइज | 1 |
| लर्निङ रेट | 5e-5 |
| अधिकतम चरणहरू | 30000 |
| ग्रेडियन्ट सञ्चय | 16, तर तलको चेतावनी हेर्नुहोस् |
| फारममा अतिरिक्त नियन्त्रणहरू | seed, logFreq |
| डेटासेट ढाँचा | LeRobot v3.0 |
| GPU टियर | A100 80 GB वा H100 80 GB |
ट्रेनरले १६ को ग्रेडियन्ट सञ्चय मान पठाउँछ र lerobot 0.5.1 सँग यसलाई प्राप्त गर्ने कुनै फ्ल्याग छैन, त्यसैले यो छोडिन्छ। कुनै पनि जारी गरिएको lerobot सँग यो छैन: यो नियन्त्रण मुख्यमा मात्र --accelerator.gradient_accumulation.steps को रूपमा अवस्थित छ। यहाँ प्रभावकारी ब्याच साइज १ हो, जबकि openpi को pi05_libero कन्फिगले २५६ प्रयोग गर्दछ। तपाईंले लस कर्भ पढ्नु अघि यो जान्न लायक छ। यो नियन्त्रण GR00T N1.7 र GR00T N1.5 रनहरूमा लागू हुन्छ।
अनुमान (Inference) त्यसैगरी काम गर्छ: एउटा पोड नीति सेवा गर्नको लागि प्रावधान गरिन्छ र तपाईंको स्थानीय क्लाइन्टले त्यससँग कुरा गर्छ। पोडमा निष्क्रिय वाचडग हुन्छ र आफैं नष्ट हुन्छ, त्यसैले बिर्सिएको ट्याबले चुपचाप बिल गर्दैन। विलम्बताको चेतावनी लागू हुन्छ, त्यसैले २० ms मा ACT प्रायः छिटो कार्य जित्छ।
जब यसले काम गर्दैन
| लक्षण | सबैभन्दा सम्भावित कारण |
|---|---|
| सुरु हुनु अघि रन अस्वीकृत | डेटासेट v2.1 तर Pi0.5 लाई v3.0 चाहिन्छ, वा GR00T को लागि उल्टो |
| ImportError, डेटासेट प्याकेज हराइरहेको | प्रशिक्षण अतिरिक्त बिना lerobot 0.6.x |
| ब्याच एकमा q01 र q99 बारे ValueError | meta/stats.json मा कुनै क्वान्टाइल छैन; पुन: गणना गर्नुहोस् वा MEAN_STD प्रयोग गर्नुहोस् |
| चरण ० मा CUDA मेमोरी सकियो | ७० GB भन्दा कममा पूर्ण फाइन-ट्यून; चेकपोइन्टिङ वा train_expert_only प्रयास गर्नुहोस् |
| ४०१ वा गेटेड रेपो त्रुटि | PaliGemma टोकेनाइजर लाइसेन्स स्वीकार गरिएन |
| लस घट्छ, रोबोटले केही गर्दैन | सामान्यीकरण बेमेल, वा नीतिले अवस्था प्रतिलिपि गर्छ |
| आर्म चङ्कहरू बीच रोकिन्छ | प्रति-चरण विलम्बता प्लस राउन्ड ट्रिप; चङ्क क्यु खाली हुन्छ |
| एउटा सेटअपमा काम गर्छ, अर्कोमा असफल हुन्छ | धेरै कम एपिसोडहरू, वा सबै एउटै कन्फिगरेसनमा |
- डेटासेट अस्वीकृत: v3 आवश्यक छ
- तालिमको क्रममा मेमोरी अपुग
- हानि घट्छ तर नीतिले केही गर्दैन
- गति बीचमा नीति स्थिर हुन्छ
- नीतिले एउटा सेटअपमा मात्र काम गर्छ
- तालिम कार्य कतारमा अड्कियो
एउटा रनको लागत कति?
Pi0.5 महँगो टियरमा पर्छ किनभने यसलाई 80 GB कार्ड चाहिन्छ, र स्पट मूल्यहरू परिवर्तन भइरहन्छन्, त्यसैले यो अंक मूल्य भन्दा दायरा हो। धेरै SO-100 कार्यहरूको लागि, तालिम दिनुहोस् SmolVLA वा ACT लाई पहिले 24 GB टियरमा, कार्य सिक्न योग्य छ कि छैन भनी पुष्टि गर्नुहोस्, त्यसपछि यसमा A100 घण्टा खर्च गर्नुहोस्। आफ्नो पहिलो नीति तालिम दिनुहोस् ले त्यो सस्तो लुप देखाउँछ, र मूल्य निर्धारण ले हालको टियरहरू समावेश गर्दछ।
| टियर | नीतिहरू | सामान्य रन | प्रति घण्टा मूल्य | प्रति रन लागत |
|---|---|---|---|---|
| A100 80 GB वा H100 | Pi0.5, GR00T N1.7, GR00T N1.5 | 3 to 6 hours | 1.20 to 2.00 USD | लगभग 4 देखि 12 USD |
| RTX 4090 वा कुनै पनि 24 GB कार्ड | SmolVLA, ACT | 2 to 5 hours | 0.30 to 0.60 USD | लगभग 1 देखि 3 USD |

एक साँझ प्रतिबद्ध गर्नु अघि: GR00T N1.7 विरुद्ध Pi0.5 र Pi0.5 विरुद्ध SmolVLA ले उही संख्याहरूलाई आमनेसामने राख्छ। एरिना मा 332 बेन्चमार्क परिणामहरू सहित 85 VLA मोडेलहरू छन्, प्रत्येक यसको स्रोतसँग जोडिएको छ, र परिवारको बारेमा पृष्ठभूमि हाम्रो VLA सिंहावलोकन।
स्ट्याक निर्माण नगरी Pi0.5 तालिम दिनुहोस्
एउटा फारममा डेटासेट र हाइपरप्यारामिटरहरू छान्नुहोस्। ब्याकइन्डले स्पट बजारमा 80 GB कार्ड भाडामा लिन्छ, ट्रेनर चलाउँछ र चेकपोइन्टहरूलाई वस्तु भण्डारणमा लेख्छ। SO-100, SO-101, Koch v1.1 र LeKiwi का लागि गाइडहरू।
तालिम गाइडहरू खोल्नुहोस्के म RTX 4090 मा Pi0.5 लाई फाइन-ट्युन गर्न सक्छु?▾
पूर्ण फाइन-ट्युन होइन: openpi ले त्यसका लागि 70 GB भन्दा बढी सूचीबद्ध गर्दछ, त्यसैले A100 80 GB वा H100। यसको 22.5 GB LoRA अंक JAX पथसँग सम्बन्धित छ; PyTorch कार्यान्वयनमा LoRA छैन। LeRobot को PEFT एकीकरण अवस्थित छ, तर यसको दस्तावेज उदाहरण SmolVLA हो र pi05 को लागि कुनै VRAM अंक प्रकाशित गरिएको छैन।
मलाई कति एपिसोडहरू चाहिन्छ?▾
पचास, GR00T र ACT को जस्तै; केवल SmolVLA 30 मा कम जान्छ। आधार चेकपोइन्टले 10,000 घण्टा भन्दा बढी पूर्व-तालिम बोक्छ, त्यसैले फाइन-ट्युनले केहीबाट सिक्नुको सट्टा अनुकूलन गर्दछ: 50 सफा, विविध एपिसोडहरूले एउटै कन्फिगरेसनबाट दुई सयलाई हराउँछ।
--policy.path र --policy.pretrained_path बीच के भिन्नता छ?▾
--policy.path ले वजन र चेकपोइन्टको config.json लोड गर्दछ, त्यसैले n_action_steps जस्ता भण्डारण गरिएका सेटिङहरू विरासतमा प्राप्त हुन्छन् र --policy.type छोड्नुपर्छ। --policy.pretrained_path ले वजन मात्र लोड गर्दछ: सुविधा नामहरू तपाईंको डेटासेटबाट आउँछन्, भण्डारण गरिएका सेटिङहरू रिसेट हुन्छन्, --policy.type आवश्यक छ। त्यसैले LIBERO कमाण्डले n_action_steps=10 र empty_cameras=1 स्पष्ट रूपमा पास गर्दछ; अन्यथा तिनीहरू 50 र 0 मा फर्कन्छन्।
के खुला संस्करणले मलाई पेपरबाट पूर्ण Pi0.5 दिन्छ?▾
होइन। दुवैले फ्लो म्याचिङ एक्शन हेडलाई मात्र समर्थन गर्दछ। FAST एक्शन टोकेनाइजर र उच्च-स्तरको सबटास्क भविष्यवाणीको साथ डिस्क्रीट-टोकन पूर्व-तालिम चरण जारी गरिएको थिएन, र lerobot/pi05_base कार्डले त्यो सूचीमा RL थप्छ यद्यपि pi0.5 पेपरले कुनै सुदृढीकरण सिकाउने चरणको वर्णन गर्दैन। तपाईंले आपूर्ति गर्नुभएको भाषा स्ट्रिङमा आधारित निम्न-स्तरको नीतिलाई तालिम दिनुहुन्छ, आफैंमा लामो कार्यलाई विघटन गर्ने मोडेललाई होइन।
यो गाइड कुन संस्करणहरू विरुद्ध लेखिएको हो?▾
मुख्यमा openpi र lerobot 0.6.1, 3 अगस्ट 2026 देखिको रिलीज, दुवै 23 अगस्ट 2026 मा पढिएको। v3.0 डेटासेटहरू अक्टोबर 2025 मा 0.4.0 सँग आइपुगे। 0.6.0 ले आधार प्याकेजलाई हल्का बनायो, त्यसैले lerobot[pi] एक्लैले अब प्रशिक्षण स्ट्याक स्थापना गर्दैन, र डिप्लोयमेन्टलाई lerobot-rollout मा सारियो। प्रशिक्षण-समय RTC मुख्यमा मात्र छ; यहाँ होस्ट गरिएको ट्रेनरले 0.5.1 चलाउँछ।
Sources
- Physical-Intelligence/openpi: open-source models and packages for robotics
- openpi training configs, including pi05_libero and pi05_droid_finetune
- pi0: A Vision-Language-Action Flow Model for General Robot Control
- pi0.5: a Vision-Language-Action Model with Open-World Generalization
- Knowledge Insulating Vision-Language-Action Models: Train Fast, Run Fast, Generalize Better
- PaliGemma: A versatile 3B VLM for transfer
- Training-Time Action Conditioning for Efficient Real-Time Chunking
- LeRobot pi05 documentation on the main branch, including training-time RTC
- LeRobot documentation: parameter efficient fine-tuning with PEFT
- LeRobotDataset v3.0 format documentation
- LeRobot release notes: v0.3.2 through v0.6.1, with the v0.6.0 breaking changes
- LeRobot v0.5.0: Scaling Every Dimension
- lerobot/pi05_base model card
- LeRobot documentation: Real-Time Chunking (RTC)
- openpi Pi0Config: the model defaults pi0 and pi05 inherit
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started