WAIC 2021 | 思謀科技劉樞:賦能制造業(yè)需要什么樣的算法平臺?
在 WAIC 2021 AI 開發(fā)者論壇上,思謀科技聯(lián)合創(chuàng)始人兼技術(shù)負責人劉樞帶來題為《智能制造中的算法平臺》的精彩分享。在演講中,他主要介紹了在制造業(yè)中,什么樣的算法平臺能為客戶與自己降本增效。
以下為劉樞在 WAIC 2021 AI 開發(fā)者論壇上的演講內(nèi)容,機器之心進行了不改變原意的編輯、整理。
今天非常高興有機會在這個地方分享我們的思考,也讓大家看一下我們怎么從深度學習前邊走到后邊,來到了這個后深度學習的 AI 時代。我相信,很多 ToB 公司初心為客戶降本增效,其實作為 ToB 公司也可以對自己好一點,為自己降本增效。
我來自思謀科技,創(chuàng)始人及董事長是賈佳亞博士,他是香港中文大學終身教授、電氣和電子工程師協(xié)會(IEEE)院士、業(yè)內(nèi)頂級期刊 TPAMI 副主編、計算機視覺、人工智能與計算機影像學等領域權(quán)威專家。思謀科技成立于 2019 年 12 月,現(xiàn)在已經(jīng) 1 歲半,像剛剛出生的嬰兒一樣,成長非常迅速。最近已經(jīng)完成 2 億美元 B 輪融資,2020 年 10 月,完成超億美元 A 輪融資。之所以得到資本市場的青睞,也是因為短短一年半時間,(我們)做成了許多標桿案例項目交付以及軟硬一體標準產(chǎn)品的打磨。
一、為什么是制造業(yè)?
我們所關(guān)注的領域是制造業(yè),歷經(jīng)機械自動化、電子化,(制造業(yè))現(xiàn)在迎來智能化時代。思謀科技致力于研發(fā)新一代 AI 技術(shù),打磨全棧交付能力,通過標準化軟硬件一體產(chǎn)品以及端到端的解決方案,推動整個制造業(yè)智能化轉(zhuǎn)型升級。
制造業(yè)發(fā)展趨勢非常好,不管是全球還是中國市場,發(fā)展速度均遠超 GDP 增長率。就國內(nèi)來講,由于受到「智能制造 2025」以及新基建利好政策影響,增長趨勢遠超國外。同時,隨著人工智能計算機視覺技術(shù)不斷成熟與發(fā)展,現(xiàn)在可以解決許多之前機器視覺所解決不了的需求,增長也迎來爆發(fā)點。
舉個簡單例子。提到制造業(yè),人們的第一反應都會想到怎么把這個東西生產(chǎn)出來。這個過程自動化程度已經(jīng)非常高。每一件產(chǎn)品生產(chǎn)出來之后,有一個必不可少的環(huán)節(jié)是什么?一定要做產(chǎn)品的質(zhì)量檢測(不管物理的、化學的還是外觀檢測)。比如,手機生產(chǎn)完之后表面有沒有劃痕,(檢測)有沒有缺陷,往往是人力參與最多的環(huán)節(jié)。
舉一個具體例子。產(chǎn)線女工要看芯片是不是平整,怎么做?拿一個小東西往里戳,戳不進去就是平的,戳進去就是不平。這里存在很多問題。首先是速度非常慢,效率非常低。其次,這樣做是非常主觀的事情。男、女工人去戳同一塊芯片,結(jié)果可能不一樣。這個環(huán)節(jié)往往效率最低,結(jié)果也最不可靠。
我們提供了一套解決方案。用 3D 激光做線掃,很多芯片可以一次性掃描出來,檢測上面是不是平的、有無缺陷等,給客戶提供效率更高、結(jié)果更靠譜的方案。
把視角放大一點,看一下每個人都會用的手機。手機里面有幾百種零件,幾百個供應商,每個零件都要做檢測。有些零件組裝之后也要做檢測,看有沒有引入新的缺陷。每個零件本身可能有幾十種缺陷要做檢測,僅僅是一部手機就需要做上萬種缺陷檢測。市場需求非常大,這是非常好的事情。但是,這里面也有些痛苦。
每個零件都不一樣,每個缺陷都不一樣,項目需求非常碎片化。同時,上線之前數(shù)據(jù)很少,怎么用比較少的數(shù)據(jù)快速得到還能夠上線的模型去迭代?隨著產(chǎn)線良率的變化,最后驗收標準也會發(fā)生調(diào)整,有點像薛定諤的需求一樣,時時刻刻摸不準,但還是要去滿足它。性能要求高就不用說了,迭代速度快是什么意思?在一個產(chǎn)線上會混線生產(chǎn)不同廠商的產(chǎn)品,算法要同時兼容它們,生產(chǎn)線怎么快速迭代到新產(chǎn)品里面?這都是具體技術(shù)問題。
我相信在座的各位都是做技術(shù)的同學,有一個很重要的點就是怎樣把客戶紛繁復雜的需求抽象成通用技術(shù)問題,用更高的交付效率和更低交付成本完成項目交付,這是最大價值。
我們自己開發(fā)了一套完整的覆蓋所有應用以及上下游工具鏈的算法平臺,Smore AI Platform(SMap)。通過平臺完成了所有項目交付以及打通所有產(chǎn)品,所有工程師一起使用和維護這套平臺。接下來,我按照我們內(nèi)部時間演進順序、從四個維度闡述我們認為需要什么樣的算法平臺。
二、「降本增效」需要什么樣的算法平臺?
首先,最簡單的是工具化。它能夠被不同工程師快速使用,如果用得比較好,不同工程師可以互相遷移,它本身可以作為知識沉淀、知識傳播的載體。
與之相對的是,可能有不同算法工程師,每個人有自己祖?zhèn)鞯拇a,雖然里面加了非常多好用的東西,但是不同工程師不共享,很多東西還要重新開發(fā),沒辦法用起來,這就非常痛苦了。
為了解決這個問題,這是第一代算法平臺大概架構(gòu)圖。第一代把不同應用做了單獨代碼庫,比如檢測、分類、分割等等,做相同方向的同學可以快速復用起來。比如,A 同學做了一些長尾問題解決方案,B 同學做了其他方案,只要做同一個方向大家都可以用起來。
問題是,當我們希望把模型做得更快時,用到蒸餾或者量化技術(shù),因為代碼庫是完全割裂開的,在檢測、分類、分割應用時,都要重新開發(fā)一遍,非常浪費。
而且不同人設計不同代碼庫,設計理念和設計語言也不一樣,比如同樣一個術(shù)語在不同代碼庫可能引起混淆,這就帶來第二代的架構(gòu),一定是平臺化東西。
不同應用以及上下游工具鏈一定是依照同樣優(yōu)秀的抽象,它定義了數(shù)據(jù)流、架構(gòu)應該長什么樣子,不同模塊長什么樣子等等。有了比較好抽象以后,不同模塊以插件形式融入到一起,非常簡單地加以調(diào)用。同樣,依賴于比較好的抽象,以后不斷衍生的新技術(shù)也可以很快用起來。
這是我們的第二代架構(gòu), 我們把整個代碼抽象成三個層級。中間是最核心的模塊(Core),承載不同應用 、上下游工具鏈抽象的總接口,同時沉淀了所有共享的東西。
它的上面鏈接了應用層,比如檢測、分類、分割、關(guān)鍵點、機器學習的技術(shù)以及機器視覺技術(shù)等等。算法同學只跟核心模塊交互,通過核心模塊調(diào)用不同應用,就可以非常簡單用起來。
第三層是插件層,通過統(tǒng)一抽象(因為我們數(shù)據(jù)已經(jīng)完全抽象好了),開發(fā)一次就能支撐所有應用。除此之外,我們還封裝了對應的解決方案,針對不同方向,比如 3C、半導體,打包不同技術(shù)點成為一些方向性的解決方案,幫助我們快速復用。
這是一個比較簡單的例子。我們做了抽象之后,算法工程師只用跟核心模塊打交道,因為這一套所有交互都是完全一致的,遷移起來去做檢測分割、分類等,就沒有遷移的成本。同時,因為是可插拔設計,后續(xù)需要任何工具鏈上東西,都可以通過 Core 快速組裝起來,直接得到想要的模型。
簡單地講一點不同的東西。思謀的 SMap 在設計之初就是定位面向工業(yè)界交付的代碼庫,跟面向?qū)W術(shù)界或者網(wǎng)上開源代碼庫有一些不同點。比如,網(wǎng)上開源的 OpenMMLab 是一套非常好的代碼庫,是面向?qū)W術(shù)界的,不會有上下游工具鏈的一套支撐,而 SMap 具有這些優(yōu)勢。同時 OpenMMLab 也比較開放,方便大家所以去做一些修改。
但是面向工業(yè)界的東西,要以某種方式約束代碼庫,不能太過于隨便。舉個例子。做研究生或者做項目交付時,可能會遇到這種問題。這個模型訓練好了,過兩三個月之后,客戶或者研究生導師突然要求復現(xiàn)這個模型,這個時候可能會復現(xiàn)不出來,為什么?
大家平時都是通過 config 去定義怎么訓練模型,但是,模型的產(chǎn)生不僅僅依賴 config 所定義的訓練方法,還依賴于模型運行環(huán)境以及模型所依賴的代碼版本。過兩個月代碼庫變了,再去訓練它可能就沒有辦法保證得到同樣的模型。
為了去滿足這個問題,我們也加了一些限制,比如用另外一套文件去定義到底在什么運行環(huán)境下,依賴于哪一個分支得到模型,保證每個模型都是可以嚴格復現(xiàn)出來的。
再比如,大家之前可能覺得 configuration 比較隨意、比較開放,最好用。但我們做了一些操作,比如,default value 或者會限制數(shù)據(jù)類型等,去做一些防呆的設計。封閉是一方面,開放這個東西也不能丟。我們的解決方法是加了一個 customize 模塊。通過一套統(tǒng)一接口,只要能把接口設計得比較符合邏輯,將這個 customize 模塊、訓練 configuration 以及對環(huán)境的定義放在同一個文件下,就可以完整定義出一套自己的實驗,同時也通過這種方式允許大家去開發(fā)自己的東西。開發(fā)好后,如果是比較好的解決方案,就可以直接納入到核心代碼庫里。就算嘗試失敗,也不會對核心代碼庫造成任何影響。
除了細節(jié)設計,單點的技術(shù)也有突破。比如,蒸餾是非常重要的模塊,蒸餾是希望把大模型的一些 dark knowledge 放到小模型里,讓小模型速度既快、性能又好。下面是比較常見的一套方法。
后來,我們發(fā)現(xiàn)在小模型里面,如果在其高層同時學習所有前面的 teacher 層,可以得到非常好的效果,有點像考試之前要復習一下,臨時突擊一下也可以學到很多東西,溫故而知新嘛。如果 student 每一層都去學習前面一層,也能得到非常好的效果,但是也會非常笨拙。我們最后做了一些精簡,得到一個簡單架構(gòu),效果也很好。這個發(fā)表在了 CVPR,已經(jīng)開源了,感興趣的同學可以用一下。
這是簡單的結(jié)果。跟其他方法相比,在任務集上都有非常大的提升,同時可以應用在不同場景里面,比如檢測、分割、分類數(shù)據(jù)集等等,效果不錯,也已經(jīng)被廣泛地應用到了我們的項目交付里面。
這個東西做完,可以看到,訓練往往不需要開發(fā)一套新的東西,因為沉淀了非常多標準工具,大家直接調(diào)用就可以了,節(jié)省了非常多重復開發(fā)、反復 debug 的時間。但是,算法工程師還是需要花費一些時間在選擇用什么方法、調(diào)整超參、網(wǎng)絡結(jié)構(gòu)等等,這就跟前面幾位嘉賓講的很像,需要 automl 的加持(在后面做演講有非常好的地方,總是可以發(fā)出英雄所見略同的感慨)。
第三個維度叫范式化。我們希望實現(xiàn)項目流程范式化,快速把類似東西復制到不同項目去,極大實現(xiàn)模型自動化生產(chǎn),減少算法同學調(diào)整模型、超參的時間。
還是這個圖。我們在這個基礎上跟 Core 打交道,加了自監(jiān)督學習、超參自動優(yōu)化、NAS 搜索網(wǎng)絡結(jié)構(gòu)、損失函數(shù)等等。
但是,跟之前嘉賓講的不一樣,我們不是為了去用 automl 而去用,而是會結(jié)合自己的實際應用,核心點在于用 automl 多快好省地解決客戶問題。所以,對搜索空間、時間成本都做了非常大的精簡,基于我們的經(jīng)驗 know-how 約束了搜索成本和時間。大家知道,通過 automl 可以節(jié)省算法工程師很多時間,但是電費也很貴,能省一點也是好的。
加了 automl 之后,可以看到調(diào)用的邏輯會變得復雜一點。通過對 Core 的調(diào)用,比如我們現(xiàn)在選擇兩個模塊,可以用 HPO 自動優(yōu)化,可以用 NAS 去搜索結(jié)構(gòu)。
大家還記得剛才提到的,我們遇到的項目數(shù)據(jù)量不是很大,但是,我們一直持續(xù)接項目,一年半時間接觸幾百個項目,如果把這么多項目數(shù)據(jù)全部放在一塊,本身量就很大。怎么樣能夠把數(shù)據(jù)利用起來呢?這就是一件非常有意思的事情。
雖然項目可能對應不同零件、不同缺陷,但都有某些工業(yè)場景下的共性,都是希望找一些不同。在這種情況下,自監(jiān)督學習就是非常好的模式。用自監(jiān)督學習把不同數(shù)據(jù)放在一塊,進行預訓練,用已經(jīng)知道的知識幫助模型快速收斂,在數(shù)據(jù)比較少的時候也收斂到比較好的狀態(tài)。
解決小數(shù)據(jù)問題,這只是其中一個點,也還有很多其他的方法。
這邊有一些具體數(shù)字,有了這套代碼庫后,我們 POC 基本只要半天就可以得到還不錯的模型;平均而言,整個模型迭代速度有三倍提升,尤其對于比較難的項目,對于模型的性能,推理速度要求比較高,可能 5-10 倍的提升,收益非常大。同時,還有單點的技術(shù),比如 NAS、HPO,即使只是用其中一個小塊,也能帶來一些提升。
這里有兩個比較有意思的漫畫。左邊說,當模型訓練不是特別好的時候,要看看數(shù)據(jù)是不是對的。我們現(xiàn)在也是往這個方向邁進,大家想一想,這個現(xiàn)象的原因是什么,是因為后面框架已經(jīng)足夠優(yōu)秀,大家的時間更多花在前端處理數(shù)據(jù)上。這也是大家需要關(guān)注的點,從客戶拿的數(shù)據(jù)怎么樣達到要求,理清楚客戶需求,這個占用的時間會越來越多,也是后面要做一些探索的。比如,之前嘉賓也分享過一些技術(shù)(比如 active learning)幫忙去做。
另一幅漫畫上,可以看到研究員合理摸魚、劃水的理由是什么?答案是,我的模型在訓練。這也是一個現(xiàn)實狀態(tài),模型訓練占了絕大多數(shù)時間,當然,算法工程師也不是在摸魚,而是在仰望星空看下一代需要做什么東西。
簡單再介紹一個小技術(shù),就是我們的自監(jiān)督方法。我們拿到兩張圖做一個切分,把不同的圖拼在一起,拼成新的圖,把他們丟到神經(jīng)網(wǎng)絡,學習怎么把之前的圖恢復出來。跟之前的方法不同,我們不需要同時 forward 兩倍數(shù)量的圖片,這樣可以加速訓練速度和減少顯存的占用,同時還把定位信息加進去了。這也是很有意思的工作,是 2021CVPR 的一個 Oral,代碼開源了,感興趣同學可以看一下。
最后一個維度是產(chǎn)品化。剛剛講了我們的算法平臺本身一定是面向交付的。什么叫面向交付?開源代碼庫往往是訓練完這個模型就結(jié)束了,對于公司來講,還差一公里,模型要工程化變成 SDK 交付給客戶,產(chǎn)生價值。現(xiàn)在,算法這一側(cè)已經(jīng)跟工程側(cè)完全打通,同樣一個 configuration,定義的不僅僅是怎么去訓練模型,同時也定義了推理時需要怎樣前后的處理。通過 configuration,就可以自動化把 SDK 組裝起來,得到可以到線上去部署的推理 SDK。
我相信,很多公司也會給客戶提供一套通用性算法平臺,但可能會有一個問題,提供給客戶的平臺,跟自家算法工程師用的平臺是兩個東西,怎么去保證給到客戶東西真是一套好用的東西?我們的做法是將內(nèi)部算法平臺與提供給客戶的產(chǎn)品完全打通,打通以后也有非常多好處。
首先給到客戶的服務一定有保證的,這是我們自己平時用的東西。另外,研發(fā)做出所有新技術(shù)、提升能夠非常快速地傳導給客戶,做到工程、產(chǎn)品以及算法三位一體協(xié)同,極大加速了價值傳遞。得益于優(yōu)秀的代碼結(jié)構(gòu)抽象,我們通過核心模塊,就可以跟 SDK 側(cè)、產(chǎn)品側(cè)完全打通。
這里簡單展示一下現(xiàn)在做出來標準化產(chǎn)品。左手邊都是軟件平臺,比如 ViMo 允許客戶自己收集數(shù)據(jù)、標注數(shù)據(jù)、訓練模型、部署模型,所用到的算法模塊就是我們自己內(nèi)部在用的算法平臺。
右邊是軟硬一體硬件體系,比如智能掃碼器、智能硬件,以及有機械功能、能夠幫助客戶端到端解決問題的智能機臺,都是我們已經(jīng)推出的產(chǎn)品。
三、落地案例
最后跟大家分享已經(jīng)做出來的標桿案例。首先是芯片工藝分析項目。芯片非常小,需要檢測里面的電路結(jié)構(gòu)。之前靠人手工打磨,磨了一層后,使用電子顯微鏡成像,成像之后可以得到灰度、顏色不一樣電路圖,然后去做結(jié)構(gòu)化。
大家知道,到了百萬、千萬門的這個級別,不可能再靠人工做這樣的事情,有迫切自動化需求。聽起來很簡單,但要處理非常多的問題。比如成像模糊、制程不同(28 納米跟 14 納米成像出來都是不一樣的),或者有一些噪聲等等。思謀推出了對應的全棧解決方案,并實現(xiàn)了億級晶體結(jié)構(gòu)的自動結(jié)構(gòu)化,最后檢出率非常高,超過 99.99%,處理效率超過 96%。
另外一個是汽車行業(yè)案例,做軸承檢測。不只是輪子,汽車有很多地方都要用到軸承,軸承質(zhì)量跟行車安全關(guān)聯(lián)度非常高。思謀的軸承 AI 檢測一體機已在某世界 500 強汽車部件廠商正式上線,極大地縮短了原有產(chǎn)線的檢測流程,實現(xiàn)了 0.001 毫米的極限曲線檢測,質(zhì)檢效率提升超過 80%,檢測準確率接近 100%。據(jù)悉,這也是該企業(yè)首次在其主流乘用車產(chǎn)線上引入 AI 產(chǎn)品。
還有 3C 行業(yè)的產(chǎn)品。思謀為某全球市值最高的智能手機品牌商提供了無線充電線圈檢測一體化設備。我相信在座各位肯定有人有這款手機,元器件檢測就是我們在做,已經(jīng)交付落地。新一代產(chǎn)品復制的訂單也是在生產(chǎn)過程中,我們做了 30 多種高難度缺陷(檢測),也得到非常好的檢出率,超過 99.8%,人力成本削減 80%。
總結(jié)一下,我們認為需要有一個工具化、平臺化、范式化、產(chǎn)品化的算法平臺,完成流水線式模型自動化生產(chǎn),幫助我們自己和客戶降本增效。最后,也非常歡迎感興趣同學加入我們,一起在「中國制造 2025」發(fā)揮作用。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。