我訓練了誰,誰又訓練了我?
今年6月底,知名科技公司OpenAI發布了一篇論文,主要圍繞着一項名為 “視頻預訓練”(VPT:Video PreTraining)的AI技術展開讨論。
這項研究的成果相當喜人,例如,在看了7萬多個小時《我的世界》視頻後,案例中的AI已經成功學會了求生所需的大部分必備技能:遊泳、狩獵、建房、下礦,甚至搜刮村莊。
盡管依然存在着一些人類難以理解的操作,但就結果來說,這已經比許多同類AI表現得要好多了。
AI搜到東西後興奮地撸起了天花闆
當然,相比起背後堆積如山的代碼與“逆動力模型”等看了就讓人迷茫的技術詞彙,作為普通玩家的我們,更關心的可能還是這麼一款高智能、饒有趣味的AI到底什麼時候才能實裝進遊戲裡。
“給俺也整一個”
1
無須等待,AI走進千萬家的場景就在當下。
雖然OpenAI的模型目前僅提交給了專門負責研究《我的世界》AI的MineRL大賽,但就在他們論文發布的前後幾天,另一個功能類似的AI也同樣出現在了網上。更重要的是,研究團隊直接将他們的代碼放在了Github上供所有人下載研究。
MineDojo的Github頁面
這個名叫MineDojo的項目由英偉達的工程師進行開發,同樣是通過觀看網上的視頻資料進行訓練,但與OpenAI略有不同的是,他們的資料庫要龐大得多。
MineDojo一共搜集了73萬個油管上的遊戲視頻、7000多個維基網頁,甚至還有上百萬條和《我的世界》有關的Reddit評論。
“互聯網規模”
這麼做的目的,當然在于幫助AI理解人類語境中“建造“”求生“等詞彙的意義,油管主們在教學視頻中聲情并茂地教導觀衆從哪裡出發,到哪裡尋找神廟,再到如何攻略末影龍——
對于AI來說,這就是上好的“網課”。
支持這一行為的,是一個被稱為MineCLIP的學習算法。它可以幫助AI把主播的解說與視頻中展示的操作聯系起來,以此達到訓練的目的;同樣的,訓練好的AI也能理解玩家直接下達的任務。
這是MineDojo最有趣的部分,工程師們準備了3000個可以直接下達給AI的指令,一類是程序化任務,例如“生存3天”或“收集兩塊木頭”,這是可以用數字和名詞客觀衡量的任務;另一類是抽象化任務,例如“建造一座漂亮的海濱别墅”。
AI可能很難理解“漂亮”“海濱”“别墅”到底是什麼意思,不過通過視頻畫面的講解,再搜索玩家們相關評論的關鍵詞之後,大多數時刻AI都能有模有樣地完成目标。
在這些任務中,玩家可以給AI下令“把牛羊圈起來”“去沼澤裡找雞”“盡可能地活久一點”,或者幹脆讓它去搜刮一個海底神廟。因為使用了互聯網上的常用語言,AI對某些人類特有的幽默感學得挺到位的。
下達”玩”的指令
和OpenAI的模型比起來,MineDojo的技術難度或許并沒有那麼高,畢竟它直接接入了遊戲端口,利用遊戲内的數據直接控制AI行動要簡單許多;而OpenAI則是從零開始建立了一個模仿人類的行動模型,指令都是直接模拟人類的鍵鼠操作。
并且MineDojo在部分時刻依然要借助修改遊戲數據才能達到目的,比如攻略末影龍的時候,隻有“作弊”讓末影龍站在原地挨打才能通關。
手足相殘的殘忍錄像
不過,MineDojo依然呈現出了AI可以通過現有視頻、資料進行學習的能力。唯一遺憾的是,目前還沒有看到多少MineDojo實裝後的反饋,因此實際效果如何也存在一定的疑問。好處是它供所有人免費下載,當作AI入門的免費資料試試未嘗不可。
2
得益于當代互聯網的發展,AI能從視頻資料中獲取自己想要的知識。人類也是如此,制作一個會玩遊戲的AI,有時候看視頻就夠了。
視頻比教科書更進一步的是,哪怕觀衆什麼也不明白,不知道python語言、架構、蒙特卡洛算法是什麼,每個人依然能從視頻裡得到樂趣,随後潛移默化地了解知識。
在這一領域起代表性作用的,是那些緻力于設計遊戲AI的視頻制作者們。
首先要提到的是人們或許更為熟知的“遺傳算法”,一個在上個世紀的六十年代提出,被這個世紀所發揚廣大的技術。
它類似生物學意義上的進化論,具體來說,就是通過系統生成一堆什麼也不懂的嬰兒,讓他們在大自然(程序)世界裡嘗試各種操作,通過選擇表現更好的子代,達到不斷優化AI表現的目的。
用油管上一條《AI學習玩JUMP KING》的視頻舉例,大緻場景就是這樣的。
先生500個孩子試試
視頻作者Code Bullet(下文簡稱CB)已經用這個算法成功制作出了不少AI通關遊戲的視頻,《吃豆人》《Flappy Bird》這類強調優化AI行動的遊戲都可以沿着類似的思路走下去。
思路是清晰的,做起來也很“簡單”。翻閱一下CB大部分制作AI的視頻,都可以看到他的過程主要分為了三個部分。
“制作一個會玩遊戲的AI僅需要三步”
重做遊戲的原因我們稍後再進行讨論,CB視頻中展現的精髓部分在于遺傳算法的“篩選”功能。不同于物競天擇的大自然,這裡我們才是負責挑選AI的上帝。
剛出生的AI當然是什麼也不懂得的小嬰兒,給它們添加行動指令,AI也不會懂得往哪裡行動有什麼意義。因此常見的做法是給随機行動的AI設置獎勵和懲罰,例如跳躍一次加1分、達到下一關加2分、左右移動加0.5分,向下跌落則扣1分。
“往上走就好,往下是壞,這很簡單”
每代AI隻有五次行動機會,五次行動結束後,跳躍高度最高的AI就會成為下一代的模範,此後的每一代AI都會遵循上一代摸索出最好的路徑前進——這就是很簡單的進化了。
不過這麼簡單的規則還沒有辦法解決某些“思考”問題,如果某關需要先下降,再向上跳躍的話,死腦筋的AI就會因為扣分原則而拒絕往下跳。
解決辦法可以是在降落地點設置同樣可以提供獎勵的收集品,引導AI通過收集獎勵,前往更高的場景。
跟遊戲引導玩家的方式其實很像
等所有程序都準備好之後,隻要讓AI自己跑起來就行了,它們自然會一代代地找到最好走的路線,最終完成遊戲通關的任務。
經曆862代的演變後,就能到頂啦
3
自AlphaGo 2017年從賽場“退役”,已經過去了五年。自那之後,“民用AI”在遊戲領域可謂發光發熱,在油管上用AI玩《VALORANT》《大富翁》《糖豆人》的博主們也大有人在。
雖然沒有公司的資金支持,也沒有流着血淚幫忙标注數據的研究生們,但得益于Github的開放性,每個網民随手就可以下到一大堆經過一定訓練的神經網絡程序。
以一位油管上僅有7000粉絲的小博主River為例,他的一期視頻就很簡潔地展現了AI技術的低門檻。
前期準備非常簡單:你隻需要兩台電腦、一段網上下載的程序、一個視頻采集卡,再加一個無線鼠标信号接收器。
而要做的工作也無非是标注一些供AI訓練識别能力的圖片,一“小”段指示行為模式的代碼,然後直接掃描小地圖指示方位,再把鍵盤信号都通過無線鼠标傳送到電腦裡。
雖然信号發送是麻煩了點,但好處也有,因為沒有額外程序接入遊戲,自然也不會被判斷出使用了外挂。
一切操作都是由另一台電腦根據實時圖像作出的
當然,在目前的表現上來看,River的AI也和普通的AI機器人差不多,并沒有AlphaGo那種神奇的自我進化能力。
不過,隻是想簡單體驗AI設計,已經沒有了那麼高的門檻。不斷設計更新更強的AI也是一件頗有樂趣的行為,其中一項就是分辨正确與錯誤之間的“邊界”。
那是人(确信)
正如MineDojo要區分程式化任務與抽象類任務的區别,我們在教導AI時,同樣能從AI分辨的結果當中,得到自己對于事物的定義和由此産生的解釋,或許能啟發人類解決生活中的矛盾。
朋友問你今天過得怎麼樣、相親時怎麼向對方介紹自己,如果每個問題都能用程序解答,未嘗不是人類也已經進化到更高一層的體現。
誰訓練了我,我又訓練了誰?
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!