Human-gated DAgger, सुरुवातीपासून शेवटपर्यंत

policy चुकते तेव्हा ताबा घ्या, आणि त्याच दुरुस्तीवर तिला प्रशिक्षित करा.

Behavior Cloning ने प्रशिक्षित policy ला फक्त त्या स्थिती माहीत असतात ज्या तुमच्या डेमॉन्स्ट्रेशनमध्ये आल्या होत्या. DAgger ही दरी policy स्वतः गाठत असलेल्या स्थितींमधून मिळालेल्या डेटाने भरून काढते. AY-Robots ही संपूर्ण साखळी SO-100 वर चालवते: चेकपॉइंट चालवा, लूप सुरू असतानाच ताबा घ्या, दुरुस्त झालेले एपिसोड जपा, मिश्रण जुळवा, आणि नुकत्याच चालवलेल्या चेकपॉइंटपासून प्रशिक्षण पुढे सुरू ठेवा.

  • HG-DAgger, मानवनियंत्रित
  • SO-100 / SO-101
  • ACT, SmolVLA, Pi0, GR00T N1.5 / N1.7
  • प्रत्येक फेरीतील हस्तक्षेप दर

प्रशिक्षित policy कधीही न दाखवलेली गोष्ट का करते

Behavior Cloning नियंत्रणाला सामान्य सुपरवाइज्ड लर्निंगसारखे वागवते: निरीक्षण आत, जॉइंट लक्ष्य बाहेर, आणि हे सर्व माणसाने रेकॉर्ड केलेल्या फ्रेम्सवर बसवलेले असते. हे तेव्हाच खरे ठरते जोपर्यंत रोबोट त्या माणसाने भेट दिलेल्या स्थितींवरच राहतो, आणि तो तसा राहत नाही. ग्रिपर चाळीस मिलिसेकंद आधी बंद झाला, तरी क्यूब त्याच्या दाखवलेल्या स्थितीपासून दोन मिलिमीटर सरकतो. पुढचे निरीक्षण मग असे असते जे प्रशिक्षण संचात नाहीच, त्यामुळे तेथील कृती ही एक्स्ट्रापोलेशन ठरते, आणि त्यानंतरची स्थिती त्याहूनही पुढे सरकलेली असते. प्रशिक्षण वितरण आणि शिकलेली policy प्रत्यक्षात जे वितरण निर्माण करते, ही दोन वेगळी गोष्ट आहेत, आणि एपिसोड जसजसा पुढे जातो तसतसे दुसरे वितरण पहिल्यापासून दूर सरकत जाते.

Ross, Gordon आणि Bagnell यांनी 2011 मध्ये नेमकी हीच रिडक्शन-त्रुटी वर्णन केली आणि तिचे प्रमाण मोजले: एक्स्पर्ट वितरणाखाली probability e ने चुकणारा क्लासिफायर, T पावलांच्या क्षितिजावर स्वतःच्याच वितरणाखाली अंदाजे T-स्क्वेअर गुणिले e इतक्या चुका करू शकतो, कारण एक चूक अशी निरीक्षणे तयार करते जी एक्स्पर्टने कधीच निर्माण केली नव्हती, आणि त्यातून चुका साखळीसारख्या वाढत जातात. यावरचा उपाय म्हणजेच हे पान ज्याबद्दल आहे तो अल्गोरिदम. सध्याची policy चालवा, ती भेट देत असलेल्या स्थितींसाठी एक्स्पर्ट लेबल्स गोळा करा, आतापर्यंत गोळा केलेल्या सर्वांसोबत ती एकत्र करा, पुन्हा प्रशिक्षण द्या, आणि हे पुन्हा करा. त्याच प्रकारची आणखी डेमॉन्स्ट्रेशन्स उपयोगी पडत नाहीत, कारण ती तेच वितरण पुन्हा नमुन्यात आणतात. policy प्रत्यक्षात गाठत असलेल्या स्थितींवरची लेबल्स मात्र उपयोगी पडतात. इथे राबवलेली आवृत्ती human-gated आहे (HG-DAgger, Kelly et al.): जोपर्यंत एखादी व्यक्ती हे चुकत असल्याचा निर्णय घेऊन ताबा घेत नाही, तोपर्यंत policy चा ताबा तिच्याकडेच राहतो. त्यामुळे दुरुस्त्या फक्त जिथे गरज आहे तिथेच तयार होतात, आणि ऑपरेटरने परवानगी दिली नसती अशा कोणत्याही स्थितीत आर्मला कधीच पाठवले जात नाही.

  • Behavior Cloning फक्त ज्या स्थिती-वितरणावर प्रशिक्षित झाले आहे, त्यावरच वैध आहे.
  • ही त्रुटी स्वतःच वाढत जाणारी आहे: लहान विचलन एक अपरिचित स्थिती तयार करते, जी आणखी मोठे विचलन तयार करते.
  • उपाय म्हणजे आणखी डेमॉन्स्ट्रेशन्स नव्हे, तर policy स्वतः गाठत असलेल्या स्थितींवरची लेबल्स.
  • Human-gated म्हणजे हस्तक्षेप कधी करायचा हे ऑपरेटर ठरवतो, एखादा ऑटोनॉमी स्कोअर नव्हे.

त्रुटी साखळीसारखी का वाढते

क्षितिज सरकवा. Behavior Cloning अंतर्गत अपेक्षित अतिरिक्त किंमत साधारण पावलांच्या संख्येच्या वर्गाइतकी वाढते, कारण प्रत्येक चूक अशा स्थिती तयार करते ज्या डेमॉन्स्ट्रेशन्सनी कधीच व्यापल्या नव्हत्या; एक एकत्रीकरण-साखळी मात्र ही वाढ जवळपास रेषीय ठेवते (Ross et al., 2011).

200
1.0 %
Behavior Cloning
400
DAgger
2.00
200×
Behavior Cloning ÷ DAgger
0.000100200300400050100150200अपेक्षित अतिरिक्त किंमत (सीमा)
टास्क क्षितिज (पावले)

Ross et al. (2011) मधील सीमांवर आधारित उदाहरणादाखल आलेख, तुमच्या रोबोटवरील मोजमापे नव्हेत. इथे आकार महत्त्वाचा आहे, आकडे नव्हे.

एक DAgger फेरी, सहा पायऱ्या

ही साखळी प्लॅटफॉर्मवर प्रत्यक्षात अशीच चालते, हे केवळ योजनाबद्ध चित्र नाही. खालील प्रत्येक पायरी कॉकपिटमधील एका नियंत्रणाशी जुळते.

साखळी पायरीपायरीने पहा

त्याच सहा पायऱ्या, एकेक करून, प्रत्येकीत आर्मवर आणि डेटासेटमध्ये काय घडते यासह.

01

policy चालवा आणि रेकॉर्ड करा

स्वतः प्रशिक्षित केलेल्या चेकपॉइंटविरुद्ध एक इन्फरन्स रन सुरू करा. हा रन चालू असतानाच रेकॉर्ड होतो, रनच्याच टास्क-मजकुरासह, त्यामुळे नंतर हे फ्रेम्स फक्त पाहण्यासाठीचा व्हिडिओ न राहता प्रशिक्षण डेटा म्हणून वापरता येतात.

1 पैकी 6

प्लॅटफॉर्म तुमच्याकडून काय काम काढून घेतो

इथला प्रत्येक मुद्दा साखळीतील असा एक टप्पा आहे जो अन्यथा तुम्हाला स्वतः बांधावा आणि सांभाळावा लागला असता.

leader arm शिवाय ताबा

रनच्या सुरुवातीलाच कीबोर्ड किंवा स्लायडर इनपुट निवडा, मग फक्त लॅपटॉपने दुरुस्ती करता येते. कीबोर्ड नज सर्व्हर-साइडवर प्रत्येक जॉइंटसाठी दोन अंश आणि ग्रिपरसाठी चार अंशांपर्यंत मर्यादित असतात; स्लायडर लक्ष्ये निरपेक्ष असतात आणि सर्व्हर प्रत्येक कॉलमध्ये त्यांच्या दिशेने जास्तीत जास्त सहा अंश हलतो. या मर्यादा UI मध्ये नव्हे तर सर्व्हरमध्ये लागू केलेल्या असतात, त्यामुळे अडकलेली एखादी कळ आर्मला फेकून देऊ शकत नाही.

टेलिऑपरेशन डॉक्स

प्रत्येक फ्रेमवर हस्तक्षेप नोंदवला जातो

तुम्ही आर्मचा ताबा धरलेला असताना रेकॉर्ड झालेल्या प्रत्येक फ्रेमवर हस्तक्षेप-फ्लॅग असतो, आणि action कॉलममध्ये पूर्ण कमांड केलेली पोझ असते. फ्लॅग कॉलम स्वतः हाताने राखावा लागत नाही किंवा नंतर फ्रेम इंडेक्सशी जुळवावा लागत नाही. (इंग्रजी)

LeRobot डेटासेट फॉरमॅट

छाननी: दुरुस्ती, इव्हॅल्युएशन, की टाकाऊ

प्रत्येक रनवर सेव्ह-कार्डवर एकच निर्णय घेतला जातो. दुरुस्ती-रन पुढच्या प्रशिक्षण फेरीला अन्न पुरवतात, इव्हॅल्युएशन-रन प्रशिक्षणाबाहेर राहतात त्यामुळे ते एक स्वच्छ मोजमाप राहतात, आणि वाईट रन गुपचूप मिश्रण बिघडवण्याऐवजी नाहीसे होतात.

सेशन्स आणि एपिसोड

मिश्रण स्पष्टपणे जुळवा

फेरी n साठीचा प्रशिक्षण संच तुम्ही स्वतः जुळवता: मूळ डेटासेट अधिक दुरुस्त्या, प्रत्येक स्रोतातून निवडलेले एपिसोड. कोणतेही आपोआप मिसळणे नाही, लपलेला सिम्युलेशन डेटा नाही, आणि जुळवलेला निकाल इतर कोणत्याही डेटासेटसारखाच वागतो.

डेटासेट्स

चेकपॉइंटपासून पुढे सुरू ठेवा

बेस मॉडेलऐवजी नुकत्याच चालवलेल्या चेकपॉइंटकडे प्रशिक्षण रन निर्देशित करा, म्हणजे प्रत्येक फेरी मागची फेरी जिथे संपली तिथून सुरू होते. हे फक्त वेट्स इनिशियलाइझ करते; ऑप्टिमायझर स्थिती परत आणली जात नाही, म्हणूनच पहिली फेरी एक व्यवहार्यता चाचणी म्हणून हाताळणे योग्य ठरते.

प्रशिक्षण

फेरीनुसार भाड्याने घेतलेले GPU

ACT आणि SmolVLA 4090 वर, Pi0 आणि GR00T N1.5 किंवा N1.7 80 GB असलेल्या A100 वर. तुम्ही फेरी सुरू करता, pod उभा राहतो, चेकपॉइंट्स तुमच्या bucket मध्ये येऊन पडतात, आणि फेरीला लागलेल्या तासांचेच पैसे तुम्ही भरता.

GPU किंमती

तुमच्या फेऱ्यांचे नियोजन करा

हस्तक्षेप दर ही साखळीची प्रगती मोजणारी मेट्रिक आहे: दुरुस्त फ्रेम्स भागिले रनमधील एकूण फ्रेम्स. तुम्ही कुठून सुरुवात करता आणि प्रत्येक फेरी किती फायदा देते हे सेट करा, आणि हवे तिथे पोहोचायला किती फेऱ्या लागतील ते पाहा.

30 %
25 %
3 000
फेरीहस्तक्षेप दरदुरुस्त फ्रेम्स
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

हे एक मॉडेल आहे, अंदाज नव्हे. प्रत्यक्ष फेऱ्या असमान असतात, आणि जी फेरी दर बदलत नाही तिने काहीच मिळवून दिलेले नसते; नेमके हेच लक्ष ठेवण्यासारखे संकेत आहे.

साखळी स्वतः बांधणे विरुद्ध ती इथे चालवणे

यातले काहीही हाताने अशक्य नाही. प्रश्न इतकाच आहे की किती संध्याकाळ फेऱ्यांऐवजी प्लंबिंगमध्ये जातात, आणि एक अशी ओळ आहे जिथे स्वतः करणे हेच स्पष्टपणे चांगले उत्तर आहे.

साखळीतील टप्पाहाताने उभारणीAY-Robots वर
रन मध्येच ताबा घेणेएक leader arm, किंवा सर्वो बसवर तुमचा स्वतःचा कोड. कीबोर्ड आणि स्लायडर ताबा, सुरक्षित मर्यादांसह, तुम्ही स्वतः लिहून खऱ्या हार्डवेअरवर डीबग करावे लागते.leader arm, कीबोर्ड, किंवा स्लायडर, रन सुरू होताना निवडलेले. कोन-मर्यादा सर्व्हरमध्ये असतात.
हस्तक्षेप नोंदवणेफ्लॅग कॉलम तुम्ही जोडता, तो फ्रेम इंडेक्सशी जुळवत ठेवता, आणि रेकॉर्डिंग फॉरमॅट बदलेल तेव्हा प्रत्येक वेळी पुन्हा तपासता.ताबा घेतलेला असताना रेकॉर्ड झालेला प्रत्येक फ्रेम आपोआप फ्लॅग होतो, action कॉलममध्ये कमांड केलेल्या पोझसह.
रन वर्गीकृत करणेडिरेक्टरी संकेत आणि शेल स्क्रिप्ट्स. हस्तांतरणाभोवतीचे फ्रीज फ्रेम्स शोधून वगळणे तुमचेच काम.सेव्ह-कार्डवर प्रत्येक रनसाठी एकच निर्णय. हस्तांतरणाचे फ्रेम्स raw डिरेक्टरीतच राहतात.
मिश्र डेटासेट तयार करणेप्रत्येक फॉरमॅट आवृत्तीसाठी मर्ज स्क्रिप्ट्स. एपिसोड इंडेक्स, मेटाडेटा आणि व्हिडिओ संदर्भ सुसंगत ठेवणे हा कंटाळवाणा भाग आहे.मूळ अधिक दुरुस्त्यांमधून, प्रत्येक स्रोतातील एपिसोड निवडीसह जुळवा; निकाल एक सामान्य डेटासेट असतो.
शेवटच्या policy पासून पुढची फेरी सुरू करणेचेकपॉइंट ट्रेनरमध्ये तुम्ही स्वतः जोडता, आणि खरा resume हवा असल्यास ऑप्टिमायझर स्थितीही परत आणू शकता.बेस चेकपॉइंटसाठी एकच फील्ड. फक्त वेट्स: ते चेकपॉइंटपासून इनिशियलाइझ करते, हा ऑप्टिमायझर-रिझ्यूम नाही.
प्रशिक्षण साखळीवरील नियंत्रणसंपूर्ण. तुमचा loss, तुमचे वेळापत्रक, तुमचे ॲब्लेशन्स, तुमची इन्स्ट्रुमेंटेशन, मध्ये कुठलाही प्लॅटफॉर्म नाही. संशोधनाचा प्रश्नच जर प्रशिक्षण साखळी असेल, तर ते हाताने करा.ठराविक policies ची यादी आणि फॉर्ममध्ये दिलेले हायपरपॅरामीटर्स असलेला एक निश्चित मार्ग, अनियंत्रित कोड नव्हे.

हे ज्यावर आधारलेले आहे ते पेपर्स

साखळीबद्दल वाद घालण्याआधी हे वाचा. प्रत्येक लिंक अ‍ॅबस्ट्रॅक्ट पानाकडे जाते, पेवॉलच्या मागे नाही.

  1. 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)

    मूळ DAgger पेपर: यात साखळीसारखी वाढणाऱ्या त्रुटीची समस्या मांडली आहे, साध्या सुपरवाइज्ड पद्धतीसाठी T-स्क्वेअर सीमा दिली आहे, आणि लर्नर स्वतः भेट देत असलेल्या स्थितींमधून डेटा एकत्रित करण्याचा प्रस्ताव मांडला आहे.

  2. HG-DAgger: Interactive Imitation Learning with Human Experts

    Michael Kelly, Chelsea Sidrane, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1810.02890, ICRA 2019

    human-gated आवृत्ती: policy ने निवडलेल्या स्थितींबद्दल विचारण्याऐवजी, ताबा कधी घ्यायचा हे एक्स्पर्ट स्वतः ठरवतो; याच पद्धतीचा वापर या प्लॅटफॉर्मवर होतो.

  3. EnsembleDAgger: A Bayesian Approach to Safe Imitation Learning

    Kunal Menda, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1807.08364, IROS 2019

    हस्तक्षेप नियंत्रित करण्याचा दुसरा मार्ग: लर्नर एकट्याने कधी कृती करू शकतो हे ठरवण्यासाठी ensemble मधील असहमती हा विश्वासार्हतेचा संकेत म्हणून वापरणे. एखाद्या व्यक्तीला निर्णय घेऊ देण्याच्या तुलनेत उपयुक्त विरोधाभास.

  4. 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

    मानवी लक्ष हीच दुर्मीळ संसाधन मानते आणि फक्त नवीन किंवा धोकादायक स्थितींसाठीच मदत मागते; एक व्यक्ती संपूर्ण दुपार आर्मवर देखरेख करत असेल तेव्हा हीच योग्य चौकट ठरते.

  5. DART: Noise Injection for Robust Imitation Learning

    Michael Laskey, Jonathan Lee, Roy Fox, Anca Dragan, Ken Goldberg · 2017 · CoRL 2017

    प्रामाणिक पर्याय: policy ला ऑनलाइन दुरुस्त करण्याऐवजी, डेमॉन्स्ट्रेशन्समध्ये गोंधळ घालून एक्स्पर्टला परत सावरताना दाखवणे. हस्तक्षेपांसाठी वचनबद्ध होण्याआधी जाणून घेण्यासारखे.

  6. 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

    या क्षेत्राचा नकाशा: मानवी फीडबॅकचे कोणकोणते प्रकार अस्तित्वात आहेत, कोणते इंटरफेस ते वाहून नेतात, आणि DAgger-प्रकारचा हस्तक्षेप त्यांच्यामध्ये कुठे बसतो.

  7. Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware

    Tony Z. Zhao, Vikash Kumar, Sergey Levine, Chelsea Finn · 2023 · arXiv:2304.13705

    ACT पेपर. एक स्वस्त आर्म इमिटेशन policy ने चालवता येण्यामागचे कारण म्हणजे action chunking, आणि DAgger फेरी सर्वात वेगाने पुन्हा-पुन्हा चालवण्यासाठी ACT ही सर्वात वेगवान policy आहे.

  8. π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

    पूर्व-प्रशिक्षित vision-language मॉडेलवर बांधलेले flow-matching VLA, आणि इथे फाइन-ट्यून करता येणाऱ्या चेकपॉइंट्सपैकी एक; पेपर स्पष्टपणे सांगतो की नवीन कौशल्ये फाइन-ट्यूनिंगमधून येतात, एकट्या बेस मॉडेलमधून नाही.

लोक प्रत्यक्षात विचारतात असे प्रश्न

DAgger साठी leader arm लागतो का?

नाही. रन सुरू करताना कीबोर्ड किंवा स्लायडर इनपुट निवडा, म्हणजे ताबा पहिल्या फ्रेमपासूनच मॅन्युअल असतो आणि ब्राउझरमधून चालवला जातो. सूक्ष्म हालचालींसाठी leader arm अधिक सुखद असतो, आणि हाच तो मोड आहे जिथे आर्म ताबा हस्तांतरित करण्याआधी स्वतःला जुळवून घेतो, पण साखळी त्याशिवायही चालते.

DAgger च्या किती फेऱ्या लागतात?

प्रामाणिकपणे सांगायचे तर कोणतीही निश्चित संख्या नाही. हस्तक्षेप दराकडे लक्ष ठेवा: तो एका फेरीपासून पुढच्या फेरीपर्यंत कमी होत नसेल, तर त्या फेरीने काहीच मिळवून दिलेले नाही, आणि समस्या बहुधा फेऱ्यांच्या संख्येत नसून टास्कच्या मांडणीत, कॅमेऱ्यांमध्ये किंवा मूळ डेटासेटमध्ये असते.

हे खरे DAgger आहे की काहीतरी सैलसर?

हे HG-DAgger आहे, म्हणजे human-gated आवृत्ती. क्लासिक DAgger policy ने निवडलेल्या स्थितींबद्दल एक्स्पर्टला विचारते, ज्यात अशाही स्थिती येतात जिथे कोणताही सुज्ञ ऑपरेटर खऱ्या आर्मला जाऊ देणार नाही. इथे हस्तक्षेप कधी करायचा हे एक व्यक्ती ठरवते, आणि फक्त तेच भाग लेबल बनतात.

मी फक्त दुरुस्त्यांवरच प्रशिक्षण देतो का?

नाही, आणि तसे करूही नये. फक्त दुरुस्त्यांवर प्रशिक्षण दिल्यास मिळणारी policy फक्त सावरायलाच जाणते. जुळवलेला डेटासेट म्हणजे मूळ डेटा अधिक दुरुस्त्या, प्रत्येक स्रोतातील एपिसोड स्पष्टपणे निवडलेले.

चेकपॉइंटपासून पुढे सुरू ठेवल्याने प्रशिक्षण रन resume होतो का?

हे त्या चेकपॉइंटपासून वेट्स इनिशियलाइझ करते. ऑप्टिमायझर स्थिती परत आणली जात नाही, त्यामुळे कठोर अर्थाने हा resume नाही. प्रत्यक्षात वेट्सच फेरीपार शिकलेली वर्तणूक वाहून नेतात, पण यापैकी नेमके काय मिळते आहे हे जाणून घेणे उपयुक्त आहे.

हस्तक्षेप दर कसा मोजला जातो?

हस्तक्षेप म्हणून फ्लॅग झालेले फ्रेम्स भागिले रनमधील एकूण फ्रेम्स. हे takeover स्टेटसमध्ये दाखवले जाते, आणि हाच तो एकमेव आकडा आहे जो प्रत्येक फेरीसाठी, चालवलेल्या चेकपॉइंट आणि प्रशिक्षित मिश्रणासोबत, नोंदवण्यासारखा आहे.

ही साखळी कोणकोणत्या policies सोबत चालवता येते?

ACT, SmolVLA, Pi0, आणि GR00T N1.5 किंवा N1.7. साखळी स्वतः policy-निरपेक्ष आहे कारण ती फक्त डेटासेट आणि चेकपॉइंट्स तयार करते; व्यावहारिक फरक इतकाच की एका फेरीला किती वेळ लागतो आणि कोणता GPU लागतो.

स्वतःचा रोबोट नसतानाही हे करता येते का?

रोबोट नसतानाही मार्केटप्लेसवरून डेटासेट विकत घेऊन किंवा ऑपरेटरना काम सोपवून रेकॉर्डिंग आणि प्रशिक्षण करता येते, आणि लाइव्ह पानावर ब्राउझरमधून खरा SO-100 चालवताही येतो. DAgger फेरी मात्र वेगळी गोष्ट आहे: तिला असा आर्म लागतो ज्याचा ताबा तुम्ही रन मध्येच घेऊ शकता, त्यामुळे साखळीसाठी स्वतःच्याच टेबलावर हार्डवेअर हवे.

Drive a real arm

A real SO-100, live in the browser. No signup, no hardware needed.

याच आठवड्यात तुमची पहिली फेरी चालवा

क्लायंट इन्स्टॉल करा, आधीच असलेला एखादा चेकपॉइंट चालवा, आणि आर्म क्यूबच्या पुढे जाताच पहिल्यांदा ताबा घ्या. हा एकच रन म्हणजे लघुरूपातील एक DAgger फेरी आहे: यानंतरचे सगळे म्हणजे मिश्रण जुळवणे आणि GPU तासांचे पैसे भरणे.