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 জ্ঞান নিরোধক (knowledge insulation) (arXiv 2505.23705) ব্যবহার করে প্রশিক্ষিত হয়েছিল।

বৈশিষ্ট্যpi0pi0.5
VLM ব্যাকবোন ভেরিয়েন্টgemma_2b (PaliGemma)gemma_2b (PaliGemma)
অ্যাকশন এক্সপার্ট ভেরিয়েন্টgemma_300mgemma_300m
action_dim3232
action_horizon default5050
max_token_len48200
discrete_state_inputfalsetrue, প্রম্পটে স্টেটকে বিনগুলিতে বিভক্ত করা হয়েছে
বেস চেকপয়েন্টgs://openpi-assets/checkpoints/pi0_basegs://openpi-assets/checkpoints/pi05_base
যা সর্বজনীন তা সম্পূর্ণ গবেষণাপত্র নয়

openpi README স্পষ্টভাবে উল্লেখ করে: রিপোজিটরি শুধুমাত্র ফ্লো ম্যাচিং হেড সমর্থন করে, pi0.5 প্রশিক্ষণ এবং ইনফারেন্স উভয়ের জন্য। গবেষণাপত্রটি দুটি ধাপ বর্ণনা করে এবং কোডটি শুধুমাত্র দ্বিতীয়টি বহন করে: প্রি-ট্রেনিং প্রতিটি অ্যাকশনকে FAST টোকেনাইজার ব্যবহার করে ডিসক্রিট টোকেন হিসাবে উপস্থাপন করে, এবং ডিপ্লয়মেন্টে মডেল প্রতিটি অ্যাকশন চাঙ্কের আগে একটি উচ্চ-স্তরের সাবটাস্ক অনুমান করে। এর কোনটিই রিপোজিটরিতে নেই। The lerobot/pi05_base কার্ড একই তালিকা দেয় এবং RL যোগ করে, যদিও pi0.5 গবেষণাপত্রে কোনো রিইনফোর্সমেন্ট লার্নিং ধাপের বর্ণনা নেই। LeRobot পোর্ট সেই পরিধি উত্তরাধিকার সূত্রে পায়, এবং এর উপর হোস্ট করা প্রতিটি প্রশিক্ষকও পায়, যার মধ্যে এখানে থাকাটি অন্তর্ভুক্ত। লাইসেন্সিংও বিভক্ত: pi05 ডক পৃষ্ঠা Apache 2.0 বলে, the 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 tokenizer ব্যবহার করে, তাই Hub-এ এর লাইসেন্স গ্রহণ করুন এবং প্রথমে hf auth login চালান। অ্যাক্সেস ম্যানুয়ালি দেওয়া হয়, তাৎক্ষণিকভাবে নয়। এটি এড়িয়ে গেলে, একটি পেইড ক্লাউড রান শুরু করলে, আপনি এমন একটি পডের জন্য অর্থ প্রদান করবেন যা একটি টোকেনাইজার ডাউনলোড করতে পারবে না।

শুরু করার আগে: ডেটাসেট ফরম্যাট, এপিসোড, হার্ডওয়্যার

LeRobot-এ Pi0.5 একটি LeRobot ডেটাসেট v3.0 লেআউটে পড়ে, যা অক্টোবর 2025-এ lerobot 0.4.0-এর সাথে এসেছিল: প্রতি Parquet এবং MP4 ফাইলে অনেক এপিসোড, প্রতি এপিসোড একটি ফাইলের পরিবর্তে, meta/episodes/-এ বাউন্ডারি সহ, ফাইলের নামের পরিবর্তে। ডেস্কটপ ক্লায়েন্ট দিয়ে রেকর্ড করুন অথবা আপনার প্রথম ডেটাসেট রেকর্ড করুন অনুসরণ করুন এবং আপনার কাছে এটি থাকবে।

মোডপ্রয়োজনীয় GPU মেমরিউদাহরণ GPU
ইনফারেন্স8 GB এর বেশিRTX 4090
ফাইন-টিউনিং, লোরা22.5 GB এর বেশিRTX 4090
ফাইন-টিউনিং, সম্পূর্ণ70 GB এর বেশিA100 80 GB অথবা 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 এ পরীক্ষিত, ফ্ল্যাগসের পরিবর্তে কনফিগারেশন অবজেক্ট দ্বারা চালিত। একটি PyTorch পাথ 2025 সালের সেপ্টেম্বরে এসেছে, যা 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 ক্যাশে 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 ইতিমধ্যেই 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 থেকে ফাইন-টিউন করুন

    আপনার কার্ড যা সহ্য করতে পারে সেই অনুযায়ী ব্যাচ সাইজ সেট করুন; ডকুমেন্টেশনে 80 GB LIBERO-তে 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 সেখানে নির্দেশ করে প্রশিক্ষণ দিন অথবা হাবে পুশ করুন। অথবা --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 and lerobot-trainAY-Robots পাঠায়
ব্যাচ সাইজ3281
সর্বোচ্চ লার্নিং রেট2.5e-5, cosine decayoptimizer_lr 2.5e-55e-5
ট্রেনিং ধাপ30,000100,00030,000
চেকপয়েন্ট ব্যবধান1,000 steps20,000 stepsফর্মে নেই
সিড421,000ফর্মে আছে
অ্যাকশন চাঙ্কaction_horizon 50chunk_size 50, n_action_steps 50ফর্মে নেই
ওজন ডেটাটাইপbfloat16float32 until you pass --policy.dtypeফর্মে নেই
গ্রেডিয়েন্ট সঞ্চয়no such knob, fsdp_devices insteadabsent from every release so far16, এবং এটি বাদ দেওয়া হয়েছে

পোর্টটি কি বিশ্বস্ত? LeRobot টিম LIBERO বেস মডেলটিকে আরও 6k ধাপের জন্য ফাইন-টিউন করেছে এবং চারটি স্যুটে openpi-এর রেফারেন্স নম্বরের সাথে তুলনা করেছে: 96.85 এর বিপরীতে 97.5 শতাংশ গড়, Libero 10 এ এগিয়ে, Spatial এ পিছিয়ে। রুটটি একটি টুলিং পছন্দ, গুণগত পছন্দ নয়।

আপনার নিজের ডেটাতে Pi0.5 ফাইন-টিউন করা
সুবিধা
  • এর পেছনে 10,000 ঘণ্টারও বেশি রোবট প্রি-ট্রেনিং রয়েছে, তাই আপনার কাজের 50টি এপিসোড যথেষ্ট হতে পারে।
  • অবিচ্ছিন্ন অ্যাকশন: টিউন করার জন্য কোনো টোকেনাইজার নেই, আপনার জয়েন্ট অ্যাঙ্গেলগুলিতে কোনো ডিসক্রিটাইজেশন ফ্লোর নেই।
  • LeRobot পোর্ট LIBERO গড়ে openpi-এর 96.85 এর বিপরীতে 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
GR00T N1.7 বনাম Pi0.5 এর জন্য AY-Robots এর হেড টু হেড পৃষ্ঠা, প্যারামিটার, GPU টিয়ার, ল্যাটেন্সি এবং ডেটাসেট ফরম্যাট সহ
একই GPU টিয়ার, একই এপিসোড ফ্লোর, ভিন্ন ডেটাসেট সংস্করণ, তিনগুণ ল্যাটেন্সি পার্থক্য।
ইনফারেন্সকে সার্ভোগুলির পাশেই থাকতে হবে

এই পাঁচটি মডেল জুড়ে নিয়ন্ত্রণ লুপ প্রতিটি অ্যাকশন স্টেপে 20 থেকে 485 ms সময় নেয়। 485 ms এর উপরে পাবলিক-ইন্টারনেট রাউন্ড ট্রিপ একটি কার্যকরী নীতিকে দ্বিধাগ্রস্ত করে তোলে। ধীর পিক-এন্ড-প্লেসের জন্য রিমোট ইনফারেন্স কার্যকর, দ্রুত প্রতিক্রিয়াশীল গতির জন্য নয়। আমরা এমন একটি ডেমো বিক্রি করার চেয়ে বরং এটি বলতে চাই যা শুধুমাত্র একটি ল্যানে কাজ করে। যদি আপনার বাহু চাঙ্কগুলির মধ্যে বিরতি নেয়, তাহলে নীতি মাঝ-গতিতে থেমে যায় থেকে শুরু করুন।

আপস্ট্রিমের কাছে একটি উত্তর আছে, এবং এর অর্ধেকটা আপনি ইনস্টল করতে পারবেন এমন রিলিজে ইতিমধ্যেই রয়েছে। রিয়েল-টাইম চাঙ্কিং পরবর্তী চাঙ্ক তৈরি করে যখন বাহু বর্তমান চাঙ্কটি কার্যকর করছে, তারপর নতুন চাঙ্কের ওভারল্যাপিং ধাপগুলিকে ইতিমধ্যেই কার্যকর করা অংশের কাছাকাছি থাকতে নির্দেশ করে, যাতে বাহু সংযোগস্থলে থেমে না যায় বা ঝাঁকুনি না দেয়। 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 থেকে প্রশিক্ষণ-সময়ের ভেরিয়েন্ট আরও এগিয়ে যায়: মডেলটি একটি পরিষ্কার অ্যাকশন প্রিফিক্সের উপর শর্তারোপ করতে শেখে, তাই ইনফারেন্সে ওভারল্যাপটি নির্দেশিত হওয়ার পরিবর্তে প্রতি-অ্যাকশন ফ্লো টাইমস্টেপ দিয়ে হার্ড-ইনপেইন্ট করা হয় এবং গাইডেন্স ব্যাকওয়ার্ড পাস অদৃশ্য হয়ে যায়। প্রশিক্ষণের সময় এটি প্রতি উদাহরণে একটি প্রিফিক্স দৈর্ঘ্য নমুনা করে এবং অবশিষ্ট পোস্টফিক্সের উপর ফ্লো লস নেয়। সেই ফ্ল্যাগটি শুধুমাত্র মেইনে থাকে, 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 or H100Pi0.5, GR00T N1.7, GR00T N1.53 to 6 hours1.20 to 2.00 USDabout 4 to 12 USD
RTX 4090 or any 24 GB cardSmolVLA, ACT2 to 5 hours0.30 to 0.60 USDabout 1 to 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 পেপারে কোনো রিইনফোর্সমেন্ট লার্নিং পর্যায়ের বর্ণনা নেই। আপনি আপনার সরবরাহ করা একটি ভাষা স্ট্রিং-এর উপর ভিত্তি করে একটি নিম্ন-স্তরের নীতিকে প্রশিক্ষণ দেন, এমন একটি মডেলকে নয় যা নিজেই একটি দীর্ঘ কাজকে বিভক্ত করে।

এই গাইডটি কোন সংস্করণগুলির উপর ভিত্তি করে লেখা হয়েছে?

main-এ openpi এবং lerobot 0.6.1, 3 আগস্ট 2026 থেকে প্রকাশিত, উভয়ই 23 আগস্ট 2026-এ পড়া হয়েছে। v3.0 ডেটাসেট অক্টোবর 2025-এ 0.4.0 সহ এসেছে। 0.6.0 বেস প্যাকেজটিকে হালকা করেছে, তাই শুধুমাত্র lerobot[pi] আর ট্রেনিং স্ট্যাক ইনস্টল করে না, এবং ডিপ্লয়মেন্টকে lerobot-rollout-এ স্থানান্তরিত করেছে। ট্রেনিং-টাইম RTC শুধুমাত্র main-এ আছে; এখানে হোস্ট করা ট্রেনার 0.5.1 চালায়।

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started