เผยความลับเหล่า challenger ต้องขวัญผวา บอทชนะ 2–0 ในศึก Dota2 5v5 เอ๊ะ ยังไง…

Watchirawut Leangon
ConvoLab
Published in
2 min readAug 23, 2018

OpenAI Five จัดทับบอท ชนะ 2–0 ในศึก 5v5 Dota2 ถึงคราวของบอทแล้วหรือ?

สวัสดีผู้อ่านทุกท่าน วันนี้เราก็มาอยู่กับเกม Dota2 ซึ่งกำลังมีประเด็นที่ทางทีมผู้พัฒนา OpenAI Five ได้พัฒนาบอทเกมตัวนี้ให้สามารถชนะผู้เล่นระดับสูงได้สำเร็จ เห็นทีคำพูดที่ว่า “ไปตบบอทให้คลายหัวร้อน” คงจะจบลงซะแล้วหรือนี่ หลายคนอาจสงสัยว่าแล้วบอทที่เก่งๆเนี่ยมันมีอะไรอยู่เบื้องหลัง วันนี้เราอาสามาไขความลับเบื้องหลังเจ้าบอทตัวนี้ให้กระจ่างกันไปเลย

actionก่อนอื่นเรามาเริ่มจาก hero ก่อนเลยครับ บอทที่เล่นนั่นแหละ บอทแต่ละตัวมีสมองเบื้องหลังเป็น single-layer, 1024-unit LSTM ซึ่งจากการที่ LSTM เป็น RNN ประเภทหนึ่งซึ่งมีความสามารถในการรับรู้จดจำรูปแบบที่ต่อเนื่องและถูกนำไปใช้ในการเรียนรู้สิ่งที่มีความต่อเนื่องของข้อมูลเช่น การเรียนรู้จดจำเสียง เป็นต้น ซึ่งในที่นี้ได้ถูกใช้เพื่อการประมวลผลสถานะของ hero นั้นๆและบอกว่าต้องทำอะไร เช่น ตอนนี้ hero กำลังเลือดน้อยก็อาจจะให้คำสั่งที่จะนำ hero วาร์ปกลับบ้านหรือพยายามเข้าหาทีมเพื่อให้ทีมซัพพอร์ต ซึ่งสถานะต่างๆรวมถึงคำสั่งที่มีนั้นมีเยอะมากๆ แบ่งเป็น สิ่งรับรู้(observable) กับ แอคชั่น(action)

สำหรับปัญหาที่ท้าทายความสามารถของเจ้าบอทนี้นั้นมีอยู่ 4 อย่างครับที่ทางทีมผู้พัฒนาได้ลิสต์มา

  1. ความยาวของเกม

เนื่องจากว่าเกม Dota 2 นั้นเป็นเกมที่ใช้เวลานานในการที่จะเล่นจนจบ หลักๆจะใช้เวลาประมาณ 45 นาที ซึ่งนั่นหมายถึงการกดปุ่มและการคลิ้กเมาส์ต่างๆในเกมๆนึงนั้นมีเยอะมาก และยังไม่นับรวมถึงกลยุทธ์ในระยะยาว ซึ่งกลยุทธ์บางอย่างอาจต้องใช้ตั้งแต่เริ่มยันจบเกมเลยทีเดียวหรือแม้แต่ action บางอย่างในเกมเช่นการวาร์ปกลับฐานก็ต้องให้เกิดประโยชน์สูงสุดเพื่อโอกาสในการชนะเช่นกัน

2. สิ่งที่ไม่สามารถรับรู้ได้ตรงๆ

อย่างที่ทราบกันดีว่าตัวเกมนั้นจะมีข้อมูลบางส่วนที่ผู้เล่นไม่สามารถรับรู้ได้หรือจะรับรู้ได้จนกว่าจะถึงสถานการณ์ อย่างเช่น Fog of war ที่ปิดบังข้อมูลส่วนอื่นๆของแมพ หรือแม้แต่การวางกลยุทธ์ของฝ่ายตรงข้าม บอทจึงต้องสามารถคาดการณ์จากข้อมูลที่มีอยู่จำกัดนี้ให้ได้

from Steam Community

3. action ที่ซับซ้อนและต่อเนื่อง

อีกสิ่งที่ยากสำหรับเจ้าบอทเลยคือ action ที่ hero สามารถทำได้นี่ละครับ ปกติเวลามนุษย์เล่นก็จะคิดเป็นการกดปุ่มหรือคลิ้กเมาส์ด้วยรูปแบบที่ซับซ้อนและต่อเนื่อง บางครั้งอาจเป็นคอมโบ บอทจึงต้องสามารถรับมือกับ action ที่มีเยอะมากของตัวละคร ซึ่งมีอยู่มากถึงประมาณ 170000 action ที่ทำได้ซึ่งนับรวมถึง action ที่ใช้งานไม่ได้ด้วย เช่น การกดใช้สกิลในขณะคูลดาวน์

4. observable ที่ซับซ้อนและต่อเนื่อง

เมื่อมี action ที่ซับซ้อนแล้ว observable ในเกมก็มิได้ปราณีเจ้าบอทแต่อย่างใดครับ ข้อมูลที่รับรู้ได้ในเกมนั้นมีเยอะมากและเป็นข้อมูลที่ต่อเนื่อง ไม่ว่าจะเป็น ข้อมูลสถานะของตัวละครอื่น ป้อม ครีป วาร์ด หรือแม้แต่ต้นไม้ ทุกข้อมูลที่มนุษย์สามารถเข้าถึงได้นั้นได้กลายมาเป็นข้อมูลให้กับบอทเช่นกัน

การเรียนรู้ของ OpenAI Five

สำหรับการสอน OpenAI Five นั้นทางทีมผู้พัฒนาสอนโดยให้บอทเล่นเกมแข่งกับตัวเองเป็นประสบการณ์เทียบเท่า 180 ปี ทุกๆวัน โดยการใช้ proximal policy optimization เวอร์ชั่นปรับปรุงที่ทางทีมได้พัฒนามาเป็นพิเศษเพื่อใช้เป็น reinforcement learning algorithm รันบน 256 GPUs กับ 128,000 CPU cores การเรียนรู้เริ่มต้นจากการสุ่ม weight parameters ต่างๆ และเพื่อไม่ให้เกิด strategy collapse จึงแบ่งให้เล่นเกม 80% กับตัวเอง กับ 20% กับตัวมันในอดีต

ผลที่เกิดขึ้นคือ

จากผลของ reinforcement learning ทำให้บอทสามารถบรรลุเป้าหมายของเกมระยะยาวโดยการยอมปล่อยแต้มระยะสั้นอย่างการฟาร์ม หรือแม้แต่การยอมปล่อยเลนตัวเองเพื่อใช้กลยุทธ์ในการดันเลนที่มีความสูญเสียมากซึ่งทำให้ทีมตรงข้ามเกิดจุดบอดสูงที่สุด หรือการทำให้ทีมมีแต้มต่อเยอะที่สุดนั่นเอง เก่งมากเจ้า RL

สุดท้ายขอเตือนไว้เลยว่าอย่ามาหือกับบอทนะจ้ะ GG

สามารถอ่านข้อมูลเพิ่มเติมได้ที่ https://blog.openai.com/openai-five/

--

--