1955 年,約翰·麥卡錫(John McCarthy)、馬文·閔斯基(Marvin Minsky)、克勞德·香農(nóng)(Claude Shannon)等人聚在一起,為第二年即將召開(kāi)的具有重要?dú)v史意義的“達(dá)特矛斯會(huì)議”列了一份 AI 研究議題,排在首位的就是“Automatic Computers”——自動(dòng)編程計(jì)算機(jī)。
作為 AI 的開(kāi)山鼻祖,他們?cè)谶@份綱領(lǐng)里寫道:“我們相信,如果精心挑選一批科學(xué)家,在一起工作一個(gè)夏天,那么這些(AI)問(wèn)題中的一個(gè)或多個(gè)就能取得重大進(jìn)展?!?/p>
60 多年過(guò)去了,這個(gè)設(shè)想終于開(kāi)始一步步變成現(xiàn)實(shí)。
2017 年 5 月,Google 推出了“AutoML”,顧名思義,AutoML 實(shí)際上就是一種讓模型設(shè)計(jì)過(guò)程自動(dòng)化的機(jī)器學(xué)習(xí)軟件,也就是讓 AI 來(lái)設(shè)計(jì) AI。
由于 AI 技術(shù)的發(fā)展以及人才稀缺,AutoML 的進(jìn)展以及受到的關(guān)注超出了很多人的預(yù)期。目前在這個(gè)領(lǐng)域已經(jīng)涌現(xiàn)出一批創(chuàng)業(yè)公司,成立不到一年的探智立方(iQubic)就是其中之一。
昨日,探智立方剛剛發(fā)布了人工智能模型自動(dòng)設(shè)計(jì)平臺(tái)——DarwinML 1.0,該平臺(tái)的技術(shù)核心就是 AutoML。用戶只需要具備人工智能基本概念,即可設(shè)計(jì)開(kāi)發(fā)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型,從而縮短建模人員及數(shù)據(jù)科學(xué)家創(chuàng)建模型的時(shí)間及門檻。
AutoML 到底是怎樣設(shè)計(jì)模型的?
有哪些優(yōu)勢(shì)?
DarwinML 平臺(tái)可以做些什么?
有沒(méi)有門檻?
以后調(diào)參師真的找不到工作了嗎?
……
帶著諸多疑問(wèn),采訪了探智立方的產(chǎn)品總監(jiān)宋煜,為大家撥開(kāi)“AI 設(shè)計(jì) AI”的迷霧。
以下是對(duì)話實(shí)錄,略有刪減:
從 IBM 到創(chuàng)業(yè)公司
能簡(jiǎn)單介紹下你們的團(tuán)隊(duì)嗎?
宋煜:探智立方成立于 2017 年底,之前獲得了唯獵資本的 1000 萬(wàn)的天使輪融資,目前正在進(jìn)行 A 輪融資?,F(xiàn)在的團(tuán)隊(duì)有 14 人,大部分是研發(fā)人員。
為什么選擇做 AutoML,跟您之前在 IBM 做的 BlueMind 深度學(xué)習(xí)平臺(tái)項(xiàng)目有什么關(guān)系嗎?
宋煜:沒(méi)有太大的關(guān)系。我以前在 IBM 做了 5 年左右的 HPC,主要是底層算法,今天 AI 是 HPC 增長(zhǎng)的一個(gè)點(diǎn)。后來(lái)之所以做 BlueMind ,是想擴(kuò)展一個(gè)新的領(lǐng)域,但又依托 HPC。在做 BlueMind 的時(shí)候,我們給客戶做一個(gè)平臺(tái)去設(shè)計(jì)模型時(shí),發(fā)現(xiàn)很多客戶說(shuō),“我都沒(méi)有人懂深度學(xué)習(xí),你給我一個(gè)平臺(tái)也白搭。”那是不是可以靠機(jī)器來(lái)做?盡量減少對(duì)人的要求,或者對(duì)初始理論知識(shí)的要求,他更多的懂業(yè)務(wù)怎么做。這是我們做 AutoML 這件事情的原動(dòng)力。
您在 IBM 時(shí)是負(fù)責(zé)研發(fā),在探智立方是產(chǎn)品總監(jiān),在職能上有什么變化嗎?
宋煜:其實(shí)沒(méi)有什么變化,基本上是一樣的,還是做研發(fā)這一塊。我們有一個(gè) CTO ,他更關(guān)注算法的方向性研究。AutoML里面有很多不同的實(shí)現(xiàn)方法,很難說(shuō)哪一個(gè)方法就是絕對(duì)正確的或者說(shuō)效率最高的,所以他會(huì)來(lái)把關(guān)技術(shù)方向,這樣我們就會(huì)減少繞路的機(jī)會(huì)。而我負(fù)責(zé)把這些技術(shù)方向?qū)崿F(xiàn)并落地。
AutoML 的底層技術(shù)
探智立方的 AutoML 的底層技術(shù)是什么?
宋煜:我們最底層的搜索過(guò)程其實(shí)跟 EA(Evolution Algorithm)是很像的,但是我們叫 Genetic Algorithm,是 EA 里的一個(gè)分支,叫“遺傳學(xué)算法”。我們把所有最小的神經(jīng)元看成一個(gè)個(gè)基因片段 ,把最后設(shè)計(jì)出來(lái)的模型看成是一個(gè)生物,這個(gè)基因片段怎么有效組合成一個(gè)有價(jià)值的生物,這是遺傳學(xué)算法的目標(biāo)。
遺傳學(xué)算法本身是高性能計(jì)算領(lǐng)域里一個(gè)很重要的應(yīng)用算法,它在高能物理、材料力學(xué)、材料分子學(xué)里用得很多,比如分析晶體的現(xiàn)狀,比如想找一個(gè)既耐火、強(qiáng)度又很高的材料,在任何一個(gè)分子結(jié)構(gòu)都不能滿足要求的情況下,有沒(méi)有可能找到這樣一種晶體結(jié)構(gòu)出來(lái),這是“遺傳學(xué)算法”。
我們把它用到 AI 領(lǐng)域里也是這樣。我們首先把最基本的算法定義成基因,然后合在一起定義成“基因庫(kù)”的概念,設(shè)計(jì)的過(guò)程實(shí)際是這些基因的組合過(guò)程。它有隨機(jī),交叉和變異 3 個(gè)中主要操作。我們通過(guò)一些評(píng)估方法,找到這兩個(gè)里面哪一個(gè)模塊更好或更穩(wěn)定,把它們留下來(lái),作為種子,通過(guò)部分模型結(jié)構(gòu)組合的方式生成新的子代,這是交叉過(guò)程。還有變異過(guò)程,分為邊變異和點(diǎn)變異。一個(gè)獨(dú)立的子代,想打斷這塊神經(jīng)元之間的連接,或者想跳過(guò)幾層跟某個(gè)神經(jīng)元連在一起,這屬于邊變異。也可能把其中某個(gè)神經(jīng)元,比如 max pooling, 換成 dropout,這也是一種變異,但是這叫點(diǎn)變異。
當(dāng)然,純 EA 的方法有兩個(gè)問(wèn)題。它是一個(gè)啟發(fā)式搜索,所以沒(méi)有那么嚴(yán)格,這種情況下如果完全靠它來(lái)做,效果差異會(huì)很大,有的時(shí)候很好,有的時(shí)候不好。這時(shí)需要有一個(gè)更高級(jí)的大腦來(lái)指導(dǎo)他,說(shuō)你這樣設(shè)計(jì)的效果更好。所以我們會(huì)用貝葉斯+強(qiáng)化學(xué)習(xí)+蒙特卡洛樹搜索(MTCS)三種方法來(lái)實(shí)時(shí)調(diào)整EA的演化參數(shù)。
這三種方法會(huì)去指引 EA 里的一些參數(shù)下一代生成時(shí)要發(fā)生哪些變化,比如隨機(jī)的比例由 30% 變成 27%,為什么變成 27% 是由這些它們說(shuō)了算的,就像更高級(jí)的大腦。貝葉斯主要是分析數(shù)據(jù)的維度和模型的結(jié)果之間的分布情況,強(qiáng)化學(xué)習(xí)主要是判斷做了這些操作以后的成功率有多大,MTCS 也是判斷做了若干操作以后生成一個(gè)有效網(wǎng)絡(luò)的可能性有多大,從這三個(gè)方向來(lái)控制 EA 算法的參數(shù)。但是真正設(shè)計(jì)和生成是 EA 算法去做的。
我們把三種算法組合在了一起,使得效率變得很高。依靠這個(gè)方法,我們目前在Cifar10的數(shù)據(jù)集上,使用 8 個(gè) GPU Days 就可以設(shè)計(jì)出一個(gè)準(zhǔn)確率在 92% 左右的神經(jīng)網(wǎng)絡(luò)出來(lái)。而目前大部分論文的測(cè)試結(jié)果在1000 - 3000個(gè)GPU Days。
基因庫(kù)里的基因都是你們自己不斷添加進(jìn)去的?
宋煜:對(duì),基因庫(kù)里基因的定義是我們自己添加進(jìn)去的,其實(shí)基因庫(kù)本身的實(shí)現(xiàn)還是用的現(xiàn)在開(kāi)源的框架來(lái)做的。如果是深度學(xué)習(xí)的神經(jīng)元的話,我們可能會(huì)直接使用最基礎(chǔ)的 Tensorflow 里的神經(jīng)元的實(shí)現(xiàn),生成計(jì)算圖之后,計(jì)算過(guò)程會(huì)用它來(lái)做,只是它的屬性在我的基因庫(kù)里。
當(dāng)有一些新的 loss 函數(shù)或者一些新的數(shù)學(xué)算法出去的時(shí)候,我們會(huì)把它加進(jìn)去。一個(gè)全新的網(wǎng)絡(luò)結(jié)構(gòu),但是這個(gè)網(wǎng)絡(luò)結(jié)構(gòu)只是在使用已經(jīng)存在的神經(jīng)元組合而成的情況下,我們是不會(huì)針對(duì)這樣的論文取修改基因庫(kù)的。因?yàn)檫@在AutoML看來(lái)是人為在一個(gè)或一組特定數(shù)據(jù)集上找到了一個(gè)最優(yōu)解或者極優(yōu)解,而從數(shù)學(xué)上來(lái)看,機(jī)器也應(yīng)該可以達(dá)到這樣的效果,所以這樣的網(wǎng)絡(luò)并不會(huì)直接影響到基因庫(kù)。因?yàn)槲覀儾⒉幌M噙@種純應(yīng)用領(lǐng)域的知識(shí)影響基因庫(kù),更多的是想從底層的數(shù)學(xué)層面來(lái)改進(jìn)基因庫(kù)。
而基因庫(kù)的知識(shí)積累是靠它自己在設(shè)計(jì)過(guò)程中學(xué)出來(lái)的,我們不會(huì)因?yàn)槟硞€(gè)網(wǎng)絡(luò)效果特別好而強(qiáng)放進(jìn)去,因?yàn)樗赡芤仓皇钦鎸?shí)世界里的一個(gè)局部最優(yōu)解而已,我沒(méi)有理由把一個(gè)局部最優(yōu)解當(dāng)成一個(gè)很好的教科書去教它,我更希望它自己去找到一個(gè)更好的全局最優(yōu)解或者更逼近全局最優(yōu)解空間的那個(gè)解。
機(jī)器能夠設(shè)計(jì)一個(gè)全新的模型出來(lái)嗎?
宋煜:這就是我們想做的一個(gè)事情。Google 目前實(shí)際商用的 AutoML 用的是遷移學(xué)習(xí)(Transfer Learing),實(shí)際上就是專家在后面已經(jīng)設(shè)計(jì)了 100 個(gè)模型,有了數(shù)據(jù)以后,機(jī)器來(lái)評(píng)估哪個(gè)模型更合適,然后在這個(gè)模型上做變種,這是遷移學(xué)習(xí)的方法。而我們現(xiàn)在想做的事情是,在不知道模型該長(zhǎng)什么樣的情況下,讓機(jī)器設(shè)計(jì)出來(lái),所以我們只定義了最基本的算法單元,但這個(gè)單元里有粒度的問(wèn)題,比如一個(gè) CNN 算一個(gè)單元,一個(gè) CNN 的一種 kernel 方式算一個(gè)單元,一種機(jī)器學(xué)習(xí)的算法算一個(gè)單元,也可以若干個(gè) CNN 組成一個(gè)子圖算作一個(gè)單元,AutoML 在這個(gè)單元之上任意去組合 。
我們當(dāng)時(shí)做 CIFAR-10 的標(biāo)準(zhǔn)分類模型時(shí),碰到一件很有意思的事情,大部分人設(shè)計(jì)出來(lái)的模型最后會(huì)接一個(gè) cross-entropy loss,這是很標(biāo)準(zhǔn)的專門做分類的 loss,要么就是二分類,就是 sigmoid loss。但機(jī)器設(shè)計(jì)的模型前面 CNN 層的組合方式不是我們已知的任何一個(gè)模型,而在最后一層它居然用了一個(gè) cosin distance loss,很不常見(jiàn)的一種 loss方式,但是機(jī)器設(shè)計(jì)出來(lái)了,而且比 CaffeNet 的效果要好。這個(gè)模型以前沒(méi)有見(jiàn)過(guò),這是一個(gè)很有意思的發(fā)現(xiàn)。
Google 也有論文出來(lái),怎樣讓機(jī)器去設(shè)計(jì) loss,但是他們走得更深,相當(dāng)于只給數(shù)學(xué)公式,機(jī)器自己組合數(shù)學(xué)公式以后做出一個(gè)新的 loss 出來(lái)。Google 也提到像機(jī)器設(shè)計(jì)出來(lái)的 sin loss、cosin loss 的效果相當(dāng)好。這不是從經(jīng)驗(yàn)知識(shí)出發(fā)的,普通人一定不會(huì)去想做這個(gè)事情,因?yàn)樵跀?shù)學(xué)里 cross-entropy 就是用來(lái)衡量各個(gè)概率之間分布以后的最大值在哪里的方法,而 sin、cosin 只是算距離的。從常識(shí)來(lái)講,這種設(shè)計(jì)至少一開(kāi)始是沒(méi)有道理的,但是你說(shuō)他不能做也不是的,我們也可以用距離來(lái)表示圖像的 Feature Map 之間像不像。這是我們看到的比較有意思的事情。
AutoML 是如何設(shè)計(jì)模型的?
人設(shè)計(jì)模型的流程和機(jī)器設(shè)計(jì)模型的流程有什么區(qū)別嗎?
宋煜:沒(méi)有本質(zhì)區(qū)別。如果我們把數(shù)據(jù)準(zhǔn)備這件事情放在一邊(因?yàn)榻裉斓?AutoML 也解決不了這件事情,還是要靠人去準(zhǔn)備),一旦數(shù)據(jù)準(zhǔn)備好了以后,人設(shè)計(jì)流程一般分為下面幾個(gè)步驟:
第一步,做特征分析,就是分析什么樣的特征是比較重要的。因?yàn)閿?shù)據(jù)可能有 1000 列,但 1000 列都放進(jìn)去訓(xùn)練,模型不一定收斂得很好,可能放 500 列或者 200 列就很好,因?yàn)槿サ袅艘恍┎槐匾脑肼?。什么是噪聲?什么東西是真正有價(jià)值的東西?這就需要很多算法來(lái)做分析。還有一種可能是數(shù)據(jù)只有 20 列,維度太小了,那么我可以在這 20 列上做一些特征變換,進(jìn)行“數(shù)據(jù)擴(kuò)增”,它們都屬于特征提取的范疇。這是第一步,一般大家都會(huì)花接近 1 個(gè)月的時(shí)間來(lái)做這件事情。
第二步,選擇不同的模型進(jìn)行試驗(yàn)。如果經(jīng)驗(yàn)比較豐富,一上來(lái)就能夠選到比較好的模型,經(jīng)驗(yàn)不是那么豐富的人,選的模型的效果可能不是那么好,還要不停地?fù)Q。一旦模型收斂得不錯(cuò)了,還要做參數(shù)優(yōu)化,微調(diào)一些參數(shù),讓準(zhǔn)確率達(dá)到要求,同時(shí)不出現(xiàn)過(guò)擬合等問(wèn)題。
第三步是評(píng)估,就是數(shù)據(jù)分析領(lǐng)域標(biāo)準(zhǔn)的評(píng)估方式。
第四步,評(píng)估都沒(méi)問(wèn)題以后才會(huì)上線。
中間這四步串起來(lái),有經(jīng)驗(yàn)人需要 3 個(gè)月左右的時(shí)間,如果完全沒(méi)經(jīng)驗(yàn),時(shí)間會(huì)更長(zhǎng)。機(jī)器也是這個(gè)步驟,只不過(guò)這些步驟被自動(dòng)化了。參數(shù)有沒(méi)有價(jià)值或者模型有沒(méi)有問(wèn)題,要換一個(gè)什么樣的模型會(huì)更好,在這個(gè)過(guò)程里是靠個(gè)人的經(jīng)驗(yàn)、知識(shí)或者數(shù)學(xué)方法。機(jī)器在這里就不是靠經(jīng)驗(yàn)了,它完全是靠數(shù)學(xué)方法,由完整的數(shù)學(xué)推理的方式來(lái)證明。通過(guò)數(shù)據(jù)的統(tǒng)計(jì)分布和這個(gè)模型的性能以及參數(shù)分布,AutoML 會(huì)不斷評(píng)估最優(yōu)解的分布區(qū)間并對(duì)這個(gè)區(qū)間再次采樣。
其實(shí)它嘗試得次數(shù)比人多得多,人在 3-6 個(gè)月的時(shí)間里也就試 4、5 種模型,但機(jī)器在 3 天里可以做 600 多個(gè)模型。它是通過(guò)六七百個(gè)模型的采樣估計(jì)出最優(yōu)解的分布位置。機(jī)器嘗試這些模型可能不到 1 周的時(shí)間,而人來(lái)做可能超過(guò) 3 個(gè)月,這是最主要的區(qū)別。
相當(dāng)于提升了模型設(shè)計(jì)過(guò)程的效率?
宋煜:對(duì),縮短了時(shí)間。還有一點(diǎn),人會(huì)碰到做不出來(lái)的情況,但機(jī)器反而可能找到一個(gè)解。比如數(shù)據(jù)維度特別大的時(shí)候,如果只是用一般的模型去做,很有可能發(fā)現(xiàn)模型不收斂。但用機(jī)器去做的時(shí)候,它有很多 stacking 或者 ensemble 的方法,可以提取一些更復(fù)雜的特征。比如我們現(xiàn)在看到一個(gè)圖像有“紅綠藍(lán)”,還有亮度、飽和度等特征,機(jī)器通過(guò)特征提取,可能已經(jīng)變到完全不同的數(shù)值空間、頻率空間,這個(gè)空間是什么?至少人眼是感覺(jué)不出來(lái),或者描述不出來(lái),而機(jī)器在那個(gè)空間做了很多變化以后,會(huì)發(fā)現(xiàn)用這個(gè)空間的特征來(lái)做分析會(huì)效率更高。也就是完全依靠人的經(jīng)驗(yàn)或者感覺(jué)做不出來(lái)的模型,機(jī)器通過(guò)算力反而是能夠快速找到一個(gè)解。
AutoML 既可以設(shè)計(jì)機(jī)器學(xué)習(xí)模型,又可以設(shè)計(jì)深度學(xué)習(xí)模型,兩者的設(shè)計(jì)過(guò)程有什么不同嗎?
宋煜:深度神經(jīng)網(wǎng)絡(luò)的復(fù)雜度要大得多,它的算子不一定比機(jī)器學(xué)習(xí)多很多,但問(wèn)題在于機(jī)器學(xué)習(xí)一般不會(huì)太深,一般 4、5 個(gè)神經(jīng)元可能就差不多了。深度神經(jīng)網(wǎng)絡(luò)最大的問(wèn)題是它可能很深。
我記得前年 IBM 跟一個(gè)做人臉識(shí)別的公司合作時(shí),試圖做過(guò) 1000 層的神經(jīng)網(wǎng)絡(luò),一旦到了神經(jīng)網(wǎng)絡(luò)的深度達(dá)到很深的量級(jí)以后就會(huì)出現(xiàn)一個(gè)大的問(wèn)題——搜索空間太大,如果沒(méi)有一個(gè)高效的方法來(lái)指導(dǎo)模型設(shè)計(jì)的過(guò)程,可能跑個(gè)大半年也跑不出來(lái)結(jié)果。
Google 在 2017 年做的 CIFAR-10 自動(dòng)設(shè)計(jì)是完全從零開(kāi)始自動(dòng)設(shè)計(jì)的方式,它當(dāng)時(shí)只用了 7 個(gè)神經(jīng)元,總共用了 3,000 多 GPU Days,然而數(shù)據(jù)量才 200 多兆。所以在深度神經(jīng)網(wǎng)絡(luò)用 AutoML 最大的困難就是設(shè)計(jì)效率,設(shè)計(jì)效率如果低的話,其實(shí)是設(shè)計(jì)不出來(lái)模型,或者設(shè)計(jì)不出來(lái)比普通專家水平要高的模型。
全生命周期的 DarwinML 平臺(tái)
你們是怎么設(shè)計(jì)和搭建 DarwinML 平臺(tái)的?
宋煜:DarwinML 的核心是能夠自動(dòng)化幫用戶去做設(shè)計(jì),但它的外圍跟很多外面的平臺(tái),像百度、IBM 的平臺(tái)很像。DarwinML 是一個(gè)全生命周期管理平臺(tái),包括數(shù)據(jù)導(dǎo)入、模型管理、權(quán)重文件管理、模型評(píng)估、上線、推理服務(wù)等等,核心還是 AutoML。
如果你用其他工具,得自己拖拽或者寫代碼,然后把這個(gè)模型弄出來(lái)。但是用 DarwinML就只需要點(diǎn)一下,然后等 3 天回來(lái)看結(jié)果。
從系統(tǒng)架構(gòu)來(lái)說(shuō)其實(shí)是一樣的,都要考慮數(shù)據(jù)的接入,考慮多 GPU 的并行化,考慮集群的分布式問(wèn)題。在系統(tǒng)架構(gòu)設(shè)計(jì)上是很像的,唯一區(qū)別在于是人來(lái)設(shè)計(jì)還是機(jī)器來(lái)設(shè)計(jì)。
如何使用 DarwinML 來(lái)部署可上線運(yùn)行的模型?有哪些門檻和條件?
宋煜:比如一家 LED 生產(chǎn)廠商,LED 每一層刷電路板的時(shí)候都會(huì)引入一個(gè)質(zhì)量缺陷 ,以前它不知道缺陷是什么,但會(huì)把照片都存下來(lái)。假如今天它想用 AI 自動(dòng)分辨這些缺陷,甚至在自動(dòng)化工業(yè)線上能夠用起來(lái)。一般它會(huì)先把這些數(shù)據(jù)打上標(biāo)簽,因?yàn)樗袑I(yè)的業(yè)務(wù)人員,所以打標(biāo)簽本身不會(huì)出錯(cuò)。
一旦打完標(biāo)簽之后,它就把數(shù)據(jù)導(dǎo)到這個(gè)平臺(tái)里去,這時(shí)它不需要管數(shù)據(jù)是否平衡。在實(shí)際生成中,生產(chǎn)線里由于產(chǎn)線的一些參數(shù)配制不合理,某一種缺陷會(huì)比較多,甚至占了統(tǒng)治地位,而其他的缺陷基本上很少發(fā)生,故障很少發(fā)生,它的量會(huì)很小。這種問(wèn)題不需要客戶去考慮,客戶只要把這個(gè)數(shù)據(jù)導(dǎo)進(jìn)來(lái),我們的平臺(tái)會(huì)首先自動(dòng)分析數(shù)據(jù)有沒(méi)有不均衡的問(wèn)題,分布是什么樣子的,根據(jù)這些自動(dòng)做一些相關(guān)的處理。
之后,用戶需要根據(jù)自身需求來(lái)選擇任務(wù)類型。我們今天能夠提供的大概有 8 種,以后會(huì)提供更多。目前 DarwinML 還沒(méi)有通俗到,直接用專業(yè)詞語(yǔ)描述目標(biāo),比如“產(chǎn)品質(zhì)檢”,而是會(huì)讓你選擇想做一個(gè)分類問(wèn)題,還是做一個(gè)目標(biāo)檢測(cè)問(wèn)題,還是做一個(gè)圖象語(yǔ)義分割的問(wèn)題。如果我要做產(chǎn)品的質(zhì)量檢測(cè),一般是分類或者是目標(biāo)識(shí)別任務(wù),如果做質(zhì)檢的同時(shí)還要算出問(wèn)題的面積有多大,可能就是語(yǔ)義分割的問(wèn)題了。
我們還有其他的,比如數(shù)值預(yù)測(cè)??蛻艨赡芟胱鲆粋€(gè)投資量化交易平臺(tái),那就要選值預(yù)測(cè);如果想做一個(gè)聊天機(jī)器人,可能要選 文本的seq2seq 系統(tǒng)。我們會(huì)有八種這樣的選擇給客戶。客戶選了其中一個(gè)之后,就什么也不用管了。
然后在模型自動(dòng)設(shè)計(jì)的過(guò)程里,我們會(huì)告訴客戶幾件事情,一個(gè)是數(shù)據(jù)統(tǒng)計(jì),數(shù)據(jù)規(guī)模是什么樣子的,我會(huì)做哪些數(shù)據(jù)操作。然后每一代模型設(shè)計(jì)出來(lái)情況是什么樣子的,當(dāng)前最好的模型是什么樣子的。你可以看的到模型演變的過(guò)程,這些信息都會(huì)有。
當(dāng)機(jī)器認(rèn)為自己找到了一個(gè)合理的模型,比如達(dá)到客戶對(duì)準(zhǔn)確率的要求,或者時(shí)限要求等硬性指標(biāo)之后,機(jī)器就停了,然后它就會(huì)把當(dāng)前最好的模型輸出出來(lái),做一個(gè)完整的評(píng)估,并出一份報(bào)告。
這個(gè)報(bào)告會(huì)告訴你,模型的各項(xiàng)性能指標(biāo)比如 F1,Precision, Recall, Confusion Matrix 以及模型性能等。其次是模型穩(wěn)不穩(wěn)定,這個(gè)很重要的,誰(shuí)也不希望自己訓(xùn)練出來(lái)看起來(lái)很好的一個(gè)模型,但實(shí)際上是過(guò)擬合了。如果客戶對(duì)結(jié)果滿意,我們就把這個(gè)模型導(dǎo)入到我們的 inference 平臺(tái),然后就可以跟客戶生產(chǎn)系統(tǒng)做對(duì)接。如果不滿意,我會(huì)在原來(lái)的基礎(chǔ)上重新設(shè)計(jì),比如客戶對(duì)模型的準(zhǔn)確率滿意,但是這個(gè)模型太復(fù)雜了,消耗的硬件資源太多,那就需要對(duì)模型進(jìn)行簡(jiǎn)化。這是一個(gè) feedback 的過(guò)程。
基本上客戶參與的就是前期的數(shù)據(jù)準(zhǔn)備,數(shù)據(jù)導(dǎo)入以后他要做一個(gè)選擇,也就是他要完成解決的問(wèn)題是什么,最后要分析一下這個(gè)模型他可不可以使用。
模型上線之后,還可以進(jìn)行升級(jí)嗎?
宋煜:一旦模型上線使用以后,我們其實(shí)是需要客戶的 feedback。這個(gè) feedback 就相對(duì)復(fù)雜一點(diǎn),他得有一個(gè)方法告訴我,比如錯(cuò)了多少,哪些錯(cuò)了。這個(gè)時(shí)候就有兩種策略: 如果模型的退化在 1% 以內(nèi)或者 5% 以內(nèi),那我們可能選擇重新訓(xùn)練,然后很快把這個(gè)模型的準(zhǔn)確率再提回去,再繼續(xù)發(fā)布使用。但是當(dāng)產(chǎn)線發(fā)生改造以后,數(shù)據(jù)變化很大,很多地方就不太適用了。畢竟是機(jī)器設(shè)計(jì)的模型,它在設(shè)計(jì)的過(guò)程中是針對(duì)客戶的特定數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分布來(lái)做的,所以它可能會(huì)發(fā)生失效的問(wèn)題。這個(gè)時(shí)候,當(dāng)用戶的 feedback 傳回來(lái)時(shí),我們的系統(tǒng)會(huì)把新的數(shù)據(jù)混合到原來(lái)的數(shù)據(jù)里去,重新做一次采樣以后,然后重新設(shè)計(jì)模型。
只要你有更多的數(shù)據(jù)進(jìn)來(lái),理論上準(zhǔn)確率就會(huì)繼續(xù)慢慢往上升,這是一個(gè)點(diǎn)。另外一個(gè)比較重要的點(diǎn)是,我們有基因庫(kù)的概念,這個(gè)基因庫(kù)除了記錄有哪些神經(jīng)元以外,還會(huì)記錄基因的表達(dá)式里的屬性。這里的屬性是什么意思?一個(gè)神經(jīng)元和另外一個(gè)神經(jīng)元如果連在一起是否有效的概率,通俗來(lái)說(shuō)類似于互相排斥或者互相吸引,但是對(duì)我來(lái)說(shuō),在某種數(shù)據(jù)分布的情況下,它們能連在一起的概率會(huì)更大,在某種數(shù)據(jù)分布的情況下,它們連在一起的概率會(huì)更小。
為什么要做這件事情?我們的基因庫(kù)是在不停演化的,它的演化過(guò)程并不受某一次數(shù)據(jù)的影響。這個(gè)基因庫(kù)的更新是根據(jù)這些不同的模型設(shè)計(jì)過(guò)程中的穩(wěn)定性和泛化情況,然后做的統(tǒng)計(jì),再存到基因庫(kù)里。
假設(shè)基因庫(kù)在不增加新的神經(jīng)計(jì)算單元的情況下,客戶用這個(gè)基因,比如說(shuō)三天就可以設(shè)計(jì)出一個(gè)好的模型,那到明年基因庫(kù)更新之后,它做同樣的模型設(shè)計(jì)可能只要兩天或者更短的時(shí)間。所以它實(shí)際上是另外一層大腦,它會(huì)學(xué)習(xí)怎樣設(shè)計(jì)效果會(huì)更好。而底下那層大腦的作用是,在限定的數(shù)據(jù)情況和模型結(jié)果下,它們?cè)趺唇M合效果會(huì)更好。
我們希望把這個(gè)平臺(tái)部署到云端以后,它會(huì)越來(lái)越聰明,模型設(shè)計(jì)水平隨著時(shí)間的增長(zhǎng)和使用人數(shù)的增長(zhǎng)越來(lái)越高。比如它現(xiàn)在可以超過(guò)普通三年到五年的工程師的技術(shù)水平,但隨著時(shí)間積累,它甚至可以達(dá)到有十年經(jīng)驗(yàn)的工程師的技術(shù)水平,這都是有可能的。
你們現(xiàn)在有哪些客戶?
宋煜:目前主要的客戶是在金融和制造領(lǐng)域。金融領(lǐng)域的主要是做支付網(wǎng)關(guān)。支付網(wǎng)關(guān)可以看做是商家的淘寶,它會(huì)把 pos 機(jī)、線上線下數(shù)據(jù)都匯聚在一起來(lái)支付,包括銀行轉(zhuǎn)帳等都會(huì)通過(guò)支付網(wǎng)關(guān)來(lái)做。這種支付網(wǎng)關(guān)是我們現(xiàn)在的一些客戶,它們基本是全國(guó)第一第二的位置,我們主要是幫他們做風(fēng)控。
在金融領(lǐng)域里,傳統(tǒng)技術(shù)用的比較多,專家系統(tǒng)或者規(guī)則系統(tǒng)是目前金融領(lǐng)域都在使用的,包括今天的反洗錢系統(tǒng)都是專家系統(tǒng)。不是說(shuō)這個(gè)系統(tǒng)不好,而是當(dāng)業(yè)務(wù)發(fā)生改變的時(shí)候,專家系統(tǒng)就失效了,需要重新去設(shè)計(jì),這時(shí)就會(huì)很難,也不是說(shuō)不可能,但周期會(huì)比較長(zhǎng)。
我們跟他們合作的點(diǎn)是,他們這些人早就已經(jīng)在做數(shù)據(jù)挖掘了,各種算法對(duì)他們的門檻沒(méi)有那么高。對(duì)他們來(lái)說(shuō),時(shí)效性更重要,比如怎樣快速找到新的欺詐行為。它們今天的方式還是線上專家系統(tǒng)去分析,然后告訴地推的銷售去復(fù)查,看看商家的實(shí)際經(jīng)營(yíng)范圍是什么,是通過(guò)這種方式查出來(lái)的。我們希望讓機(jī)器去學(xué)習(xí),不用人去學(xué),從大量的交易里不停地學(xué),就能夠把這個(gè)問(wèn)題解決。
實(shí)際上我們不太希望限制在某個(gè)行業(yè)里,我覺(jué)得 AI 之所以有價(jià)值,不是 AI 有多好,而是它跟互聯(lián)網(wǎng)一樣帶來(lái)另外一個(gè)變革——公平和透明。以前我們的醫(yī)療資源在大醫(yī)院那里,如果你要去看病,就是很難。專家系統(tǒng)也在少數(shù)專家或者大公司手里,即使你有數(shù)據(jù),你想用就要花高昂的代價(jià)來(lái)買。AI帶來(lái)真正的好處,是它把以前集中掌握在專家手里的東西,變成讓任何一個(gè)企業(yè)在有數(shù)據(jù)的條件下就能用的東西,這是它最大的價(jià)值,因?yàn)樗鼛?lái)了另外一種公平。
未來(lái)你只要有數(shù)據(jù),明確知道用這個(gè)數(shù)據(jù)能解決什么問(wèn)題,把這兩件事情搞定了以后,任何一個(gè)公司都能夠利用 AutoML 做自己的 AI 系統(tǒng),不需要去學(xué)一個(gè)幾十年的大廠的經(jīng)驗(yàn),這是我們做這個(gè)平臺(tái)的目的。
AutoML 未來(lái)的發(fā)展趨勢(shì)和限制
你們的 AutoML 從開(kāi)始到現(xiàn)在有很大的進(jìn)步嗎?
宋煜:老實(shí)說(shuō)我們現(xiàn)在積累的時(shí)間沒(méi)有那么長(zhǎng),我不敢說(shuō)這個(gè)大腦的進(jìn)步有多少,但是看到在單次過(guò)程里頭進(jìn)步是很明顯的,比如說(shuō)我從第一代開(kāi)始,一般來(lái)說(shuō)準(zhǔn)確率,整個(gè)全訓(xùn)練的結(jié)果準(zhǔn)確率也就是 60%、70%,但到了第十代或者第十七代左右,一般都能到80% 到 90%,這種進(jìn)步是有的。但是它真正學(xué)出來(lái)的設(shè)計(jì)思想的影響有沒(méi)有這么大?這個(gè)還需要時(shí)間來(lái)檢驗(yàn)。
目前已經(jīng)有一些開(kāi)源的 AutoML 項(xiàng)目,對(duì)你們有什么影響嗎?
宋煜:我們現(xiàn)在也看到了一些開(kāi)源的工具,但實(shí)際上 AutoML 最重要的是效率,演化算法的效率是我們的核心價(jià)值所在,所以我們并不擔(dān)心一個(gè) AutoML 的產(chǎn)品出來(lái)之后擠占市場(chǎng)份額。在我看來(lái),開(kāi)源的 AutoML 工具的出現(xiàn),說(shuō)明大家都意識(shí)到了做模型是勞動(dòng)密集型的事情,大家希望都希望用機(jī)器去做。當(dāng)大家都接受這個(gè)觀點(diǎn)之后,對(duì)我們反而是更有利的。這個(gè)時(shí)候,誰(shuí)的效率更高,用戶就會(huì)選擇誰(shuí)。
在目前的方法下,用機(jī)器去設(shè)計(jì)模型的局限性有哪些?
宋煜:其實(shí)可能最大還是效率問(wèn)題。面對(duì)的復(fù)雜問(wèn)題,機(jī)器設(shè)計(jì)模型的速度到底行不行?當(dāng)數(shù)據(jù)集特別大時(shí),需要很多 GPU,成本很高,這對(duì)于中小型企業(yè)來(lái)說(shuō)是不可接受的,而且萬(wàn)一要是設(shè)計(jì)得不好,可能就白費(fèi)了。
第二個(gè),今天的數(shù)據(jù)其實(shí)干凈程度沒(méi)有我們想象的那么好。在我看來(lái)AI真正的行業(yè)落地有兩個(gè)難點(diǎn),第一是數(shù)據(jù),第二才是模型。模型要靠人才來(lái)解決,在人才不夠的情況下我們有機(jī)器,但是數(shù)據(jù)不干凈的問(wèn)題現(xiàn)在其實(shí)沒(méi)有特別好的解決方法。一名數(shù)據(jù)科學(xué)家可以用自己的數(shù)學(xué)知識(shí)去解決這個(gè)問(wèn)題,但今天的 AutoML 還不太擅長(zhǎng)做這件事情。我們也在試圖引用一些方法,但是我覺(jué)得現(xiàn)在的方法都還只停留在學(xué)術(shù)層面上,還無(wú)法實(shí)際落地。
第三個(gè),還有一個(gè)可能的缺陷,就是模型可能會(huì)有過(guò)擬合,因?yàn)闄C(jī)器在設(shè)計(jì)過(guò)程中的目標(biāo)就是準(zhǔn)確率越高越好,但是在追求準(zhǔn)確率的同時(shí),可能會(huì)把模型變得很復(fù)雜,模型變得很復(fù)雜,就有可能學(xué)到了很多噪音,甚至學(xué)到了數(shù)據(jù)的分布,而這個(gè)數(shù)據(jù)分布是用戶給你的數(shù)據(jù),其實(shí)只是他真實(shí)海量數(shù)據(jù)中的極小一部分,很有可能跟真實(shí)世界里的數(shù)據(jù)分布是很不一樣的。當(dāng)機(jī)器把數(shù)據(jù)的某些分布特點(diǎn)當(dāng)成了特點(diǎn)去學(xué)了以后,就很麻煩了,學(xué)出來(lái)的模型上線以后可能就會(huì)出現(xiàn)準(zhǔn)確率驟降的情況。不過(guò),機(jī)器在設(shè)計(jì)模型的過(guò)程中,我們也并沒(méi)有期望它能夠設(shè)計(jì)出來(lái)一個(gè)普遍試用的模型,而是更適合這類數(shù)據(jù)的模型,因此這中間需要一個(gè)平衡,而且一定要有嚴(yán)格的方法的來(lái)判定這個(gè)模型是不是真的適合上線。
未來(lái) AutoML 的進(jìn)化方向是什么?
宋煜:AutoML 現(xiàn)在有幾個(gè)大的主流方向,一種是遺傳學(xué)的表征方式來(lái)做,一種是強(qiáng)化學(xué)習(xí)的方式來(lái)做,還有元學(xué)習(xí)這種方式,其實(shí)這三種方式可能也很難說(shuō)哪一個(gè)是最好的。我覺(jué)得這三個(gè)方向應(yīng)該都是大家去努力的點(diǎn),但是最重要的如何能真正落地,這個(gè)實(shí)際上是最難的。再一個(gè)就是效率,解決效率的問(wèn)題一方面是靠計(jì)算力本身的發(fā)展,還有一個(gè)是效率的提升,在我看來(lái)最主要就是這兩塊。
三者可以互相借鑒嗎?
宋煜:如果試圖用一個(gè)方法解決所有的問(wèn)題,我覺(jué)得會(huì)很難。但是一個(gè)問(wèn)題可以分解成若干個(gè)小問(wèn)題,然后每個(gè)小問(wèn)題再用合適的方法做。比如強(qiáng)化學(xué)習(xí),至少今天用它來(lái)做整個(gè)的模型演化的話,計(jì)算圖的狀態(tài)太多了,除非你算力很強(qiáng)大。但是模型設(shè)計(jì)合理不合理這件事情,用強(qiáng)化學(xué)習(xí)來(lái)做就很合適。模型計(jì)算圖的生成方向則完全可以交給 EA 去做,讓 EA 去搜索這個(gè)方向。而神經(jīng)元和神經(jīng)元之間的轉(zhuǎn)移狀態(tài)矩陣的更新,又可以用貝葉斯等傳統(tǒng) SMBO 的方式去做。這樣的話把它分解開(kāi)以后,其實(shí)是可以互相融合來(lái)用的。
調(diào)參師會(huì)被取代嗎?
AutoML 廣泛應(yīng)用之后,普通的調(diào)參師工作就沒(méi)什么價(jià)值了嗎?
宋煜:也不能說(shuō)沒(méi)有價(jià)值,還是看大家追求的方向。AutoML 不是替代現(xiàn)在的數(shù)據(jù)工程師,它的目標(biāo)是輔助數(shù)據(jù)工程師把模型做得更快、更好。模型調(diào)優(yōu)以及在原有的模型上改一個(gè)新模型,是勞動(dòng)密集型的工作,今天的工程師如果只做這些,很快就會(huì)失去意義,因?yàn)檫@種工作是沒(méi)有價(jià)值的。
數(shù)據(jù)工程師真正的價(jià)值在未來(lái)有兩個(gè)點(diǎn)是今天的 AutoML 不能替代的:
一是找到新的數(shù)學(xué)方法,設(shè)計(jì)出新的 loss 函數(shù),來(lái)更好地解決某一類問(wèn)題。比如我們現(xiàn)在 NLP 里多輪對(duì)話的問(wèn)題,到今天為止大家還在用一些傳統(tǒng)的方法比如 action template 的方式來(lái)解決對(duì)話束的問(wèn)題。如果有人設(shè)計(jì)出一個(gè)好的 loss,能夠把前面的聊天過(guò)的記錄變成一個(gè)可以連續(xù)求導(dǎo)的問(wèn)題,就可能直接從上下文的語(yǔ)料學(xué)習(xí)出對(duì)話的 Action 而不是靠根據(jù)行業(yè)特點(diǎn)來(lái)定義。所以,數(shù)據(jù)科學(xué)家的作用是找到更好的數(shù)學(xué)模型,把它放到深度神經(jīng)網(wǎng)絡(luò)里,這是機(jī)器無(wú)法替代的。
還有一個(gè)方向是向上根據(jù)數(shù)據(jù)和業(yè)務(wù)設(shè)計(jì)出合理的使用 AI 的場(chǎng)景。很多公司想用人工智能做點(diǎn)事情,當(dāng)你問(wèn)它“你想做什么”的時(shí)候,它想的可能是平時(shí)聽(tīng)到或者看到的一些很炫的東西,但那些東西對(duì)它的業(yè)務(wù)真正有幫助嗎?什么事情對(duì)它的生產(chǎn)業(yè)務(wù)是有價(jià)值的?一個(gè)是節(jié)省成本,二是提高效率,三是增加產(chǎn)值。在這三個(gè)點(diǎn),一個(gè)傳統(tǒng)行業(yè)的公司能夠做什么,這是今天大部分 AI 公司都不可能給出答案的。因?yàn)?AI 公司沒(méi)有那么強(qiáng)的行業(yè)知識(shí),這些只有真正傳統(tǒng)行業(yè)里的業(yè)務(wù)人員才知道,而這些傳統(tǒng)行業(yè)里的數(shù)據(jù)工程師,或者學(xué)了 AI 的人加入傳統(tǒng)公司以后,才有能力真正去理解什么樣的模型、什么樣的 target 是有價(jià)值的。
這兩點(diǎn)是機(jī)器現(xiàn)在不可替代的,真正勞動(dòng)密集型的事情不妨交給機(jī)器去做。
-
算法
+關(guān)注
關(guān)注
23文章
4708瀏覽量
95316 -
ai技術(shù)
+關(guān)注
關(guān)注
1文章
1308瀏覽量
25143 -
遷移學(xué)習(xí)
+關(guān)注
關(guān)注
0文章
74瀏覽量
5727
原文標(biāo)題:AI調(diào)參師會(huì)被取代嗎?對(duì)話AutoML初創(chuàng)公司探智立方
文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
ADS1298 RDATAC Opcode時(shí),START到底是低還是高?
ADS1298的操作溫度范圍到底是多少?
ADS1298ECG-FE原理圖上看見(jiàn)很多NI的符號(hào), 到底是什么意思呢?
ADS1278的參考電壓的要求到底是怎樣的?
DAC3283的轉(zhuǎn)換函數(shù)到底是怎樣的?是不是用16bit的數(shù)據(jù)來(lái)量化參考電流?
SensiML開(kāi)源了Analytics Studio AutoML引擎

評(píng)論