Kết quả từ Dota 2 cho thấy quá trình tự học có thể cải thiện khả năng của hệ thống Machine Learning từ dưới ngưỡng người bình thường đến trình độ của siêu việt. Trong vòng 1 tháng, hệ thống từ chỗ không là đổi thủ của player rank cao đã đánh bại những người chơi chuyên nghiệp và tiến bộ không ngừng. Hệ thống tự học có thể tự cải thiện được cơ sở dữ liệu của nó, thay vì dựa vào cơ sở dữ liệu có sẵn như Deep Learning.
Xếp hạng TrueSkill (tương tự như đánh giá ELO trong cờ vua) của bot theo thời gian, được tính bằng cách mô phỏng trò chơi giữa các chương trình và theo dõi tỷ lệ thắng.
Dưới đây là lịch các mốc quan trong đã diễn ra trong suốt thời gian của dự án OpenAI cho Dota 2. Theo tìm hiểu của chúng tôi, có 15% người chơi ở mức hạng dưới 1.5K MMR, 58% dưới 3K MMR, và 99.99% dưới 7.5K MMR
- 01/03: Kết quả đầu tiên khá khả quan, bot đã học được cách thả diều bằng Drow Ranger và hạ gục Earth Shaker
- 08/05: Tester 1.5K MMR nói rằng anh ta vẫn nhanh hơn bot khá nhiều
- Đầu tháng 6: Hạ gục tester 1,5K MMR
- 30/06: Thắng hầu hết trên các ván đấu với tester 3K MMR
- 08/07: Chiến thắng vật vã đầu tiên trước 1 người chơi bán chuyên có rank 7.5K MMR
- 07/08: Blitz(cựu player, MMR = 6.2k) thua 3-0 , Pajkatt (pro 8.5K MMR) thua 2 – 1, CC&C(pro 8.9K MMR) thua 3-0. Và ai cũng sẽ nghĩ rằng Sumail sẽ tìm ra cách đánh bại bot này
- 09/08: Hạ gục Trashteezy (top player, 10K MMR) thua 10 – 0, anh ta vẫn nói rằng Sumail sẽ có cách
- 10/08: Sumail (top 1vs1, 8.3KMMR) thua 6 – 0 trước bot, thừa nhận rằng không thể đánh bại được bot dù rằng trước đó anh đã có ván thắng 2-1 vào ngày 9/8
- 11/08: Đánh bại Dendi (7.3K MMR, cựu vô địch thế giới) 2-0. Bot hiện tại đã có 60% tỉ lệ thắng so với bot của ngày 8/10
Mục tiêu của OpenAI
Đưa ra fullscale bot cho 5v5, mặc dù con bot hiện tại chỉ đánh solo mid, nhưng bản thân thuật toán của nó không hề bị giới hạn bởi 1v1.
Giao diện làm việc của bot:
- Quan sát: API tầm nhìn của bot hoạt động giống như cách chúng ta nhìn game Dota, nó có thể nhận diện heroes, creeps, địa hình…
- Hành động: APM của bot chỉ ngang trung bình của con người, có thể di chuyển, tấn công, dùng skill, dùng item
- Hồi đáp: bot sẽ được thưởng khi đạt 1 số tiêu chí như máu và last hit
OpenAI đã cho bot sử dụng 1 vài item build, và đánh giá tính hiệu quả của nó. Cơ chế block creep được huấn luyện riêng, vì điều này diễn ra trước khi kẻ địch xuất hiện.
Tại The International 2017
Phương pháp của OpenAI tại TI 2017 đó là kết hợp giữa việc tự học của bot và 1 số chỉ dẫn của con người đã đạt kết quả khá tốt.
Vào tới thứ 2, Pajkatt chiến thắng nhờ lên Magic Wand rất sớm, item này ngay sau đó đã được đưa vào training. Vào 1h chiều ngày thứ 4, con bot mất rất nhiều máu vào wave đầu tiên, ban đầu các kĩ sư tưởng rằng đã có sai sót gì đó và chuẩn bị roll back, nhưng họ chợt nhận ra đó chỉ là hành động “baiting” của con bot làm đối thủ aggressive lao lên mà thôi.
Kết hợp điều này với con bot của thứ 2, là giới hạn việc bait này chỉ ở wave đầu, họ đã hoàn thành con bot mà chỉ 20p sau đã hành RTZ 10 – 0.
Sau trận đánh với RTZ, khả năng block creep của con bot lại được nâng cao, và trước trận đánh với Sumail còn được cải thiện hơn nữa. Sumail chỉ ra rằng con bot đã có khả năng cast raze ngoài tầm nhìn của đối phương. Điều này làm các kĩ sư bất ngờ, vì họ chưa biết mechanic của Magic Wand sẽ không hồi charge nếu đối phương cast skill ngoài tầm nhìn.
RTZ đồng thời test với player 7.5k, mặc dù dành chiến thắng áp đảo nhưng RTZ vẫn bị bất ngờ bởi 1 chiến thuật player này học được từ con bot. RTZ nhấn mạnh rằng kĩ thuật này từng được dùng bởi Paparazi nhưng chưa được chau truốt.
Pajkat đã dụ con bot trade hit từ sớm, sau đó dùng faerie fire và magic wand để regen. Mặc dù con bot được huấn luyện để quyết định có tham gia giao tranh hay không, nhưng nó không quen với việc có người lên magic wand sớm như vậy
Lợi dụng sơ hở của bot Mặc dù Sumail gọi con bot là “bất khả chiến bại”, tuy nhiên tại TI, các fan hâm mộ của Dota đã tìm ra nhiều cách để lợi dụng kẽ hở của bot
Có 3 nhóm chính:
- Pull creep: kéo creep địch ra ngoài tower 1, điều này khiến creep phe ta đập vỡ trụ của bot.
- Orb of Venom + Wind lace: có tốc chạy cao để kite bot, dành first blood. Sau đó nhờ lợi thế này để chiến thắng.
- Level 1 Raze: một số player có khả năng vẩy Raze 3-5 phát liên tiếp, ngay lập tức giết bot.
Mặc dù khắc phục những sơ hở này rất đơn giản, nhưng trong 1 trận đấu 5v5, đây không phải là sơ hở nữa, những kĩ sư tại OpenAI muốn phát triển 1 hệ thống để đối phó với những tình huống kì lạ như này.
5v5
1v1 là phức tạp, nhưng 5v5 là cả một đại dương đầy rối rắm và chúng tôi (Open AI) cần đẩy mạnh hơn nữa các giới hạn của AI để giải quyết nó.
Điều cần làm tốt nhất là nhân bản hành vi. Dota có khoảng một triệu trận đấu chung mỗi ngày. Các replay cho những trận đấu này được lưu trữ trên các máy chủ của Valve trong hai tuần. Chúng tôi đã tải về tất trận đấu cấp độ chuyên nghiệp kể từ tháng 11 năm ngoái và tích lũy dữ liệu gồm 5,8 triệu ván đấu (mỗi trò chơi khoảng 45 phút với 10 game thủ). Chúng tôi sử dụng quỹ OpenDota để khám phá những replay này và đóng góp 12000 USD (mục tiêu của họ năm rồi là 10000 USD) để hỗ trợ cho dự án.
Chúng tôi có nhiều ý tưởng hơn, và đang thuê các kỹ sư (phải được học bởi máy móc, nhưng không cần phải là chuyên gia) và các nhà nghiên cứu để giúp chúng tôi thực hiện điều này. Chúng tôi cảm ơn Microsoft Azure và Van vì sự hỗ trợ của họ trong nỗ lực này.
Tham khảo bản dịch từ: spiderum