AY-Robots प्रशिक्षण मैट्रिक्स जिसमें पाँच नीतियाँ पंक्तियों के रूप में और चार रोबोट भुजाएँ स्तंभों के रूप में हैं, प्रत्येक सेल एक विशिष्ट फाइन-ट्यूनिंग गाइड का लिंक है
Pi0.5फ्लो मैचिंगVLA प्रशिक्षणLeRobotफाइन-ट्यूनिंग

अपने रोबोट डेटा पर Pi0.5 को कैसे प्रशिक्षित करें

AY-Robots ResearchAugust 23, 202616 मिनट का पठन

फिजिकल इंटेलिजेंस के फ्लो-मैचिंग 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 केवल अपने JAX पाथ पर LoRA को 22.5 GB पर सूचीबद्ध करता है।
  • डेटासेट LeRobotDataset v3.0 होना चाहिए जिसमें meta/stats.json में q01 और q99 क्वांटाइल हों, अन्यथा बैच एक त्रुटि देगा।
  • पहले अपना 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 अप्रैल 2025) उस ढांचे को बरकरार रखता है और प्रशिक्षण आहार को बदलता है: वेब डेटा, वस्तु पहचान, रोबोट को प्रशिक्षित करने वाले मनुष्यों से मौखिक निर्देश, उपकार्य लेबल, कई घरों में रोबोट से क्रॉस-एम्बॉडीमेंट डेटा। इसका परिणाम यह है कि एक रोबोट उन घरों में रसोई की सफाई करता है जो प्रशिक्षण सेट में नहीं थे। openpi README एक विवरण जोड़ता है जो शीर्षक में नहीं है: जारी किया गया pi0.5 ज्ञान इन्सुलेशन (arXiv 2505.23705) के साथ प्रशिक्षित किया गया था।

गुणधर्मpi0pi0.5
VLM बैकबोन वेरिएंटgemma_2b (PaliGemma)gemma_2b (PaliGemma)
एक्शन एक्सपर्ट वेरिएंटgemma_300mgemma_300m
action_dim3232
एक्शन होराइजन डिफ़ॉल्ट5050
max_token_len48200
डिस्क्रीट स्टेट इनपुटfalsetrue, state discretized into bins in the prompt
बेस चेकपॉइंटgs://openpi-assets/checkpoints/pi0_basegs://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 का उपयोग करता है।
python
# 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 True
src/openpi/models/pi0_config.py से openpi मेन ब्रांच पर, 23 अगस्त 2026 को पढ़ा गया।

पलिगेमा बैकबोन, और उसके सामने का गेट

PaliGemma (arXiv 2407.07726) एक Gemma-2B भाषा मॉडल पर आधारित SigLIP-So400m विजन एनकोडर है, जिसमें लगभग 3B पैरामीटर हैं। Pi0.5 अपने टोकेनाइज़र को इनहेरिट करता है, और वह टोकेनाइज़र एक गेटेड रिपॉजिटरी में रहता है। यह सबसे आम तरीका है जिससे पहली बार रन विफल होता है, पहले प्रशिक्षण चरण से भी पहले।

GPU किराए पर लेने से पहले गेटेड लाइसेंस स्वीकार करें

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 GBRTX 4090
फाइन-ट्यूनिंग, LoRAmore than 22.5 GBRTX 4090
फाइन-ट्यूनिंग, पूर्णmore than 70 GBA100 80 GB or H100
संस्करण का जाल जो एक दिन बर्बाद कर देता है

Pi0.5 और SmolVLA को LeRobot v3.0 चाहिए। GR00T N1.7 और GR00T N1.5 को v2.0 या v2.1 चाहिए और वे v3.0 डेटासेट पर क्रैश हो जाते हैं। एक रिकॉर्डिंग सत्र बिना रूपांतरण के दोनों को फीड नहीं कर सकता, और त्रुटि में "गलत डेटासेट संस्करण" नहीं लिखा होता है। डेटासेट अस्वीकृत: v3 आवश्यक देखें।

bash
# 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
LeRobotDataset v3.0 दस्तावेज़ से।

प्लेटफ़ॉर्म को Pi0.5 के लिए कम से कम 50 एपिसोड चाहिए, जो GR00T और ACT के समान न्यूनतम सीमा है। प्री-ट्रेनिंग ही मुख्य काम करती है, इसलिए 50 साफ़-सुथरे एपिसोड 200 अव्यवस्थित एपिसोड से बेहतर होते हैं। इसमें नए हैं? शुरुआत करें डेटा संग्रह मार्गदर्शिका.

AY-Robots नीतियों का पृष्ठ जो पांच प्रशिक्षित करने योग्य नीतियों की तुलना पैरामीटर, GPU टियर, विलंबता और न्यूनतम एपिसोड के आधार पर करता है।
Pi0.5 A100 और H100 टियर में प्रति एक्शन स्टेप 485 एमएस पर, 50 एपिसोड के न्यूनतम स्तर के साथ स्थित है।

मार्ग A: openpi रिपॉजिटरी के साथ फाइन-ट्यून करें

संदर्भ कार्यान्वयन: पहले JAX, केवल Ubuntu 22.04 पर परीक्षण किया गया, फ्लैग के बजाय कॉन्फ़िग ऑब्जेक्ट्स द्वारा संचालित। सितंबर 2025 में एक PyTorch पाथ आया, जिसे LIBERO पर मान्य किया गया। तीन चरण: अपना डेटा परिवर्तित करें, एक कॉन्फ़िग परिभाषित करें, प्रशिक्षित करें और सेवा दें।

  1. 1
    क्लोन करें और इंस्टॉल करें

    openpi uv का उपयोग करता है। GIT_LFS_SKIP_SMUDGE वह है जो LeRobot को LFS ब्लब्स के बिना एक निर्भरता के रूप में आने देता है।

    bash
    git 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. 2
    अपने डेटा को LeRobot डेटासेट में परिवर्तित करें

    अपस्ट्रीम LIBERO और DROID के लिए कन्वर्टर भेजता है और आपसे एक को अनुकूलित करने की अपेक्षा करता है। काम कुंजी मैपिंग है।

    bash
    uv run examples/libero/convert_libero_data_to_lerobot.py --data_dir /path/to/your/data
  3. 3
    एक प्रशिक्षण कॉन्फ़िग जोड़ें

    कॉन्फ़िग src/openpi/training/config.py में TrainConfig प्रविष्टियाँ हैं। यह pi05_droid_finetune को अनुकूलित करता है, जिसमें वेट लोडर pi05_base की ओर इंगित करता है।

    python
    TrainConfig(
        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. 4
    सामान्य आँकड़े गणना करें

    यह कॉन्फ़िग नाम के विरुद्ध चलता है, डेटासेट के विरुद्ध नहीं। इसे छोड़ना यहाँ की क्लासिक पहली विफलता है।

    bash
    uv run scripts/compute_norm_stats.py --config-name pi05_so100
  5. 5
    प्रशिक्षित करें

    यह वेरिएबल JAX को डिफ़ॉल्ट 75 के बजाय GPU मेमोरी का 90 प्रतिशत उपयोग करने देता है। 80 GB कार्ड पर यह तय करता है कि रन जीवित रहेगा या नहीं।

    bash
    XLA_PYTHON_CLIENT_MEM_FRACTION=0.9 uv run scripts/train.py pi05_so100 \
        --exp-name=my_experiment \
        --overwrite
  6. 6
    इसे सेवा दें

    सर्वर पोर्ट 8000 पर सुनता है और अवलोकन प्रश्नों का उत्तर देता है; आपका रोबोट रनटाइम क्लाइंट है।

    bash
    uv run scripts/serve_policy.py policy:checkpoint \
        --policy.config=pi05_so100 \
        --policy.dir=checkpoints/pi05_so100/my_experiment/20000
PyTorch पाथ JAX पाथ नहीं है

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 और रियल-टाइम चंकिंग प्रस्तुत किया गया, और 6 जुलाई 2026 को 0.6.0 ने बेस पैकेज को हल्का बनाया और डिप्लॉयमेंट को lerobot-rollout में स्थानांतरित कर दिया।

एक चीज़ नहीं बदली: lerobot-train और lerobot-record अगस्त 2025 में 0.3.2 में पहले से ही एंट्री पॉइंट थे। एक ट्यूटोरियल जो अभी भी python -m lerobot.scripts.train को कॉल करता है, वह एक साल के बदलावों से पहले का है और बाकी जानकारी के लिए भी उस पर भरोसा नहीं किया जाना चाहिए।

  1. 1
    सही एक्स्ट्रा के साथ इंस्टॉल करें

    0.6.0 के बाद से, बेस इंस्टॉल में केवल कोर एमएल डिपेंडेंसी होती हैं, और पाई एक्स्ट्रा कोई डेटासेट या ट्रेनिंग कोड नहीं जोड़ता है, इसलिए फाइन-ट्यून के लिए ट्रेनिंग एक्स्ट्रा की भी आवश्यकता होती है। पुराने वन-लाइनर यहां इम्पोर्ट के समय विफल हो जाते हैं।

    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. 2
    प्रमाणीकरण करें

    एक ब्राउज़र में paligemma-3b-pt-224 लाइसेंस स्वीकार करें, फिर ट्रेनिंग करने वाली मशीन पर लॉग इन करें।

    bash
    hf auth login
  3. 3
    क्वांटाइल सांख्यिकी जोड़ें

    Pi0.5, STATE और ACTION को क्वांटाइल के साथ सामान्य करता है, इसलिए meta/stats.json को q01 और q99 की आवश्यकता होती है। पुराने डेटासेट में केवल min, max, mean, std होते हैं।

    bash
    lerobot-edit-dataset \
        --repo_id your_dataset \
        --new_repo_id your_dataset \
        --operation.type recompute_stats \
        --operation.overwrite true
  4. 4
    lerobot/pi05_base से फाइन-ट्यून करें

    बैच साइज़ को उतना सेट करें जितना आपका कार्ड संभाल सके; डॉक्स में LIBERO पर 80 GB के साथ 64 का उपयोग किया गया है। bfloat16 को स्पष्ट रूप से पास करें, कॉन्फ़िग डिफ़ॉल्ट float32 है।

    bash
    lerobot-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. 5
    इसे आर्म पर चलाएं

    0.6.x में यह lerobot-rollout है: lerobot-record एक पॉलिसी को अस्वीकार करता है और eval_ डेटासेट नामों को खारिज करता है। बेस आर्म को चलाता है, सेंट्री रोलआउट को रिकॉर्ड करता है।

    bash
    lerobot-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=pi05Pi0.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_onlyVLM को फ्रीज करता है, विशेषज्ञ को प्रशिक्षित करता हैडिफ़ॉल्ट false, कम मेमोरी, सफलता में कुछ लागत
--policy.gradient_checkpointingएक्टिवेशन स्टोर करने के बजाय फिर से गणना करेंडिफ़ॉल्ट false, जब कोई रन फिट नहीं होगा तो पहला लीवर
--peft.method_type=LORAपूर्ण वज़न के बजाय LoRA एडेप्टरpeft एक्स्ट्रा की आवश्यकता है, प्रलेखित उदाहरण SmolVLA है
--policy.rtc_training_max_delayRTC के लिए एक्शन-प्रीफिक्स कंडीशनिंगकेवल मुख्य ब्रांच, 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 TrainConfiglerobot pi05 और lerobot-trainAY-Robots भेजता है
बैच आकार3281
पीक लर्निंग रेट2.5e-5, कोसाइन डीकेoptimizer_lr 2.5e-55e-5
प्रशिक्षण चरण30,000100,00030,000
चेकपॉइंट अंतराल1,000 चरण20,000 चरणफॉर्म में नहीं
सीड421,000फॉर्म में
एक्शन चंकaction_horizon 50chunk_size 50, n_action_steps 50फॉर्म में नहीं
वेट डीटाइपbfloat16float32 जब तक आप --policy.dtype पास नहीं करतेफॉर्म में नहीं
ग्रेडिएंट एक्यूमुलेशनऐसा कोई नॉब नहीं, इसके बजाय fsdp_devicesअब तक हर रिलीज़ से अनुपस्थित16, और इसे हटा दिया गया है

क्या पोर्ट विश्वसनीय है? LeRobot टीम ने LIBERO बेस मॉडल को अतिरिक्त 6k चरणों के लिए फाइन-ट्यून किया और openpi के संदर्भ संख्याओं के साथ चार सुइट्स पर तुलना की: 96.85 के मुकाबले 97.5 प्रतिशत औसत, Libero 10 पर आगे, Spatial पर पीछे। यह मार्ग एक टूलिंग विकल्प है, गुणवत्ता का नहीं।

अपने डेटा पर Pi0.5 को फाइन-ट्यून करना
फायदे
  • इसके पीछे 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 में नहीं हैं, इसलिए नवीनतम डॉक्स का मतलब गिट से इंस्टॉल करना हो सकता है।

485 ms की वास्तविकता, और जहाँ यह अनुपयोगी हो जाता है

यह आपके प्रोजेक्ट का निर्धारण करता है, इसलिए यह लागत तालिका से पहले आता है। प्रति क्रिया चरण Pi0.5 के लिए यहाँ मापा गया 485 ms है। अन्य चार के मुकाबले:

पॉलिसीप्रति क्रिया चरण अनुमानपैरामीटर्सGPU टियरन्यूनतम एपिसोड
ACT20 ms~80 MRTX 4090 or any 24 GB card50
GR00T N1.7152 ms~3 BA100 80 GB or H100 80 GB50
GR00T N1.5165 ms~3 BA100 80 GB or H100 80 GB50
SmolVLA245 ms~450 MRTX 4090 or any 24 GB card30
Pi0.5485 ms~3 BA100 80 GB or H100 80 GB50
AY-Robots का GR00T N1.7 बनाम Pi0.5 के लिए आमने-सामने का पृष्ठ, जिसमें पैरामीटर्स, GPU टियर, विलंबता और डेटासेट प्रारूप शामिल हैं
समान GPU टियर, समान एपिसोड फ्लोर, भिन्न डेटासेट संस्करण, तीन गुना विलंबता अंतर।
इन्फ्रेंसिंग को सर्वो के बगल में बैठना होगा

इन पांच मॉडलों में नियंत्रण लूप प्रति एक्शन स्टेप 20 से 485 मिलीसेकंड तक चलता है। 485 मिलीसेकंड के ऊपर सार्वजनिक-इंटरनेट राउंड ट्रिप एक काम करने वाली नीति को एक झिझकने वाली नीति में बदल देती है। रिमोट इन्फ्रेंसिंग धीमी पिक-एंड-प्लेस के लिए व्यवहार्य है, न कि तेज़ प्रतिक्रियाशील गति के लिए। हम ऐसा कहना पसंद करेंगे बजाय इसके कि एक ऐसा डेमो बेचें जो केवल LAN पर काम करता हो। यदि आपकी भुजा चंक्स के बीच रुकती है, तो नीति मध्य-गति में जम जाती है से शुरू करें।

अपस्ट्रीम के पास एक जवाब है, और इसका आधा हिस्सा पहले से ही उस रिलीज़ में है जिसे आप इंस्टॉल कर सकते हैं। रियल-टाइम चंकिंग अगले चंक को तब उत्पन्न करता है जब भुजा अभी भी वर्तमान वाले को निष्पादित कर रही होती है, फिर नए चंक के ओवरलैपिंग चरणों को पहले से निष्पादित भाग के करीब रहने के लिए मार्गदर्शन करता है, ताकि भुजा जोड़ पर रुके या झटके न। Pi0, Pi0.5 और SmolVLA के लिए 0.4.2 चेंजलॉग में शिप किया गया इन्फ्रेंस-टाइम फॉर्म एक रोलआउट फ्लैग है, न कि रिट्रेन:

bash
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
execution_horizon यह बताता है कि नए चंक को पिछले चंक के कितने चरणों से सहमत होना है; RTC डॉक्स में 8 से 12 को सामान्य सीमा के रूप में दिया जाता है। डिफ़ॉल्ट इन्फ्रेंस बैकएंड --inference.type=sync है।

यह मॉडल को तेज़ नहीं बनाता है। यह अंतर को छुपाता है: 485 मिलीसेकंड अभी भी खर्च होते हैं, लेकिन महत्वपूर्ण पथ से हटकर, ताकि चंक्स के बीच कतार खाली न हो। arXiv 2512.05964 से प्रशिक्षण-समय का संस्करण और आगे जाता है: मॉडल एक स्वच्छ एक्शन प्रीफिक्स पर कंडीशन करना सीखता है, इसलिए इन्फ्रेंस पर ओवरलैप को निर्देशित करने के बजाय प्रति-एक्शन फ्लो टाइमस्टेप्स के साथ हार्ड-इनपेंट किया जाता है, और मार्गदर्शन बैकवर्ड पास गायब हो जाता है। प्रशिक्षण के दौरान यह प्रति उदाहरण एक प्रीफिक्स लंबाई का नमूना लेता है और शेष पोस्टफिक्स पर फ्लो लॉस लेता है। वह फ्लैग केवल मुख्य पर रहता है, 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 मेमोरी।
bash
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
वह कमांड जिसे कोई होस्टेड फॉर्म नहीं चलाता है, और pip इंस्टॉल नहीं कर सकता है: प्रशिक्षण-समय RTC एक मुख्य ब्रांच फ्लैग है।

जब यह काम नहीं करता है

लक्षणसबसे संभावित कारण
रन शुरू होने से पहले अस्वीकृतडेटासेट v2.1 लेकिन Pi0.5 को v3.0 चाहिए, या GR00T के लिए इसका उलटा
ImportError, डेटासेट पैकेज गायब हैप्रशिक्षण अतिरिक्त के बिना lerobot 0.6.x
बैच एक पर q01 और q99 के बारे में ValueErrormeta/stats.json में कोई क्वांटाइल नहीं; पुनर्गणना करें या MEAN_STD का उपयोग करें
स्टेप 0 पर CUDA मेमोरी से बाहर70 GB से कम का पूर्ण फाइन-ट्यून; चेकपॉइंटिंग या train_expert_only का प्रयास करें
401 या गेटेड रेपो त्रुटिPaliGemma टोकेनाइज़र लाइसेंस स्वीकार नहीं किया गया
लॉस गिरता है, रोबोट कुछ नहीं करता हैसामान्यीकरण बेमेल, या पॉलिसी स्थिति की प्रतिलिपि बनाती है
आर्म चंक्स के बीच रुकता हैप्रति-स्टेप विलंबता प्लस राउंड ट्रिप; चंक क्यू सूख जाता है
एक सेटअप में काम करता है, दूसरे में विफल रहता हैबहुत कम एपिसोड, या सभी एक ही कॉन्फ़िगरेशन में

एक रन की लागत क्या है

Pi0.5 महंगी श्रेणी में आता है क्योंकि इसे 80 GB कार्ड की आवश्यकता होती है, और स्पॉट कीमतें बदलती रहती हैं, इसलिए यह आंकड़ा एक मूल्य के बजाय एक सीमा है। कई SO-100 कार्यों के लिए, पहले SmolVLA या ACT को पहले 24 GB श्रेणी पर प्रशिक्षित करें, पुष्टि करें कि कार्य सीखने योग्य है या नहीं, फिर उस पर A100 घंटे खर्च करें। अपनी पहली नीति को प्रशिक्षित करें उस सस्ते लूप का अनुसरण करता है, और मूल्य निर्धारण वर्तमान श्रेणियों को दर्शाता है।

श्रेणीनीतियाँविशिष्ट रनप्रति घंटा मूल्यप्रति रन लागत
A100 80 GB या H100Pi0.5, GR00T N1.7, GR00T N1.53 से 6 घंटे1.20 to 2.00 USDलगभग 4 से 12 USD
RTX 4090 या कोई भी 24 GB कार्डSmolVLA, ACT2 से 5 घंटे0.30 to 0.60 USDलगभग 1 से 3 USD
AY-Robots लागत तालिका दिखाती है कि प्रत्येक नीति को किस GPU की आवश्यकता है, विशिष्ट रन टाइम और मूल्य, और एक नीति उपयोगी होने से पहले कितने एपिसोड की आवश्यकता है।
उत्पाद पृष्ठ पर वही दो स्तर: Pi0.5 80 GB कार्ड किराए पर लेता है, SmolVLA और ACT 4090 पर फिट होते हैं।

एक शाम समर्पित करने से पहले: 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 चलाता है।

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started