स्किप करके मेन कंटेंट पर जाऍं
OpenAI
बादल से भरे एक बैंगनी बैकग्राउंड के सामने अपनी हथेली में रूबिक्स क्यूब को सॉल्व करता हुआ फैला हुआ रोबोट हाथ

फ़ोटो: एरिक हैन्स

लोड किया जा रहा है...

हमने इंसान-जैसे रोबोट हाथ से रूबिक्स क्यूब को सॉल्व करने के लिए न्यूरल नेटवर्क की एक जोड़ी को ट्रेन किया है. न्यूरल नेटवर्क को पूरी तरह से सिमुलेशन में ट्रेन किया जाता है, OpenAI Five के समान रीइंफ़ोर्समेंट लर्निंग के कोड का इस्तेमाल करके ऑटोमैटिक डोमेन रैंडमाइज़ेशन (ADR) नाम की एक नई तकनीक के साथ जोड़ा जाता है. ये सिस्टम उन स्थितियों को भी संभाल सकता है जो उसने ट्रेनिंग के दौरान कभी नहीं देखी थीं, जैसे कि एक स्टफ़्ड जिराफ़ द्वारा उकसाया जाना. इससे पता चलता है कि रीइंफ़ोर्समेंट लर्निंग सिर्फ़ वर्चुअल टास्क के लिए एक टूल नहीं है, बल्कि ये बेहतर कुशलता की ज़रुरत वाली असल-दुनिया की समस्याओं को भी हल कर सकती है.

इंसानी हाथों से हम बहुत सारे टास्क सॉल्व कर सकते हैं. रोबॉटिक्स के पिछले 60 सालों मे, मुश्किल टास्क जो इंसान अपने दोनों हाथों से पूरा करता है, उनमें हर टास्क(एक नई विंडो में खुलेगा) के लिए एक कस्टम रोबोट डिज़ाइन करना ज़रूरी होता है. एक विकल्प के तौर पर, लोगों ने सामान्य-इस्तेमाल वाले रोबोट हार्डवेयर का इस्तेमाल करने की कोशिश में कई दशक(एक नई विंडो में खुलेगा) बिताए हैं, लेकिन उनकी ज़्यादा आज़ादी की वजह से लिमिटेड सफ़लता ही मिल पाई है. ख़ास तौर से, हम यहाँ जिस हार्डवेयर का इस्तेमाल करते हैं वो नया नहीं है—हम जिस रोबोट हाथ का इस्तेमाल करते हैं वो पिछले 15 सालों से है—लेकिन सॉफ़्टवेयर तरीका नया है.

मई 2017 से, हम रूबिक्स क्यूब(एक नई विंडो में खुलेगा) को सॉल्व करने के लिए इंसान जैसे रोबोट हाथ को ट्रेन करने की कोशिश कर रहे हैं. हमने ये लक्ष्य इसलिए तय किया क्योंकि हमारा मानना ​​है कि मुश्किल काम करने के लिए ऐसे रोबोटिक हाथ को अच्छी तरह से ट्रेन करना, सामान्य इस्तेमाल वाले रोबोट्स की बुनियाद रखता है. हमने जुलाई 2017 में सिमुलेशन में रूबिक्स क्यूब को सॉल्व किया था. लेकिन जुलाई 2018 तक, हम रोबोट पर सिर्फ़ एक ब्लॉक में ही हेरफ़ेर कर सकते थे. अब, हम अपने शुरूआती लक्ष्य तक पहुंच गए हैं.

रूबिक्स क्यूब का पूरा सॉल्यूशन. ये वीडियो रियल-टाइम पर चलाया गया है और इसे किसी भी तरह से एडिट नहीं किया गया है.

रूबिक्स क्यूब को एक हाथ से सॉल्व करना इंसानों के लिए भी एक चुनौती भरा टास्क है, और बच्चों को इसमें कुशलता हासिल करने में कई साल लग जाते हैं. हालांकि हमारा रोबोट अभी भी अपनी तकनीक में कुशल नहीं हुआ है, क्योंकि ये रूबिक्स क्यूब को 60% समय में सॉल्व कर लेता है (और सबसे ज़्यादा मुश्किल(एक नई विंडो में खुलेगा) सॉल्युशन के लिए सिर्फ़ 20% समय में).

हमारा नज़रिया

हम रीइंफ़ोर्समेंट लर्निंग और सोल्युशन के स्टेप्स को चुनने के लिए Kociemba के एल्गोरिदम(एक नई विंडो में खुलेगा) का इस्तेमाल करके सिमुलेशन(एक नई विंडो में खुलेगा) में रूबिक्स क्यूब को सॉल्व करने के लिए न्यूरल नेटवर्क को ट्रेन करते हैं. A डोमेन(एक नई विंडो में खुलेगा) रैंडमाइजेशन(एक नई विंडो में खुलेगा) सिर्फ़ सिमुलेशन में ट्रेन किए गए नेटवर्क को असली रोबोट में ट्रांसफ़र करने में मदद करता है.

रोबोटिक आर्म्स का एक रंगीन कोलाज

हमारे सामने सबसे बड़ी चुनौती थी सिमुलेशन में ऐसे अलग माहौल बनाना जो असली दुनिया के फ़िज़िक्स को कैप्चर कर सकें. रगड़, इलास्टिसिटी और डायनामिक्स जैसे कारकों को मापना और मॉडल करना उन वस्तुओं के लिए बेहद मुश्किल है जो रूबिक्स क्यूब्स या रोबोटिक हाथों जैसी मुश्किल होती हैं और हमने पाया कि अकेले डोमेन रैंडमाइज़ेशन काफ़ी नहीं है.

इस पर काबू पाने के लिए, हमने ऑटोमैटिक डोमेन रैंडमाइज़ेशन (ADR) नाम का एक नया तरीका डेवलप किया, जो सिमुलेशन में लगातार ज़्यादा मुश्किल माहौल जनरेट करता है.B ये हमें असली दुनिया का सटीक मॉडल बनाने से आज़ाद करता है, और सिमुलेशन में सीखे गए न्यूरल नेटवर्क को असली दुनिया में लागू करने में मदद करता है.

ADR एक सिंगल, नॉन-रैंडमाइज़्ड माहौल से शुरू होता है, जिसमें एक न्यूरल नेटवर्क रूबिक्स क्यूब को सॉल्व करना सीखता है. जैसे-जैसे न्यूरल नेटवर्क टास्क करने में बेहतर होता जाता है और परफ़ॉर्मेंस की हद तक पहुंचता है, डोमेन रैंडमाइज़ेशन की मात्रा अपने आप बढ़ जाती है. इससे टास्क और ज़्यादा मुश्किल हो जाता है, क्योंकि न्यूरल नेटवर्क को अब और ज़्यादा रैंडमाइज़्ड माहौल में जनरलाइज़ करना सीखना होगा. नेटवर्क तब तक सीखता रहता है जब तक कि ये दोबारा परफ़ॉर्मेंस की हद को पार नहीं कर जाता, जब और ज़्यादा रैंडमाइज़ेशन शुरू होता है, और ये प्रोसेस दोहराया जाता है.

लोड किया जा रहा है...

हमारे द्वारा रैंडमाइज़ किए जाने वाले पैरामीटर्स में से एक रूबिक्स क्यूब का साइज़ है (ऊपर). ADR रूबिक्स क्यूब की एक निश्चित साइज़ से शुरू होता है और ट्रेनिंग की प्रोग्रेस के साथ धीरे-धीरे रैंडमाइज़ेशन के दायरे को बढ़ाता है. हम वही तरीका बाकी सभी पैरामीटर्स पर भी लगाते हैं, जैसे क्यूब का भारीपन, रोबोट के उंगलियों की रगड़, और हाथ की विज़ुअल सतह के मटीरियल. इस तरह न्यूरल नेटवर्क को उन सभी मुश्किल हालात में रूबिक्स क्यूब को सॉल्व करना सीखना होगा.

लोड किया जा रहा है...

डोमेन रैंडमाइजेशन में हमें मैनुअली रैंडमाइजेशन की हद तय करनी पड़ती है, जो कि मुश्किल है क्योंकि बहुत ज़्यादा रैंडमाइजेशन से सीखना मुश्किल हो जाता है और बहुत कम रैंडमाइजेशन से असली रोबोट पर ट्रांसफ़र करना मुश्किल हो जाता है. ADR बिना किसी मानवीय दखल के समय के साथ रैंडमाइज़ेशन की लिमिट को अपने आप बढ़ाकर इस समस्या का समाधान करता है. ADR डोमेन नॉलेज की ज़रुरत को ख़त्म कर देता है और हमारे तरीकों को नए टास्क पर लागू करना आसान बनाता है. मैनुअल डोमेन रैंडमाइजेशन के विपरीत, ADR भी टास्क को हमेशा चुनौती से भरा रखता है और ट्रेनिंग कभी भी एक जैसी नहीं होती.

हमने ब्लॉक फ़्लिपिंग टास्क पर ADR की तुलना मैनुअल डोमेन रैंडमाइज़ेशन से की, जहां हमारे पास पहले से ही एक मज़बूत बेसलाइन मौजूद थी. शुरुआत में असली रोबोट पर सफ़लता की संख्या के मामले में ADR खराब तरीके से परफ़ॉर्म करता है. लेकिन जैसे ही ADR एन्ट्रॉपी को बढ़ाता है, जो माहौल की दिक्कत का एक माप है, ट्रांसफ़र परफ़ॉर्मेंस आख़िरकार बेसलाइन से दोगुना हो जाता है—मानवीय ट्यूनिंग के बिना.

एनालिसिस

मज़बूती की टेस्टिंग

ADR का इस्तेमाल करके, हम सिमुलेशन में न्यूरल नेटवर्क को ट्रेन कर पा रहे हैं जो असली रोबोट के हाथ पर रूबिक्स क्यूब को सॉल्व कर सकता है. ऐसा इसलिए है क्योंकि ADR की वजह से नेटवर्क के लिए रैंडमाइज़्ड सिमुलेशन के बहुत सारे ऑप्शन्स मिलते हैं. ट्रेनिंग के दौरान मिलने वाली ये कॉम्प्लेक्स चीज़ें ही नेटवर्क को सिमुलेशन से असली दुनिया में ट्रांसफ़र करने के लिए तैयार करती हैं क्योंकि इसे जिस भी असली दुनिया का सामना करना पड़ता है उसे जल्दी से पहचानना और एडजस्ट करना सीखना होता है.

लोड किया जा रहा है...

अपने तरीके की लिमिट को टेस्ट करने के लिए, जब हाथ रूबिक्स क्यूब को सॉल्व कर रहा होता है, तो हम अलग-अलग तरह की गड़बड़ियों के साथ प्रयोग करते हैं. ये न सिर्फ़ हमारे कंट्रोल नेटवर्क को मज़बूती के लिए टेस्ट करता है बल्कि हमारे विज़न नेटवर्क को भी टेस्ट करता है, जिसका इस्तेमाल हम ये क्यूब की पोज़ीशन और ओरिएंटेशन का अनुमान लगाने के लिए करते हैं.

हमने पाया कि ADR के साथ ट्रेन किया गया हमारा सिस्टम उन गड़बड़ियों के प्रति भी बेहद मज़बूत है, भले ही हमने उनके साथ कभी ट्रेनिंग नहीं ली हो: रोबोट सभी टेस्ट की गईं गड़बड़ियों के तहत ज़्यादातर फ़्लिप्स और फ़ेस रोटेशन्स को सफ़लतापूर्वक कर सकता है, हालांकि सबसे अच्छे परफ़ॉर्मेंस पर नहीं.

उभरती मेटा-लर्निंग

हमारा मानना ​​है कि मेटा-लर्निंग(एक नई विंडो में खुलेगा), या सीखने के लिए सीखना, सामान्य इस्तेमाल वाले सिस्टम्स बनाने के लिए एक पहले से पता होने वाली ज़रुरत है, क्योंकि ये उन्हें अपने माहौल में बदलती परिस्थितियों के अनुसार जल्दी से ढलने में मदद करता है. ADR के पीछे धारणा ये है कि एक मेमोरी-बढ़ाए हुए नेटवर्क एक पर्याप्त रैंडमाइज़्ड माहौल के साथ मिलकर उभरती मेटा-लर्निंग की ओर ले जाता है, जहां नेटवर्क एक लर्निंग एल्गोरिदम को लागू करता है जो खुद को उस माहौल में अपने बिहेवियर को तेज़ी से एडैप्ट करने में मदद करता है जिसमें इसे डिप्लॉय किया जाता है.C

इसे व्यवस्थित तरीके से परखने के लिए, हम अपने न्यूरल नेटवर्क के लिए अलग-अलग गड़बड़ियों के तहत प्रति क्यूब फ़्लिप (क्यूब को इस तरह घुमाना कि एक अलग रंग सामने आए) सफ़लता के लिए समय को मापते हैं, जैसे कि नेटवर्क की मेमोरी को रीसेट करना, डायनेमिक्स को रीसेट करना, या एक जोड़ को तोड़ना. हम ये प्रयोग सिमुलेशन में करते हैं, जो हमें कंट्रोल की गई सेटिंग में 10,000 ट्रायल्स पर परफ़ॉर्मेंस को एवरेज करने में मदद करता है.

लोड किया जा रहा है...

शुरुआत में, जैसे-जैसे न्यूरल नेटवर्क ज़्यादा फ़्लिप करने में कामयाब होने लगता है, तो हर बार सफ़लता पाने में लगने वाला समय कम होता जाता है, क्योंकि नेटवर्क एडैप्ट करना सीखता है. जब गड़बड़ियां लागू की जाती हैं (ऊपर दी गई चार्ट में वर्टिकल ग्रे लाइनें), तो हम सफ़लता के समय में तेज़ी देखते हैं. ऐसा इसलिए है क्योंकि नेटवर्क जो तरीका अपना रहा है वो बदले हुए माहौल में काम नहीं करती. फ़िर नेटवर्क नए माहौल के बारे में सीखता है और हम दोबारा सफ़लता का समय पिछली बेसलाइन तक कम होते देखते हैं.

हमने असफ़लता की संभावना को भी मापा और फ़ेस रोटेशन्स (टॉप फ़ेस को 90 डिग्री घड़ी की सुई की दिशा या उसके विपरीत दिशा अनुसार घुमा कर) लिए भी वही प्रयोग किए और एडैप्टेशन का वही पैटर्न पाया.D

हमारे न्यूरल नेटवर्क को समझना

अपने नेटवर्क को देखने से हमें ये समझने में मदद मिलती है कि वे मेमोरी में क्या स्टोर कर रहे हैं. जैसे-जैसे नेटवर्क की दिक्कत बढ़ती जाती है, ये बात और भी ज़रूरी होती जाती है.

लोड किया जा रहा है...

हमारे न्यूरल नेटवर्क की मेमोरी ऊपर दिखाई गई है. हम इंटरप्रेटेबिलिटी टूलबॉक्स से एक बिल्डिंग ब्लॉक(एक नई विंडो में खुलेगा)इस्तेमाल करते हैं, जिसे नॉन-नेगेटिव मैट्रिक्स फ़ैक्टराइज़ेशन कहते हैं, ताकि इस हाई-डायमेंशनल वेक्टर को 6 ग्रुप्स में तोड़ सकें और हर ग्रुप को एक यूनिक कलर दे सकें. फिर हम हर टाइमस्टेप के लिए मौजूदा मुख्य ग्रुप का रंग डिस्प्ले करते हैं.

हम पाते हैं कि हर मेमोरी ग्रुप के साथ एक मतलब वाला बिहेवियर जुड़ा हुआ है. जैसे कि, हम नेटवर्क की मेमोरी के सिर्फ़ मुख्य ग्रुप को देखकर बता सकते हैं कि क्या ये क्यूब को घुमाने वाला है या ऐसा होने से पहले टॉप को घड़ी की सुई की दिशा में घुमाने वाला है.

चुनौतियां

रोबोट के एक हाथ से रूबिक्स क्यूब को सॉल्व करना अभी भी आसान नहीं है. हमारा तरीका अभी रूबिक्स क्यूब को 20% समय में सॉल्व करता है जब सबसे ज़्यादा मुश्किल स्क्रैम्बल(एक नई विंडो में खुलेगा) को लागू किया जाता है जिसके लिए 26 फ़ेस रोटेशन्स की ज़रुरत होती है. आसान स्क्रैम्बल्स के लिए, जिन्हें पहले जैसा करने के लिए 15 रोटेशन्स की ज़रुरत होती है, सफ़लता दर 60% है. जब रूबिक्स क्यूब गिर जाता है या समय ख़त्म हो जाता है, तो हम उस अटेम्पट को असफ़ल मान लेते हैं. हालांकि, हमारा नेटवर्क किसी भी शुरूआती स्थिति से रूबिक्स क्यूब को सॉल्व कर सकता है. इसलिए अगर क्यूब गिर जाए, तो उसे वापस हाथ में रखना और सॉल्व करना जारी रखना मुमकिन है.

हम आम तौर पर पाते हैं कि हमारे न्यूरल नेटवर्क के पहले कुछ फ़ेस के रोटेशन्स और फ़्लिप्स के दौरान फ़ेल हो जाने का ज़्यादा चांस होता है. ऐसा इसलिए है क्योंकि न्यूरल नेटवर्क को उन शुरुआती रोटेशन्स और फ़्लिप्स के दौरान असली दुनिया को एडैप्ट करने के साथ रूबिक्स क्यूब को सॉल्व करने में बैलेंस करने की ज़रुरत पड़ती है.

पर्दे के पीछे: रूबिक्स क्यूब के प्रोटोटाइप

अपनी प्रोग्रेस को नापने और समस्या को आसान बनाने के लिए, हमने साधारण रूबिक्स क्यूब को सॉल्व करने की दिशा में कदम बढ़ाते हुए क्यूब्स के कस्टम वर्ज़न बनाए और डिज़ाइन किए है.E

OpenAI रोबॉटिक्‍स रूबिक्स प्रोटोटाइप

रूबिक्स क्यूब प्रोटोटाइप, बाएँ से दाएँ : लॉक्ड क्यूब, फ़ेस क्यूब, फ़ुल क्यूब, गीकर(एक नई विंडो में खुलेगा) क्यूब, साधारण रूबिक्स क्यूब.

प्रोटोटाइप

पोज़ीशन + ओरिएंटेशन

आज़ादी की इंटर्नल डिग्री (सेंसर)

लॉक्ड क्यूब

विज़न

0 (कोई सेंसर नहीं)

फ़ेस क्यूब

PhaseSpace

2 (PhaseSpace)

फ़ुल क्यूब

PhaseSpace

6 (PhaseSpace)

गीकर क्यूब

विज़न

6 (बिल्ट-इन सेंसर्स)

साधारण रूबिक्स क्यूब

विज़न

6 (विज़न)

अगले क़दम

हमारा मानना ​​है कि इंसानों जैसी फुर्ती हासिल करना सामान्य इस्तेमाल वाले रोबोट बनाने की दिशा में आगे बढ़ रही है और हम इस दिशा में आगे बढ़ने के लिए उत्साहित हैं.

अगर आप और ज़्यादा सामान्य AI सिस्टम्स बनाने में मदद करना चाहते हैं, चाहे रोबॉटिक या वर्चुअल, हम आपको काम पर रख रहे हैं !

फ़ुटनोट

  1. A

    हम उन समस्याओं पर फ़ोकस करते हैं जिन पर मशीनों के लिए काबू पाना अभी मुश्किल है: देखने-समझने की क्षमता और होशियारी से चीज़ों को संभालना. इसलिए हम अपने न्यूरल नेटवर्क को Kociemba के एल्गोरिदम द्वारा जनरेट किए गए ज़रूरी फ़ेस रोटेशन और क्यूब फ़्लिप हासिल करने के लिए ट्रेन करते हैं.

  2. B

    हमारा काम POET(एक नई विंडो में खुलेगा) से बहुत मज़बूती से जुड़ा हुआ है, जो अपने आप 2D माहौल जनरेट करता है. हालांकि, हमारा काम सभी माहौल पर एक जॉइंट पॉलिसी सीखता है, जो किसी भी नए जनरेट किए गए कंटेंट में ट्रांसफ़र हो जाती है.

  3. C

    थोड़ा साफ़ कहें तो, हमारा मानना है कि जब एक लिमिटेड कैपेसिटी वाला न्यूरल नेटवर्क ऐसे माहौल में ट्रेन होता है जहाँ जटिलता का कोई बंधन नहीं होता, तो नेटवर्क को एक स्पेशल लर्निंग एल्गोरिदम सीखना पड़ता है, क्योंकि वो हर एक माहौल के लिए अलग से सॉल्युशन याद नहीं रख सकता, और कोई ऐसा सिंगल मज़बूत तरीका भी नहीं है जो हर तरह की सभी रैंडमाइज़ेशन में काम करे.

  4. D

    कृपया पूरे नतीजे के लिए हमारा पेपर(एक नई विंडो में खुलेगा) देखें.

  5. E

    हमने जो एकमात्र बदलाव किया वो ये था कि हर बीच वाले क्यूबलेट के रंगीन स्टिकर का एक छोटा-सा टुकड़ा काटना. रोटेशनल सिमेट्री(एक नई विंडो में खुलेगा) को तोड़ने के लिए ये ज़रूरी था.

लेखक

OpenAI, Ilge Akkaya, Marcin Andrychowicz, Maciek Chociej, Mateusz Litwin, Bob McGrew, Arthur Petron, Alex Paino, Matthias Plappert, Glenn Powell, Raphael Ribas, Jonas Schneider, Nikolas Tezak, Jerry Tworek, Peter Welinder, Lilian Weng, Qiming Yuan, Wojciech Zaremba और Lei Zhang

स्वीकृतियां

इस पोस्ट और पेपर के ड्राफ़्ट पर फ़ीडबैक के लिए इनका धन्यवाद: Josh Achiam, Greg Brockman, Nick Cammarata, Jack Clark, Jeff Clune, Ruben D’Sa, Harri Edwards, David Farhi, Ken Goldberg, Leslie P. Kaelbling, Hyeonwoo Noh, Lerrel Pinto, John Schulman, Ilya Sutskever & Tao Xu.

वीडियो: Peter Jordan (निर्देशक), Yvette Solis(निर्माता), Brooke Chan (निर्माता)

एडिटर: Ashley Pilipiszyn

डिज़ाइन: Justin Jay Wang और Ben Barry

फ़ोटोग्राफ़ी: Eric Haines