Vì sao bài 5 nói về scaling law?
Trong bốn phần đầu của series, ta đã đi từ bức tranh sở hữu dữ liệu, cách thu data bằng teleoperation, cách khai thác video người, đến synthetic pipeline từ sim sang thực. Nếu bạn mới vào series, hãy đọc lại Bài 1: bản đồ cuộc chiến data, Bài 2: teleoperation, và Bài 4: synthetic data pipeline. Bài 5 trả lời câu hỏi rất thực dụng: khi nào thu thêm demo giúp robot giỏi hơn, và khi nào chỉ đang đốt tiền?
Trong LLM, scaling law thường được nói bằng số token, số tham số, và compute. Với robot, câu chuyện khác hơn. Một token text rẻ, copy được vô hạn, và không làm gãy cánh tay robot. Một demonstration robot cần operator, hardware, camera, an toàn, reset scene, labeling, kiểm thử, và đôi khi phải chạy lại vì gripper trượt. Vì vậy một team humanoid không thể chỉ nói "thu thêm 1 triệu demo" như cách một team web crawler nói "crawl thêm 1 nghìn tỷ token".
Paper Data Scaling Laws in Imitation Learning for Robotic Manipulation của Lin et al. là một trong những paper quan trọng nhất cho câu hỏi này. Nhóm tác giả không chỉ train policy trong simulator rồi vẽ curve đẹp. Họ thu hơn 40.000 demonstration, chạy hơn 15.000 real-world robot rollout, và phân tích ba trục dữ liệu: số môi trường, số vật thể, và số demonstration. Kết luận cốt lõi rất đáng nhớ:
Generalization của policy tăng gần theo power law khi tăng diversity của environment và object, nhưng không có power law rõ ràng khi chỉ tăng số demo trong cùng một setup.
Nói đơn giản: robot học được nhiều hơn khi thấy thêm bàn, ánh sáng, background, vật thể, pose, clutter, và biến thể thao tác. Robot học ít hơn rất nhiều khi bạn bắt nó xem lại cùng một cái bàn, cùng một cái cốc, cùng một camera, thêm 500 lần nữa.
Scaling law là gì, nói theo robot?
Scaling law là quan hệ có dạng gần như:
error ≈ A * N^(-alpha) + irreducible_error
Trong đó N có thể là số object, số environment, số environment-object pair, số task, số trajectory, hoặc số token action. alpha càng lớn thì thêm dữ liệu càng có lợi. irreducible_error là phần lỗi không biến mất chỉ bằng cách thu thêm cùng loại dữ liệu, ví dụ perception sai, action space thiếu, controller yếu, sensor latency, hoặc task cần force feedback mà dataset không ghi.
Với beginner, hãy nhớ hình ảnh này:
Thêm setup mới:
bàn mới, ánh sáng mới, object mới, camera hơi lệch
-> model học invariance và robust behavior
Thêm demo giống hệt setup cũ:
cùng bàn, cùng object, cùng góc camera, cùng operator
-> model giảm noise ban đầu, sau đó nhanh plateau
Trong paper Lin et al., biến đo chính không phải validation loss đẹp trên file log. Họ đánh giá policy trên môi trường và object chưa thấy, với robot thật. Đây là điểm quan trọng vì imitation learning hay bị lừa bởi MSE: action predicted gần demo không nhất thiết robot thật sẽ thành công. Paper cũng ghi nhận MSE validation có thể dùng để debug, nhưng không luôn tương quan tốt với hiệu năng rollout thật.
Lin et al. 2024: thiết kế thí nghiệm
Paper tập trung vào manipulation single-task, không phải một VLA generalist học hàng nghìn task. Họ chọn hai task chính để fit scaling curve:
| Task | Robot cần làm gì | Vì sao hữu ích cho scaling |
|---|---|---|
| Pour Water | Cầm chai, đổ nước vào cốc hoặc vật chứa | Cần grasp, pose, nghiêng, đặt lại; nhạy với object shape và environment |
| Mouse Arrangement | Sắp xếp chuột máy tính vào vị trí mục tiêu | Cần spatial alignment, contact nhẹ, placement chính xác |
Sau đó họ kiểm chứng chiến lược data trên hai task mới:
| Task kiểm chứng | Đặc điểm |
|---|---|
| Fold Towels | Manipulation với vật mềm hơn, cần nắm cạnh khăn và gập |
| Unplug Charger | Cần grasp đúng đầu sạc và kéo nhanh khỏi ổ |
Họ thu data bằng UMI hand-held gripper, train Diffusion Policy với visual encoder, rồi đánh giá zero-shot trên 8 môi trường chưa thấy và object chưa thấy. Cách chia thí nghiệm rất rõ:
| Trục scaling | Cách thu data | Câu hỏi |
|---|---|---|
| Object generalization | 32 object khác nhau trong cùng environment | Thêm object có giúp policy làm được object mới? |
| Environment generalization | 32 environment khác nhau với cùng object | Thêm môi trường có giúp policy chạy ở nơi mới? |
| Environment + object | 32 cặp environment-object, mỗi cặp một object riêng | Nếu cả scene và object đều đổi, scale thế nào? |
| Demo count | Giữ diversity cố định, tăng số demo | Thu thêm demo trong cùng setup có còn lợi không? |
Kết quả quan trọng nhất: khi tăng số object hoặc environment, hiệu năng trên object/environment chưa thấy tăng gần theo power law. Khi chỉ tăng số demo trong cùng một nhóm diversity, hiệu năng tăng nhanh lúc đầu rồi plateau.
Con số cần nhớ: 32 cặp, 50 demo/cặp
Một trong những phần thực dụng nhất của paper là chiến lược thu data đề xuất. Với các task có độ khó tương tự Pour Water và Mouse Arrangement, nhóm tác giả khuyến nghị:
Số environment-object pair: khoảng 32
Số demo mỗi pair: khoảng 50
Tổng demo: khoảng 1.600
Đánh giá: 8 environment chưa thấy, 2 object chưa thấy mỗi environment
Kỳ vọng: khoảng 85-92.5% success tùy task trong paper
Table kết quả trong paper cho bốn task:
| Task | Success rate trung bình |
|---|---|
| Pour Water | 85.0% |
| Mouse Arrangement | 92.5% |
| Fold Towels | 87.5% |
| Unplug Charger | 90.0% |
Điều này không có nghĩa 1.600 demo là con số ma thuật cho mọi humanoid. Nó chỉ nói rằng với các task cùng độ khó, cùng class policy, cùng setup sensor/action tương tự, 32 setup đa dạng với 50 demo/setup tốt hơn rất nhiều so với 1 setup có 1.600 demo.
Ngưỡng diminishing returns cũng rất rõ. Khi khảo sát tổng demo, paper thấy hiệu năng plateau khoảng 800 demo trong setup tối đa. Khi xét số cặp environment-object:
| Số cặp environment-object | Tổng demo bắt đầu plateau | Demo/cặp xấp xỉ |
|---|---|---|
| 8 | 400 | 50 |
| 16 | 800 | 50 |
| 32 | 1.600 | 50 |
Đây là insight cực kỳ quan trọng cho budget. Nếu bạn đã có 50 demo cho cùng bàn, cùng object, cùng camera, thêm 200 demo nữa ở đúng setup đó có thể chỉ làm dataset đẹp hơn trên giấy. Cùng số giờ operator đó, đổi sang 4 environment mới thường đáng tiền hơn.
Vì sao raw demo count gây hiểu lầm?
"Chúng tôi có 100.000 demo" nghe rất ấn tượng. Nhưng với robot learning, câu hỏi đúng là:
100.000 demo đó phủ bao nhiêu object?
Bao nhiêu room, table, factory cell, shelf, lighting condition?
Bao nhiêu camera pose?
Bao nhiêu operator style?
Bao nhiêu initial state?
Bao nhiêu failure recovery?
Bao nhiêu task family?
Bao nhiêu robot embodiment?
Nếu 100.000 demo chỉ là một operator làm pick-place trong một lab, nó có thể thua 10.000 demo được thu trong 200 scene thật, với nhiều object, nhiều clutter, nhiều ánh sáng, và nhiều reset condition. Lý do là policy không chỉ học "đường đi tay". Nó học mapping từ image + language + robot state sang action. Nếu image distribution quá hẹp, model có thể học shortcut: cái cốc luôn ở bên trái, mặt bàn luôn màu trắng, camera luôn cố định, gripper luôn tiếp cận từ cùng hướng.
Một cách đơn giản để audit dataset là tính "effective diversity", không chỉ "episode count":
effective_dataset_score = (
0.30 * unique_environments +
0.25 * unique_objects +
0.15 * unique_initial_states +
0.10 * camera_pose_bins +
0.10 * operator_style_bins +
0.10 * recovery_or_failure_modes
)
Đây không phải công thức khoa học từ paper, mà là heuristic vận hành. Mục tiêu là ép team nhìn vào biến thể có ý nghĩa. Nếu điểm tăng ít dù episode count tăng mạnh, bạn đang thu data lặp.
Liên hệ với OpenVLA: diversity thắng scale thô
OpenVLA là một ví dụ khác cho cùng bài học ở scale foundation model. Model này có 7B parameter, fine-tune từ VLM backbone, và được train trên khoảng 970.000 robot demonstration từ Open X-Embodiment. Điểm đáng chú ý không chỉ là "970k". Điểm đáng chú ý là data đến từ nhiều embodiment, task và scene.
Open X-Embodiment được xây từ hơn 20 robot embodiment và nhiều lab khác nhau. Dataset không hoàn hảo: action space khác nhau, camera khác nhau, skill coverage không đều, data mixture phải curate. Nhưng chính sự không đồng nhất đó tạo ra tín hiệu generalization. OpenVLA paper cũng nói rõ họ phải lọc và cân bằng mixture để giữ input/output coherent, đồng thời tránh để một vài dataset lớn nhưng ít đa dạng lấn át toàn bộ training.
Điểm này nối trực tiếp với Lin et al.:
| Lin et al. single-task | OpenVLA generalist |
|---|---|
| Tăng object/environment giúp power law | Tăng embodiment/task/scene giúp policy generalist hơn |
| Demo count trong cùng setup nhanh plateau | Dataset lớn nhưng hẹp có thể bị down-weight hoặc loại |
| 50 demo/cặp là ngưỡng thực dụng cho task tương tự | Fine-tuning VLA cần data target đủ đa dạng, không chỉ nhiều episode |
Với team nhỏ dùng OpenVLA hoặc model tương tự, bài học không phải "hãy tự train 7B model". Bài học là: khi fine-tune, bạn đang thêm dữ liệu target domain vào một model đã có prior lớn. Vì vậy 200 demo đa dạng có thể đáng hơn 2.000 demo giống nhau. Nếu task của bạn là "nhặt linh kiện trên khay", hãy đổi loại linh kiện, khay, ánh sáng, clutter, camera jitter, vị trí bắt đầu, và người vận hành. Đừng chỉ nhặt cùng một linh kiện từ cùng một ô thêm 1.000 lần.
π0: pre-training rộng, post-training sạch
π0 của Physical Intelligence đưa scaling sang hướng khác: dùng VLM pre-training, flow matching cho action chunk, và data robot đa embodiment. Paper mô tả pre-training trên hơn 10.000 giờ robot data, gồm 7 cấu hình robot và 68 task, rồi post-train trên dataset nhỏ hơn cho downstream task.
Điểm quan trọng là π0 tách rõ hai vai trò của data:
| Giai đoạn | Data cần gì | Mục tiêu |
|---|---|---|
| Pre-training | Rộng, đa task, đa embodiment, có cả hành vi không hoàn hảo | Học prior vật lý, affordance, recovery, semantic grounding |
| Post-training | Sạch, nhất quán, task-specific, fluent | Dạy model làm task mục tiêu hiệu quả và ổn định |
Đây là một cách diễn đạt khác của scaling law diversity. Pre-training cần diversity để model biết thế giới có nhiều trường hợp. Post-training cần quality để model biết phong cách hành động mong muốn. Nếu chỉ post-train bằng demo sạch, model có thể giỏi khi mọi thứ đúng như demo nhưng brittle khi trượt một chút. Nếu chỉ dùng data rộng nhưng không sạch, model biết nhiều nhưng thao tác không đủ fluent.
Với humanoid, phân tách này đặc biệt quan trọng. Một robot hai tay làm việc nhà phải biết recovery: khăn bị lệch, bát xoay, nắp hộp kẹt, tay trái che camera, người đi ngang qua. Recovery hiếm khi xuất hiện trong demo "đẹp" vì operator cố làm đúng. Do đó pre-training rộng hoặc data có intervention/failure mode là tài sản lớn. Nhưng khi deploy vào task cụ thể, bạn vẫn cần post-training sạch để robot không hành động lộn xộn.
GR00T N1: scaling bằng hỗn hợp real, human video và synthetic
GR00T N1 của NVIDIA là ví dụ humanoid rõ nhất cho bài học "không có một loại data nào đủ". N1 là VLA foundation model cho humanoid, dùng kiến trúc dual-system: module vision-language để hiểu instruction và scene, module diffusion transformer để sinh action. Data training là hỗn hợp real-robot trajectories, human videos và synthetic datasets.
Điểm đáng chú ý trong paper GR00T N1 là cách họ scale synthetic data bằng DexMimicGen. Từ một lượng nhỏ demonstration người, pipeline tạo 780.000 simulation trajectory, tương đương khoảng 6.500 giờ demo, trong 11 giờ. Đây không phải bằng chứng rằng sim thay thế real. Đây là bằng chứng rằng khi bạn đã có schema task, simulator, object-centric transformation và success filter, synthetic data có thể phủ rất nhiều biến thể mà real teleop không thể thu kịp.
Nhưng GR00T N1 cũng không bỏ real data. Paper dùng real robot data, Open X-Embodiment, human video, latent actions, synthetic trajectory, và post-training theo embodiment. Nghĩa là data strategy của humanoid foundation model giống một portfolio:
| Nguồn data | Rẻ hay đắt | Có action thật? | Giá trị scaling |
|---|---|---|---|
| Real robot teleop | Đắt | Có | Ground truth cho embodiment, contact, latency, sensor |
| Human video | Rẻ hơn ở scale lớn | Không trực tiếp | Affordance, task semantics, motion prior |
| Synthetic trajectory | Rẻ sau khi setup | Có trong sim | Coverage environment/object/initial state |
| Post-training target robot | Đắt nhưng nhỏ hơn | Có | Căn chỉnh embodiment và task thực tế |
Nếu bạn nhìn qua lăng kính Lin et al., GR00T N1 đang làm cùng một điều ở scale lớn hơn: không chỉ tăng episode count, mà tăng trục diversity. Human video tăng diversity về hoạt động người và vật thể. Synthetic data tăng diversity về scene và initial condition. Real robot data giữ policy không bay khỏi physics thật. Post-training giữ hành vi cuối cùng đủ chính xác.
Khi nào thu thêm data là phí tiền?
Bạn nên nghi ngờ kế hoạch "thu thêm data" nếu gặp các dấu hiệu sau:
| Dấu hiệu | Ý nghĩa | Hành động tốt hơn |
|---|---|---|
| Success rate train cao, test ở lab khác thấp | Dataset overfit environment | Thu environment mới, không thu thêm cùng lab |
| Fail chủ yếu ở object chưa thấy | Object diversity thiếu | Thêm object shape/material/size, không thêm demo object cũ |
| Fail khi ánh sáng/camera thay đổi | Visual distribution hẹp | Randomize lighting, camera pose, background |
| Fail sau khi gripper trượt nhẹ | Thiếu recovery data | Thu intervention, failed attempt, correction |
| Validation loss giảm nhưng rollout không tăng | Metric không phản ánh task | Đổi evaluation sang real rollout hoặc task score |
| 50-100 demo/setup nhưng curve không tăng | Diminishing returns | Mở setup mới |
Một rule-of-thumb thực dụng:
Nếu bạn chưa có 20-30 environment/object pair:
ưu tiên mở rộng diversity.
Nếu mỗi pair đã có 50 demo tốt:
đừng tự động thu thêm cùng pair.
Nếu policy fail vì action không mượt:
kiểm tra data quality, controller, latency, action representation.
Nếu policy fail vì scene khác:
thu thêm scene, không tune model quá sớm.
Nếu policy fail vì task chưa từng thấy:
bạn đang thiếu task-level diversity, không chỉ object-level diversity.
Con số 20-30 không phải định luật vật lý. Nó là mốc vận hành hợp lý khi bạn chưa có dữ liệu riêng. Lin et al. cho thấy 32 cặp là đủ mạnh cho bốn task trong paper. Task dexterous hơn, deformable hơn, force-heavy hơn, hoặc humanoid whole-body hơn sẽ cần nhiều hơn. Nhưng nguyên tắc vẫn giữ: tăng diversity trước khi tăng repetition.
Data budget planner cho team nhỏ
Giả sử team của bạn có một robot arm hoặc humanoid upper-body, muốn train task "lấy cốc và đặt vào khay" trong môi trường văn phòng. Bạn có 80 giờ operator. Một kế hoạch kém:
1 environment
5 cup
1 tray
1 camera pose
8.000 demo
Một kế hoạch tốt hơn:
32 environment-object pairs
50 demo mỗi pair
1.600 demo tổng
Phần thời gian còn lại:
- evaluate trên 8 environment unseen
- thu 200 recovery demo quanh failure mode
- audit label và xóa demo bẩn
- thêm object mới nếu fail theo object shape
Bạn có thể lập bảng thu data như sau:
| Pair | Environment | Object | Lighting | Clutter | Demo target | Ghi chú failure |
|---|---|---|---|---|---|---|
| 01 | Bàn trắng lab | Cốc nhựa nhỏ | Sáng mạnh | Ít | 50 | Baseline |
| 02 | Bàn gỗ văn phòng | Cốc giấy | Đèn vàng | Trung bình | 50 | Dễ glare |
| 03 | Kệ kim loại | Cốc inox | Bóng đổ | Cao | 50 | Reflection |
| 04 | Xe đẩy | Cốc thấp | Ánh sáng bên | Trung bình | 50 | Surface rung |
Sau mỗi batch 8 pair, train một policy nhỏ và test blind. Đừng đợi thu đủ 1.600 demo mới phát hiện camera bị lệch hoặc gripper command bị log sai.
for batch in [8, 16, 24, 32]:
train_policy(dataset_pairs=batch)
score = evaluate_unseen(envs=4, objects=2, trials=5)
log(score)
if score_plateaus and failures_are_same_setup:
stop_collecting_repetitions()
add_new_diversity_axis()
Trục diversity nên thêm theo thứ tự lỗi thật, không theo cảm giác. Nếu fail vì pose object, randomize placement. Nếu fail vì object trong suốt, thêm transparent/glossy objects. Nếu fail vì người đi qua background, thêm dynamic background hoặc mask. Nếu fail vì cầm vật nặng, thêm mass/friction variation và real demo tương ứng.
VLA data scaling khác gì imitation learning cổ điển?
Lin et al. dùng Diffusion Policy cho single-task manipulation. VLA như OpenVLA, π0, GR00T N1 có thêm language và pre-trained vision-language prior. Điều này thay đổi cách ta đọc scaling law, nhưng không phủ nhận nó.
Với policy từ đầu, mỗi demo phải dạy cả perception, semantics và action. Với VLA, model đã biết nhiều khái niệm từ Internet-scale vision-language data: cup, drawer, towel, box, left/right, on/inside/near. Data robot target domain không cần dạy lại mọi khái niệm đó, nhưng phải dạy grounding vào embodiment cụ thể: camera nào, gripper nào, action scale nào, delay nào, joint limit nào.
Vì vậy VLA fine-tuning thường cần:
| Loại coverage | Vì sao cần |
|---|---|
| Language coverage | Cùng task có nhiều cách ra lệnh |
| Visual coverage | VLM prior mạnh nhưng camera robot có góc lạ |
| Object coverage | Semantics "cup" chưa đủ cho grasp pose |
| Action coverage | Embodiment-specific, không đến từ web image |
| Recovery coverage | Robot thật lệch khỏi demo thường xuyên |
Điểm nguy hiểm là VLA có thể làm demo nhìn "thông minh" trong video ngắn, nhưng fail khi split evaluation nghiêm túc. Vì vậy bài học của Lin et al. về unseen environment/object vẫn nên là chuẩn tối thiểu: test ở nơi chưa thu data, với object chưa thu data, và operator không biết policy nào đang chạy nếu có thể.
Checklist: nên đầu tư diversity ở đâu?
Trước khi thu thêm 1.000 demo, hãy trả lời 10 câu này:
| Câu hỏi | Nếu câu trả lời là "không" |
|---|---|
| Bạn có ít nhất 20 environment/object pair chưa? | Mở thêm pair trước |
| Mỗi pair đã có 30-50 demo sạch chưa? | Bổ sung vừa đủ, không over-collect |
| Có evaluation set unseen cố định chưa? | Dừng thu data và tạo benchmark |
| Có log failure mode theo taxonomy chưa? | Không biết nên scale gì |
| Object split có khác shape/material/size thật không? | Split quá dễ |
| Environment split có khác ánh sáng, nền, clutter không? | Split quá dễ |
| Có recovery/intervention data không? | Policy dễ brittle |
| Có kiểm tra demo bẩn, reset sai, timestamp lệch không? | Quality có thể đang giới hạn |
| Có so sánh real-only, synthetic-only, mixed không? | Không biết nguồn nào có ích |
| Có dừng khi curve plateau không? | Budget dễ bị đốt vào repetition |
Một câu chốt cho data strategy:
Đừng hỏi "cần bao nhiêu demo?"
Hãy hỏi "cần bao nhiêu tình huống khác nhau, và mỗi tình huống cần bao nhiêu demo đủ sạch?"
Kết luận: data war là cuộc chiến diversity
Nếu bài 1 của series nói ai sở hữu dataset, bài 5 nói rõ hơn: giá trị của dataset không nằm ở số episode thô. Giá trị nằm ở coverage của thế giới vật lý: environment, object, embodiment, task, language, failure, recovery, và quality control.
Lin et al. cho ta một kết quả hiếm trong robot learning: curve thực nghiệm đủ rõ để ra quyết định vận hành. Với task tương tự paper, 32 environment-object pair và khoảng 50 demo/pair là mốc rất đáng dùng để bắt đầu. OpenVLA cho thấy foundation model cần mixture đa dạng, không chỉ dataset lớn. π0 cho thấy pre-training rộng và post-training sạch có vai trò khác nhau. GR00T N1 cho thấy humanoid cần portfolio data: real robot, human video, synthetic trajectory, và post-training theo embodiment.
Bài tiếp theo của series sẽ chuyển từ lý thuyết sang chiến lược thực chiến: nếu bạn là một team nhỏ, nên thu gì trước, mua gì, tự tạo gì, và nên tránh bị cuốn vào cuộc đua "demo count" như thế nào.
Nguồn tham khảo
- Data Scaling Laws in Imitation Learning for Robotic Manipulation
- Project page: Data Scaling Laws
- OpenVLA: An Open-Source Vision-Language-Action Model
- Open X-Embodiment dataset
- π0: A Vision-Language-Action Flow Model for General Robot Control
- GR00T N1: An Open Foundation Model for Generalist Humanoid Robots
