谷歌開發者大會2018實錄——TensorFlow篇
作者:閒魚技術-楚豐,仝輝
摘要
在9月21日結束的Google開發者大會上,閒魚團隊作為Google的合作伙伴參加了此次會議,不僅在Flutter方面與谷歌以及國內開發者進行了深度交流,同時閒魚技術開發專家陳永新作為本次大會的演講嘉賓,分享了閒魚基於TensorFlow Lite的端計算應用實踐。在閒魚的展臺上還展示了閒魚基於TensorFlow的黑科技:UI2Code,吸引了絡繹不絕的開發者前來圍觀。
TensorFlow 趨勢
TensorFlow自2015年釋出以來,已經成為世界上使用最廣泛的機器學習框架,滿足了廣大的使用者和用例需求。在此期間,TensorFlow隨著計算硬體、機器學習研究和商業部署的快速發展而得到進步。
為了反映這些快速變化,本次的谷歌開發者大會介紹了TensorFlow和lite的一些新特性,重點關注易用性。以下是TensorFlow的新特性:
1.Eager execution,動態圖機制,允許直接執行圖,將更方便除錯。
也將會是未來TensorFlow 2.0版本的預設開啟選項。它將使用者對程式設計模型的期望與TensorFlow更好地結合起來,並且使TensorFlow更易於學習和應用。
2.通過交換格式的標準化和API的一致性,支援更多平臺和語言,並改善這些元件之間的相容性和奇偶性。
3.將刪除已棄用的API並減少重複數量,避免給使用者造成混淆。
4.TensorFlow Lite轉換工具新增post-training模型量化(post-training quantization)。
對於相關的機器學習模型,這可以實現最多4倍的壓縮和3倍的執行速度提升。此外,模型主要由卷積層組成,執行速度提高10-50%的同時減少了記憶體和計算需求,預計大多數模型的功耗也會降低。
5.TensorFlow Lite從contribute目錄移動到主目錄,正式加入TensorFlow主工程。
TensorFlow Lite在閒魚客戶端上的應用
閒魚客戶端如何應用TensorFlow Lite
閒魚自研了一個基於TensorFlow Lite的框架,主要對三方面進行了定製:擴充性、安全性和動態化。
1.擴充性:在擴充性方面利用TensorFlow Lite的自定義OP,將我們所需的一些資料預處理等作為一個自定義OP,整合到同一個模型,這樣可以一個業務就是一個模型,能夠做到業務之間保持獨立。
2. 安全性:通過自定義的加密頭等方式,將模型進行加密,在客戶端執行該模型時,動態解析出原始模型,做到資料不落盤,最大程度保證了資料安全。
3. 動態化:通過服務端動態下發模型和OP的方式,實現了線上更新模型和演算法,極大地方便了灰度測試、演算法升級等需求。
應用一:視訊封面
在視訊封面這個案例中,利用TensorFlow Lite,可以將原先傳統演算法做的事,在端上用用AI模型來完成。傳統基於規則的做法,選取視訊封面的時候,是由演算法同學設計一個基礎演算法,同時再處理各種Case,最終選取一張封面。對於遺漏忘處理的情況,則需要發版更新演算法,維護成本太高。
而使用AI模型,則可以通過動態下發模型和OP的方式隨時灰度和升級。
應用二:視訊指紋
在這個案例中,展示了一種對 TensorFlow Lite 較“另類”的用法:將它當做一個計算框架。TensorFlow Lite 本身就是一種計算流程的框架,因此,可以利用它支援自定義OP的特性,將我們演算法的各個環節作為一個個自定義OP,然後利用模型將這些計算環節“串聯”起來,這樣,整個TensorFlow Lite就儼然成為了一個天然的端計算框架。這樣既可以對單個計算環節(自定義OP)做更新,還能隨時調整整個計算流程(即調整模型)。
應用三:智慧租房
最後這個案例是比較傳統的TensorFlow Lite的用法,使用了較流行的SSD模型,在租房環節,通過自能識別圖片中的傢俱(冰箱、電視等),以此自動地給使用者釋出的房屋打上標籤,不僅簡化了使用者操作,還豐富了商品資訊,為後臺資料搜尋推薦等提供了更有效的資訊。
TensorFlow 在閒魚工程效率上的應用
UI2Code
關於UI2Code的介紹,可以參考前面的一篇文章《Google開發者大會將揭曉哪些黑科技》。
該專案展示的是從一張圖片,直接生成UI程式碼的過程。該圖片可以是設計師的視覺產出,也可以是手機上隨便開啟一個軟體然後截圖得到。
這裡針對大家關心最多的幾個問題做一下說明:
1.“UI2Code”和微軟剛剛開源的“Sketch2Code”有什麼區別
Sketc2Code 關注的是如何快速的將設計師的靈感,變成“近似”的UI程式碼,可以理解成是給設計師用的創作工具,生成的程式碼也並不是為了直接作為線上程式碼使用。
而我們的 UI2Code 關注的是1比1畫素級別的“精確”還原,目的是為了節省開發人員重複機械的視覺還原工作,將沒有創造性的重複性工作交給機器,這樣開發人員就可以去關注更重要的邏輯性問題。它生成的UI程式碼是“接近”生產可用的,開發人員只要做一些資料繫結或者細微的調整即可。
2.“UI2Code”是如何使用TensorFlow的?
實際上該專案是一個複雜的工作流程,在流程的某些節點上,我們使用TensorFlow來完成深度學習任務。比如,由於輸入是一張純圖片,並無其它任何資訊,因此,需要用深度學習來“理解”圖片內容,包括哪些是文字,哪些是圖片等等。
3.你們這個有對外提供服務嗎?是否有開源計劃?
目前該工具還只是閒魚內部使用(實際上我們的團隊已經用它有一段時間了,上線了多個導購頁面),下半年會開始考慮開源計劃。由於該工具裡面有部分我們自有業務的東西,同時公司有嚴格的開源稽核和披露的流程,因此還需要一段時間,大家可以關注我們的公眾號:閒魚技術,到時候有了進一步的訊息會第一時間在上面公佈。
結語
本次大會閒魚作為Google的合作伙伴,與廣大開發者分享和交流了閒魚在Flutter和TensorFlow等方向上的實踐,我們希望同廣大開發者一起,在技術的道路上,不斷探索創新,用技術推動業務。當然我們也對人才求賢若渴,如果你也希望做一些很“酷”的事情,歡迎加入閒魚!
簡歷投遞:guicai.gxy@alibaba-inc.com
相關文章
- Google 開發者大會 2018 實錄 — TensorFlow篇Go
- 谷歌開發者大會2018實錄——Flutter篇谷歌Flutter
- TensorFlow 主題演講 | Google 開發者大會 2018Go
- 分散式 TensorFlow:Distribution Strategy API 丨Google 開發者大會 2018分散式APIGo
- 2018谷歌I/O開發者大會8大看點彙總 新品有哪些谷歌
- 2018 TensorFlow開發者峰會都發布了哪些殺器?
- Android 在 Google 開發者大會上釋出了哪些更新? | Google 開發者大會 2018AndroidGo
- 2018 Google 開發者大會精彩回顧Go
- TensorFlow 簡介:機器學習技術使用入門 丨 Google 開發者大會 2018機器學習Go
- 李飛飛離開後,猜畫小歌打敗眾多開發工具,成2018谷歌開發者大會主角?谷歌
- 使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018機器學習Go
- Google開發者大會:你不得不知的Tensorflow小技巧Go
- 中國 2018 Google 開發者大會!今起開放報名Go
- 前沿AI:Tensor2Tensor | Google 開發者大會 2018AIGo
- TensorFlow開發者會峰會:支援Swift,更好的支援JavaScriptSwiftJavaScript
- 全網首發 | 2018 Google 開發者大會現場紀要Go
- 【安卓綠色聯盟開發者大會】閒魚Flutter分享實錄安卓Flutter
- 2019谷歌開發者大會首日看點:Google Play的新變化谷歌Go
- 志願者招募 | 2018 掘金開發者大會 · 微信小程式專場微信小程式
- 來自前端工程師的Google開發者大會2018參會總結前端工程師Go
- TensorFlow 開發者峰會:支援 Swift,更好的支援 JavaScriptSwiftJavaScript
- TensorFlow Lite:TensorFlow在移動裝置與嵌入式裝置上的輕量級跨平臺解決方案 | Google 開發者大會 2018Go
- Google 2019開發者大會Go
- 2019 AI開發者大會AI
- Android 13 亮相谷歌I/O大會,OPPO 首批推出開發者預覽版Android谷歌
- 谷歌I/O開發者大會中國站:大模型技術進入全生態谷歌大模型
- 多元共進|2023 Google 谷歌開發者大會回看影片陸續上線Go谷歌
- 谷歌開發者大會爐邊談話,Hinton解析AI如何影響人類理解大腦谷歌AI
- 科銳受邀出席2018安全開發者峰會
- 2018 CSS 大會多圖見聞錄CSS
- 使用小程式做互動的技巧(演講內容實錄)丨掘金開發者大會
- 程式設計介面的新動態:用 TensorFlow 高層 API 來構建機器學習模型 丨 Google 開發者大會 2018程式設計API機器學習模型Go
- 網站效能調優開發工具: Lighthouse, Puppeteer 以及進階部分丨 Google 開發者大會 2018網站Go
- Google I/O 2022開發者大會Go
- 蒲公英 · JELLY技術週刊 Vol.16 谷歌首個線上 Web 開發者大會谷歌Web
- TensorFlow 2.0 程式碼實戰專欄開篇
- TensorFlow開發者證書 中文手冊
- 全球遊戲生態蝌蚪鏈TCT亮相GDC2018遊戲開發者大會遊戲開發