網易互娛AI Lab技術主管:那些被強化學習解決的痛點

2022N.GAME網易游戲開發者峰會于「4月18日-4月21日」舉辦 , 在技術驅動場中 , 網易互娛AILab的技術主管曾廣俊分享了強化學習在互娛游戲中的落地 。
網易互娛AI Lab技術主管:那些被強化學習解決的痛點
文章圖片
以下為曾廣俊的分享內容 , 為方便閱讀 , 有部分刪減與調整:
互娛AILab成立于2017年底 , 主要目標是將3D、CV、RL、NLP和語音技術落地到游戲當中 , 解決游戲的痛點 。 今天我們來講一下強化學習是什么、可以在游戲里做些什么 , 以及在其他領域能如何應用 。
01
強化學習是什么?
假如現在我們要訓練一條小狗做出坐下的動作 , 我們可能會做出一個指令讓它坐下 。 如果小狗做對了 , 我們就會獎勵它一個食物;如果沒做到就不會給 。 通過這樣的多次反饋、迭代 , 小狗最終會知道——要做出坐下這個動作才能獲得獎勵 。
網易互娛AI Lab技術主管:那些被強化學習解決的痛點
文章圖片
同樣 , 我們會把狀態信息發送給AI , 讓AI做出動作 , 由游戲反饋這個動作是否會有獎懲 , AI得到反饋后就會據此調整它的策略 。
通過多輪迭代 , 它就會知道在某個時刻要做什么動作才能獲得最大回報 。 由于我們需要和環境大量交互 , 所以強化學習通常需要很多時間讓機器探索 。 通過縮小探索空間、提高樣本利用率來提高強化學習的訓練效果 , 是一個重要的方向 。
網易互娛AI Lab技術主管:那些被強化學習解決的痛點】02
強化學習可以在游戲里面做些什么?
游戲要接入強化學習非常簡單 , 只要實現兩個接口:reset接口和step接口 。 reset接口會從游戲中返回初始狀態;step接口會從AI中獲取對應動作 。 之后游戲環境會返回下一個狀態的信息 , 和一些回報的獎勵信息 。 最后把這個游戲打包成動態庫或者docker , 就可以交給強化學習AI訓練 。
網易互娛AI Lab技術主管:那些被強化學習解決的痛點
文章圖片
1、強化學習的主要應用:對戰型AI
強化學習最主要的應用是對戰型AI 。 在互娛游戲中我們落地了NPC的對戰AI 。 先以《天下3》的山海繪——一個人機對戰的卡牌游戲為例 , 玩家可以選多個難度 , 跟機器人進行對戰 。 策劃需要在短時間內完成人機對戰AI , 這個AI要適應多種難度 , 且難度要能動態調整 , 以適應玩家的水平 。
如果我們用行為樹做山海繪的AI , 會需要策劃用很多時間去列舉每個狀態的信息 , 然后根據狀態節點做對應動作 。 如果要做分級難度 , 就更需要細致地劃分 , 這樣花費的時間將會更加巨大 , 上線后每一次更新 , 都需要策劃重新花費大量時間修改行為樹 。
更關鍵的是 , 行為樹的AI強度通常都達不到一般玩家的水平 。 如果用強化學習去做 , 我們就可以很快速地生成AI , 尤其是當新卡更新到新的游戲環境中 , 強化學習可以很快地適應新環境 , 只需要重新再Finetune一下就可以了 。
強化學習訓練本身 , 是在做機器人的自對弈行為 。 在這樣的過程中 , 會自然而然地批量生成大量不同難度的AI 。 這些AI可以無縫遷移 , 滿足玩家對于難度選擇的需求 。 最關鍵的一點是 , 它最后的強度能遠超玩家水平 。
我們的強化學習訓練和一般的強化學習類似 , 主要由采樣器、訓練器組成 。 采樣器在CPU上執行AI決策 , 通過與游戲環境交互生成大量樣本 。 這些樣本又可以送到GPU的訓練器上優化 , 優化出來的模型再放到模型池里 , 讓AI選擇對手 。
通過迭代模型池強度 , 當前訓練的AI也會逐漸變強 。 且模型池的模型也可以作為不同難度的AI模型讓玩家選擇 。 這個AI的難點主要在動作空間上 , 剛才提到訓練強化學習其實是試錯的過程 , 如果我們可選的動作太多 , 找到合適的動作就需要很長時間 。

相關經驗推薦