
तुमच्या स्वतःच्या रोबोट डेटावर Pi0.5, फिजिकल इंटेलिजन्सचे फ्लो-मॅचिंग VLA, फाइन-ट्यून करा. 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 फक्त त्याच्या JAX मार्गावर LoRA 22.5 GB वर सूचीबद्ध करते.
- •डेटासेट meta/stats.json मध्ये q01 आणि q99 क्वांटाइल्ससह LeRobotDataset v3.0 असणे आवश्यक आहे, अन्यथा बॅच एक त्रुटी देईल.
- •तुमची lerobot आवृत्ती आधी तपासा: 0.6.0 ने बेस पॅकेज हलके केले आणि lerobot-record मधून डिप्लॉयमेंट बाहेर काढले.
- •येथे ते प्रति ॲक्शन स्टेप 485 ms वर चालते, 50 एपिसोड्सची आवश्यकता आहे, आणि प्रति रन सुमारे 4 ते 12 USD खर्च येतो.
Pi0.5 प्रत्यक्षात काय आहे
फिजिकल इंटेलिजन्सने ऑक्टोबर 2024 मध्ये pi0 प्रकाशित केले: एक फ्लो मॅचिंग व्हिजन-लँग्वेज-ॲक्शन मॉडेल एका प्रीट्रेन्ड VLM वर: 3 अब्ज पॅरामीटर्ससह PaliGemma अधिक 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 बॅकबोन प्रकार | gemma_2b (PaliGemma) | gemma_2b (PaliGemma) |
| ॲक्शन एक्सपर्ट प्रकार | gemma_300m | gemma_300m |
| action_dim | 32 | 32 |
| ॲक्शन_हॉरिझॉन डिफॉल्ट | 50 | 50 |
| जास्तीत जास्त टोकन लांबी | 48 | 200 |
| discrete_state_input | false | true, प्रॉम्प्टमध्ये स्टेटला बिन्समध्ये विभागले आहे |
| बेस चेकपॉईंट | gs://openpi-assets/checkpoints/pi0_base | gs://openpi-assets/checkpoints/pi05_base |
openpi README स्पष्टपणे सांगते: हे रिपॉझिटरी केवळ फ्लो मॅचिंग हेडला समर्थन देते, pi0.5 प्रशिक्षण आणि अनुमान (inference) या दोन्हीसाठी. पेपरमध्ये दोन टप्पे वर्णन केले आहेत आणि कोडमध्ये फक्त दुसरा टप्पा आहे: प्री-ट्रेनिंग प्रत्येक ॲक्शनला FAST टोकेनायझरद्वारे डिस्क्रीट टोकन्स म्हणून दर्शवते, आणि डिप्लॉयमेंटमध्ये मॉडेल प्रत्येक ॲक्शन चंकपूर्वी उच्च-स्तरीय उपकार्य अनुमानित करते. यापैकी काहीही रिपॉझिटरीमध्ये नाही. The lerobot/pi05_base कार्ड तीच यादी देते आणि RL जोडते, जरी pi0.5 पेपरमध्ये कोणत्याही रीइन्फोर्समेंट लर्निंग टप्प्याचे वर्णन केलेले नाही. The LeRobot port ती व्याप्ती वारसाहक्काने घेते, आणि त्यावरचे प्रत्येक होस्ट केलेले ट्रेनर देखील, ज्यात येथील एक समाविष्ट आहे. परवाना देखील विभागलेला आहे: the pi05 doc page says Apache 2.0, the lerobot/pi05_base card is tagged license: gemma.
फ्लो मॅचिंग प्रशिक्षण आणि अनुमान (inference) बद्दल काय बदलते
SO-100 वर प्रशिक्षित करता येणारी एक पॉलिसी एकतर क्रिया थेट रिग्रेस करते (ACT) किंवा त्यांना टोकनाइझ करते आणि ऑटोरेग्रेसिव्हपणे डीकोड करते (pi0-FAST). फ्लो मॅचिंग यापैकी काहीही करत नाही: ते एक वेक्टर फील्ड शिकते जे आवाज (noise) एका स्वच्छ ॲक्शन चंकमध्ये पोहोचवते, आणि नंतर ते एकत्रित करते. pi0 पेपरमध्ये 0.1 च्या स्टेप साइजवर 10 इंटिग्रेशन स्टेप्स वापरल्या जातात; LeRobot च्या pi05 कॉन्फिगमध्ये तेच num_inference_steps: int = 10 आहे.
- प्रशिक्षण: लॉस (loss) एका नॉइज्ड ॲक्शन चंकला (noised action chunk) रिग्रेस करतो. ट्यून करण्यासाठी कोणताही टोकनाइझर नाही, तुमच्या जॉइंट अँगलचे (joint angles) डिस्क्रिटायझेशन नाही.
- इन्फरन्स: एका चंकसाठी ॲक्शन एक्सपर्टमधून (action expert) दहा फॉरवर्ड पासेस लागतात. हे संरचनात्मक आहे, ट्यूनिंगची समस्या नाही.
- आउटपुट: 32 डायमेंशनच्या सततच्या क्रिया (continuous actions), अंतर्गत पॅड केलेल्या, तुमच्या रोबोटच्या डायमेंशनवर लॉस घेतला जातो. 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) हे Gemma-2B लँग्वेज मॉडेलवरील SigLIP-So400m व्हिजन एन्कोडर आहे, ज्यात सुमारे 3B पॅरामीटर्स आहेत. Pi0.5 ला त्याचे टोकेनायझर वारसाहक्काने मिळाले आहे आणि ते टोकेनायझर एका गेटेड रिपॉझिटरीमध्ये आहे. पहिल्या रनचा मृत्यू होण्याचा हा सर्वात सामान्य मार्ग आहे, पहिल्या ट्रेनिंग स्टेप आधी.
LeRobot pi05 डॉक्समध्ये स्पष्टपणे नमूद केले आहे: pi0.5 गेटेड google/paligemma-3b-pt-224 टोकेनायझर वापरते, त्यामुळे हबवर त्याचा परवाना स्वीकारा आणि आधी 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 वर तपासले गेले, फ्लॅगऐवजी कॉन्फिग ऑब्जेक्ट्सद्वारे चालवले जाते. सप्टेंबर 2025 मध्ये PyTorch मार्ग आला, जो 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 ऐवजी 90 टक्के GPU मेमरी वापरण्याची परवानगी देते. 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 कॅशेमधील ट्रान्सफॉर्मर्सना कायमस्वरूपी सुधारित करते आणि इतर प्रोजेक्ट्समध्ये लीक होऊ शकते. 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 वरून फाइन-ट्यून करा
तुमच्या कार्डला सहन होईल इतका बॅच आकार सेट करा; डॉक्समध्ये LIBERO वर 80 GB साठी 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 तिकडे निर्देशित करून प्रशिक्षण द्या किंवा हबवर पुश करा. किंवा LIBERO संदर्भ कमांडप्रमाणे --policy.normalization_mapping='{"ACTION": "MEAN_STD", "STATE": "MEAN_STD", "VISUAL": "IDENTITY"}' वापरून क्वांटाइल वगळा.
डिफॉल्टचे तीन संच आणि ट्रेनरपर्यंत कोणते पोहोचतात
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 | फॉर्ममध्ये नाही |
| वेट डीटाइप | bfloat16 | float32 जोपर्यंत तुम्ही --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 |

या पाच मॉडेल्समधील नियंत्रण लूप प्रत्येक कृती टप्प्यासाठी 20 ते 485 ms पर्यंत चालतो. 485 ms च्या वर सार्वजनिक-इंटरनेट राऊंड ट्रिप्समुळे कार्यरत धोरण (policy) संकोच करणारे बनते. रिमोट इन्फरन्स हळू पिक-अँड-प्लेससाठी व्यवहार्य आहे, जलद प्रतिक्रियाशील गतीसाठी नाही. आम्ही LAN वरच काम करणारी डेमो विकण्याऐवजी हे सांगणे पसंत करू. जर तुमचा हात चंक्समध्ये थांबत असेल, तर गतीमध्ये धोरण (policy) थांबते येथून सुरुवात करा.
अपस्ट्रीममध्ये एक उत्तर आहे, आणि त्यापैकी अर्धे तुम्ही स्थापित करू शकता अशा रिलीझमध्ये आधीच आहे. रिअल-टाइम चंकिंग (Real-Time Chunking) पुढील चंक तयार करते जेव्हा हात सध्याचा चंक कार्यान्वित करत असतो, त्यानंतर नवीन चंकच्या ओव्हरलॅपिंग स्टेप्सना आधीच कार्यान्वित केलेल्या भागाच्या जवळ राहण्यासाठी मार्गदर्शन करते, ज्यामुळे हात सीमवर थांबत नाही किंवा झटका देत नाही. 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हे मॉडेलला वेगवान बनवत नाही. हे अंतर लपवते: 485 ms अजूनही खर्च होतात, परंतु क्रिटिकल पाथच्या बाहेर, त्यामुळे चंक्समध्ये रांग कोरडी पडत नाही. arXiv 2512.05964 मधील प्रशिक्षण-वेळेचे प्रकार (training-time variant) यापुढे जाते: मॉडेल स्वच्छ ॲक्शन प्रीफिक्सवर कंडिशन करायला शिकते, त्यामुळे इन्फरन्समध्ये ओव्हरलॅप मार्गदर्शित करण्याऐवजी प्रति-ॲक्शन फ्लो टाइमस्टेप्ससह हार्ड-इनपेंट केले जाते आणि मार्गदर्शन बॅकवर्ड पास अदृश्य होते. प्रशिक्षणादरम्यान ते प्रत्येक उदाहरणासाठी प्रीफिक्स लांबीचे नमुने घेते आणि उर्वरित पोस्टफिक्सवर फ्लो लॉस घेते. तो फ्लॅग फक्त मेनवर आहे, 0.6.1 मध्ये नाही, आणि तुम्ही ज्यासाठी प्रशिक्षण देता तो विलंब chunk_size च्या खालीच राहिला पाहिजे.
Pi0.5 चेकपॉईंट मिळवण्याचे दोन मार्ग
तुम्ही 80 GB कार्ड भाड्याने घेता किंवा तुमच्या मालकीचे आहे, वरील स्टॅकपैकी एक स्थापित करता, तुमचा डेटासेट रूपांतरित करता आणि रनची काळजी घेता. तुम्ही प्रत्येक नियंत्रण ठेवता: openpi चे JAX LoRA, LeRobot चे PEFT अडॅप्टर्स, सापेक्ष क्रिया, सानुकूल की मॅपिंग. तुम्ही प्रत्येक अपयश देखील ठेवता.
- हार्डवेअर: A100 80 GB किंवा H100, किंवा openpi च्या JAX LoRA पाथवर 24 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 |
ट्रेनर 16 चा ग्रेडियंट संचय मूल्य पाठवतो आणि lerobot 0.5.1 मध्ये ते प्राप्त करण्यासाठी कोणताही ध्वज नाही, त्यामुळे ते वगळले जाते. कोणत्याही रिलीझ झालेल्या lerobot मध्ये ते नाही: हे नियंत्रण केवळ मुख्य शाखेवर (main branch) --accelerator.gradient_accumulation.steps म्हणून अस्तित्वात आहे. येथे प्रभावी बॅच आकार 1 आहे, तर openpi चे pi05_libero कॉन्फिग 256 वापरते. लॉस कर्व्ह वाचण्यापूर्वी हे जाणून घेणे महत्त्वाचे आहे. हे नियंत्रण GR00T N1.7 आणि GR00T N1.5 रनवर लागू होते.
अनुमान (Inference) त्याच प्रकारे कार्य करते: पॉलिसी सेवा देण्यासाठी एक पॉड तयार केला जातो आणि तुमचा स्थानिक क्लायंट त्याच्याशी संवाद साधतो. पॉडमध्ये निष्क्रिय वॉचडॉग असतो आणि तो स्वतःला नष्ट करतो, त्यामुळे विसरलेली टॅब शांतपणे बिल करत नाही. लेटन्सीची (latency) चेतावणी लागू होते, म्हणूनच ACT 20 ms वर अनेकदा जलद कार्य जिंकते.
जेव्हा ते कार्य करत नाही
| लक्षण | सर्वात संभाव्य कारण |
|---|---|
| रन सुरू होण्यापूर्वी नाकारला गेला | डेटासेट v2.1 पण Pi0.5 ला v3.0 हवे आहे, किंवा GR00T साठी उलट |
| ImportError, डेटासेट पॅकेज गहाळ | प्रशिक्षण अतिरिक्त (training extra) शिवाय lerobot 0.6.x |
| बॅच एकवर q01 आणि q99 बद्दल ValueError | meta/stats.json मध्ये क्वांटाइल्स नाहीत; पुन्हा गणना करा किंवा MEAN_STD वापरा |
| स्टेप 0 वर CUDA मेमरी संपली | 70 GB पेक्षा कमी पूर्ण फाइन-ट्यून; चेकपॉईंटिंग किंवा train_expert_only वापरून पहा |
| 401 किंवा गेटेड रेपो एरर | 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 ते 6 तास | 1.20 to 2.00 USD | सुमारे 4 ते 12 USD |
| RTX 4090 किंवा कोणतेही 24 GB कार्ड | SmolVLA, ACT | 2 ते 5 तास | 0.30 to 0.60 USD | सुमारे 1 ते 3 USD |

संध्याकाळ घालवण्यापूर्वी: GR00T N1.7 विरुद्ध Pi0.5 आणि Pi0.5 विरुद्ध SmolVLA समान संख्यांची समोरासमोर तुलना करतात. अरेना मध्ये 85 VLA मॉडेल्स आहेत ज्यात 332 बेंचमार्क परिणाम आहेत, प्रत्येक त्याच्या स्त्रोताशी जोडलेला आहे, आणि या कुटुंबाची पार्श्वभूमी आमच्या 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