क्यों ACT द्वि-मैन्युअल कार्यों में उत्कृष्ट है

ACT (एक्शन चंक्ड ट्रांसफॉर्मर्स) मूल रूप से द्वि-मैनुअल हेरफेर अनुसंधान के लिए विशेष रूप से विकसित किया गया था। इसकी मूल अंतर्दृष्टि - कि एकल-चरणीय क्रियाओं के बजाय भविष्य की क्रियाओं (खंडों) के अनुक्रमों की भविष्यवाणी करने से कंपाउंडिंग त्रुटि कम हो जाती है - विशेष रूप से द्वि-हाथ वाले कार्यों के लिए मूल्यवान है, जहां एक हाथ के प्रक्षेपवक्र में एक छोटी सी त्रुटि दूसरे हाथ के निष्पादन में कैस्केड विफलता का कारण बन सकती है।

एक्शन चंकिंग तंत्र प्रभावी ढंग से नीति को एक योजना क्षितिज प्रदान करता है। प्रत्येक 50 हर्ट्ज टाइमस्टेप पर एक एकल संयुक्त कमांड के लिए प्रतिबद्ध होने के बजाय, एसीटी 100 कदम आगे की योजना बनाता है और निष्पादन को सुचारू करता है। हैंडऑफ़ कार्य के लिए, इसका मतलब यह है कि नीति प्रत्येक फ्रेम पर स्वतंत्र रूप से प्रतिक्रिया करने के बजाय, नियोजित अनुक्रम के हिस्से के रूप में हैंडऑफ़ बिंदु की ओर दोनों हाथों के दृष्टिकोण को "देख" सकती है। अनुभवजन्य रूप से, यह द्वि-मैन्युअल डेटासेट पर गैर-खंडित दृष्टिकोण की तुलना में मध्य-स्थानांतरण विफलताओं की दर को आधा कर देता है।

एक सावधानी: ACT मानता है कि आपके डेटासेट में प्रदर्शन एक का प्रतिनिधित्व करते हैं सतत रणनीति. यदि अलग-अलग डेमो हैंडऑफ़ निष्पादित करने के मौलिक रूप से अलग-अलग तरीके दिखाते हैं - अलग-अलग हाथ जो आरंभ करते हैं, अलग-अलग हैंडऑफ़ ऊंचाई - सीवीएई घटक एक ही शैली को एनकोड करने के लिए संघर्ष करेगा। आपके सभी 100 डेमो को समान गति रणनीति पर अमल करना चाहिए।

प्रशिक्षण कमान

स्रोत ~/dk1-env/bin/सक्रिय करें पायथन -एम लेरोबोट.स्क्रिप्ट्स.ट्रेन \ --नीति-प्रकार अधिनियम \ --डेटासेट-रेपो-आईडी क्यूब-हैंडऑफ़-v1 \ --रूट ~/dk1-डेटासेट \ --आउटपुट-dir ~/dk1-नीतियां/क्यूब-हैंडऑफ़-v1 \ --कॉन्फिग-ओवरराइड्स \ नीति.कार्रवाई_dim=14 \ नीति.चंक_आकार=100 \ नीति.n_action_steps=100 \ नीति.dim_feedforward=3200 \ नीति.n_heads=8 \ नीति.n_encoder_layers=4 \ नीति.n_decoder_layers=7 \ प्रशिक्षण.संख्या_चरण=80000 \ प्रशिक्षण.eval_freq=5000 \ प्रशिक्षण.save_freq=5000 \ प्रशिक्षण.बैच_आकार=16 # policy.action_dim=14 tells ACT the action space is 14-dimensional (6+6 joints + 2 grippers) # Run this before sleeping — checkpoints save every 5k steps
व्यावहारिक प्रशिक्षण समय के लिए आवश्यक GPU: RTX 3080 (10GB) पर, 80,000 कदम चलने में लगभग 90 मिनट लगते हैं। RTX 4090 पर, लगभग 50 मिनट। सीपीयू पर, 10-14 घंटे की अपेक्षा करें। उपयोग --device cuda यदि आपके पास जीपीयू है तो ध्वजांकित करें। आवश्यक हार्डवेयर के लिए क्लाउड जीपीयू विकल्प (लैम्ब्डा लैब्स, वास्ट.एआई) लगभग $0.50-1.50/घंटा चलते हैं।

द्विमासिक प्रशिक्षण वक्र पढ़ना

द्वि-हाथ प्रशिक्षण वक्र एकल-हाथ से एक महत्वपूर्ण तरीके से भिन्न होते हैं: आपके पास दो कार्य स्थान होते हैं, और नीति को उन्हें समन्वयित करना सीखना चाहिए। अपने हानि वक्रों में इन पैटर्नों पर ध्यान दें (TensorBoard में देखें)। tensorboard --logdir ~/dk1-policies/):

L_पुनर्निर्माण (समग्र कार्रवाई हानि)

~3.0 से घटकर 0.4 से 60,000 कदम कम होना चाहिए। 40,000 कदमों के बाद 0.7 से ऊपर का पठार डेटासेट गुणवत्ता के मुद्दों को इंगित करता है - हैंडऑफ़ समय या स्थिति में बहुत अधिक भिन्नता होने की संभावना है।

L_kl (CVAE नियमितीकरण)

0 के करीब शुरू होता है और धीरे-धीरे 5-15 तक बढ़ता है। यदि यह 30 से ऊपर बढ़ जाता है, तो सीवीएई एक कॉम्पैक्ट स्टाइल एम्बेडिंग खोजने के लिए संघर्ष कर रहा है। इसका अर्थ अक्सर यह होता है कि आपके प्रदर्शनों में व्यवहारिक विविधता बहुत अधिक है। निचले 20% सबसे कम सुसंगत डेमो को हटाने और पुनः प्रशिक्षण पर विचार करें।

क्रिया त्रुटि: बाएँ बनाम दाएँ

यदि आप प्रति-आर्म एक्शन त्रुटि लॉगिंग सक्षम करते हैं (के माध्यम से)। training.log_per_action_dim=true ओवरराइड), आपको बाएँ और दाएँ कार्रवाई आयामों के लिए अलग-अलग हानि वक्र दिखाई देंगे। दोनों के बीच एक बड़ा लगातार अंतर इंगित करता है कि एक हाथ का प्रदर्शन दूसरे की तुलना में अधिक सुसंगत है - पिछड़ने वाले हाथ के लिए अपनी यूनिट 4 गुणवत्ता चेकलिस्ट की समीक्षा करें।

द्वि-मैन्युअल-विशिष्ट हाइपरपैरामीटर

पैरामीटर डिफ़ॉल्ट (एकल हाथ) DK1 द्वि-मैनुअल अनुशंसित क्यों
action_dim 7 14 दो 6-डीओएफ भुजाएँ + 2 ग्रिपर = 14 क्रिया आयाम
chunk_size 100 100 समान - एक्शन चंकिंग पहले से ही द्वि-मैनुअल समन्वय समय-सीमाओं के लिए उपयुक्त है
dim_feedforward 3200 3200 किसी बदलाव की आवश्यकता नहीं है - बड़े एक्शन स्पेस को एक्शन हेड द्वारा नियंत्रित किया जाता है, ट्रांसफार्मर की चौड़ाई से नहीं
num_steps 50000 80000 द्विपक्षीय समन्वय को विश्वसनीय रूप से अभिसरण करने के लिए अधिक प्रशिक्षण चरणों की आवश्यकता होती है; 100 डेमो के लिए 80 हजार व्यावहारिक न्यूनतम है
batch_size 32 16 जीपीयू मेमोरी में बड़े द्वि-मैनुअल डेटासेट नमूने (दोहरी कैमरा फ़ीड) को फिट करने के लिए कम किया गया
kl_weight 10 10 डिफ़ॉल्ट अच्छा काम करता है; 20 तक बढ़ाएँ यदि L_kl 30k चरणों के बाद शून्य के करीब रहता है (CVAE नहीं सीख रहा है)

चेकप्वाइंट चयन

हर 5,000 कदम पर चेकपॉइंट सहेजें (training.save_freq=5000). यह मत मानिए कि अंतिम चेकपॉइंट सबसे अच्छा है। द्वि-मैनुअल नीतियां उच्च चरण गणना पर ओवरफिट हो सकती हैं - नीति प्रशिक्षण प्रदर्शनों को पूरी तरह से पुन: पेश करना सीखती है लेकिन मूल्यांकन के दौरान आपके सामने आने वाली मामूली वास्तविक दुनिया की विविधताओं के लिए सामान्यीकरण खो देती है।

उस चरण पर चेकपॉइंट का चयन करें जहां L_reconstruction पठार या थोड़ी वृद्धि शुरू करने से पहले अपने न्यूनतम पर पहुंच गया। आमतौर पर यह 100-डेमो द्वि-मैनुअल डेटासेट के लिए 60,000-80,000 चरण सीमा में होता है। दो चेकपॉइंट तैनात करें (न्यूनतम-नुकसान चेकपॉइंट और अंतिम एक) और यूनिट 6 में उनके वास्तविक दुनिया के प्रदर्शन की तुलना करें।

इकाई 5 पूर्ण जब...

प्रशिक्षण ने 80,000 कदम पूरे कर लिए हैं और चौकियाँ बचा ली गई हैं ~/dk1-policies/cube-handoff-v1/. अंतिम L_reconstruction मान 0.5 से नीचे है. आपने हानि वक्रों के आधार पर अपने सर्वोत्तम चेकपॉइंट की पहचान की है। आप समझते हैं कि L_kl वक्र आपके रन में ऐसा व्यवहार क्यों करता है। आप यूनिट 6 में वास्तविक हार्डवेयर को तैनात करने के लिए तैयार हैं - क्यूब हैंडऑफ़ पर लक्ष्य सफलता दर >60% है (द्विमानुअल सिंगल-आर्म की तुलना में कठिन है, और यह एक मजबूत प्रथम-रन परिणाम है)।