譚婧
一個(gè)崇尚暴力的游戲,設(shè)定在一個(gè)現(xiàn)代化城市里,殺人無(wú)罪。 放眼望去,大街小巷全是兇案現(xiàn)場(chǎng)。 這個(gè)游戲出自電影《失控玩家》,在現(xiàn)實(shí)社會(huì)這個(gè)游戲會(huì)被禁掉,因?yàn)槿^不正。 雖然游戲三觀傾斜,但是電影里的高科技,值得玩味。
我們從頭講這個(gè)故事,一個(gè)永不加班的銀行職員,男的,游戲里的配角,按照游戲界的術(shù)語(yǔ),叫非玩家角色。 就是電腦程序控制的,不是人來(lái)操控的游戲角色。 他每天梳著一樣的發(fā)型,穿一樣的衣服,在同一個(gè)銀行柜臺(tái),蓋同一個(gè)章……
當(dāng)游戲玩家扮演的“犯罪分子”端著槍沖進(jìn)銀行,他抱頭趴下投降。 生來(lái)如此,日復(fù)一日。 這個(gè)角色用少量代碼就可以實(shí)現(xiàn)了,人不狠,話不多,沒沖突,沒內(nèi)味。 突然一天,這個(gè)男的說(shuō),他想談戀愛了。
一個(gè)無(wú)師自通型選手,上場(chǎng)。 街邊,偶遇女神,瞬間來(lái)電,當(dāng)場(chǎng)辭職,拔腿就追女神,這一系列操作,你說(shuō)驚不驚? 自學(xué)和女神接吻,成功了。
母胎單身狗們坐在黑暗的放映廳里,嘴里的爆米花瞬間都不香了。 此時(shí),都懂了:“游戲里的非玩家角色,自我意識(shí)覺醒了?!?于是,銀行職員,變身超人,掃蕩罪惡,除暴安良,受人愛戴,沖上熱搜,擁有以自己名字命名的“超話”。
除了正義感,他喜歡身材火辣、性格不凡的女神,渴望和她戀愛,愿與女神共赴。 咳咳,我們的正題是,一個(gè)非玩家角色覺醒了,意味著,他不只按照計(jì)算機(jī)程序的設(shè)定運(yùn)行。 就類似科幻電影里,機(jī)器人突然有了人的意識(shí)。 他心里吶喊:“我不要你覺得,我要我覺得?!?/p>
這很酷,怎么做到的? 電影里連底層技術(shù)細(xì)節(jié)都交代了,也許有人沒有記?。骸坝螒蚶锇惭b了一個(gè)重要工具,人工智能引擎。” 人類游戲設(shè)計(jì)師開了個(gè)頭,剩下的都交給AI了。 當(dāng)今的人工智能技術(shù),常被人笑,人工智障。
和游戲角色覺醒那一步,差了十十十萬(wàn)八千里,能有什么關(guān)系? 答案還真是有關(guān)系,不過(guò)你得先理解,什么是代碼。 你可能會(huì)說(shuō),瞧不起人么,誰(shuí)還不知道代碼是啥? 那些寫代碼的人,常常面對(duì)失蹤的頭發(fā),消失的發(fā)際線,還被人戲謔,男的叫程序猿,女的叫程序媛。
對(duì),在深度學(xué)習(xí)到來(lái)之前,你別管代碼丑還是美,都是人寫的。所有的代碼都是人寫的,也都是白盒的。 白盒的意思是,你看得懂代碼,就能從代碼中讀出編程思路。
這和偷看學(xué)霸作業(yè)里的解題過(guò)程,有異曲同工之妙。
但是,人工智能里的重要技術(shù)——深度學(xué)習(xí),來(lái)了。
很多媒體一寫人工智能,畫風(fēng)就變成震驚體,可能就是震驚到神經(jīng)出現(xiàn)了問(wèn)題。 人寫的程序是白盒。
深度學(xué)習(xí)帶來(lái)了黑盒,就是深度學(xué)習(xí)模型里面是如何運(yùn)作的,大家都不知道。 這個(gè)“活見鬼”的事情,就是“人工智能可解釋性”這個(gè)前沿學(xué)科要研究的。
直白地說(shuō),就是科學(xué)家也暈乎乎,還沒有徹底搞清楚黑盒里面是啥。 代碼,是運(yùn)行在計(jì)算機(jī)上的。深度學(xué)習(xí)模型,也是運(yùn)行在計(jì)算機(jī)上的。大家都是程序。但是,深度學(xué)習(xí)模型這種程序,有所不同。
我們看看深度學(xué)習(xí)模型,以文件的形式存在,里面都有啥? 第一是,參數(shù)。第二是,網(wǎng)絡(luò)結(jié)構(gòu)。 怎么理解參數(shù)? 有人說(shuō),參數(shù)就是權(quán)重,這種表達(dá)也可以,就是有點(diǎn)偏專業(yè)。 通俗地講,參數(shù)是一堆數(shù)據(jù)。 一個(gè)網(wǎng)絡(luò)結(jié)構(gòu),用來(lái)人臉識(shí)別,就是你手機(jī)刷臉解鎖用到的。參數(shù)一變,識(shí)別不了。這是“一堆數(shù)”的神奇之處。
借來(lái)一個(gè)比喻,這個(gè)比喻是中科院自動(dòng)化研究所助理研究員牛景昊告訴我的。 假如我們的任務(wù)是,用活字印刷術(shù)印一篇文章。 活字印刷的原理,我們都比較了解,活字版是由很多小塊組成的,這些小塊長(zhǎng)什么樣需要雕刻。
這個(gè)過(guò)程可以看成是參數(shù)的調(diào)整(或者說(shuō)訓(xùn)練)。本來(lái)小塊上沒字,訓(xùn)練完就有了恰當(dāng)?shù)募y理或者紋路。 怎么理解網(wǎng)絡(luò)結(jié)構(gòu)? 再拿不同的小塊組成不同的結(jié)構(gòu),結(jié)構(gòu)比小塊更加宏觀,可以把結(jié)構(gòu)比喻成裝這些小塊的框子。
框子是什么材料,框子的粗細(xì),都會(huì)影響最后印刷出來(lái)的效果。
一個(gè)非玩家角色覺醒了,意味著,他不只按照計(jì)算機(jī)程序的設(shè)定運(yùn)行。那他按照什么運(yùn)行?
答案是按AI造的代碼。 前面已經(jīng)講過(guò)了,模型是一種程序,分分鐘可以安裝在軟件里運(yùn)行。 這種技術(shù),被人稱作,軟件2.0(Software2.0)。
或者說(shuō)用深度學(xué)習(xí)模型從數(shù)據(jù)中自動(dòng)推導(dǎo)生成軟件的編程范式。 代碼已經(jīng)分成了兩種,一種是,“由人類編寫的代碼”,另一種是,“由 AI 寫的代碼”。
AI 寫的代碼常以深度學(xué)習(xí)的形式出現(xiàn)。 軟件2.0可不僅僅在大學(xué)計(jì)算機(jī)實(shí)驗(yàn)室里。 AI寫代碼需要什么“配套裝備”呢? AI寫代碼,要可靠的部署環(huán)境,管理大型數(shù)據(jù)集,維護(hù)高質(zhì)量的訓(xùn)練數(shù)據(jù)流,新人才,新職業(yè)。 軟件1.0的舊職業(yè)包括業(yè)務(wù)分析師、系統(tǒng)分析師、架構(gòu)師、開發(fā)人員、測(cè)試人員和開發(fā)運(yùn)營(yíng) (DevOps) 等。
這些職業(yè)反映了軟件開發(fā)生命周期的范圍界定、設(shè)計(jì)、開發(fā)、運(yùn)營(yíng)和維護(hù)階段。 軟件 2.0的新職業(yè),有數(shù)據(jù)科學(xué)家、數(shù)據(jù)工程師、AI工程師、 MLOps工程師等。
他們負(fù)責(zé)系統(tǒng)架構(gòu)、軟件工程、軟件運(yùn)營(yíng)、統(tǒng)計(jì)學(xué)習(xí)、機(jī)器學(xué)習(xí)和數(shù)據(jù)全生命周期管理等。 用專業(yè)術(shù)語(yǔ)表達(dá)就是,軟件1.0開發(fā)工具(拿IDE舉例,它可以有很多功能,像語(yǔ)法高亮、調(diào)試器、profiler、符號(hào)跳轉(zhuǎn)、集成git等等)。
軟件2.0中,工作量里增加了積累、調(diào)整、清理數(shù)據(jù)集,調(diào)參、煉丹。 對(duì),字面意思就是煉仙丹。 2017年,特斯拉AI負(fù)責(zé)人Andrej Karpathy說(shuō):
“我們熟悉的軟件1.0的‘經(jīng)典堆棧是用Python、C++等語(yǔ)言編寫的計(jì)算機(jī)顯式指令……與1.0不同,軟件2.0是用神經(jīng)網(wǎng)絡(luò)的權(quán)重編寫的。因?yàn)樯婕昂芏鄼?quán)重,直接在權(quán)重中編碼很困難,因此程序員不參與代碼編寫工作?!币涣骺萍紕?chuàng)始人袁進(jìn)輝博士說(shuō):“軟件2.0,包括我們所熟知的人臉識(shí)別,還包括越來(lái)越多人看好的 AI for science。AI for science將要徹底改變科學(xué)的研究方法,尤其是那些按照以前的舊方法無(wú)法解決的問(wèn)題:預(yù)測(cè)蛋白質(zhì)結(jié)構(gòu)、成像黑洞、自動(dòng)化藥物發(fā)現(xiàn)等等?!?/p>
“以前,是天才科學(xué)家靈光一現(xiàn)才發(fā)現(xiàn)牛頓第一第二第三定律。未來(lái),可以考慮如何將理論物理定律參數(shù)化,計(jì)算機(jī)自動(dòng)發(fā)現(xiàn)新的定律。”聯(lián)合利華數(shù)據(jù)和人工智能總監(jiān),楊薈博士談道:“20年前,一堂大學(xué)數(shù)學(xué)建模課上,我的老師講到有兩個(gè)計(jì)算機(jī)算法經(jīng)典難題?!?/p>
“一個(gè)是下圍棋打敗人類,另一個(gè)是根據(jù)蛋白質(zhì)序列預(yù)測(cè)結(jié)構(gòu)。哪怕你用全宇宙的物質(zhì)造一臺(tái)計(jì)算機(jī),再花整個(gè)宇宙的年齡計(jì)算,都沒法用窮舉法找到圍棋的制勝策略或者蛋白質(zhì)的結(jié)構(gòu),因?yàn)檫@兩個(gè)問(wèn)題中要考慮的排列組合是天文數(shù)字。而在我的有生之年,這兩個(gè)問(wèn)題都被解決了?!?/p>
咱現(xiàn)在到底在軟件2.0的什么階段?
袁進(jìn)輝博士回答道:“軟件2.0已經(jīng)過(guò)了萌芽期,走進(jìn)了成熟期?!?如果你想登上月球,用梯子肯定不行,那就需要新的工具。 現(xiàn)在看來(lái),軟件2.0很有希望。