溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Dota 2被攻陷!OpenAI Five 5V5團(tuán)戰(zhàn)中戰(zhàn)勝人類

發(fā)布時(shí)間:2020-08-15 03:20:24 來(lái)源:ITPUB博客 閱讀:166 作者:格伯納 欄目:互聯(lián)網(wǎng)科技

近日,OpenAI開發(fā)了一套“OpenAI Five”算法,他們的五種神經(jīng)網(wǎng)絡(luò)算法已經(jīng)可以在Dota 2游戲中進(jìn)行團(tuán)隊(duì)協(xié)作擊敗業(yè)余人員隊(duì)伍。

OpenAI表示,雖然今天的游戲中仍有限制,但他們的目標(biāo)是在8月份的國(guó)際比賽中擊敗一批頂尖的專業(yè)人士,當(dāng)然只限于一些有限的“英雄”角色。

然而,Dota 2是世界上最流行和最復(fù)雜的電子競(jìng)技游戲之一。

Dota 2被攻陷!OpenAI Five 5V5團(tuán)戰(zhàn)中戰(zhàn)勝人類


OpenAI Five每天都會(huì)玩180年的游戲,通過(guò)自我對(duì)抗來(lái)學(xué)習(xí)。 它使用在256個(gè)GPU和128,000個(gè)CPU內(nèi)核上運(yùn)行的擴(kuò)展版Proximal策略優(yōu)化進(jìn)行訓(xùn)練 - 這是為他們?nèi)ツ臧l(fā)布的游戲更簡(jiǎn)單的單人版本而設(shè)置的更大規(guī)模版本的系統(tǒng)。 在游戲中,會(huì)對(duì)每個(gè)英雄使用單獨(dú)的LSTM并且不使用人類數(shù)據(jù)的情況下學(xué)習(xí)到可識(shí)別的策略。

這場(chǎng)比賽OpenAI Five與OpenAI員工團(tuán)隊(duì)進(jìn)行對(duì)戰(zhàn),由專業(yè)評(píng)論員Blitz和OpenAI Dota團(tuán)隊(duì)成員Christy Dennison進(jìn)行了解說(shuō),不少的社區(qū)人員也相繼圍觀。

問(wèn)題

人工智能的一個(gè)里程碑是在像星際爭(zhēng)霸或Dota這樣復(fù)雜的視頻游戲中超越人類的能力。相對(duì)于以前的AI里程碑,如國(guó)際象棋或圍棋,復(fù)雜的視頻游戲開始反映現(xiàn)實(shí)世界的混亂和連續(xù)性的本質(zhì)。能夠解決復(fù)雜視頻游戲的系統(tǒng)具有很高的通用性,其應(yīng)用程序不在游戲中。

人工智能領(lǐng)域的一個(gè)里程碑是在像星際爭(zhēng)霸或Dota這樣的復(fù)雜電子游戲中超越人類的能力。相對(duì)于以前的人工智能里程碑,比如國(guó)際象棋或圍棋,人們可能更為關(guān)注的是解決復(fù)雜電子游戲的系統(tǒng)將是高度通用的,而不僅僅是在游戲領(lǐng)域有應(yīng)用。

Dota 2是一款實(shí)時(shí)戰(zhàn)略游戲,由兩名玩家組成,每個(gè)玩家控制一個(gè)稱為“英雄”的角色。玩Dota的AI必須掌握以下幾點(diǎn):

  • 具備長(zhǎng)遠(yuǎn)的規(guī)劃。 Dota游戲以每秒30幀的速度運(yùn)行,平均時(shí)間為45分鐘,每場(chǎng)游戲的成績(jī)?yōu)?0,000次。大多數(shù)行為(例如命令英雄移動(dòng)到某個(gè)位置)單獨(dú)產(chǎn)生只有較小的影響,但一些個(gè)別行為可能會(huì)在戰(zhàn)略上影響游戲;有些策略甚至可以在整個(gè)游戲中產(chǎn)生重大影響。 OpenAI Five每四幀觀察一次,產(chǎn)生20,000次移動(dòng)。而國(guó)際象棋通常在40步之前就結(jié)束,在150步移動(dòng)之前移動(dòng),幾乎每一次移動(dòng)都是戰(zhàn)略性的。
  • 具備推測(cè)力。游戲中,地圖的其他部分會(huì)隱藏在霧中,那么,對(duì)于隱藏的敵人和他們的戰(zhàn)略,AI就需要根據(jù)不完整的數(shù)據(jù)進(jìn)行推斷,并且需要模擬對(duì)手可能在正在進(jìn)行的狀態(tài)。然而,象棋和圍棋都是全信息游戲,相對(duì)來(lái)說(shuō)容易一些。
  • 高度連續(xù)的動(dòng)作空間。在Dota中,每個(gè)英雄可以采取數(shù)十個(gè)動(dòng)作,許多動(dòng)作都是針對(duì)另一個(gè)單位或地面上的某個(gè)位置。我們將每個(gè)英雄的空間分割成170,000個(gè)可能的行動(dòng)(并非每個(gè)都有效,例如使用冷卻時(shí)間的法術(shù))。而國(guó)際象棋中的平均動(dòng)作數(shù)為35,在圍棋中的平均動(dòng)作數(shù)則是250。
  • 高維度、連續(xù)的觀察空間。 Dota會(huì)在包含十個(gè)英雄、數(shù)十個(gè)建筑物、幾十個(gè)NPC單位以及諸如符文、樹木和病房等游戲特征的大型地圖上進(jìn)行,由此可見,Dota的玩耍的過(guò)程很復(fù)雜。模型通過(guò)Valve的Bot API觀察Dota游戲的狀態(tài),其中20,000(大多是浮點(diǎn))數(shù)字表示允許人類訪問(wèn)的所有信息。國(guó)際象棋棋盤自然表現(xiàn)為大約70個(gè)枚舉值;一個(gè)圍棋棋盤大概約有400個(gè)枚舉值。

Dota規(guī)則也非常復(fù)雜。該游戲已經(jīng)被積極開發(fā)了十多年,游戲邏輯在數(shù)十萬(wàn)行代碼中實(shí)現(xiàn)。這一邏輯執(zhí)行的時(shí)間是幾毫秒,而對(duì)于國(guó)際象棋或圍棋則只需要幾納秒。游戲每?jī)芍芨乱淮?,不斷改變環(huán)境語(yǔ)義。

方法

OpenAI Five的系統(tǒng)使用Proximal Policy Optimization的大規(guī)模版本進(jìn)行學(xué)習(xí)。 OpenAI Five和早期的1v1機(jī)器人都完全依靠自我學(xué)習(xí)進(jìn)行。他們從隨機(jī)參數(shù)開始,不使用來(lái)自人類的數(shù)據(jù)。

Dota 2被攻陷!OpenAI Five 5V5團(tuán)戰(zhàn)中戰(zhàn)勝人類


強(qiáng)化學(xué)習(xí)的研究人員(包括我們自己)一般認(rèn)為,長(zhǎng)時(shí)間視野需要從根本上取得新的進(jìn)展,如層級(jí)強(qiáng)化學(xué)習(xí)。結(jié)果表明,我們并沒(méi)有給今天的算法足夠的信用,至少是當(dāng)它們以足夠的規(guī)模和合理的探索方式運(yùn)行時(shí)。

代理人經(jīng)過(guò)訓(xùn)練,可以最大化未來(lái)獎(jiǎng)勵(lì)的指數(shù)衰減總和,并由稱為γ的指數(shù)衰減因子加權(quán)。在最新的OpenAI Five訓(xùn)練中,從0.998(評(píng)估未來(lái)獎(jiǎng)勵(lì)的半衰期為46秒)到0.9997(評(píng)估未來(lái)獎(jiǎng)勵(lì)的半衰期為五分鐘)退化γ。為進(jìn)行比較,近端策略優(yōu)化(PPO)論文中最長(zhǎng)的平面是0.5秒的半衰期,Rainbow 論文中最長(zhǎng)的半衰期為4.4秒,觀察和進(jìn)一步觀察紙張的半衰期為46秒。

盡管當(dāng)前版本的OpenAI Five在最后一擊時(shí)表現(xiàn)不佳(觀察我們的測(cè)試比賽,專業(yè)Dota評(píng)論員Blitz估計(jì)它大約是Dota玩家的中位數(shù)附近),但其客觀的優(yōu)先級(jí)匹配一個(gè)常見的專業(yè)策略。獲得戰(zhàn)略地圖控制等長(zhǎng)期回報(bào)往往需要犧牲短期回報(bào),因?yàn)榻M建攻擊塔需要時(shí)間。這一觀察增強(qiáng)了OpenAI 的信念,即系統(tǒng)真正在長(zhǎng)期的優(yōu)化。

模型架構(gòu)

每個(gè)OpenAI Five的網(wǎng)絡(luò)都包含一個(gè)單層1024單元的LSTM,它可以查看當(dāng)前的游戲狀態(tài)(從Valve的Bot API中提?。⑼ㄟ^(guò)幾個(gè)可能的動(dòng)作發(fā)出對(duì)應(yīng)動(dòng)作。 每個(gè)動(dòng)作都具有語(yǔ)義含義,例如延遲此動(dòng)作的刻度數(shù)量,要選擇的動(dòng)作數(shù)量,單位周圍網(wǎng)格中此動(dòng)作的X或Y坐標(biāo)等。

交互式演示OpenAI Five使用的觀察空間和動(dòng)作空間。 OpenAI Five將“世界”視為20,000個(gè)數(shù)字的列表,并通過(guò)發(fā)布8個(gè)列舉值的列表來(lái)采取行動(dòng)。 選擇不同的操作和目標(biāo)以了解OpenAI Five如何編碼每個(gè)動(dòng)作,以及它如何觀察。以下圖像顯示的是我們看到的景象。

Dota 2被攻陷!OpenAI Five 5V5團(tuán)戰(zhàn)中戰(zhàn)勝人類


OpenAI Five可以對(duì)丟失的相關(guān)的狀態(tài)片段做出反應(yīng)。 例如,直到最近OpenAI Five的觀測(cè)并沒(méi)有包括彈片區(qū)域(彈丸落在敵人身上的區(qū)域),只是人類在屏幕上看到了這些區(qū)域。 然而,我們觀察到OpenAI Five學(xué)習(xí)走出(雖然不能避免進(jìn)入)活動(dòng)的彈片區(qū)域,因?yàn)樗梢钥吹剿摹敖】禒顩r”在下降

勘探

鑒于能夠處理長(zhǎng)期視野的學(xué)習(xí)算法,我們?nèi)匀恍枰剿鳝h(huán)境。即使有我們的限制,也有數(shù)百種物品,數(shù)十種建筑物、法術(shù)和單位類型,以及需要了解的大量游戲機(jī)制,其中許多產(chǎn)生了強(qiáng)大的組合。要有效地探索這個(gè)組合廣闊的空間并不容易。

OpenAI Five從自我對(duì)抗開始(從隨機(jī)權(quán)重開始)學(xué)習(xí),這為探索環(huán)境提供了一個(gè)自然的課程。為了避免“戰(zhàn)略崩潰”,代理商訓(xùn)練80%的游戲與自己對(duì)抗,另外20%與過(guò)去的自己對(duì)抗。在第一場(chǎng)比賽中,英雄們漫無(wú)目的地在地圖上漫步。經(jīng)過(guò)幾個(gè)小時(shí)的訓(xùn)練后,出現(xiàn)了諸如農(nóng)業(yè)或中期戰(zhàn)斗等概念。幾天后,他們一直采用基本的人類戰(zhàn)略:試圖從對(duì)手手中奪取賞金符文,步行到他們的一級(jí)塔去種田,并在地圖上旋轉(zhuǎn)英雄以獲得通道優(yōu)勢(shì)。并且通過(guò)進(jìn)一步的訓(xùn)練,他們就能夠熟練掌握一些高級(jí)戰(zhàn)略。

2017年3月, OpenAI 的第一個(gè)產(chǎn)品擊敗了機(jī)器人,但卻對(duì)人類無(wú)能為力。為了強(qiáng)制在戰(zhàn)略空間進(jìn)行探索,在訓(xùn)練期間(并且只在訓(xùn)練期間),我們隨機(jī)化了單位的屬性(包括健康,速度,開始水平等),讓它與人類對(duì)戰(zhàn)。后來(lái),當(dāng)一名測(cè)試玩家不停擊敗1v1機(jī)器人時(shí),增加了隨機(jī)訓(xùn)練,這時(shí)候,測(cè)試玩家開始失敗。(我們的機(jī)器人團(tuán)隊(duì)同時(shí)將相似的隨機(jī)化技術(shù)應(yīng)用于物理機(jī)器人,以便從仿真轉(zhuǎn)移到現(xiàn)實(shí)世界。)

OpenAI Five使用為1v1機(jī)器人編寫的隨機(jī)數(shù)據(jù)。它也使用一個(gè)新的“車道分配”(lane assignment)。在每次訓(xùn)練比賽開始時(shí),隨機(jī)地將每個(gè)英雄“分配”給一些子集,并對(duì)其進(jìn)行懲罰以避開這些車道。

可以發(fā)現(xiàn),探索得到了很好的回報(bào)。獎(jiǎng)勵(lì)主要包括衡量人們?nèi)绾卧谟螒蛑凶龀龅臎Q定:凈值、殺戮、死亡、助攻、最后的命中等等。我們通過(guò)減去其他團(tuán)隊(duì)的平均獎(jiǎng)勵(lì)后處理每一個(gè)智能體的獎(jiǎng)勵(lì),以防止它找到積極情況。

協(xié)調(diào)

團(tuán)隊(duì)合作由稱為“團(tuán)隊(duì)精神”的超參數(shù)控制。團(tuán)隊(duì)精神從0到1,對(duì)OpenAI Five的每個(gè)英雄都應(yīng)該關(guān)心其個(gè)人獎(jiǎng)勵(lì)功能與團(tuán)隊(duì)獎(jiǎng)勵(lì)功能的平均值有多重要。我們?cè)谟?xùn)練中將其值從0調(diào)至1。

Rapid

Dota 2被攻陷!OpenAI Five 5V5團(tuán)戰(zhàn)中戰(zhàn)勝人類


系統(tǒng)被實(shí)施為通用RL訓(xùn)練系統(tǒng)Rapid,可應(yīng)用于任何環(huán)境。我們已經(jīng)使用Rapid解決了OpenAI的其他問(wèn)題,包括競(jìng)爭(zhēng)性的自我對(duì)抗。

Dota 2被攻陷!OpenAI Five 5V5團(tuán)戰(zhàn)中戰(zhàn)勝人類


訓(xùn)練系統(tǒng)分為運(yùn)行游戲副本和代理收集體驗(yàn)的部署工作人員,以及優(yōu)化器節(jié)點(diǎn),這些節(jié)點(diǎn)在整個(gè)GPU隊(duì)列中執(zhí)行同步梯度下降。部署工作人員通過(guò)Redis將他們的體驗(yàn)同步到優(yōu)化器。每個(gè)實(shí)驗(yàn)還包含評(píng)估經(jīng)過(guò)訓(xùn)練的代理商與參考代理商的工作人員,以及監(jiān)控軟件,如TensorBoard、Sentry和Grafana。

在同步梯度下降過(guò)程中,每個(gè)GPU計(jì)算批次部分的梯度,然后對(duì)梯度進(jìn)行全局平均。我們最初使用MPI的allreduce進(jìn)行平均,但現(xiàn)在使用NCCL2來(lái)并行GPU計(jì)算和網(wǎng)絡(luò)數(shù)據(jù)傳輸。

右側(cè)顯示了不同數(shù)量的GPU同步58MB數(shù)據(jù)(OpenAI Five參數(shù)的大小)的延遲。延遲低到足以被GPU并行運(yùn)行的GPU計(jì)算所掩蓋。

OpenAI為Rapid實(shí)施了Kubernetes、Azure和GCP后端。

游戲

到目前為止,OpenAI Five已經(jīng)在各種限制下,與球隊(duì)進(jìn)行了比賽:

最好的OpenAI員工團(tuán)隊(duì):2.5k MMR(第46百分位)

觀看OpenAI員工比賽的最佳觀眾玩家(包括評(píng)論第一場(chǎng)OpenAI員工比賽的Blitz):4-6k MMR(90-99th百分點(diǎn)),盡管他們從來(lái)沒(méi)有作為一個(gè)團(tuán)隊(duì)參賽

公司員工團(tuán)隊(duì):2.5-4k MMR(第46-90百分位)

業(yè)余隊(duì):4.2k MMR(第93百分位),訓(xùn)練為一支隊(duì)伍

半職業(yè)隊(duì):5.5k MMR(第99百分位),團(tuán)隊(duì)訓(xùn)練

4月23日的OpenAI Five版本是第一個(gè)擊敗腳本基線的。 OpenAI Five的5月15日版本與第一隊(duì)平分秋色,贏得了一場(chǎng)比賽并輸?shù)袅肆硪粓?chǎng)。 6月6日的OpenAI Five版本決定性地贏得了所有的比賽。與第四和第五隊(duì)建立了非正式的比賽,預(yù)計(jì)結(jié)果不會(huì)太好,但是OpenAI Five在前三場(chǎng)比賽中贏得了兩場(chǎng)比賽。

我們觀察到OpenAI Five有以下表現(xiàn):

為了換取控制敵人的安全車道,反復(fù)犧牲了自己的安全車道(可怕的頂部車道;輻射的底部車道),迫使對(duì)手向更難防御的一邊走近。這種策略在過(guò)去幾年中出現(xiàn)在專業(yè)領(lǐng)域,現(xiàn)在被認(rèn)為是盛行的策略。 

比對(duì)手更快的完成從比賽初期到賽季中期的轉(zhuǎn)場(chǎng)。它是這樣做的:(1)建立成功的ganks(當(dāng)玩家在地圖上移動(dòng)以埋伏敵方英雄 - 參見動(dòng)畫),當(dāng)玩家在他們的車道中過(guò)度擴(kuò)張時(shí);(2)在對(duì)手組織起來(lái)之前,進(jìn)行組隊(duì)推塔。

與當(dāng)前的游戲風(fēng)格不同的是,在一些方面,比如給予英雄(通常不優(yōu)先考慮資源)大量的早期經(jīng)驗(yàn)和黃金支持。OpenAI Five的優(yōu)先級(jí)使得它的傷害更早達(dá)到頂峰,并使它的優(yōu)勢(shì)更加強(qiáng)大,贏得團(tuán)隊(duì)?wèi)?zhàn)斗并利用錯(cuò)誤來(lái)確??焖俚膭倮?

Dota 2被攻陷!OpenAI Five 5V5團(tuán)戰(zhàn)中戰(zhàn)勝人類


與人類的差異

OpenAI Five可以訪問(wèn)與人類相同的信息,可以立即看到諸如位置、健康狀況和物品清單等數(shù)據(jù),這些數(shù)據(jù)是人類必須手動(dòng)檢查的。我們的方法與觀察狀態(tài)沒(méi)有本質(zhì)的聯(lián)系,但是僅僅從游戲中渲染像素就需要數(shù)千個(gè)gpu。

OpenAI Five的平均動(dòng)作速度約為每分鐘150-170個(gè)動(dòng)作(理論上最大動(dòng)作速度為450個(gè),因?yàn)槊扛?幀就觀察一次)。盡管對(duì)于熟練的玩家來(lái)說(shuō),框架完美的時(shí)機(jī)選擇是可能的,但對(duì)于OpenAI Five來(lái)說(shuō)是微不足道的。OpenAI Five的平均反應(yīng)時(shí)間為80ms,比人類快。

這些差異在1v1中最為重要(我們的機(jī)器人的反應(yīng)時(shí)間為67ms),但由于我們看到人類從機(jī)器人身上學(xué)習(xí)并適應(yīng)機(jī)器人,所以競(jìng)爭(zhēng)環(huán)境相對(duì)公平。在去年的TI測(cè)試后的幾個(gè)月里,數(shù)十名專業(yè)人士使用了我們的1v1機(jī)器人進(jìn)行訓(xùn)練。根據(jù)Blitz的說(shuō)法,1v1機(jī)器人已經(jīng)改變了人們對(duì)1v1的看法(這個(gè)機(jī)器人采用了快節(jié)奏的游戲風(fēng)格,現(xiàn)在每個(gè)人都已經(jīng)適應(yīng)了)。

令人驚訝的發(fā)現(xiàn)

稀疏與密集的獎(jiǎng)勵(lì)學(xué)習(xí)曲線,顯示密集達(dá)到同等水平的性能更快。二值獎(jiǎng)勵(lì)能帶來(lái)好的表現(xiàn)。我們的1v1模型有一個(gè)形狀的獎(jiǎng)勵(lì),包括對(duì)最后命中目標(biāo)的獎(jiǎng)勵(lì)、殺戮等等。他們做了一個(gè)實(shí)驗(yàn),只獎(jiǎng)勵(lì)那些成功或失敗的人,它訓(xùn)練了一個(gè)數(shù)量級(jí)更慢,并且在中間有一些停滯,這與我們通??吹降钠交膶W(xué)習(xí)曲線形成了對(duì)比。這個(gè)實(shí)驗(yàn)運(yùn)行在4500個(gè)核心和16k80個(gè)gpu上,訓(xùn)練到半專業(yè)級(jí)(70個(gè)TrueSkill),而不是最好的1v1機(jī)器人的90個(gè)TrueSkill。

Dota 2被攻陷!OpenAI Five 5V5團(tuán)戰(zhàn)中戰(zhàn)勝人類


可以從頭學(xué)習(xí)卡兵。對(duì)于1v1,學(xué)習(xí)了使用傳統(tǒng)RL的卡兵,并得到了一個(gè)獎(jiǎng)勵(lì)。團(tuán)隊(duì)的一個(gè)成員在休假時(shí)離開了2v2的模型訓(xùn)練,想看看還需要多久的訓(xùn)練才能提高性能。令他驚訝的是,這個(gè)模型已經(jīng)學(xué)會(huì)了在沒(méi)有任何特殊指導(dǎo)或獎(jiǎng)勵(lì)的情況下卡兵。

比較bug修復(fù)前后的學(xué)習(xí)曲線,顯示修復(fù)bug如何提高學(xué)習(xí)速度。該圖表顯示了擊敗業(yè)余玩家的代碼的訓(xùn)練運(yùn)行情況,與此相比,只是修復(fù)了一些bug,比如在訓(xùn)練中偶爾發(fā)生的崩潰,或者一個(gè)bug,如果達(dá)到了25級(jí),就會(huì)得到很大的負(fù)面獎(jiǎng)勵(lì)。

Dota 2被攻陷!OpenAI Five 5V5團(tuán)戰(zhàn)中戰(zhàn)勝人類



向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI