受 COVID-19 的影響,今年的 TensorFlow 開發者大會于2020年3月12日(中原標準時間)淩晨以線上直播的方式與全球開發者見面。
Google決定開源TensorFlow是為了讓每個開發人員和研究人員都能友善地使用人工智能來解決多樣化的現實問題。自開源以來,TensorFlow的下載下傳次數超過了760萬次,送出次數高達8萬次,拉取請求13萬餘次,貢獻者2400多名。
對 TensorFlow 來說,2019年是激動人心的一年。去年,Google先後推出了TensorFlow 2.2 和數個産品更新,在11個不同國家/地區舉辦全球路演,并召開了首屆TensorFlow開發者大會和TensorFlow World。

TensorFlow 2.2 釋出
2019年,Google推出了TensorFlow 2.0,這是該平台發展的一個重要的裡程碑。TensorFlow 2.0的幾大亮點包括:
- 專注于簡單性和易用性,大大簡化API
- 友善開發人員使用Keras 和 eager execution 輕松構模組化型
- 提高TensorFlow Lite 和 TensorFlow.js 部署模型的能力
随後,Google根據社群的回報:性能有待提升;從1.0移植2.0的難度過高,推出了TensorFlow 2.2。該版本強調性能,與生态系統的相容性,以及核心庫的穩定性。
TensorFlow生态系統
TensorFlow 建立了強大的生态系統,包含各類庫、擴充以及工具,能夠滿足研究人員和開發人員實作端到端機器學習模型的各種需求。
對于研究人員,TensorFlow提供了最尖端的機器學習研究模型,例如T5模型可實作語音到文本的轉換。
産品開發人員可結合使用TensorFlow與Keras等工具建構各種應用産品。TensorFlow Hub提供大量預訓練模型。Google還推出端到端的AI雲平台,從創意到釋出,隻需輕輕單擊滑鼠即可完成所有部署。
此外,開發人員可以利用TensorFlow Lite等工具輕松将機器學習模型部署到各種裝置上。
NLP
随着圖像識别領域的爆發式增長,近年來NLP領域的進展也是有目共睹,在大量的工具和模型的推動下,NLP的能力已超越了人類。
TensorFlow 2.x為生成文本引入了許多預處理層,這樣資料的預處理就可以直接在TensorFlow中進行,而無需借助Keras等其他工具了:
TensorFlow 2.x提供了新的訓練循環,允許開發者自定義每一步需要進行的操作,是以能解決以前Keras的fit函數無法解決的問題。
此外,NLP的調參過程一直是個難題,而現在我們可以使用 KerasTuner工具幫我們輕松地實作這一過程:
TensorFlow Hub
TensorFlow Hub提供了圖像、文本、視訊以及語音等全方面的預訓練模型。
- 圖像模型:圖像分類、目标檢測、圖像增強、圖像生成(如風格轉換等)
- 文本模型:問答、文本分類、文法分析等
- 視訊模型:視訊動作識别、視訊生成等
- 語音模型:音高識别等
TensorFlow 性能分析
TensorFlow性能分析提供了一系列工具集合:
- Overview Page:性能概覽頁面
- Input Pipleline Analyzer:輸入管道分析
- TensorFlow Stats:TensorFlow統計圖表
- Trace Viewer:追蹤檢視
- 4個GPU/TPU專業工具
Colab
Colab可以支援開發人員通過浏覽器編寫和執行Python代碼。
MLIR:加速TensorFlow編譯
現在機器學習模型已經深入到日常生活的方方面面,處理的任務也越來越複雜。那麼随之而來的一個難題就是,怎樣才能讓機器學習模型的建構和訓練過程變得更快?我們可以從這幾個方面入手:
- 用标準化的方式表示基本概念,如運算、類型等
- 建立一個通用的基礎設施,建構可以重用的元件
- 支援自定義和可擴充性
這個新的架構名為MLIR,全稱是Multi-Level Intermediate Representation,是面向機器學習的編譯架構,具有子產品化、可擴充、可定制的特點。
對于使用者而言,MLIR意味着可以調試模型更容易,還能獲得更高的性能;而對于硬體供應商而言,MLIR意味着功能內建和優化更容易;對于研究人員而言,MLIR意味着基礎架構的标準化。如今MLIR已經被許多大公司接受,全世界95%的資料中心的硬體也都支援MLIR,還有活躍的開源社群。
下圖是TensorFlow的架構,藍色部分為可以使用MLIR的部分。
簡單來說,MLIR是一個通用的圖表示架構,一組通用的優化和轉換過程,以及一個完整的代碼生成流水線。
TFRT:TensorFlow Runtime
TFRT是一個新的TensorFlow運作時。為什麼要建構一個新的運作時呢?主要的動機是由于現在的模型越來越複雜、越來越大,而研究也需要更有創新性的運算、核和模組化等。是以TensorFlow建構了TFRT這個新的運作時來滿足不斷增大的性能需求和對于子產品化、可擴充性的要求。
TFRT是一個統一的、可擴充的運作時,在許多專用硬體上能夠提供最好的性能。
TFRT的幾個設計上的亮點包括:
- 異步、低消耗的方式分發運算和圖:TFRT建構了一個不依賴鎖的并行圖執行器,是以同步所需的額外開銷很小。而且,eager op棧非常薄,是以每個eager API調用的額外開銷也很小。
- 可擴充性和子產品化:運算、核和裝置運作時與宿主運作時解耦合。
- eager模式和圖執行模式采用統一的建構元件,包括記憶體配置設定器、形狀函數和核等。
TFX:TensorFlow Extended
TFX是一個端到端平台,用于部署生産型機器學習流水線。
2019年的最新發展:
- 建立機器學習中繼資料的基礎
- 支援TensorFlow 2.x
- 建立公平的名額
2020年的發展計劃:
- 支援 Native Keras + TensorFlow 2.x
- TFLite inTFX
- 提高模型訓練的速度
- Google Cloud AI Platform + TFX = Google Clound AI Pipelines
TensorFlow.js
TensorFlow.js是面向Web的機器學習架構。
2019年,TF.js 1.0正式釋出:
- 新增四個模型:BodyPix、Toxicity、USE、Speech commands
- 平台:AutoML,SavedModels,以及在Node.js中直接執行SavedModel
- 被許多大型應用程式采用,如Uber、Airbnb、微信、抖音等
2020年的新增目标:
- 新增模型:Facemesh、Handtrack、Mobile BERT
- 平台增強:Web Assembly後端、React Native支援
- 應用程式:平台使用者:Glitch/Codepen
TensorFlow Lite
TensorFlow Lite是TensorFlow針對移動和嵌入式裝置的輕量級解決方案。
全球40億移動裝置的各種應用都使用了TensorFlow Lite。超過1千應用産品采用了TensorFlow Lite,其中包括Google自己的産品YouTube、Google Cloud、Google Assistant,以及Uber、Hike、Airbnb、Viber等其他公司的産品。
公平
機器學習模型的偏見問題一直是模型訓練中的一個難題。在機器學習模型的建構流程中,從問題定義、資料準備一直到模型訓練、部署,每個階段都不可避免地會引入人類的偏見。例如,如果一個模型根據人們畫出的鞋子簡筆畫來學習怎樣識别鞋子,而絕大部分人畫出的鞋子都是運動鞋,那麼訓練出的模型就很難識别高跟鞋。在實際應用中,類似的偏見可能會導緻嚴重的後果。
2017年釋出的Toxicity v1模型的目的是識别網絡語言中的有害資訊進而幫助淨化網絡内容。但是,由于訓練資料缺乏多樣性,導緻模型對于同志相關話題會給出很高的有害分數。如果利用這個模型來過濾有害資訊,那就會導緻同志人群在網絡上無法發聲,導緻嚴重的歧視問題。
解決公平性的兩個問題是:
- 如何衡量公平性?
- 應當采用怎樣的訓練資料?
Tensorflow提供了Faireness Indicators工具集,讓開發者可以更容易地對模型的公平性進行測量。
根據實驗,一個沒有公平性限制的tf.keras.Sequential模型在Smile Detection on CelebA數集上的訓練結果,會對Not Young的人群給出很高的假陽性率。
在使用了TFCO給模型加入限制後,訓練結果明顯好了很多。
TFQ:TensorFlow Quantum
不久前, TensorFlow Quantum(TFQ),一個可快速建立量子機器學習模型原型的開源庫。TFQ 通過提供與現有 TensorFlow API 相容的量子計算基本要素以及高性能量子電路模拟器,将量子計算開源架構 Cirq 與 TensorFlow 內建在一起,為傳統的判别和生成量子模型的設計和實作提供了高層的抽象。
TensorFlow社群
使用者群
TensorFlow 在全球共有73個使用者群,最初的兩個始自北美,最大的使用者群在南韓有4.6萬名成員,中國的使用者群遍及16個城市。
教育課程與證書
TensorFlow不僅與Coursera等網站合作推出了一系列線上教育課程,還推出了TF開發證書,涉及主題包括:機器學習程式設計的基本概念、文本分類、計算機視覺以及序列和預測等。
【end】