डोटा 2 के लिए एक बॉट बनाने का विवरण

हमारे बॉट के खेल के परिणाम से पता चलता है कि खुद के साथ खेलना [सेल्फ-प्ले] मशीन लर्निंग सिस्टम की गुणवत्ता को गंभीरता से बढ़ा सकता है, और किसी व्यक्ति के स्तर से सुपरमैन के स्तर की तुलना में बहुत कम अवस्था में उठा सकता है, यदि उपयुक्त कंप्यूटिंग शक्ति हो। एक महीने के भीतर, हमारी प्रणाली एक ऐसे राज्य से उठी जो शायद ही एक अच्छे खिलाड़ी के स्तर के अनुरूप था, जिसमें उसने सर्वश्रेष्ठ पेशेवरों को हराया था, और तब से सुधार करना जारी रखा है। गहराई से सीखने की निगरानी की एक प्रणाली की गुणवत्ता प्रशिक्षण डेटा के सेट द्वारा निर्धारित की जाती है, लेकिन सिस्टम खुद के साथ खेलने के लिए, उपलब्ध डेटा सेट स्वचालित रूप से सुधार हुआ है।

छवि
समय के साथ खेलों का अनुकरण करके गणना की गई हमारे बॉट के ट्रूस्किल रेटिंग (शतरंज के लिए एलो रेटिंग के समान) में बदलें।

परियोजना इस प्रकार विकसित हुई। 15% खिलाड़ियों की रेटिंग MMR पैमाने पर 1.5K निशान से कम है; 58% खिलाड़ियों के पास यह 3K से कम है; 99.99% खिलाड़ियों की 7.5K से कम है।

• 1 मई: पहला सुदृढीकरण प्रशिक्षण एक सरल डोटा वातावरण में परिणाम देता है जहां ड्रॉ रेंजर हार्ड-कोडेड अर्थशास्त्री से लड़ने के लिए सीखता है।
• 8 मई: 1.5K के एमएमआर के साथ एक परीक्षक का कहना है कि उनके परिणाम बॉट की तुलना में तेजी से सुधार करते हैं।
• जून की शुरुआत: एमएमआर 1,5K के साथ बीट परीक्षक
• 30 जून: मैंने एमएमआर 3000 के साथ एक परीक्षक के साथ अधिकांश गेम जीते।
• 8 जुलाई: पहली बार एक छोटे अंतर से, मैंने 7.5K के MMR के साथ एक अर्ध-पेशेवर परीक्षक को हराया
• 7 अगस्त: ब्लिट्ज (6.2K, पूर्व पेशेवर) ने 3-0, पजकट (8.5K, पेशेवर) 2-1, और CC & C (8.9K, पेशेवर) 3-0 से जीता। वे सभी इस बात पर सहमत थे कि सुमाईएल यह पता लगाएगा कि उसे कैसे हराया जाए।
• 9 अगस्त: अर्टेजी ने (10K, पेशेवर, सर्वश्रेष्ठ खिलाड़ियों में से एक) को 10-0 से हराया। उन्होंने कहा कि सुमाईएल इस बॉट को संभालने में सक्षम होगा।
• 10 अगस्त: सुमाईल ने जीता (8.3K, पेशेवर, सर्वश्रेष्ठ 1 खिलाड़ी 1) 6-0। खिलाड़ी ने कहा कि बॉट को हराया नहीं जा सकता। उन्होंने 9 अगस्त को बॉट संस्करण के साथ खेला, 2-1 से जीता।
• 11 अगस्त: डेंडी ने (7.3K, पेशेवर, पूर्व विश्व चैंपियन) को 2-0 से हराया। 10 अगस्त के संस्करण की तुलना में 60% अधिक जीत।


SumaiL के खिलाफ खेल

कार्य


खेल के पूर्ण संस्करण में, खिलाड़ी 5 पर 5 खेलते हैं, लेकिन कुछ टूर्नामेंटों में 1 गेम पर 1 भी होता है। हमारे बॉट मानक टूर्नामेंट नियमों के अनुसार खेले - हमने एआई के लिए विशेष सरलीकरण नहीं जोड़ा।

बॉट ने निम्नलिखित इंटरफेस के साथ काम किया:

• अवलोकन: एपीआई में हीरो, खेल के अन्य पात्रों और नायक के बगल की सतह के बारे में जीवित खिलाड़ियों जैसी ही क्षमता होती है। खेल आंशिक रूप से अवलोकन योग्य है।
• कार्य: एपीआई के माध्यम से सुलभ, मानव के लिए एक आवृत्ति के साथ, एक निश्चित स्थान पर आंदोलन सहित, वस्तुओं का हमला और उपयोग।
• प्रतिक्रिया: बॉट जीत के लिए पुरस्कार प्राप्त करता है, साथ ही साथ सरल पैरामीटर, जैसे कि स्वास्थ्य और टिकता है

हमने बॉट के लिए उपलब्ध दर्जनों वस्तुओं का चयन किया, और उनमें से एक को अध्ययन के लिए चुना। हम पारंपरिक सुदृढीकरण प्रशिक्षण तकनीकों का उपयोग करते हुए अलग से प्रशिक्षित ढोंगी को प्रशिक्षित करते हैं, जैसा कि एक प्रतिद्वंद्वी के सामने आने से पहले होता है।


बॉट अर्टेजी के खिलाफ खेलता है

द इंटरनेशनल टूर्नामेंट


हमारा दृष्टिकोण, खेल को खुद से जोड़ना और बाहर से सीखना, हमें सोमवार से गुरुवार तक अपने बॉट के खेल को मजबूत करने की अनुमति देता है, जबकि टूर्नामेंट चल रहा था। सोमवार की रात पजकट एक असामान्य आइटम संग्रह का उपयोग करके जीता। हमने इस असेंबली को उपलब्ध वस्तुओं की सूची में जोड़ा है।

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

आर्टीज़ी के साथ मैचों के बाद, हमने रेंगना अवरुद्ध मॉडल को अपडेट किया, जिससे ट्रूस्किल एक से बढ़ गया। गुरुवार को सुमाईएल के साथ मैच से पहले प्रशिक्षण सत्र के बाद ट्रूस्किल में दो अंकों की वृद्धि हुई। सुमाईएल ने बताया कि बॉट ने दुश्मन के देखने के क्षेत्र के बाहर विनाशकारी मंत्र डालना शुरू कर दिया। यह यांत्रिकी के लिए धन्यवाद हुआ, जिसके बारे में हमें नहीं पता था: दुश्मन के देखने के क्षेत्र के बाहर कास्टिंग उसे चमत्कार को चार्ज करने की अनुमति नहीं देता है।

अर्तेज़ी ने हमारे 7.5K टेस्टर के साथ एक मैच खेला। आर्तेज़ी ने खेल जीत लिया, लेकिन हमारे परीक्षक ने बॉट द्वारा की गई रणनीति की मदद से उसे आश्चर्यचकित करने में कामयाबी हासिल की। अरेटज़ी ने बाद में उल्लेख किया कि पापाराज़ी ने एक बार उनके खिलाफ इस रणनीति का उपयोग किया था, और उन्होंने शायद ही कभी इसका सहारा लिया।


पेकट ने सोमवार की बॉट जीत ली। वह बॉट को लालच देता है, और फिर उत्थान का उपयोग करता है।

बॉट की कमजोरियां


हालाँकि सुमाईएल ने बॉट को "अजेय" कहा, लेकिन यह अभी भी स्थितियों में भ्रमित हो सकता है जो इसे देखा था उससे बहुत अलग है। हमने इसे टूर्नामेंट में आयोजित होने वाले कार्यक्रमों में से एक में लॉन्च किया, जहां खिलाड़ियों ने सभी संभावित तरीकों से बॉट को हराने के लिए 1000 से अधिक खेल खेले।

सफल कमजोरियाँ तीन श्रेणियों में गिरीं:

• ढोंगी का काम। आप लगातार लाइन से ढोंगी बना सकते हैं जो आपको दिखाई देने के तुरंत बाद पीछा करते हैं। नतीजतन, कई दर्जन ढोंगी आपके नक्शे के पार चलेंगे, और दुश्मन ढोंगी बॉट टॉवर को नष्ट कर देंगे।
• विष + पवन फीता की ओर्ब: आपको पहले स्तर पर बॉट पर आंदोलन की गति में एक फायदा देता है और आपको जल्दी से नुकसान की अनुमति देता है।
• पहले स्तर पर टकटकी: इसमें कौशल की आवश्यकता होती है, लेकिन कक्षा 6-7K के कई खिलाड़ी पहले स्तर पर बॉट को मारने में सक्षम थे, सफलतापूर्वक थोड़े समय में 3-5 मंत्र पूरा कर रहे थे।

एक-पर-एक मैचों के लिए समस्याओं को ठीक करना पजकट के साथ बग को ठीक करने के समान होगा। लेकिन 5v5 मैचों के लिए, ये समस्याएं कमजोरियां नहीं हैं, और हमें एक ऐसी प्रणाली की आवश्यकता होगी जो अजीब परिस्थितियों का सामना कर सके, जो पहले नहीं देखी गई थी।

आधारभूत संरचना


हम अभी तक बॉट की आंतरिक विशेषताओं पर चर्चा करने के लिए तैयार नहीं हैं - टीम 5 पर 5 गेम के साथ समस्या के समाधान पर काम कर रही है।

प्रोजेक्ट का पहला चरण यह समझना था कि एक भौतिक GPU पर क्लाउड में Dota 2 को कैसे चलाया जाए। खेल ने इस तरह के मामलों में एक अक्षम्य त्रुटि दी। लेकिन जब ग्रेग के डेस्कटॉप पर GPU पर लॉन्च करते समय (शो के दौरान इस डेस्कटॉप को मंच पर लाया गया था), हमने देखा कि Dota एक कनेक्टेड मॉनिटर के साथ बूट करता है, और यह मॉनिटर के बिना एक ही संदेश प्रदर्शित करता है। इसलिए, हमने अपनी आभासी मशीनों को यह दिखावा करने के लिए कॉन्फ़िगर किया था जैसे कि एक भौतिक मॉनिटर उनसे जुड़ा था।

उस समय, डोटा ने समर्पित सर्वरों का समर्थन नहीं किया, अर्थात स्केलिंग के साथ लॉन्च किया और बिना GPU के केवल बहुत ही धीमी गति से सॉफ्टवेयर प्रतिपादन के साथ संस्करण में संभव था। फिर हमने अधिकांश ओपनगैल कॉल के लिए एक स्टब बनाया, केवल उन लोगों को छोड़कर जिन्हें लोड करने की आवश्यकता थी।

उसी समय, हमने स्क्रिप्ट में बॉट्स लिखा - तुलना के लिए एक संदर्भ के रूप में (विशेष रूप से, क्योंकि अंतर्निहित बॉट 1 में 1 मोड में अच्छी तरह से काम नहीं करते हैं) और बॉट के लिए एपीआई के शब्दार्थ को समझने के लिए । स्क्रिप्ट बॉट खाली रास्ते पर 10 मिनट में 70 लास्ट तक पहुंच जाता है, लेकिन फिर भी ऐसे लोगों से हार जाता है जो काफी अच्छा खेलते हैं। 1 पर 1 खेलने वाला हमारा सबसे अच्छा बॉट लगभग 97 के स्तर तक पहुंच जाता है (यह पहले टॉवर को नष्ट कर देता है, ताकि हम केवल एक्सट्रपलेट कर सकें), और सैद्धांतिक अधिकतम 101 है।


बॉट SirActionSlacks के खिलाफ खेलता है। बॉट डायवर्जन रणनीति ने कोरियर की भीड़ के साथ काम नहीं किया

पाँच-पाँच


1 पर 1 खेलना मुश्किल काम है, लेकिन 5 पर 5 जटिलता का एक महासागर है। हमें एआई की क्षमताओं का विस्तार करने की आवश्यकता होगी ताकि वह इससे निपट सके।

सामान्य तरीके से, हम व्यवहार को कॉपी करके शुरू करते हैं। Dota प्रतिदिन एक लाख सार्वजनिक खेलों की मेजबानी करता है। मैचों के रिकॉर्ड वाल्व सर्वर पर दो सप्ताह तक संग्रहीत किए जाते हैं। हम पिछले नवंबर से विशेषज्ञ स्तर पर प्रत्येक गेम प्रविष्टि डाउनलोड करते हैं, और 5.8 मिलियन गेम (प्रत्येक गेम 10 मिनट के साथ लगभग 45 मिनट) का डेटा सेट एकत्र करते हैं। हम OpenDota का उपयोग रिकॉर्ड खोजने के लिए करते हैं और परियोजना का समर्थन करने के लिए 12,000 डॉलर (जो वे एक साल में इकट्ठा करना चाहते थे उससे दस गुना अधिक) को हस्तांतरित करते हैं।

हमारे पास अभी भी बहुत सारे विचार हैं, और हम प्रोग्रामर (मशीन सीखने में रुचि रखते हैं, लेकिन जरूरी नहीं कि विशेषज्ञ) और शोधकर्ताओं को हमारी मदद करने के लिए किराए पर लेते हैं। हम अपने काम में समर्थन के लिए Microsoft Azure और वाल्व का धन्यवाद करते हैं।

Source: https://habr.com/ru/post/hi406359/


All Articles