來源:新智元
導(dǎo)讀
GameGPT出世,多代理多線程完美再現(xiàn)游戲制作流程!
不得了了!GPT技能樹再成長,現(xiàn)在直接連游戲都能做了???要知道,現(xiàn)在這個時代,已經(jīng)不是過去那個做個小游戲就可以搶占市場的時代了。如今的游戲開發(fā)流程超級復(fù)雜。先說人力,每個游戲團(tuán)隊的人員都是數(shù)以幾十甚至上百來記。有人負(fù)責(zé)編程,有人負(fù)責(zé)美工,有人負(fù)責(zé)維護(hù),等等。每個游戲還都有龐大的代碼庫、素材庫。結(jié)果就是,開發(fā)一款優(yōu)秀的游戲大作,需要大量人員,投入大量時間才能完成。而這個時間周期,往往要長達(dá)數(shù)年。
更直觀的,就是錢。游戲團(tuán)隊開發(fā)一款能讓人們記住并且愛玩兒的大作,預(yù)算動不動就要超過1億美元。要不然怎么說,游戲制作算是一種用愛發(fā)電呢?,F(xiàn)在,情況有變!有研究人員開發(fā)了一個叫GameGPT的模型,GameGPT可以整合多個AI智能體(agent)來自動完成游戲開發(fā)中的部分流程。而不同的智能體各司其職,工作起來井井有條。有智能體負(fù)責(zé)審查游戲的設(shè)計計劃,并進(jìn)行相應(yīng)的修改和調(diào)整;有的負(fù)責(zé)將任務(wù)轉(zhuǎn)化為具體的代碼;有的負(fù)責(zé)對上一步生成的代碼進(jìn)行檢查,對運(yùn)行結(jié)果進(jìn)行審核;還有智能體負(fù)責(zé)驗證全部的工作是否符合初始預(yù)期。
如此這般,通過細(xì)化分解工作流程,GameGPT就可以簡化AI智能體的工作。這種各司其職會更加有效率,實現(xiàn)起來也比一個全能型的智能體完成一切要簡單得多。研究人員表示,GameGPT可以簡化傳統(tǒng)游戲開發(fā)流程中一些重復(fù)和死板的內(nèi)容,比如代碼測試。大量開發(fā)人員就可以從繁雜的檢驗工作中解放出來,專注于AI所不能替代的,更有挑戰(zhàn)性的設(shè)計環(huán)節(jié)。當(dāng)然,這篇論文目前還處于一個比較初步的階段。目前還沒有任何具體的結(jié)果或者實驗來證明性能上的提高。換句話說,還沒人用GameGPT真的開發(fā)過游戲,這個模型目前還處在概念形成階段,在有具體的應(yīng)用結(jié)果以及可量化的數(shù)據(jù)之前,咱也不好評估。不過,總歸是個努力的方向。有網(wǎng)友表示,人們對LLM的想法是有一定偏差的?,F(xiàn)在,研究人員有了一種能夠100%解決NLP問題的工具,而人們卻只關(guān)心如何實現(xiàn)某些工作流程的自動化。舉例來說,想象一下如果游戲世界對你的決定做出的反應(yīng),要比你在五分鐘內(nèi)判斷出基于規(guī)則的硬編碼引擎的反應(yīng)更正常,那將會是怎樣的情景。再想象一下,如果一款游戲能根據(jù)你做出的決定(比如在路上隨機(jī)屠殺你看到的敵人等),為你臨時安排一些支線任務(wù),那會是什么場景。而開發(fā)者在創(chuàng)建這樣一個系統(tǒng)時,會使用提示工程來指導(dǎo)LLM,而不是編碼這些東西。
但是,這樣做的目的不是為了節(jié)省成本,而是為了在以前無法制作更多游戲的階段制作游戲(是不是有點拗口)。
GameGPT
首先,讓我們來看看GameGPT模型的大框架——全流程。
作者將每個智能體擬人化,更生動地展示了他們是如何各司其職的。流程最左側(cè)是用戶端,向GameGPT輸入prompt,然后開發(fā)經(jīng)理和審核進(jìn)行初步計劃。接著,再把需求發(fā)送給開發(fā)工程師,以及游戲引擎工程師,來執(zhí)行具體的任務(wù),生成代碼。
最后檢查一下有沒有遺漏,有的話發(fā)回左側(cè),再跑一遍。沒有就繼續(xù)向右,由負(fù)責(zé)檢查的工程師來進(jìn)行testing。
AI開發(fā)游戲??
實際上,AI開發(fā)游戲歷史的雛形也許可以追溯到更早。
AI在游戲開發(fā)中的應(yīng)用可以追溯到「星際爭霸」和「暗黑破壞神」等經(jīng)典游戲。在當(dāng)時,開發(fā)人員需要用AI系統(tǒng)來制作交互式的虛擬世界和角色。而這些系統(tǒng)已成為此類互動平臺開發(fā)的標(biāo)準(zhǔn)配置。早期和游戲開發(fā)AI相關(guān)的研究強(qiáng)調(diào)控制非玩家的角色(NPC),而隨著自然語言處理(NLP)技術(shù)的發(fā)展,出現(xiàn)了一些利用深度學(xué)習(xí)技術(shù)生成關(guān)卡的開創(chuàng)性工作。其中代表作是MarioGPT,它通過微調(diào)的GPT-2模型成功生成了「超級馬里奧兄弟」中的部分關(guān)卡。而眾所周知,LLM又在今年取得了巨大進(jìn)步,在NLP和計算機(jī)視覺(CV)領(lǐng)域都取得了不錯的成績。我們知道,LLM的訓(xùn)練是一個多階段的過程。初始階段包括在廣泛的語料庫中訓(xùn)練這些模型,促進(jìn)基本語言能力的獲得。隨后就是更重要的階段了,通過指令(instruction)生成各種NLP任務(wù)的數(shù)據(jù)對模型進(jìn)行微調(diào)。這種指令調(diào)整,增強(qiáng)了模型在廣泛應(yīng)用中的泛化能力,從而可以讓LLM能夠在之前訓(xùn)練中沒有執(zhí)行過的任務(wù)中取得零誤差的性能。最后,人類反饋強(qiáng)化學(xué)習(xí)(RLHF)階段保證了模型的結(jié)構(gòu)完整性和可靠性。
這里還有一點需要注意——RLHF階段能讓模型生成模仿人類風(fēng)格的內(nèi)容,從而增強(qiáng)其作為智能體的多功能性。此外,LLM的進(jìn)步還促進(jìn)了智能體在軟件開發(fā)過程中的自動化。許多研究都曾經(jīng)把目光放在過這個問題上——如何開發(fā)一個基于LLM的智能體,用來執(zhí)行不同的任務(wù)。比方說AutoGPT就曾經(jīng)采用LLM智能體來處理現(xiàn)實世界中的某些決策任務(wù),而HuggingGPT則采用的是單個LLM作為一種控制器,來協(xié)調(diào)完成更加復(fù)雜的AI任務(wù)。雖說這些方法都依賴于唯一的LLM智能體,但它們都加入了一個審核者(就是上面流程圖里的reviewer)來完善決策。還是拿AutoGPT舉例,模型會從監(jiān)督學(xué)習(xí)器中獲取一些輔助性的意見來提高自身性能,HuggingGPT也可以接入GPT-4,弄成一個reviewer,來評估決策的準(zhǔn)確性。還有一些別的例子,比方說MetaGPT就引入了一個多智能體框架,可以用于各種軟件的自動化開發(fā)。而回到我們今天討論的游戲開發(fā),我們要知道,與一般的軟件開發(fā)不同,游戲開發(fā)行業(yè)的運(yùn)作需要緊跟潮流,因此整個開發(fā)過程必須更加精確和簡潔,以達(dá)到最佳效率。此外,在沒有幻覺和高精度的情況下,調(diào)整和使用單個LLM來服務(wù)于游戲開發(fā)的整個開發(fā)周期是不切實際的,而且成本高昂。因此,游戲開發(fā)AI的框架需要多個reviewer參與,這樣就能有效緩解語言模型所固有的幻覺傾向。研究人員還發(fā)現(xiàn),在游戲開發(fā)中,語言模型還有另一個局限性——冗余性。LLM在游戲生成時,可能會生成不必要的、無信息量的任務(wù)或代碼片段。為了有效解決幻覺和冗余問題,今天的主角——GameGPT戰(zhàn)略性地采用了多種方法來解決這個問題,包括雙重協(xié)作、通過內(nèi)部詞匯庫進(jìn)行指令調(diào)整以及代碼的解耦。值得我們關(guān)注的是,雙重協(xié)作涉及到LLM與小型深度學(xué)習(xí)模型之間的互動,以及負(fù)責(zé)執(zhí)行的智能體與reviewer智能體之間的協(xié)作參與。
研究人員表示,這些協(xié)同作用已被證明,在減輕GameGPT的幻覺和冗余方面是有效的。
方法介紹
接下來,研究人員從全流程剖析一下GameGPT的創(chuàng)新。
首先,在游戲設(shè)計階段,在收到用戶請求后,GameGPT的任務(wù)包括生成整個游戲的開發(fā)計劃。這個計劃階段是關(guān)鍵步驟之一,極大地影響了整個開發(fā)過程的無縫進(jìn)展。這個階段由基于LLM的游戲開發(fā)經(jīng)理策劃,先提出一個初始計劃,隨后分解成任務(wù)列表。值得注意的是,由于LLM固有的局限性,這個初始計劃經(jīng)常會出現(xiàn)幻覺,從而產(chǎn)生意想不到的任務(wù),包括沒有信息或不必要的冗余任務(wù)。為了應(yīng)對這些問題,研究人員提出了四項可以減輕這些難題的策略,這四種策略相互正交的,并且可以分層執(zhí)行以獲得更好的效果。方案一:對傳入請求進(jìn)行分類,目的是辨別游戲的類型。目前,GameGPT框架支持五種不同游戲類型的開發(fā),即:動作、策略、角色扮演、模擬和冒險。對于每種類型,研究人員都會提供標(biāo)準(zhǔn)化的計劃模板,指導(dǎo)游戲開發(fā)經(jīng)理智能體使用相關(guān)信息完成模板。通過采用這種方法,冗余任務(wù)的頻率顯著降低,同時減少了幻覺發(fā)生的可能性。策略二:涉及計劃審查員智能體的參與,這是另一個基于LLM的代理。這個智能體通過精心設(shè)計的prompt進(jìn)行操作,以此來對任務(wù)計劃進(jìn)行全面的審查。它的主要目標(biāo)是盡量減少幻覺和冗余的發(fā)生。該智能體評估計劃并提供反饋,旨在改進(jìn)并提高其準(zhǔn)確性、效率和簡潔性。同時,這一部分生成的指令可以作為游戲開發(fā)經(jīng)理智能體的新輸入,使任務(wù)計劃更加準(zhǔn)確和完善。策略三:通過專門的指令來調(diào)整游戲開發(fā)經(jīng)理智能體的LLM本身,以便更好的進(jìn)行游戲開發(fā)層面的規(guī)劃。這個微調(diào)過程的目的就是讓模型能生成一個既準(zhǔn)確又簡潔的計劃。為了方便起見,研究團(tuán)隊收集并整合了一個內(nèi)部數(shù)據(jù)集,其中包括許多輸入輸出的搭配。雖然這些組合在長度或結(jié)構(gòu)上不符合標(biāo)準(zhǔn)格式,但它們都圍繞著游戲開發(fā)的要求。
這部分固定搭配由業(yè)內(nèi)的開發(fā)人員提供。通過采用這種方法,研究人員有效地彌合了LLM的一般語言能力與游戲開發(fā)規(guī)劃能力之間的差距。策略四:規(guī)劃階段的「安全網(wǎng)」。在整個計劃過程中,游戲開發(fā)經(jīng)理智能體始終在前端界面上與用戶分享中期結(jié)果,使其余的智能體能夠隨時了解正在進(jìn)行的開發(fā)是什么。為了增強(qiáng)這一點,研究人員集成了一種交互式方法,使用戶能夠根據(jù)他們的期望積極地審查、糾正和增強(qiáng)計劃。這種方法也保證了設(shè)計計劃和用戶需求之間的一致性。說完了這些策略,我們來看看GameGPT的優(yōu)越性。首先,這個模型中的任務(wù)分類過程要求在識別任務(wù)類型及其對應(yīng)參數(shù)方面具有很高的準(zhǔn)確性。因此,研究人員為了確保這一階段的準(zhǔn)確性,創(chuàng)建了一個名為游戲開發(fā)工程師的智能體。該智能體由兩個模型共同組成,它們協(xié)同參與任務(wù)分類的流程。這種協(xié)作方法提高了任務(wù)識別的準(zhǔn)確性和有效性。同時為了避免LLM幻覺的出現(xiàn),提高任務(wù)分類的準(zhǔn)確性,研究人員提供了游戲開發(fā)中可能出現(xiàn)的任務(wù)類型列表。為了對此進(jìn)行更好地分類,他們采用了BERT模型。BERT模型已經(jīng)用內(nèi)部數(shù)據(jù)集進(jìn)行了完整的訓(xùn)練。該數(shù)據(jù)集包含針對游戲開發(fā)任務(wù)所量身定制的各項數(shù)據(jù)條目。而輸入則是從預(yù)定列表中繪制任務(wù),而輸出對應(yīng)的則是任務(wù)的指定類別。任務(wù)類型和參數(shù)的審閱都在這個階段進(jìn)行,引入一個叫做任務(wù)審閱人員的智能體,主要負(fù)責(zé)每個類別的識別和參數(shù)是否合理。評審(review)的過程包括審核任務(wù)類型是否在預(yù)定范圍內(nèi),是否是最適合的任務(wù)。
同時,它還會檢查參數(shù)列表,看看它是否與任務(wù)一致。某些場景下,比如一些基于上下文任務(wù)信息的,或者用戶請求無法推斷參數(shù)的情況,GameGPT采用了一種主動的方法來解決。Reviewer通過在前端界面上啟動提示,并請求參數(shù)所需的附加信息來吸引用戶注意。這種交互方法的好處在于,即使在自動推理不足的情況下也能確保論證細(xì)節(jié)的完整性。此外,還有另一個智能體負(fù)責(zé)識別任務(wù)之間的依賴關(guān)系,并構(gòu)造一個封裝這些關(guān)系的圖表。在建立該圖之后,再采用算法來對該圖進(jìn)行遍歷篩選,由此產(chǎn)生一個確定的任務(wù)執(zhí)行順序。這個過程確保了模型可以按照任務(wù)的依賴關(guān)系有序和系統(tǒng)地執(zhí)行,從而產(chǎn)生連貫和結(jié)構(gòu)化的開發(fā)流程。另一個問題是,使用LLM生成冗長的代碼會帶來更大的幻覺和出現(xiàn)冗余的風(fēng)險。為了解決這個問題,研究人員引入了一種新的方法來解耦游戲設(shè)計中出現(xiàn)的代碼,簡化了LLM的推理過程,從而極大程度減輕了幻覺和冗余。這個方法也并不難理解——研究人員會將預(yù)期的腳本劃分為許多長度更短的代碼片段,以供LLM處理。這種解耦方法大大簡化了LLM的工作。還有一種叫做上下文學(xué)習(xí)的有效推理方法,也可以有效地減輕幻覺。此外,GameGPT中應(yīng)用的另一種消除幻覺的技術(shù),包括為每個任務(wù)生成一組K個代碼的代碼片段。
這些代碼片段隨后會在虛擬環(huán)境中進(jìn)行測試,并同時呈現(xiàn)給用戶。測試過程和用戶反饋都被用來識別和消除有問題的代碼片段,最終只留下最可行的選項來執(zhí)行。這種方法同樣有助于進(jìn)一步減少幻覺的發(fā)生。此外,研究人員還有一個內(nèi)部的庫,包含為游戲開發(fā)設(shè)計的大量代碼片段。每一個代碼片段都由標(biāo)簽器進(jìn)行了注釋,提供了明確說明其預(yù)期目的的說明。概括一下就是,為了讓代碼不冗余,不幻覺,開發(fā)人員做了兩手準(zhǔn)備,事前的和事中的。同時,上面提到的這個庫也是對模型進(jìn)行微調(diào)的寶貴資源。代碼審查和改進(jìn)在游戲引擎智能體生成代碼之后,代碼審查智能體會對代碼庫進(jìn)行徹底的審查和檢查。該智能體會進(jìn)行全面的評估,努力找出任何可能會偏離原始請求的實例,或代碼中出現(xiàn)的意外幻覺。經(jīng)過徹底的審查,智能體不僅能標(biāo)記出潛在的差異,而且還能據(jù)此提供改進(jìn)代碼的建議,最終產(chǎn)生更為合理的版本。在審查過程之后,修改后的代碼以及智能體的反饋都將通過前端界面與游戲引擎工程師智能體和用戶共享。如果用戶認(rèn)為有必要,可以直接通過前端界面提供代碼修改建議。之后這些建議會繼續(xù)傳遞給代碼審查智能體,它會進(jìn)行評估,并有選擇性的合并這些建議,從而進(jìn)一步生成一種協(xié)作和迭代的方法來增強(qiáng)代碼。最后,一旦代碼生成完畢,該干的也都干完了,責(zé)任就落到了游戲引擎測試智能體的身上,由這個智能體來負(fù)責(zé)執(zhí)行生成的代碼。在這一階段,該智能體還會遵循在前一階段所制定的執(zhí)行順序。具體的執(zhí)行過程包括將每個單獨任務(wù)的代碼發(fā)送到游戲引擎,進(jìn)行執(zhí)行,并在執(zhí)行期間持續(xù)跟蹤,生成日志。在完成執(zhí)行序列中指定的所有任務(wù)后,智能體會合并整個執(zhí)行過程中生成的所有日志。最終,這種編譯生成了一個簡潔而全面的摘要,再通過前端界面呈現(xiàn)給用戶。此外,測試工程師智能體還會識別并報告在執(zhí)行過程中觀察到的任何回溯情況的出現(xiàn)。這些回溯會作為關(guān)鍵的指示器,指示AI對執(zhí)行流程或代碼進(jìn)行更進(jìn)一步的調(diào)整,使整個過程得以細(xì)化,并有助于生成一個完美的最終產(chǎn)品。
最后,再來看下多個代理同時工作的框架公式:首先,在GameGPT中,每個代理都有一個私有的記憶系統(tǒng),并且它們可以訪問共享的公共內(nèi)容,以獲取必要的信息來指導(dǎo)其決策過程。對于時間步長為t的代理i來說,這一過程可表示為:其中pθi對應(yīng)的是和代理i相關(guān)的LLM或?qū)<夷P?,Oit表示代理i在時間步長為t時的產(chǎn)出或可交付成果,Mit和Pt分別指截至?xí)r間步長t內(nèi),所有的私人記憶和必要的公共記錄。由于游戲開發(fā)行業(yè)的特殊性和大語言模型的局限性,在GameGPT中,具有不同角色的多個代理的存在至關(guān)重要。鑒于游戲開發(fā)周期通常長達(dá)數(shù)月,如果只依賴一個擁有全面記憶和上下文信息的單個代理,語言模型(包括LLM)的效率將大打折扣。而隨著時間的推移,項目變得越來越復(fù)雜,這種方法也會帶來可擴(kuò)展性方面的挑戰(zhàn)。此外,考慮到LLM所處理的標(biāo)記數(shù)量的限制,在大型游戲開發(fā)項目中使用具有全面內(nèi)存的單獨代理并不實用。還有,在LLMs中觀察到的幻覺和冗余等固有問題凸顯了多個代理之間協(xié)作的重要性,尤其是那些具有批判性角色的代理。這種協(xié)作對于減輕LLM幻覺和冗余帶來的挑戰(zhàn)意義重大。因此,GameGPT才利用一系列不同的角色來促進(jìn)其運(yùn)作,包括整個游戲開發(fā)周期的職責(zé)。這些角色包括上文提到的游戲內(nèi)容設(shè)計師、游戲開發(fā)經(jīng)理、計劃審核員、游戲開發(fā)工程師、任務(wù)審核員,還有游戲引擎工程師、代碼審核員和游戲引擎測試工程師。在整個游戲開發(fā)過程中,每個角色都承擔(dān)著不同的任務(wù)。
-
AI
+關(guān)注
關(guān)注
87文章
30896瀏覽量
269108 -
人工智能
+關(guān)注
關(guān)注
1791文章
47279瀏覽量
238511 -
模型
+關(guān)注
關(guān)注
1文章
3243瀏覽量
48842
發(fā)布評論請先 登錄
相關(guān)推薦
評論