AY-Robots प्रशिक्षण मॅट्रिक्स, ज्यामध्ये पाच पॉलिसी पंक्ती म्हणून आणि चार रोबोट आर्म्स स्तंभ म्हणून आहेत, प्रत्येक सेल विशिष्ट फाइन-ट्यूनिंग मार्गदर्शकाची लिंक आहे.
Pi0.5फ्लो मॅचिंगVLA प्रशिक्षणLeRobotफाइन-ट्यूनिंग

तुमच्या स्वतःच्या रोबोट डेटावर Pi0.5 कसे प्रशिक्षित करावे

AY-Robots ResearchAugust 23, 202616 मिनिट वाचन

तुमच्या स्वतःच्या रोबोट डेटावर 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) प्रशिक्षित केला गेला होता.

गुणधर्मpi0pi0.5
VLM बॅकबोन प्रकारgemma_2b (PaliGemma)gemma_2b (PaliGemma)
ॲक्शन एक्सपर्ट प्रकारgemma_300mgemma_300m
action_dim3232
ॲक्शन_हॉरिझॉन डिफॉल्ट5050
जास्तीत जास्त टोकन लांबी48200
discrete_state_inputfalsetrue, प्रॉम्प्टमध्ये स्टेटला बिन्समध्ये विभागले आहे
बेस चेकपॉईंटgs://openpi-assets/checkpoints/pi0_basegs://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 वापरतो.
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
openpi च्या मुख्य शाखेवरील (main branch) src/openpi/models/pi0_config.py मधून वाचले, 23 ऑगस्ट 2026.

PaliGemma बॅकबोन, आणि त्याच्या समोरचे गेट

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 ms वर, 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 ऐवजी 90 टक्के GPU मेमरी वापरण्याची परवानगी देते. 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 कॅशेमधील ट्रान्सफॉर्मर्सना कायमस्वरूपी सुधारित करते आणि इतर प्रोजेक्ट्समध्ये लीक होऊ शकते. 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. 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. 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.jsonn_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 तिकडे निर्देशित करून प्रशिक्षण द्या किंवा हबवर पुश करा. किंवा 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 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 मध्ये नाहीत, त्यामुळे नवीनतम डॉक्सचा अर्थ git मधून इन्स्टॉल करणे असू शकते.

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
GR00T N1.7 विरुद्ध Pi0.5 साठी AY-Robots चे हेड-टू-हेड पृष्ठ, पॅरामीटर्स, GPU स्तर, लेटन्सी आणि डेटासेट फॉरमॅटसह
समान GPU स्तर, समान एपिसोड मर्यादा, वेगळी डेटासेट आवृत्ती, तीनपट लेटन्सी अंतर.
इन्फरन्स सर्व्होच्या शेजारीच असावे लागते

या पाच मॉडेल्समधील नियंत्रण लूप प्रत्येक कृती टप्प्यासाठी 20 ते 485 ms पर्यंत चालतो. 485 ms च्या वर सार्वजनिक-इंटरनेट राऊंड ट्रिप्समुळे कार्यरत धोरण (policy) संकोच करणारे बनते. रिमोट इन्फरन्स हळू पिक-अँड-प्लेससाठी व्यवहार्य आहे, जलद प्रतिक्रियाशील गतीसाठी नाही. आम्ही LAN वरच काम करणारी डेमो विकण्याऐवजी हे सांगणे पसंत करू. जर तुमचा हात चंक्समध्ये थांबत असेल, तर गतीमध्ये धोरण (policy) थांबते येथून सुरुवात करा.

अपस्ट्रीममध्ये एक उत्तर आहे, आणि त्यापैकी अर्धे तुम्ही स्थापित करू शकता अशा रिलीझमध्ये आधीच आहे. रिअल-टाइम चंकिंग (Real-Time Chunking) पुढील चंक तयार करते जेव्हा हात सध्याचा चंक कार्यान्वित करत असतो, त्यानंतर नवीन चंकच्या ओव्हरलॅपिंग स्टेप्सना आधीच कार्यान्वित केलेल्या भागाच्या जवळ राहण्यासाठी मार्गदर्शन करते, ज्यामुळे हात सीमवर थांबत नाही किंवा झटका देत नाही. 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 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 मेमरी.
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 हे मुख्य शाखेचे (main branch) ध्वज आहे.

जेव्हा ते कार्य करत नाही

लक्षणसर्वात संभाव्य कारण
रन सुरू होण्यापूर्वी नाकारला गेलाडेटासेट v2.1 पण Pi0.5 ला v3.0 हवे आहे, किंवा GR00T साठी उलट
ImportError, डेटासेट पॅकेज गहाळप्रशिक्षण अतिरिक्त (training extra) शिवाय 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 समान संख्यांची समोरासमोर तुलना करतात. अरेना मध्ये 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 चालवतो.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started