閑魚如何玩轉TensorFlow

在未來的某一天,當人們回顧人工智能這項技術的發展歷程時,除了會想起1956年8月1日科學家們首次聚在一起討論人工智能的達特茅斯會議、1997年5月11日「深藍」戰勝卡斯帕羅夫、2016年3月15日AlphaGo戰勝李世石等萬眾矚目的時刻外,也一定不會忘記2015年11月9日這一天。

這一天,Google 首次對外開源了它的機器學習框架 TensorFlow,儘管它在當時並沒掀起巨大波瀾,但在它發佈后至今的3年多的時光里,它已經逐漸發展成為完整的端到端的機器學習生態系統 —— 下載次數超過4100萬次、代碼更新的提交次數超過5萬次,而且這些數據還在高速增長。

它被不同體量不同領域的各種公司應用在各式各樣的場景中,幫助人們與「AI觸手可及」的狀態越來越近。

3月6日 TensorFlow 2019年開發者大會舉辦,發佈 TensorFlow 2.0 Alpha版
3月6日 TensorFlow 2019年開發者大會舉辦,發佈 TensorFlow 2.0 Alpha版

在許多我們日常生活必備的手機應用背後,其實都有基於 TensorFlow 框架開發的 AI 功能的身影。

TensorFlow降低了AI開發的門檻

「TensorFlow 最大的意義在於降低了深度學習的門檻。」閑魚技術負責人、阿里巴巴資深技術專家酒丐對PingWest品玩說。這款GMV已經超過1000億的二手閑置交易社區,正在嘗試利用 TensorFlow 來解決各種業務場景中遇到的問題。據中國互聯網經濟研究院去年九月的數據顯示,我國閑置物品交易規模已經達到5000億元,在這樣的交易規模下,對技術上的需求也是越來越複雜。

「閑魚其實是一個非常難做的業務,因為每個人拿着自己的東西來這裡出售的時候,他們拿的都是獨特的東西,不是標準品。」閑魚互動技術團隊leader上葉說。「因此,在交易過程中整個鏈路會非常複雜,技術的作用就十分重要。」

閑魚的技術團隊發現,其中很多問題其實最適合用深度學習的方法來解決。於是,閑魚互動技術團隊使用TensorFlow框架在很多業務場景做了很多有益的嘗試。「TensorFlow 的完整性、易用性等非常符合閑魚技術團隊的需求。Google 提供了很多的 API。你想在上面做什麼都能找到方法來支撐。這是很棒的一件事。因為對於程序員來說,其實我們最怕的就是你給我一個黑盒。」上葉說。

這樣一隻「小而美」的團隊,從2017年底第一次接觸 TensorFlow 到使用它開發出能夠識別出視頻中的小汽車的AI模型,只花了不到3天時間。這之後,他們開發了越來越多的功能,其中包括大量原創功能。這很好的印證了酒丐關於人工智能「門檻降低」的說法。

據酒丐介紹,過去,一個希望利用機器學習技術完成某些開發的公司,首先需要先招募一批具備深度學習知識的算法工程師。而隨着像 TensorFlow 這樣的機器學習開源框架誕生和流行,開發者不再需要花大量時間在研究底層技術上。

「TensorFlow 的底層就已經提供了很多深度學習最基礎的元素,比如卷積等。在此之上,在頂層還提供了大量封裝好的 API。對於那些『新手』工程師們來說,你不再需要太過關心底層技術,只需要使用頂層的東西就可以完成相關工作,並可以花更多時間在創新上。而當你對整個背景很了解,你又可以使用 TensorFlow 提供的這些原料來搭建自定義的功能。」閑魚工程師、UI2Code項目成員深宇對PingWest品玩介紹。

TensorFlow 的這種簡單和容易上手的特徵,是他吸引開發者之處。作為一個開源框架,TensorFlow 還提供了簡潔直觀的可視化操作界面 TensorBoard。另外,在效率上,它還支持多GPU訓練,有助於提升訓練效率。

TensorBoard 頁面
TensorBoard 頁面

TensorFlow Lite 打通AI到端上的路徑

而且,在 TensorFlow 的基礎上,Google 還推出了更加適合移動端的 TensorFlow Lite,實現了更輕的體驗。「以前這種模型還是太大了,放到端上會受不了。當時都是放到服務端,做一個API再進行調用。」酒丐說。「而 Lite 推出后就可以直接打通了到端上的這條路。」

在不斷的熟悉之後,閑魚將許多基於 TensorFlow Lite 開發的功能推出到生產環境。「TensorFlow 的低門檻和易用性以及相對可靠和穩定的優點,讓我們能夠快速在實際場景中來實現和檢測我們的一個想法,也可以快速完成試錯。」酒丐說。

比如,當你打開閑魚搜索信息時,你看到的那些描述產品的文字標籤,有許多就是靠基於 TensorFlow 的技術生成。「當想要出租房屋的用戶上傳了一張房間的照片,或者視頻,我們就可以應用 TensorFlow 提供的最基本的模型來獲得這個房間裡面的相關的信息。」上葉介紹。「我們可以獲得房間是否有電視機、沙發、電器等一些相關信息,藉此來補充我們這個商品的內容信息。」

同時,對於這些用戶上傳的視頻,閑魚也使用機器學習技術來對他們進行質量評價。「我們選取了幾個維度,會通過機器學習來自動評判他們的客觀度等。」酒丐說。

這樣的應用還是 TensorFlow 的較常見使用案例,閑魚團隊在越來越了解TensorFlow之後,開始不斷創新,「腦洞大開」設計出許多自創的新功能。

在去年的 Google 開發者大會上,上葉就分享了一項原創性十足的黑科技:UI2Code。這個項目可以讓開發者僅僅從一張圖片,就直接生成對應的UI代碼。

閑魚團隊在Google開發者大會上做展示
閑魚團隊在Google開發者大會上做展示

「圖片可以是設計師的視覺產出,也可以是手機上隨便打開一個軟件然後截圖得到。」上葉在當時的活動上分享。據他介紹,UI2Code 關注的是1比1像素級別的精確還原,目的是為了節省開發人員重複機械的視覺還原工作,將沒有創造性的重複性工作交給機器,這樣開發人員就可以去關注更重要的邏輯性問題。生成的UI代碼是「接近」生產可用的,開發人員只要做一些數據綁定或者細微的調整即可。

在開發 UI2Code 這個複雜的工作流程過程中,閑魚團隊正是使用了TensorFlow Lite 來完成其中的深度學習任務。

此外,閑魚團隊還使用TensorFlow 設計出一個通過識別視頻中的音頻,來為視頻進行分類的模型。團隊使用深度學習模型,將視頻中提取出的音頻進行向量化處理,生成圖片,之後對這些矢量圖進行分析比對,從而判斷出音頻是男聲、女聲或是其他聲音,據此完成分類。

「整個過程我們只用了3周時間。」上葉介紹說。「目前我們的識別率已經達到86%。這已經是蠻高的水平了。」

機器學習技術發展的關鍵在開源

據 Google 對 PingWest品玩介紹,在中國像閑魚這樣的 TensorFlow 開發者正在變得越來越多,到去年9月,TensorFlow在中國已有200萬的下載次數。

而像閑魚這樣的開發者們,也開始積极參加到推進整個TensorFlow 以及機器學習開源技術的生態建設中去。據閑魚介紹,他們計劃將UI2Code 開源給更多的開發者,因為深度學習最重要的還是海量的訓練數據,開源后可以吸引更多的參與者來一同推進這項技術的進步,提高它從不同圖像轉換成代碼的精確度。

「機器學習如今有些進入一個瓶頸期。」閑魚AI團隊的一名成員對PingWest品玩表示。「一方面是由於近幾年沒有新的網絡出現,大家還是依靠過去那幾種。另一方面,更主要的則是因為數據水平的問題。要推進深度學習技術的進步,就必須靠開源來吸引更多的開發者參與進來。」

所以,如果你也有自己的 TensorFlow 使用案例,非常歡迎你點擊以下鏈接與我們分享,讓世界看見你的創新: https://services.google.com/fb/forms/TFCS/?channel=partner


想在手機閱讀更多網站設計及開發資訊?下載【香港矽谷】Android應用
分享到Facebook
技術平台: Nasthon Systems