Ma trận huấn luyện AY-Robots với năm chính sách làm hàng và bốn cánh tay robot làm cột, mỗi ô là một liên kết đến hướng dẫn tinh chỉnh cụ thể
Pi0.5Khớp dòng chảyHuấn luyện VLALeRobotTinh chỉnh

Cách huấn luyện Pi0.5 trên dữ liệu robot của riêng bạn

AY-Robots ResearchAugust 23, 202616 phút đọc

Tinh chỉnh Pi0.5, VLA khớp dòng chảy từ Physical Intelligence, trên dữ liệu robot của riêng bạn. Các lệnh thực tế cho openpi và lerobot pi05, những cạm bẫy định dạng tập dữ liệu, giới hạn VRAM và độ trễ.

Pi0.5 là mô hình bạn tìm đến khi một chính sách cần hoạt động trong một căn phòng mà nó chưa từng thấy. Nó cũng là mô hình khó sử dụng nhất trong số năm chính sách có thể huấn luyện ở đây để tinh chỉnh thủ công: kho lưu trữ gốc ưu tiên JAX, cổng LeRobot đã di chuyển triển khai ra khỏi lerobot-record trong phiên bản 0.6.0 và làm cho bản cài đặt cơ bản quá nhỏ để huấn luyện, và một quá trình tinh chỉnh đầy đủ không thể chạy trên card 4090. Dưới đây: chi phí của khớp dòng khi suy luận, hai lộ trình lệnh, và con số 485 ms quyết định liệu kết quả có thể sử dụng được hay không.

Những điều bạn cần biết

  • Một VLA khớp dòng: một VLM PaliGemma 3B cộng với một chuyên gia hành động 300M giải mã các đoạn hành động liên tục. Hai lộ trình để tinh chỉnh nó, openpi và LeRobot pi05, cách nhau 0.65 điểm trên mức trung bình của LIBERO.
  • Tinh chỉnh đầy đủ cần hơn 70 GB VRAM. openpi liệt kê LoRA ở mức 22.5 GB, chỉ trên đường dẫn JAX của nó.
  • Tập dữ liệu phải là LeRobotDataset v3.0 với các phân vị q01 và q99 trong meta/stats.json, nếu không thì batch đầu tiên sẽ lỗi.
  • Kiểm tra phiên bản lerobot của bạn trước: 0.6.0 đã làm cho gói cơ bản nhẹ hơn và di chuyển triển khai ra khỏi lerobot-record.
  • Ở đây nó chạy ở 485 ms mỗi bước hành động, cần 50 tập, và tốn khoảng 4 đến 12 USD mỗi lần chạy.

Pi0.5 thực sự là gì

Physical Intelligence đã công bố pi0 vào tháng 10 năm 2024: một mô hình khớp dòng mô hình hành động ngôn ngữ thị giác trên một VLM đã được huấn luyện trước: PaliGemma với 3 tỷ tham số cộng với một chuyên gia hành động 300M được khởi tạo từ đầu, tổng cộng 3.3 tỷ. Bài báo cáo huấn luyện trước trên hơn 10,000 giờ dữ liệu robot trên 7 cấu hình robot và 68 tác vụ. Xem thêm trong bài viết về pi0.

Pi0.5 (arXiv 2504.16054, 22 tháng 4 năm 2025) giữ nguyên cấu trúc đó và thay đổi chế độ huấn luyện: dữ liệu web, phát hiện đối tượng, hướng dẫn bằng lời nói từ con người huấn luyện robot, nhãn nhiệm vụ phụ, dữ liệu đa thể hiện từ robot trong nhiều gia đình. Kết quả là một robot dọn dẹp nhà bếp trong những ngôi nhà không có trong tập huấn luyện. README của openpi bổ sung một chi tiết mà tiêu đề không đề cập: pi0.5 được phát hành đã được huấn luyện với cách ly kiến thức (arXiv 2505.23705).

Thuộc tínhpi0pi0.5
Biến thể xương sống VLMgemma_2b (PaliGemma)gemma_2b (PaliGemma)
Biến thể chuyên gia hành độnggemma_300mgemma_300m
action_dim3232
action_horizon mặc định5050
max_token_len48200
discrete_state_inputfalsetrue, trạng thái được rời rạc hóa thành các nhóm trong lời nhắc
Điểm kiểm tra cơ sởgs://openpi-assets/checkpoints/pi0_basegs://openpi-assets/checkpoints/pi05_base
Những gì công khai không phải là toàn bộ bài báo

README của openpi nêu rõ: kho lưu trữ chỉ hỗ trợ đầu khớp dòng (flow matching head), cho cả huấn luyện và suy luận pi0.5. Bài báo mô tả hai giai đoạn và mã chỉ thực hiện giai đoạn thứ hai: tiền huấn luyện biểu diễn mọi hành động dưới dạng các token rời rạc thông qua bộ mã hóa FAST, và khi triển khai, mô hình suy luận một nhiệm vụ phụ cấp cao trước mỗi khối hành động. Không có giai đoạn nào trong số đó có trong kho lưu trữ. Thẻ lerobot/pi05_base đưa ra danh sách tương tự và bổ sung RL, mặc dù bài báo pi0.5 không mô tả bất kỳ giai đoạn học tăng cường nào. Cổng LeRobot kế thừa phạm vi đó, và mọi trình huấn luyện được lưu trữ trên đó cũng vậy, bao gồm cái ở đây. Cấp phép cũng được chia tách: trang tài liệu pi05 nói Apache 2.0, thẻ lerobot/pi05_base được gắn thẻ license: gemma.

Những gì khớp dòng thay đổi về huấn luyện và suy luận

Một chính sách bạn có thể huấn luyện trên SO-100 hoặc hồi quy trực tiếp các hành động (ACT) hoặc mã hóa chúng thành token và giải mã tự hồi quy (pi0-FAST). Khớp dòng không làm cả hai điều này: nó học một trường vector vận chuyển nhiễu đến một khối hành động sạch, sau đó tích hợp nó. Bài báo pi0 sử dụng 10 bước tích hợp với kích thước bước 0.1; cấu hình pi05 của LeRobot cũng có cùng `num_inference_steps: int = 10`.

  • Huấn luyện: hàm mất mát hồi quy một khối hành động bị nhiễu. Không có bộ mã hóa để tinh chỉnh, không có sự rời rạc hóa các góc khớp của bạn.
  • Suy luận: một khối tốn mười lần truyền xuôi qua chuyên gia hành động. Điều đó mang tính cấu trúc, không phải là vấn đề tinh chỉnh.
  • Đầu ra: các hành động liên tục có chiều 32, được đệm bên trong, hàm mất mát được tính trên các chiều mà robot của bạn có. Một cánh tay 6-DoF cộng với bộ kẹp sử dụng 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
Đọc từ src/openpi/models/pi0_config.py trên nhánh chính openpi, 23 tháng 8 năm 2026.

Xương sống PaliGemma, và cổng phía trước nó

PaliGemma (arXiv 2407.07726) là một bộ mã hóa thị giác SigLIP-So400m trên mô hình ngôn ngữ Gemma-2B, với khoảng 3 tỷ tham số. Pi0.5 kế thừa bộ mã hóa của nó, và bộ mã hóa đó nằm trong một kho lưu trữ có kiểm soát truy cập. Đây là cách phổ biến nhất khiến lần chạy đầu tiên thất bại, trước khi đến bước huấn luyện.

Chấp nhận giấy phép có kiểm soát truy cập trước khi thuê GPU

Tài liệu LeRobot pi05 nêu rõ: pi0.5 sử dụng bộ mã hóa google/paligemma-3b-pt-224 có kiểm soát truy cập, vì vậy hãy chấp nhận giấy phép của nó trên Hub và chạy hf auth login trước. Quyền truy cập được cấp thủ công, không phải ngay lập tức. Bỏ qua bước này, bắt đầu một lần chạy đám mây trả phí, và bạn sẽ phải trả tiền cho một pod không thể tải xuống bộ mã hóa.

Trước khi bắt đầu: định dạng tập dữ liệu, các tập, phần cứng

Pi0.5 trong LeRobot đọc một tập dữ liệu LeRobot theo bố cục v3.0, được giới thiệu cùng với lerobot 0.4.0 vào tháng 10 năm 2025: nhiều tập trên mỗi tệp Parquet và MP4 thay vì một tệp cho mỗi tập, với các ranh giới trong meta/episodes/ thay vì tên tệp. Ghi lại bằng ứng dụng máy tính để bàn hoặc làm theo ghi lại tập dữ liệu đầu tiên của bạn và bạn sẽ có nó.

Chế độBộ nhớ GPU yêu cầuGPU ví dụ
Suy luậnhơn 8 GBRTX 4090
Tinh chỉnh, LoRAhơn 22.5 GBRTX 4090
Tinh chỉnh, đầy đủhơn 70 GBA100 80 GB hoặc H100
Cái bẫy phiên bản gây mất một ngày

Pi0.5 và SmolVLA yêu cầu LeRobot v3.0. GR00T N1.7 và GR00T N1.5 yêu cầu v2.0 hoặc v2.1 và sẽ gặp lỗi với tập dữ liệu v3.0. Một phiên ghi hình không thể cung cấp dữ liệu cho cả hai mà không cần chuyển đổi, và lỗi không hiển thị "sai phiên bản tập dữ liệu". Xem tập dữ liệu bị từ chối: yêu cầu 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
Từ tài liệu LeRobotDataset v3.0.

Nền tảng yêu cầu ít nhất 50 tập cho Pi0.5, cùng mức tối thiểu với GR00T và ACT. Huấn luyện trước đảm nhiệm phần lớn công việc, vì vậy 50 tập sạch sẽ tốt hơn 200 tập cẩu thả. Mới bắt đầu? Hãy bắt đầu với hướng dẫn thu thập dữ liệu.

Trang chính sách của AY-Robots so sánh năm chính sách có thể huấn luyện theo tham số, cấp GPU, độ trễ và số tập tối thiểu.
Pi0.5 nằm trong phân khúc A100 và H100 với 485 ms mỗi bước hành động, với mức tối thiểu 50 tập.

Lộ trình A: tinh chỉnh với kho lưu trữ openpi

Triển khai tham chiếu: ưu tiên JAX, chỉ được kiểm tra trên Ubuntu 22.04, được điều khiển bởi các đối tượng cấu hình thay vì cờ. Một lộ trình PyTorch đã ra mắt vào tháng 9 năm 2025, được xác thực trên LIBERO. Ba bước: chuyển đổi dữ liệu của bạn, định nghĩa cấu hình, huấn luyện và phục vụ.

  1. 1
    Sao chép và cài đặt

    openpi sử dụng uv. GIT_LFS_SKIP_SMUDGE là thứ cho phép LeRobot trở thành một phụ thuộc mà không cần các blob 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
    Chuyển đổi dữ liệu của bạn sang tập dữ liệu LeRobot

    Upstream cung cấp các bộ chuyển đổi cho LIBERO và DROID và mong bạn điều chỉnh một trong số đó. Công việc chính là ánh xạ khóa.

    bash
    uv run examples/libero/convert_libero_data_to_lerobot.py --data_dir /path/to/your/data
  3. 3
    Thêm cấu hình huấn luyện

    Các cấu hình là các mục TrainConfig trong src/openpi/training/config.py. Cấu hình này điều chỉnh pi05_droid_finetune, với bộ tải trọng lượng trỏ đến 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
    Tính toán thống kê chuẩn hóa

    Chạy dựa trên tên cấu hình, không phải tập dữ liệu. Bỏ qua bước này là lỗi đầu tiên kinh điển ở đây.

    bash
    uv run scripts/compute_norm_stats.py --config-name pi05_so100
  5. 5
    Huấn luyện

    Biến này cho phép JAX sử dụng 90 phần trăm bộ nhớ GPU thay vì 75 phần trăm mặc định. Trên một card 80 GB, điều này quyết định liệu quá trình chạy có thành công hay không.

    bash
    XLA_PYTHON_CLIENT_MEM_FRACTION=0.9 uv run scripts/train.py pi05_so100 \
        --exp-name=my_experiment \
        --overwrite
  6. 6
    Phục vụ

    Máy chủ lắng nghe trên cổng 8000 và trả lời các truy vấn quan sát; thời gian chạy robot của bạn là máy khách.

    bash
    uv run scripts/serve_policy.py policy:checkpoint \
        --policy.config=pi05_so100 \
        --policy.dir=checkpoints/pi05_so100/my_experiment/20000
Đường dẫn PyTorch không phải là đường dẫn JAX

Việc triển khai PyTorch của openpi không hỗ trợ pi0-FAST, mixed precision, FSDP, LoRA hoặc EMA weights, vì vậy LoRA đạt 22.5 GB chỉ có trên JAX, thông qua các biến thể gemma_2b_loragemma_300m_lora. Tệ hơn: quá trình cài đặt sao chép các tệp đã vá lỗi lên phiên bản transformers 4.53.2 đã cài đặt của bạn, và README cảnh báo rằng với chế độ hardlink mặc định của uv, điều này sẽ sửa đổi vĩnh viễn transformers trong bộ nhớ cache của uv và có thể rò rỉ sang các dự án khác. Hoàn tác bằng lệnh uv cache clean transformers.

Lộ trình B: tinh chỉnh với lerobot pi05

Cổng LeRobot gói các trọng số tương tự trong CLI mà bạn đã sử dụng cho ACTSmolVLA. Mọi thứ dưới đây đã được kiểm tra với lerobot 0.6.1, bản phát hành kể từ ngày 3 tháng 8 năm 2026, và tài liệu pi05 vào ngày 23 tháng 8 năm 2026. Các phiên bản rất quan trọng ở đây: bộ dữ liệu v3.0 đã xuất hiện với 0.4.0 vào tháng 10 năm 2025, blog 0.5.0 ngày 9 tháng 3 năm 2026 giới thiệu pi0-FAST và Real-Time Chunking, và 0.6.0 vào ngày 6 tháng 7 năm 2026 đã làm cho gói cơ sở nhẹ hơn và chuyển việc triển khai sang lerobot-rollout.

Một điều không thay đổi: lerobot-trainlerobot-record đã là các điểm truy cập trong 0.3.2, tháng 8 năm 2025. Một hướng dẫn vẫn gọi python -m lerobot.scripts.train đã có từ trước một năm thay đổi và cũng đáng để không tin tưởng vào phần còn lại.

  1. 1
    Cài đặt với các phần bổ sung phù hợp

    Kể từ phiên bản 0.6.0, bản cài đặt cơ bản chỉ bao gồm các phụ thuộc ML cốt lõi, và phần bổ sung pi không thêm mã tập dữ liệu hoặc huấn luyện, vì vậy việc tinh chỉnh cũng cần phần bổ sung training. Các lệnh cài đặt một dòng cũ hơn sẽ thất bại ở đây khi nhập.

    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
    Xác thực

    Chấp nhận giấy phép paligemma-3b-pt-224 trong trình duyệt, sau đó đăng nhập trên máy dùng để huấn luyện.

    bash
    hf auth login
  3. 3
    Thêm thống kê phân vị

    Pi0.5 chuẩn hóa STATE và ACTION bằng phân vị, vì vậy meta/stats.json cần q01 và q99. Các tập dữ liệu cũ hơn chỉ chứa 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
    Tinh chỉnh từ lerobot/pi05_base

    Đặt kích thước batch phù hợp với khả năng của card đồ họa của bạn; tài liệu sử dụng 64 trên LIBERO với 80 GB. Truyền bfloat16 một cách rõ ràng, mặc định của cấu hình là 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
    Chạy trên cánh tay robot

    Trong 0.6.x, đây là lerobot-rollout: lerobot-record từ chối một policy và không chấp nhận tên tập dữ liệu eval_. Base điều khiển cánh tay robot, sentry ghi lại quá trình rollout.

    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
FlagWhat it doesNote
--policy.type=pi05chọn Pi0.5bắt buộc với pretrained_path, bỏ qua với --policy.path
--policy.pretrained_pathchỉ tải trọng sốtên đặc trưng từ tập dữ liệu của bạn, cài đặt đã lưu bị đặt lại
--policy.pathtrọng số cộng với config.json của checkpointcác cài đặt đã lưu như n_action_steps được kế thừa
--policy.n_action_stepssố bước được tiêu thụ mỗi chunkmặc định là 50, không bao giờ vượt quá chunk_size (mặc định 50)
--policy.train_expert_onlyđóng băng VLM, huấn luyện chuyên giamặc định là false, ít bộ nhớ hơn, có thể ảnh hưởng đến tỷ lệ thành công
--policy.gradient_checkpointingtính toán lại thay vì lưu trữ các kích hoạtmặc định là false, đòn bẩy đầu tiên khi một lần chạy không vừa
--peft.method_type=LORAbộ điều hợp LoRA thay vì trọng số đầy đủcần phần bổ sung peft, ví dụ được ghi lại là SmolVLA
--policy.rtc_training_max_delayđiều kiện tiền tố hành động cho RTCchỉ nhánh chính, không có trong 0.6.1, phải nhỏ hơn chunk_size
--rename_mapánh xạ các cột tập dữ liệu vào các đặc trưng của policycần thiết khi các khóa camera của bạn khác nhau
Lỗi mà hầu hết các lần chạy đầu tiên gặp phải

Nếu không có phân vị, bạn sẽ gặp ValueError: QUANTILES normalization mode requires q01 and q99 stats ở batch đầu tiên. Hãy tính toán lại các thống kê, nhưng kết quả sẽ nằm trong $HF_LEROBOT_HOME/your_dataset, chứ không phải bộ nhớ cache mà --dataset.repo_id đọc, vì vậy hãy huấn luyện với --dataset.root trỏ đến đó hoặc đẩy lên Hub. Hoặc bỏ qua phân vị với --policy.normalization_mapping='{"ACTION": "MEAN_STD", "STATE": "MEAN_STD", "VISUAL": "IDENTITY"}', như lệnh tham chiếu của LIBERO đã làm.

Ba bộ giá trị mặc định, và những giá trị nào đến được trình huấn luyện

TrainConfig của openpi là tham chiếu, PI05Config của LeRobot là thứ mà lerobot-train sử dụng khi bạn không chỉ định gì, và biểu mẫu ở đây gửi một bộ thứ ba. Điều bất ngờ là tốc độ học: cả hai mặc định upstream đều đạt đỉnh 2.5e-5, trong khi cấu hình pi05_libero của openpi và nền tảng này nâng nó lên 5e-5.

Cài đặtopenpi TrainConfiglerobot pi05 và lerobot-trainAY-Robots gửi
Kích thước lô3281
Tốc độ học đỉnh2.5e-5, suy giảm cosineoptimizer_lr 2.5e-55e-5
Số bước huấn luyện30,000100,00030,000
Khoảng thời gian checkpoint1,000 steps20,000 stepskhông có trong biểu mẫu
Seed421,000có trong biểu mẫu
Khối hành độngaction_horizon 50chunk_size 50, n_action_steps 50không có trong biểu mẫu
Kiểu dữ liệu trọng sốbfloat16float32 until you pass --policy.dtypekhông có trong biểu mẫu
Tích lũy gradientkhông có tùy chọn này, thay vào đó là fsdp_devicesabsent from every release so far16, và nó bị loại bỏ

Bản port có đáng tin cậy không? Nhóm LeRobot đã tinh chỉnh mô hình cơ sở LIBERO thêm 6k bước và so sánh với các số liệu tham chiếu của openpi trên bốn bộ: trung bình 97.5 phần trăm so với 96.85, dẫn trước trên Libero 10, và tụt lại trên Spatial. Lộ trình này là một lựa chọn về công cụ, không phải về chất lượng.

Tinh chỉnh Pi0.5 trên dữ liệu của riêng bạn
Ưu điểm
  • Hơn 10,000 giờ tiền huấn luyện robot đằng sau nó, vì vậy 50 tập nhiệm vụ của bạn có thể là đủ.
  • Hành động liên tục: không có bộ mã hóa để tinh chỉnh, không có giới hạn rời rạc hóa trên các góc khớp của bạn.
  • Bản port LeRobot đạt 97.5 phần trăm trên mức trung bình LIBERO so với 96.85 của openpi, vì vậy CLI thân thiện hơn không tốn chi phí đáng kể nào.
  • Các đường dẫn hiệu quả về tham số ở cả hai phía: các biến thể JAX LoRA của openpi, tích hợp PEFT của LeRobot.
Đánh đổi
  • Tinh chỉnh hoàn toàn cần hơn 70 GB. Con số LoRA 22.5 GB là số liệu JAX của openpi; không có số liệu nào được công bố cho pi05 dưới PEFT.
  • 485 ms mỗi bước hành động, chậm nhất trong năm ở đây: gấp đôi SmolVLA, gấp hai mươi bốn lần ACT.
  • Yêu cầu LeRobot v3.0, vì vậy một tập dữ liệu được ghi lại cho một lần chạy GR00T cần được chuyển đổi, và ngược lại.
  • Các tùy chọn mới được đưa lên main trước: bộ nhớ RTC và MEM trong thời gian huấn luyện không có trong 0.6.1, vì vậy tài liệu mới nhất có thể yêu cầu cài đặt từ git.

Thực tế 485 ms, và điểm mà nó không còn khả dụng

Điều này quyết định dự án của bạn, vì vậy nó được đặt trước bảng chi phí. trên mỗi bước hành động được đo ở đây cho Pi0.5 là 485 ms. So với bốn loại khác:

Chính sáchSuy luận trên mỗi bước hành độngTham sốCấp GPUSố tập tối thiểu
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
Trang so sánh trực tiếp của AY-Robots cho GR00T N1.7 và Pi0.5, với các tham số, cấp GPU, độ trễ và định dạng tập dữ liệu
Cùng cấp GPU, cùng số tập tối thiểu, phiên bản tập dữ liệu khác nhau, khoảng cách độ trễ gấp ba lần.
Suy luận phải nằm cạnh các servo

Vòng điều khiển trên năm mô hình này chạy từ 20 đến 485 ms cho mỗi bước hành động. Các chuyến đi khứ hồi qua internet công cộng cộng thêm 485 ms sẽ biến một chính sách hoạt động tốt thành một chính sách do dự. Suy luận từ xa khả thi cho các tác vụ chọn và đặt chậm, chứ không phải cho chuyển động phản ứng nhanh. Chúng tôi thà nói điều đó hơn là bán một bản demo chỉ hoạt động trên mạng LAN. Nếu cánh tay robot của bạn tạm dừng giữa các khối, hãy bắt đầu tại chính sách bị đóng băng giữa chuyển động.

Phía thượng nguồn có một câu trả lời, và một nửa trong số đó đã có trong bản phát hành bạn có thể cài đặt. Phân đoạn thời gian thực (Real-Time Chunking) tạo ra phân đoạn tiếp theo trong khi cánh tay robot vẫn đang thực hiện phân đoạn hiện tại, sau đó hướng dẫn các bước chồng chéo của phân đoạn mới để giữ gần với phần đã thực hiện, nhờ đó cánh tay robot không bị kẹt hoặc giật ở điểm nối. Dạng suy luận thời gian thực được phát hành trong nhật ký thay đổi 0.4.2 cho Pi0, Pi0.5 và SmolVLA và là một cờ triển khai, không yêu cầu huấn luyện lại:

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 là số bước của phân đoạn trước mà phân đoạn mới phải đồng bộ; tài liệu RTC đưa ra 8 đến 12 là phạm vi thông thường. Backend suy luận mặc định là --inference.type=sync.

Nó không làm cho mô hình nhanh hơn. Nó che giấu khoảng trống: 485 ms vẫn được tiêu tốn, nhưng nằm ngoài đường dẫn quan trọng, vì vậy hàng đợi không bị cạn giữa các phân đoạn. Biến thể thời gian huấn luyện từ arXiv 2512.05964 còn tiến xa hơn: mô hình học cách điều kiện hóa trên một tiền tố hành động sạch, vì vậy tại thời điểm suy luận, sự chồng chéo được điền cứng bằng các bước thời gian luồng trên mỗi hành động thay vì được hướng dẫn, và quá trình truyền ngược hướng dẫn biến mất. Trong quá trình huấn luyện, nó lấy mẫu độ dài tiền tố cho mỗi ví dụ và tính toán tổn thất luồng trên phần hậu tố còn lại. Cờ đó chỉ có trên nhánh chính, không có trong 0.6.1, và độ trễ bạn huấn luyện phải nằm dưới chunk_size.

Hai cách để có được checkpoint Pi0.5

Bạn thuê hoặc sở hữu một card 80 GB, cài đặt một trong các stack ở trên, chuyển đổi tập dữ liệu của mình và theo dõi quá trình chạy. Bạn giữ mọi quyền kiểm soát: JAX LoRA của openpi, bộ điều hợp PEFT của LeRobot, các hành động tương đối, ánh xạ khóa tùy chỉnh. Bạn cũng phải chịu mọi thất bại.

  • Phần cứng: A100 80 GB hoặc H100, hoặc card 24 GB trên đường dẫn JAX LoRA của openpi.
  • Thiết lập: một buổi chiều cho lần chạy đầu tiên, chủ yếu là ánh xạ khóa và tokenizer có cổng.
  • Không có trên biểu mẫu được lưu trữ: bộ điều hợp PEFT, các hành động tương đối, RTC trong thời gian huấn luyện, bộ nhớ 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
Lệnh mà không có biểu mẫu được lưu trữ nào chạy, và pip không thể cài đặt: RTC trong thời gian huấn luyện là một cờ của nhánh chính.

Khi nó không hoạt động

Triệu chứngNguyên nhân có khả năng nhất
Chạy bị từ chối trước khi bắt đầuTập dữ liệu v2.1 nhưng Pi0.5 yêu cầu v3.0, hoặc ngược lại đối với GR00T
ImportError, thiếu gói datasetslerobot 0.6.x không có phần bổ sung huấn luyện
ValueError về q01 và q99 trên lô đầu tiênKhông có phân vị trong meta/stats.json; tính toán lại hoặc sử dụng MEAN_STD
CUDA hết bộ nhớ ở bước 0Tinh chỉnh toàn bộ dưới 70 GB; thử checkpointing hoặc train_expert_only
Lỗi 401 hoặc lỗi repo có cổngGiấy phép tokenizer PaliGemma không được chấp nhận
Mất mát giảm, robot không làm gìKhông khớp chuẩn hóa, hoặc chính sách sao chép trạng thái
Cánh tay tạm dừng giữa các khốiĐộ trễ mỗi bước cộng với thời gian khứ hồi; hàng đợi khối bị cạn
Hoạt động trong một thiết lập, thất bại trong thiết lập khácQuá ít tập, hoặc tất cả trong một cấu hình

Chi phí của một lần chạy

Pi0.5 nằm trong phân khúc đắt tiền vì nó cần một card 80 GB, và giá giao ngay thay đổi, vì vậy con số này là một khoảng giá chứ không phải một mức giá cố định. Đối với nhiều tác vụ SO-100, hãy huấn luyện SmolVLA hoặc ACT trên phân khúc 24 GB trước, xác nhận rằng tác vụ có thể học được, sau đó dành hàng giờ A100 cho nó. Huấn luyện chính sách đầu tiên của bạn hướng dẫn vòng lặp rẻ hơn đó, và giá cả chứa các phân khúc hiện tại.

Phân khúcChính sáchLần chạy điển hìnhGiá mỗi giờChi phí mỗi lần chạy
A100 80 GB or H100Pi0.5, GR00T N1.7, GR00T N1.53 to 6 hours1.20 to 2.00 USDkhoảng 4 to 12 USD
RTX 4090 hoặc bất kỳ card 24 GB nàoSmolVLA, ACT2 to 5 hours0.30 to 0.60 USDkhoảng 1 to 3 USD
Bảng chi phí AY-Robots hiển thị GPU mà mỗi chính sách cần, thời gian chạy và giá điển hình, cũng như số lượng tập cần thiết trước khi một chính sách hữu ích
Hai cấp độ tương tự trên trang sản phẩm: Pi0.5 thuê thẻ 80 GB, SmolVLA và ACT vừa với 4090.

Trước khi dành cả buổi tối: GR00T N1.7 against Pi0.5Pi0.5 against SmolVLA trình bày các số liệu tương tự một cách trực tiếp. Đấu trường chứa 85 mô hình VLA với 332 kết quả benchmark, mỗi kết quả được liên kết với nguồn của nó, và thông tin cơ bản về dòng này có trong tổng quan về VLA của chúng tôi.

Huấn luyện Pi0.5 mà không cần xây dựng ngăn xếp

Chọn tập dữ liệu và các siêu tham số trong một biểu mẫu. Hệ thống phụ trợ thuê một thẻ 80 GB trên thị trường giao ngay, chạy trình huấn luyện và ghi các điểm kiểm tra vào bộ lưu trữ đối tượng. Hướng dẫn cho SO-100, SO-101, Koch v1.1 và LeKiwi.

Mở các hướng dẫn huấn luyện
Tôi có thể tinh chỉnh Pi0.5 trên RTX 4090 không?

Không phải là tinh chỉnh hoàn chỉnh: openpi liệt kê hơn 70 GB cho việc đó, vì vậy cần một A100 80 GB hoặc H100. Con số LoRA 22.5 GB của nó thuộc về đường dẫn JAX; triển khai PyTorch không có LoRA. Tích hợp PEFT của LeRobot tồn tại, nhưng ví dụ được ghi lại của nó là SmolVLA và không có con số VRAM nào được công bố cho pi05.

Tôi cần bao nhiêu tập?

Năm mươi, cùng mức sàn với GR00T và ACT; chỉ SmolVLA thấp hơn, ở mức 30. Điểm kiểm tra cơ sở mang hơn 10.000 giờ tiền huấn luyện, vì vậy việc tinh chỉnh là thích nghi hơn là học từ đầu: 50 tập sạch, đa dạng tốt hơn hai trăm tập từ một cấu hình.

Sự khác biệt giữa --policy.path và --policy.pretrained_path là gì?

--policy.path tải trọng số và config.json của điểm kiểm tra, vì vậy các cài đặt đã lưu như n_action_steps được kế thừa và --policy.type phải được bỏ qua. --policy.pretrained_path chỉ tải trọng số: tên tính năng đến từ tập dữ liệu của bạn, cài đặt đã lưu được đặt lại, --policy.type là bắt buộc. Đó là lý do tại sao lệnh LIBERO truyền n_action_steps=10 và empty_cameras=1 một cách rõ ràng; nếu không chúng sẽ trở về 50 và 0.

Phiên bản mở có cung cấp cho tôi Pi0.5 đầy đủ từ bài báo không?

Không. Cả hai chỉ hỗ trợ đầu hành động khớp dòng chảy. Giai đoạn tiền huấn luyện mã thông báo rời rạc với bộ mã hóa hành động FAST và dự đoán tác vụ phụ cấp cao không được phát hành, và thẻ lerobot/pi05_base thêm RL vào danh sách đó mặc dù bài báo pi0.5 không mô tả giai đoạn học tăng cường nào. Bạn huấn luyện một chính sách cấp thấp được điều kiện hóa bởi một chuỗi ngôn ngữ bạn cung cấp, chứ không phải một mô hình tự phân tách một tác vụ dài.

Hướng dẫn này được viết dựa trên các phiên bản nào?

openpi trên main và lerobot 0.6.1, bản phát hành từ ngày 3 tháng 8 năm 2026, cả hai đều được đọc vào ngày 23 tháng 8 năm 2026. Các tập dữ liệu v3.0 đã đến cùng với 0.4.0 vào tháng 10 năm 2025. 0.6.0 đã làm cho gói cơ sở nhẹ hơn, vì vậy lerobot[pi] một mình không còn cài đặt ngăn xếp huấn luyện, và chuyển triển khai sang lerobot-rollout. RTC thời gian huấn luyện chỉ có trên main; trình huấn luyện được lưu trữ ở đây chạy 0.5.1.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started