本屆 D2 前端技術論壇,我們十分榮幸地邀請到了 Google TensorFlow.js 團隊的負責人 Ping Yu 作為「智能化」專場的嘉賓,為我們講解 TensorFlow.js 生态系統,以及如何将現有的機器學習模型植入到前端。
PingYu, Google Brain 工程師,TensorFlow.js 項目負責人。緻力于将機器學習平台帶給 Web 以及 JavaScript 開發者。前 Google Attribution 平台的技術主管。Ping 擁有清華大學理學學士學位,馬裡蘭大學帕克分校理學碩士學位。

得益于人工、資料、計算成本的降低,人工智能(AI)在最近的一個十年得到了爆發式的發展,其中,要數「機器學習」流派首屈一指[1]。放眼全球,在 AI 這個賽道上,遙遙領先的領路人,非 Google 莫屬,而 Google 又将機器學習作為其在 AI 領域的工作重心[2]。他們開發并維護着 TensorFlow, 旨在幫助他人解決重要問題[3]。
提起 TensorFlow, 很多人會覺得這是個十分遙遠的、可望而不可及的東西,我從搞算法的朋友那裡聽來一句調侃——能在電腦上安裝并運作 TensorFlow, 你已經跑赢了 80% 的算法工程師。雖然是句玩笑話,但也從側面說明了 TensorFlow 的門檻之高——連算法工程師都不一定搞得定。那作為前端工程師的我們,是不是隻能望其項背了呢?
答案是 No~ No~ No~
因為在 Google 有這麼一群人,早已幫我們解決了這個問題。他們看準了前端在機器學習領域的潛力,研發出了 TensorFlow.js——專門服務于前端的機器學習平台。
為了讓大家對演講主題更好的了解, 我們特地安排了此次專訪,一起來聽聽他對前端與機器學習的見解。
D2 小編: Hi, Ping Yu, 很榮幸能夠邀請到您來 D2 演講,可否向中國的朋友們介紹一下您和您目前的工作?
Ping Yu: 我在 Google 的 TensorFlow 團隊中負責 TensorFlow.js 的開源項目。TensorFlow.js 是一個針對前端開發者機器學習平台,它不光提供模組化,訓練到推理的一套完整的 API, 還有一個結合實際應用場景的模型庫。我們的目标是降低前端開發者使用機器學習的門檻,進而激發他們的創造力。
D2 小編: 我們知道,人工智能往往伴随着複雜的資料、模型和運算,而很多人認為 JavaScript 太弱了,不适合做人工智能,甚至說前端就不該趟 AI 這趟水,您怎麼看待這個「老生常談」的說法?
Ping Yu: 這個問題可以從兩個方面去看。首先,JavaScript 作為一個解釋執行的語言,确實缺乏純計算能力,但語言本身的計算速度并不決定它是否适合機器學習。比如 Python 同樣作為解釋執行的語言,速度并不是它的強項,甚至它比 JavaScript 的 V8 引擎要慢多了,這并沒有妨礙它成為當今最受歡迎的機器學習語言。因為它并不需要直接解決速度的問題,它可以利用其他更底層的語言來獲得計算速度的提升。TensorFlow Python 就是利用 binding C library 提供 CPU 上的加速,通過 cuDNN 的綁定獲得了 GPU 提速。這都是 Javascript 可以做的事情。比如說 TensorFlow.js 通過 WebGL 的 Fragment Shader 來獲得 GPU 加速,通過 Web Assembly 來獲得 CPU 的加速等等。
另外作為一個機器學習 API Level 的語言,易用性才是真正吸引使用者的地方。Python 的崛起很大程度上得益于一個非常受歡迎的數值運算庫 numpy. 其實 Javascript 在易用性上并不遜色于 Python, 十幾年來,從網頁到背景,再到 iOT 裝置,Javascript 無處不在。它跨平台的特性能很好的解決模型部署的任務。
我和很多工業界還有研究部門的夥伴了解的時候發現,他們現在共同的困境就是,缺乏人才能夠真正把 AI 研究結果很好的落地。我們相信這個離不開前端工程師,但是需要有一套完善的工程解決方案。TensorFlow.js 隻是一個開始,希望有更多的前端開發者可以加入我們的行列。
D2 小編: 那請問 TensorFlow.js 目前都有哪些應用場景、效果如何?如果沒有足夠的資料量能接入嗎?
Ping Yu: TensorFlow.js 支援許多 Javascript 可以運作的環境,前端的浏覽器,無線端的小程式,React Native 平台,中背景的 Node.js 等等。
不同的運作環境,應用場景也不盡相同。無線端多以實時人機互動模型為主,不論是視訊還是語音,對模型的大小和執行速度的要求都很高。最近歐萊雅使用 TensorFlow.js 在微信小程式裡推出了實時試妝,模型執行速度達到 25FPS, 但模型隻有 800K. 在浏覽器中的 Web App, 它的 AI 應用場景多以圖形或文字模型為主。在中背景,應用場景會更豐富一些。TensorFlow.js 在 Node.js 裡的執行速度和 TensorFlow Python 旗鼓相當,讓 server 端的模型推理可以融入到現有的 BFF 架構内。
另外TensorFlow.js 也支援模型訓練,這意味着前端可以通過轉移學習的方法為每個使用者提供定制的模型。
D2 小編: 有人說,AI 技術的大進步,往往不是算法本身,而是源自人機互動的改進,您認同這個看法嗎?目前(至少國内)已落地的人工智能大多是「人勞工工智能」,請問國外面臨這個窘境嗎?您認為有何解法?
Ping Yu: 這個問題涉及面有點廣,但看法我是基本認同的。我了解這句話原意是,人機互動界面的改進,為 AI 技術提供的場景和契機。AI 的基礎是資料,而前端技術可以幫助研究者更快更好地了解資料。雖然現在 AI 發展日新月異,新模型、新架構層出不窮,但當模型落地時候,如果并沒有和前端實作一個閉環,也就會出現「人勞工工智能」的現象。谷歌推出的聯邦學習和 TFX 機器學習的架構,通過 AI 和前端的結合,就能夠做到連續的驗證和調整模型。
D2 小編: 您認為前端智能化未來會往什麼方向發展?對于想做人工智能的前端工程師有什麼學習建議?
Ping Yu: 雖然前端有許多成功的架構,但總體來說還是有不少手工的工作。(我認為未來的考慮将是)如何将 AI 的能力融入到這些架構中,進一步減少前端工程師工作中低端的手工部分,進而進一步解放他們的創造力。
對于前端工程師而言,要對常用的模型和架構要有一定的認識,了解他們的特點和使用場景。要具備一定的 AI 工程方面的知識,比如模型加速和壓縮,模型加密,端上和伺服器上推理方案,這可以為模型落地提供切實可行的途徑。
D2 小編: 請問參加您這次的分享需要準備什麼前置知識?您将與國内開發者進行什麼方面的交流?
Ping Yu: 這次分享(我将)通過一些執行個體來介紹 TensorFlow.js 平台的能力,進一步探讨 AI 在前端落地的場景。目标閱聽人就是前端工程師,沒有特殊的前置知識。
不知道本次專訪有沒有解答你對于前端與機器學習的疑惑呢?我是覺得,看完這次專訪,機器學習對我來說終于不再雲裡霧裡了,Ping Yu 淺顯易懂的表達,使我對前端與機器學習、對 TensorFlow 有了更進一步的認識,也了解了該從哪些方面去學習 AI, 實在是太棒啦!
本屆 D2 上,Ping Yu 還将與我們探讨 TensorFlow.js 進一步優化的方式,以及未來發展的方向。是不是好期待呢!
已經買了票的小可愛,當天記得帶着可愛的自己準時來參加,就好啦~
還沒買票的小可愛要注意咯!
由于大家購票熱情太高,我們本次的早鳥票及早鳥拼團票已提前售罄,你可以選擇購買普通票(559/張),一次性購買 3 張及以上,更可立減 100, 享受早鳥票價格 459/張哦!餘票不多,心動不如趕快行動,我在 D2 智能化專場等你哦!
附 1:D2 智能化專場介紹
機器學習和人工智能在前端領域如何應用?智能化将如何改變前端的工作方式?目前機器學習和人工智能在前端的應用成果有哪些?在工程和業務領域借助智能化創造技術價值?本屆 D2 的前端智能化專場通過行業的應用案例和實踐經驗的風向,讓大家對智能化改變前端有切實的感受,同時還邀請了谷歌 TensorFlow.js 等行業知名的前端智能化團隊,帶來前端智能化發展趨勢的最新資訊。讓我們在機器學習改變行業的今天,攜手弄潮于技術之巅。
附 2:好文推薦
初識前端智能化 一個前端智能化的實踐參考文章:
[1]
你真的了解人工智能嗎?——聊聊AI的碰壁和冬天[2]
谷歌确立AI first戰略一年後成果如何? 這裡有答案[3]
Google AI負責人:機器學習是解釋AI的最好方法