Ambil alih saat policy salah bertindak, lalu latih tepat pada koreksi itu.
Policy yang dilatih dengan behavior cloning hanya mengenal keadaan yang pernah dikunjungi oleh demonstrasi Anda. DAgger menutup celah itu dengan data dari keadaan yang dicapai oleh policy itu sendiri. AY-Robots menjalankan seluruh loop ini di SO-100: mengendalikan checkpoint, mengambil alih di tengah run, menyimpan episode hasil koreksi, menyusun campuran dataset, dan melanjutkan pelatihan dari checkpoint yang baru saja dikendalikan.
- HG-DAgger, dikendalikan manusia
- SO-100 / SO-101
- ACT, SmolVLA, Pi0, GR00T N1.5 / N1.7
- Tingkat intervensi per ronde
Mengapa policy yang sudah dilatih melakukan sesuatu yang tidak pernah didemonstrasikan
Behavior cloning memperlakukan kendali sebagai supervised learning biasa: observasi masuk, target joint keluar, dicocokkan pada frame yang direkam manusia. Itu hanya berlaku selama robot tetap berada pada keadaan yang pernah dikunjungi manusia tersebut, dan pada kenyataannya tidak demikian. Gripper yang menutup empat puluh milidetik lebih awal menggeser kubus dua milimeter dari posisi yang didemonstrasikan. Observasi berikutnya adalah observasi yang tidak tercakup dalam training set, sehingga aksi pada titik itu merupakan ekstrapolasi, dan keadaan sesudahnya makin jauh lagi. Distribusi pelatihan dan distribusi yang sebenarnya dihasilkan oleh policy yang sudah dilatih adalah dua hal berbeda, dan yang kedua makin menjauh dari yang pertama seiring berjalannya episode.
Ross, Gordon, dan Bagnell mendeskripsikan tepat kegagalan reduksi ini pada 2011 dan mengukur besarnya kerusakan: classifier yang salah dengan probabilitas e di bawah distribusi expert dapat membuat kesalahan sebesar orde T kuadrat kali e pada horizon sepanjang T langkah di bawah distribusi yang dihasilkannya sendiri, karena satu kesalahan menghasilkan observasi yang tidak pernah dibuat oleh expert dan kesalahan itu berlipat ganda. Solusi mereka adalah algoritma yang menjadi topik halaman ini: jalankan policy saat ini, kumpulkan label expert untuk keadaan yang dikunjunginya, gabungkan dengan semua yang sudah terkumpul sejauh ini, latih ulang, ulangi. Lebih banyak demonstrasi dengan jenis yang sama tidak membantu, karena itu hanya mengambil sampel ulang dari distribusi yang sama. Label pada keadaan yang dicapai policy itulah yang membantu. Varian yang diimplementasikan di sini adalah human-gated (HG-DAgger, Kelly et al.): policy memegang kendali sampai seseorang memutuskan bahwa arahnya salah dan mengambil alih, sehingga koreksi hanya dihasilkan di tempat yang memang dibutuhkan, dan lengan robot tidak pernah diminta bergerak ke keadaan yang tidak akan diizinkan oleh operator.
- Behavior cloning hanya valid pada distribusi keadaan tempat ia dilatih.
- Kegagalannya memperkuat diri sendiri: penyimpangan kecil menghasilkan keadaan yang asing, yang kemudian menghasilkan penyimpangan yang lebih besar.
- Obatnya bukan lebih banyak demonstrasi, melainkan label pada keadaan yang dicapai oleh policy itu sendiri.
- Human-gated berarti operator yang memutuskan kapan harus turun tangan, bukan skor otonomi.
Mengapa kesalahan berlipat ganda
Geser horizon-nya. Di bawah behavior cloning, biaya tambahan yang diharapkan tumbuh kurang lebih sebanding dengan kuadrat jumlah langkah, karena setiap kesalahan menghasilkan keadaan yang tidak pernah dicakup demonstrasi; loop agregasi menjaga pertumbuhan itu tetap mendekati linear (Ross et al., 2011).
Kurva ilustratif dari batas atas pada Ross et al. (2011), bukan pengukuran dari robot Anda. Yang penting bentuknya, bukan angkanya.
Satu ronde DAgger, enam langkah
Inilah loop seperti yang benar-benar dijalankan platform ini, bukan skema. Setiap langkah di bawah berpadanan dengan satu kontrol di cockpit.
Telusuri loop-nya
Enam langkah yang sama, satu per satu, lengkap dengan apa yang terjadi pada lengan dan pada dataset di setiap langkahnya.
Jalankan policy dan rekam
Mulai run inferensi terhadap checkpoint yang sudah Anda latih. Run ini direkam saat berlangsung, lengkap dengan teks tugas dari run itu sendiri, sehingga frame-nya bisa dipakai sebagai data pelatihan nantinya, bukan sekadar video yang hanya bisa ditonton.
Ambil alih dan koreksi
Begitu lengan melakukan hal yang salah, tekan Take over. Runner berhenti sejenak dan lengan menjadi milik Anda. Dengan leader arm, lengan itu lebih dulu bergerak ke pose follower baru menyerahkan kendali; dengan input keyboard atau slider, yang dipilih di awal run, pengambilalihan langsung manual sejak awal. Koreksi gerakannya, lalu serahkan kembali kendali ke policy. Frame yang direkam selama pengambilalihan otomatis ditandai sebagai intervensi.
Triase run
Putuskan untuk setiap run apa statusnya: simpan sebagai koreksi, simpan sebagai run evaluasi, atau buang. Freeze frame di sekitar serah terima tetap berada di direktori raw dan tidak pernah masuk ke dataset.
Sinkronkan dataset koreksi
Koreksi terkumpul dalam dataset koreksi khusus per policy dan masuk ke bucket Anda lewat cloud sync otomatis. Pada tahap ini belum ada penggabungan apa pun; koreksi hanyalah dataset tersendiri.
Susun campuran sendiri
Gunakan Susun dataset untuk menyusun training set ronde berikutnya: dataset asli ditambah koreksi, dengan episode yang dipilih secara eksplisit per sumber. Hasilnya adalah dataset biasa yang bisa disinkronkan dan dilatih seperti dataset lain. Tidak ada yang dicampur diam-diam, dan data simulasi tidak ditambahkan secara otomatis.
Lanjutkan pelatihan dari checkpoint
Latih dataset hasil susunan itu dengan Lanjutkan dari checkpoint, bukan mulai dari model dasar, sehingga ronde dimulai dari policy yang baru saja Anda kendalikan. Perlu tepat soal ini: yang terjadi adalah inisialisasi bobot dari checkpoint tersebut, bukan optimizer resume.
Apa yang diambil alih platform ini dari tangan Anda
Setiap butir di sini adalah langkah loop yang kalau tidak, harus Anda bangun dan pelihara sendiri.
Pengambilalihan tanpa leader arm
Pilih input keyboard atau slider di awal run, dan Anda bisa mengoreksi hanya dengan laptop. Nudge keyboard dibatasi di sisi server maksimal dua derajat per joint dan empat derajat pada gripper; target slider bersifat absolut, dan server bergerak paling banyak enam derajat menuju target itu per pemanggilan. Batasan ini ditegakkan oleh server, bukan oleh UI, sehingga tombol yang macet tidak bisa membuat lengan melesat.
Dokumentasi teleoperationIntervensi ditandai per frame
Setiap frame yang direkam selama Anda memegang kendali lengan membawa flag intervensi, dan kolom action membawa pose lengkap yang diperintahkan. Anda tidak perlu memelihara kolom flag secara manual atau menyelaraskannya dengan indeks frame setelahnya.
Format dataset LeRobotTriase: koreksi, evaluasi, atau buang
Setiap run mendapat satu keputusan di kartu penyimpanan. Run koreksi menjadi bahan ronde pelatihan berikutnya, run evaluasi tetap di luar pelatihan sehingga tetap menjadi pengukuran yang bersih, dan run yang buruk dibuang alih-alih diam-diam merusak campuran dataset.
Session dan episodeSusun campuran secara eksplisit
Training set untuk ronde n disusun oleh Anda sendiri: dataset asli ditambah koreksi, dengan episode dipilih per sumber. Tidak ada pencampuran otomatis, tidak ada data simulasi tersembunyi, dan hasil susunannya berperilaku seperti dataset lain mana pun.
DatasetLanjutkan dari checkpoint
Arahkan run pelatihan ke checkpoint yang baru saja Anda kendalikan, bukan ke model dasar, sehingga setiap ronde dimulai dari titik akhir ronde sebelumnya. Yang diinisialisasi hanya bobotnya; state optimizer tidak dipulihkan, itulah sebabnya ronde pertama sebaiknya diperlakukan sebagai uji kelayakan.
PelatihanGPU disewa per ronde
ACT dan SmolVLA berjalan di 4090, Pi0 serta GR00T N1.5 atau N1.7 di A100 dengan 80 GB. Anda memulai satu ronde, pod menyala, checkpoint masuk ke bucket Anda, dan Anda membayar sesuai jam yang dipakai ronde tersebut.
Harga GPURencanakan ronde Anda
Tingkat intervensi adalah metrik kemajuan loop ini: frame terkoreksi dibagi frame dari run tersebut. Atur titik awal Anda dan seberapa besar hasil tiap ronde, lalu lihat berapa ronde yang dibutuhkan untuk mencapai target Anda.
| Ronde | Tingkat intervensi | Frame terkoreksi |
|---|---|---|
| 1 | 30.0 % | 900 |
| 2 | 22.5 % | 675 |
| 3 | 16.9 % | 506 |
| 4 | 12.7 % | 380 |
| 5 | 9.5 % | 285 |
| 6 | 7.1 % | 214 |
| Σ | 2 960 | |
Ini model, bukan ramalan. Ronde sesungguhnya berjalan tidak rata, dan ronde yang tidak menggerakkan tingkat intervensi berarti tidak menghasilkan apa-apa; justru itulah sinyal yang layak diperhatikan.
Membangun loop sendiri versus menjalankannya di sini
Semua ini bukan hal yang mustahil dikerjakan sendiri. Pertanyaannya adalah berapa banyak malam yang habis untuk infrastruktur alih-alih untuk ronde, dan ada satu baris di mana mengerjakannya sendiri jelas jawaban yang lebih baik.
| Langkah loop | Disiapkan sendiri | Di AY-Robots |
|---|---|---|
| Mengambil alih di tengah run | Leader arm, atau kode Anda sendiri di servo bus. Pengambilalihan lewat keyboard dan slider, termasuk batas amannya, harus Anda tulis sendiri lalu di-debug di hardware sungguhan. | Leader arm, keyboard, atau slider, dipilih saat run dimulai. Batas sudutnya ada di server. |
| Menandai intervensi | Anda menambahkan kolom flag, menjaganya tetap selaras dengan indeks frame, dan memeriksanya ulang setiap kali format rekaman berubah. | Setiap frame yang direkam selama pengambilalihan otomatis ditandai, dengan pose yang diperintahkan ada di kolom action. |
| Menyortir run | Konvensi direktori dan shell script. Freeze frame di sekitar serah terima harus Anda cari dan saring sendiri. | Satu keputusan per run di kartu penyimpanan. Frame serah terima tetap berada di direktori raw. |
| Membangun dataset campuran | Merge script untuk tiap versi format. Menjaga indeks episode, metadata, dan referensi video tetap konsisten adalah bagian yang melelahkan. | Compose dari dataset asli plus koreksi dengan pemilihan episode per sumber; hasilnya dataset biasa. |
| Memulai ronde berikutnya dari policy terakhir | Anda menyambungkan checkpoint ke trainer sendiri, dan Anda juga bisa memulihkan state optimizer kalau menginginkan resume yang sesungguhnya. | Satu field untuk base checkpoint. Hanya bobot: inisialisasi dari checkpoint, bukan optimizer resume. |
| Kendali atas training loop | Penuh. Loss Anda sendiri, jadwal Anda sendiri, ablasi Anda sendiri, instrumentasi Anda sendiri, tanpa platform yang menghalangi. Kalau pertanyaan risetnya adalah training loop itu sendiri, kerjakan sendiri. | Satu jalur tetap dengan daftar policy yang sudah ditentukan dan hyperparameter yang disediakan form, bukan kode bebas. |
Paper yang menjadi dasar halaman ini
Baca ini dulu sebelum berdebat soal loop-nya. Setiap tautan menuju halaman abstrak, bukan ke balik paywall.
- A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning
Stephane Ross, Geoffrey J. Gordon, J. Andrew Bagnell · 2011 · AISTATS 2011 (PMLR 15)
Paper DAgger yang asli: memaparkan masalah kesalahan berantai, memberikan batas T-kuadrat untuk pendekatan supervised biasa, dan mengusulkan agregasi data dari keadaan yang dikunjungi sendiri oleh learner.
- HG-DAgger: Interactive Imitation Learning with Human Experts
Michael Kelly, Chelsea Sidrane, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1810.02890, ICRA 2019
Varian human-gated: expert yang memutuskan kapan mengambil kendali, bukannya ditanya untuk keadaan yang dipilih policy; inilah mode yang diimplementasikan platform ini.
- EnsembleDAgger: A Bayesian Approach to Safe Imitation Learning
Kunal Menda, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1807.08364, IROS 2019
Cara lain untuk mengatur intervensi: ketidaksepakatan ensemble sebagai sinyal keyakinan untuk kapan learner boleh bertindak sendiri. Pembanding yang berguna terhadap membiarkan manusia yang menilai.
- ThriftyDAgger: Budget-Aware Novelty and Risk Gating for Interactive Imitation Learning
Ryan Hoque, Ashwin Balakrishna, Ellen Novoseller, Albert Wilcox, Daniel S. Brown, Ken Goldberg · 2021 · CoRL 2021
Memperlakukan perhatian manusia sebagai sumber daya yang langka dan hanya meminta bantuan pada keadaan yang baru atau berisiko; kerangka yang tepat ketika satu orang mengawasi lengan sepanjang sore.
- DART: Noise Injection for Robust Imitation Learning
Michael Laskey, Jonathan Lee, Roy Fox, Anca Dragan, Ken Goldberg · 2017 · CoRL 2017
Alternatif yang jujur: alih-alih mengoreksi policy secara online, mengganggu demonstrasi sehingga expert menunjukkan cara pulih. Perlu diketahui sebelum berkomitmen pada intervensi.
- Interactive Imitation Learning in Robotics: A Survey
Carlos Celemin, Rodrigo Perez-Dattari, Eugenio Chisari, Giovanni Franzese, Leandro de Souza Rosa, Ravi Prakash, Zlatan Ajanovic, Marta Ferraz, Abhinav Valada, Jens Kober · 2022 · arXiv:2211.00600
Peta bidang ini: bentuk-bentuk umpan balik manusia apa saja yang ada, antarmuka mana yang membawanya, dan di mana posisi intervensi bergaya DAgger di antaranya.
- Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware
Tony Z. Zhao, Vikash Kumar, Sergey Levine, Chelsea Finn · 2023 · arXiv:2304.13705
Paper ACT. Action chunking adalah alasan lengan murah bisa dikendalikan oleh imitation policy sama sekali, dan ACT adalah policy tercepat untuk mengiterasi satu ronde DAgger.
- π0: A Vision-Language-Action Flow Model for General Robot Control
Kevin Black, Noah Brown, Danny Driess, Adnan Esmail, Michael Equi, Chelsea Finn et al. · 2024 · arXiv:2410.24164
VLA berbasis flow matching yang dibangun di atas vision-language model yang sudah dipretrain, dan salah satu checkpoint yang bisa di-fine-tune di sini; paper ini secara eksplisit menyatakan bahwa kemampuan baru datang dari fine-tuning, bukan dari model dasar saja.
Pertanyaan yang paling sering ditanyakan
Apakah saya perlu leader arm untuk DAgger?
Tidak. Pilih input keyboard atau slider saat memulai run, dan pengambilalihan langsung manual sejak frame pertama, dikendalikan dari browser. Leader arm lebih nyaman untuk gerakan halus, dan merupakan mode di mana lengan menyelaraskan diri sebelum serah terima, tapi loop-nya tetap berjalan tanpa leader arm.
Berapa banyak ronde DAgger yang saya perlukan?
Tidak ada angka pasti yang jujur untuk ini. Perhatikan tingkat intervensi: kalau tidak turun dari satu ronde ke ronde berikutnya, ronde itu tidak menghasilkan apa-apa, dan biasanya masalahnya ada pada setup tugas, kamera, atau dataset asli, bukan pada jumlah rondenya.
Apakah ini DAgger yang sesungguhnya atau versi yang lebih longgar?
Ini adalah HG-DAgger, varian human-gated. DAgger klasik menanyai expert untuk keadaan yang dipilih policy, termasuk keadaan yang tidak akan pernah diizinkan oleh operator waras mana pun untuk dicapai lengan sungguhan. Di sini seseorang yang memutuskan kapan harus turun tangan, dan hanya segmen itu yang menjadi label.
Apakah saya hanya melatih dengan data koreksi?
Tidak, dan memang sebaiknya tidak begitu. Melatih hanya dengan koreksi akan menghasilkan policy yang cuma tahu cara pulih dari kesalahan. Dataset hasil susunan adalah data asli ditambah koreksi, dengan episode dari setiap sumber dipilih secara eksplisit.
Apakah melanjutkan dari checkpoint berarti me-resume run pelatihan?
Yang terjadi adalah inisialisasi bobot dari checkpoint tersebut. State optimizer tidak dipulihkan, jadi ini bukan resume dalam arti yang ketat. Dalam praktiknya, bobotlah yang membawa perilaku yang sudah dipelajari melintasi ronde, tapi penting untuk tahu mana dari keduanya yang sebenarnya Anda dapatkan.
Bagaimana tingkat intervensi dihitung?
Frame yang ditandai sebagai intervensi dibagi total frame dari run tersebut. Angka ini ditampilkan pada status Takeover, dan inilah satu angka yang layak dicatat per ronde, berdampingan dengan checkpoint yang Anda kendalikan dan campuran dataset yang Anda latih.
Dengan policy apa saja loop ini bisa dijalankan?
ACT, SmolVLA, Pi0, serta GR00T N1.5 atau N1.7. Loop ini sendiri policy-agnostic karena hanya menghasilkan dataset dan checkpoint; bedanya secara praktis ada pada berapa lama satu ronde berlangsung dan GPU apa yang dibutuhkan.
Bisakah saya melakukan ini tanpa memiliki robot sendiri?
Anda bisa merekam dan melatih tanpa robot sendiri dengan membeli dataset di marketplace atau menyewa operator, dan Anda bisa mengendalikan SO-100 sungguhan di browser lewat halaman live. Ronde DAgger berbeda: dibutuhkan lengan yang bisa Anda ambil alih di tengah run, jadi untuk loop ini sendiri Anda butuh hardware di meja Anda sendiri.
A real SO-100, live in the browser. No signup, no hardware needed.
Jalankan ronde pertama Anda minggu ini
Install client, kendalikan checkpoint yang sudah Anda punya, dan ambil alih pada saat pertama lengan meleset melewati kubus. Satu run itu saja sudah menjadi ronde DAgger dalam skala kecil: semua yang setelahnya tinggal menyusun campuran dataset dan membayar jam GPU.