LeRobot documentation
Hướng dẫn phần cứng tính toán cho việc huấn luyện LeRobot
Hướng dẫn phần cứng tính toán cho việc huấn luyện LeRobot
Ước tính kích thước cho việc huấn luyện một chính sách LeRobot: bao nhiêu VRAM mỗi chính sách cần, thời gian huấn luyện như thế nào, và chạy ở đâu khi phần cứng cục bộ không đủ.
Các con số bên dưới mang tính tham khảo — là các con số theo bậc độ lớn để chọn phần cứng, không phải dự đoán chính xác. Thông lượng phụ thuộc nhiều vào I/O của bộ dữ liệu, độ phân giải ảnh, kích thước lô và số lượng GPU.
Bộ nhớ theo nhóm chính sách
Các chính sách được nhóm theo kích thước backbone; các nhóm dưới đây cung cấp một giới hạn VRAM duy nhất cho mỗi nhóm thay vì lặp lại các con số cho từng chính sách. Bộ nhớ tăng gần như tuyến tính theo kích thước batch; AdamW (mặc định của LeRobot) mang theo trạng thái optimizer, làm tăng thêm khoảng 30–100% so với chỉ một bước forward+backward.
| Nhóm | Chính sách | VRAM tối đa (BS 8, AdamW) | Card đồ họa khởi đầu phù hợp |
|---|---|---|---|
| Light BC | act, vqbet, tdmpc | ~2–6GB | GPU trên laptop (RTX 3060), L4, A10G |
| Diffusion | diffusion, multi_task_dit | ~8–14GB | RTX 4070+ / L4 / A10G |
| VLA nhỏ | smolvla | ~10–16GB | RTX 4080+ / L4 / A10G |
| VLA lớn | pi0, pi0_fast, pi05, xvla, wall_x | ~24–40GB | A100 40 GB+ (24 GB khá chật chội ở BS 1) |
| Đa phương thức | groot, eo1 | ~24–40GB | A100 40 GB+ |
| RL | sac | config-dep. | Xem hướng dẫn HIL-SERL |
Hạn chế bởi bộ nhớ? Hãy giảm kích thước lô (~tuyến tính), sử dụng tích lũy gradient để khôi phục kích thước lô hiệu dụng, hoặc với SmolVLA hãy giữ freeze_vision_encoder=True.
Thời gian huấn luyện
Học mô phỏng trong Robotics thường hội tụ sau 5–10 epochs trên tập dữ liệu, chứ không phải hàng trăm nghìn bước thô. Khi bạn đã biết số epoch, thời gian thực tế về cơ bản là:
total_frames = sum of frames over all episodes # 50 ep × 30 fps × 30 s ≈ 45,000 steps_per_epoch = ceil(total_frames / (num_gpus × batch_size)) total_steps = epochs × steps_per_epoch wall_clock ≈ total_steps × per_step_time
Thời gian cho mỗi bước phụ thuộc vào chính sách và GPU. Các con số trong bảng dưới đây là mốc tham chiếu — hãy chọn hàng gần nhất với cấu hình của bạn và nhân tuyến tính với total_steps nếu bạn huấn luyện lâu hơn hoặc ngắn hơn.
Các kịch bản phổ biến
Thời gian thực tế tham khảo cho 5 epochs trên bộ dữ liệu ~50 tập (~45k khung hình ở 30 fps × 30 s), bộ tối ưu mặc định (AdamW), ảnh 640×480:
| Cài đặt | Chính sách | Batch | Thời gian thực |
|---|---|---|---|
| Một GPU RTX 4090 / RTX 3090 (24 GB) | act | 8 | ~30–60 phút |
| Một GPU RTX 4090 / RTX 3090 (24 GB) | diffusion | 8 | ~2–4h |
| Một L4 / A10G (24 GB) | act | 8 | ~1–2h |
| Một L4 / A10G (24 GB) | smolvla | 4 | ~3–6h |
| Một A100 40 GB | smolvla | 16 | ~1–2h |
| Một A100 40 GB | pi0 / pi05 | 4 | ~4–8h |
Cụm 4× H100 80 GB (accelerate) | diffusion | 32 | ~30–60 phút |
Cụm 4× H100 80 GB (accelerate) | smolvla | 32 | ~1–2h |
| Apple Silicon M1/M2/M3 Max (MPS) | act | 4 | ~6–14h |
Đây là các con số theo bậc độ lớn. Các lần chạy thực tế có thể sai lệch ±50% tùy thuộc vào độ phân giải hình ảnh, I/O của bộ dữ liệu, luồng của dataloader và mã SKU GPU cụ thể. Chúng hữu ích như một trực giác để trả lời câu hỏi “lần chạy này sẽ mất một giờ hay một ngày?”, chứ không phải là các SLA.
Việc sử dụng nhiều GPU rất quan trọng
accelerate launch --num_processes=N là cách dễ nhất để rút ngắn thời gian huấn luyện. Mỗi bước tối ưu hóa xử lý N × batch_size mẫu trong khoảng thời gian thực tế tương đương với một bước trên một GPU, do đó 4 GPU ≈ tăng tốc 4 lần cho các tác vụ bị giới hạn bởi khả năng tính toán. Xem hướng dẫn Multi GPU training để biết cách thiết lập đầy đủ.
Các điểm dữ liệu tham chiếu trên cụm 4×H100 80 GB (accelerate launch --num_processes=4), 5000 bước, batch 32, AdamW, tập dữ liệu imstevenpmwork/super_poulain_draft (~50 tập, ~640×480 ảnh):
| Chính sách | Thời gian thực | update_s | dataloading_s | Tỷ lệ sử dụng GPU | Các cờ đáng chú ý |
|---|---|---|---|---|---|
diffusion | 16m 17s | 0.167 | 0.015 | ~90% | mặc định (huấn luyện từ đầu) |
smolvla | 27m 49s | 0.312 | 0.011 | ~80% | --policy.path=lerobot/smolvla_base, freeze_vision_encoder=false, train_expert_only=false |
pi05 | 3h 41m | 2.548 | 0.014 | ~95% | --policy.pretrained_path=lerobot/pi05_base, gradient_checkpointing=true, dtype=bfloat16, bộ mã hóa thị giác + chuyên gia được huấn luyện |
Nhật ký huấn luyện tách toàn bộ lượt lặp thành dataloading_s (next(dl_iter)), preprocessing_s (chuyển đổi ảnh và pipeline chính sách), và update_s (cập nhật bộ tối ưu hóa). step_s bao gồm cả ba phần và điều khiển samples_per_s. Benchmark ở trên được tạo trước khi có sự tách biệt này, do đó dataloading_s của nó bao gồm cả tiền xử lý.
Lịch trình và điểm kiểm tra
Nếu bạn rút ngắn quá trình huấn luyện (ví dụ: 5k–10k bước trên một tập dữ liệu nhỏ), hãy rút ngắn lịch trình LR với --policy.scheduler_decay_steps≈--steps. Nếu không, LR sẽ duy trì ở mức gần đỉnh và không bao giờ suy giảm. Tương tự với --save_freq.
Chạy ở đâu
VRAM là bộ lọc đầu tiên. Trong cùng một phân khúc, hãy chọn dựa trên ngân sách và khả năng cung cấp — các cột $–$$$$ là tương đối; hãy kiểm tra giá hiện tại trên nhà cung cấp mà bạn thực sự sử dụng.
| Lớp | VRAM | Tier | Thoải mái cho |
|---|---|---|---|
| RTX 3090 / 4090 (tiêu dùng) | 24 GB | $ | Light BC, Diffusion, SmolVLA. Chật cho VLAs ở batch 1. |
| L4 / A10G (đám mây) | 24 GB | $–$$ | Cùng một envelope; phổ biến trên Google Cloud, RunPod, AWS g5/g6. |
| A100 40 GB | 40 GB | $$$ | Bất kỳ chính sách nào ở kích thước lô hợp lý. |
| A100 80 GB / H100 80 GB | 80 GB | $$$$ | Các cụm Multi-GPU; các lô lớn cho VLAs. |
| Chỉ CPU | — | — | Đừng huấn luyện. Hãy sử dụng Colab hoặc thuê một GPU. |
Việc làm tại Hugging Face
Hugging Face Jobs cho phép bạn chạy huấn luyện trên hạ tầng HF được quản lý, tính phí theo từng giây, mà không cần sở hữu GPU. lerobot-train sẽ gửi và phát trực tiếp công việc cho bạn — chỉ cần thêm --job.target=<flavor> vào lệnh huấn luyện thông thường:
lerobot-train \ --policy.type=act --dataset.repo_id=<USER>/<DATASET> \ --policy.repo_id=<USER>/act_<task> \ --job.target=a10g-large
Ghi chú:
- Chạy
hf auth loginmột lần trước khi gửi, công việc sẽ chạy dưới token của bạn. --job.targettương ứng với bảng ở trên:t4-small/t4-medium(T4, chỉ ACT),l4x1/l4x4(L4 24 GB),a10g-small/large/largex2/largex4(A10G 24 GB mở rộng),a100-large(A100). Liệt kê danh mục hiện tại kèm giá cả bằnghf jobs hardware, hoặc xem https://huggingface.co/docs/hub/jobs.- Công việc mặc định có thời gian chờ
2d(48 giờ). Hãy ghi đè bằng--job.timeout=4h(hoặc bất kỳ chuỗi thời gian hợp lệ nào khác) để rút ngắn hoặc kéo dài thời gian chờ. Công việc sẽ tự động dừng khi lệnh hoàn tất. - Để xem hướng dẫn chi tiết — tải lên bộ dữ liệu, phát trực tiếp checkpoint, tiếp tục một lần chạy trên một tác vụ — hãy xem hướng dẫn huấn luyện học bắt chước.