0
雷鋒網(wǎng) AI 科技評論按:為了順應“在本地設備上運行機器學習模型”的潮流,以及具體點來說,給自家Pixel 2以及未來的手機上的AI加速芯片(the Pixel Visual Core)提供運行庫,谷歌正式發(fā)布了TensorFlow Lite,作為TensorFlow Mobile API的升級版進入公眾視野,同時開源+長期更新。
TensorFlow桌面和TensorFlow Lite的定位固然有所不同,前者可以兼顧訓練和推理,后者則是專門考慮如何在移動設備上高效運行;這導致它們的技術(shù)特點有所區(qū)別,TensorFlow桌面的模型也需要經(jīng)過轉(zhuǎn)換后才能在TensorFlow Lite上運行。
另一方面,在發(fā)布TensorFlow Lite軟件的同時,谷歌研究院也另外發(fā)出一篇博文介紹了一種新的模型壓縮方法,不僅有優(yōu)秀的壓縮效果,壓縮后的模型也可以直接在TensorFlow Lite上運行,可謂是一個重大好消息。雷鋒網(wǎng) AI 科技評論把這篇博文翻譯如下。
2017年早些時候,谷歌發(fā)布了Android Wear 2.0,首次支持在移動設備上運行機器學習模型,用來提供智能化的消息處理。之前在谷歌的Gmail、Inbox、Allo里提供的基于云服務的“智能回復”功能也就首次可以在任何程序中工作,包括第三方的即時消息軟件。有了本地的機器學習計算能力后就再也不需要連接到云服務上,在路上就可以直接從智能手表回復聊天消息。
美國時間11月14日,谷歌正式發(fā)布了TensorFlow Lite,這是TensorFlow用于移動設備和嵌入式設備的輕量化版本。這個開發(fā)框架專門為機器學習模型的低延遲推理做了優(yōu)化,專注于更少的內(nèi)存占用以及更快的運行速度。作為軟件資源庫的一部分,谷歌也發(fā)布了一個可以運行在設備上的聊天模型以及一個demo app,它們是谷歌編寫的運行在TensorFlow Lite上的自然語言應用的樣例,供開發(fā)人員和研究者們研究學習、開發(fā)更多新的本地運行的機器智能功能。輸入聊天對話消息以后,這個模型就可以生成一條建議的回復;它的推理過程非常高效,可以輕松嵌入到各種聊天軟件中,利用設備自身的計算能力提供智能的聊天功能。
谷歌發(fā)布的這個本地運行的聊天模型運用了一種訓練緊湊神經(jīng)網(wǎng)絡(以及其它機器學習模型)的新機器學習架構(gòu),它基于一個聯(lián)合優(yōu)化范式,最初發(fā)表在論文 ProjectionNet: Learning Efficient On-Device Deep Networks Using Neural Projections 中。這種架構(gòu)可以高效地運行在計算能力和內(nèi)存都較為有限的移動設備上,通過高效的“投影”操作,它可以把任意輸入轉(zhuǎn)換成一個緊湊的位向量表征,這個過程中類似的輸入會被投影到相鄰的向量中;根據(jù)投影類型的不同這些向量可以是密集的也可以是稀疏的。比如,“嘿如何了?”和“兄弟你如何了?”兩條消息就有可能被投影到相同的向量表征上去。
通過這樣的想法,谷歌的聊天模型就以很低的計算開銷和內(nèi)存消耗加入了這些高效的操作。這個在設備本地運行的模型是谷歌用端到端的方法訓練的,訓練過程中使用了聯(lián)合訓練兩個不同模型的機器學習框架;這兩個訓練的模型,一個是緊湊的“投影”模型(如上文所述),同時還結(jié)合了一個“訓練器”模型。兩個模型是聯(lián)合訓練的,投影模型從訓練器模型中學習;訓練器模型有著專家的特質(zhì),它是用更大、更復雜的機器學習架構(gòu)創(chuàng)建的,而投影模型就像一個跟在后面學習的學生。在訓練過程中,也可以疊加其它的量化、蒸餾之類的技術(shù),達到更緊湊的壓縮效果,或者也可以選擇性地優(yōu)化目標函數(shù)的某些部分。一旦訓練結(jié)束,這個更小的投影模型就可以直接在設備上做推理任務。
在推理過程中,訓練后的投影模型會被編譯成一系列 TensorFlow Lite 的操作,而這些操作都是為移動平臺的快速執(zhí)行優(yōu)化過的,可以直接在設備上執(zhí)行。這個本地運行的聊天模型的TensorFlow Lite推理圖如下所示。
這個用上述的聯(lián)合訓練方法端到端訓練的聊天模型是開源的,今天(美國時間11月14日)就會和代碼一起發(fā)布出來。同時還會發(fā)布一個demo app,這樣研究人員和開發(fā)人員就可以輕松地下載它們、在自己的移動設備上試試看它提供的一鍵智能回復功能。這個架構(gòu)能根據(jù)應用需求提供不同模型大小、不同預測質(zhì)量的配置功能,操作也很方便。除了一些已知的模型可以給出很好回復的消息之外,系統(tǒng)還可以把一組固定的聊天對話中觀察到、然后學習編譯到模型中的流行的回復語句作為預測失敗后的備選語句。它背后的模型和谷歌在自家應用中提供“智能回復”功能的模型有一些區(qū)別。
有趣的是,上面描述的機器學習架構(gòu)保證了背后隱含的模型具有各種靈活的選擇。谷歌的研究人員們把這個架構(gòu)設計得可以與不同的機器學習方法兼容,比如,與TensorFlow深度學習共同使用時,就可以為隱含模型學到一個輕量化的神經(jīng)網(wǎng)絡(“投影網(wǎng)絡”),并用一個圖框架(“投影圖”)來表征這個模型,不再是神經(jīng)網(wǎng)絡的形式。
聯(lián)合訓練框架也可以用來給使用其它機器學習建模架構(gòu)的任務訓練輕量級的本地運行模型。比如,谷歌把一個復雜的前向傳輸或者循環(huán)網(wǎng)絡架構(gòu)(比如LSTM)作為訓練器模型,訓練得到的投影架構(gòu)就可以簡單地由動態(tài)投影操作和寥寥幾層全連接層組成。整個架構(gòu)是以端到端的方式在TensorFlow中通過反向傳播訓練的。訓練結(jié)束后,緊湊的投影網(wǎng)絡就可以直接用來做推理。通過這樣的方法,谷歌的研究人員們成功訓練了不少小巧的投影模型,它們不僅在模型大小方面有大幅度下降(最高可以縮小幾個數(shù)量級),而且在多種視覺和語言分類任務中可以保證同樣的準確率但性能高得多。類似地,他們也用圖學習范式訓練了其它的輕量級模型,即便是在半監(jiān)督學習的設定中。
谷歌表示,他們在開源TensorFlow Lite后會持續(xù)改進以及發(fā)布新版本。通過這些機器學習架構(gòu)學到的模型,不管是已經(jīng)發(fā)布的還是將在未來發(fā)布的,都不僅可以應用在多種自然語言和計算機視覺應用中,也可以嵌入已有的應用中提供機器智能的功能。同時谷歌當然也希望及機器學習和自然語言處理大家庭中的其它研究者和開發(fā)者也可以在這些基礎上共同應對谷歌尚未發(fā)現(xiàn)或者尚未解決的新問題。
via Google Research Blog,雷鋒網(wǎng) AI 科技評論編譯。
相關(guān)文章:
Google正式發(fā)布TensorFlow Lite預覽版,針對移動/嵌入設備的輕量級解決方案
TensorFlow全新的數(shù)據(jù)讀取方式:Dataset API入門教程
谷歌發(fā)布TensorFlow 1.4版本:支持分布式訓練,迎來三大新變化
緊跟未來深度學習框架需求,TensorFlow推出Eager Execution
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。