【重磅】谷歌正式發(fā)布TensorFlowLite桩警,半監(jiān)督跨平臺(tái)快速訓(xùn)練ML模型

姓名:周雪寧

學(xué)號(hào):1702110196

轉(zhuǎn)載:https://mp.weixin.qq.com/s/65HiEwCyzeA_d9flPBcpLQ

【嵌牛導(dǎo)讀】:

谷歌宣布推出?TensorFlowLite,這是?TensorFlow?的針對(duì)移動(dòng)設(shè)備和嵌入式設(shè)備的輕量級(jí)解決方案酬荞。這個(gè)框架針對(duì)機(jī)器學(xué)習(xí)模型的低延遲推理進(jìn)行了優(yōu)化那婉,重點(diǎn)是小內(nèi)存占用和快速性能塑荒。利用TensorFlow Lite,即使在半監(jiān)督的設(shè)置下玩裙,也可實(shí)現(xiàn)在手機(jī)端跨平臺(tái)訓(xùn)練ML模型兼贸。

【嵌牛鼻子】:Tensorflow,深度學(xué)習(xí)

【嵌牛提問(wèn)】:TensorFlowLite是否可以真的可以嵌入手機(jī)端吃溅,內(nèi)存占用如何溶诞?

【嵌牛正文】:

今年早些時(shí)候,谷歌推出了 Android Wear 2.0罕偎,這是“設(shè)備上”(on-device)機(jī)器學(xué)習(xí)技術(shù)用于智能通訊的第一款產(chǎn)品很澄。這使得基于云的技術(shù),例如智能回復(fù)(Smart Reply)颜及,以前在 Gmail甩苛、Inbox 和 Allo 中提供,現(xiàn)在在任何應(yīng)用中都可以直接使用俏站,包括第三方的消息應(yīng)用讯蒲,而無(wú)需連接到云端。也就是說(shuō)肄扎,你可以直接在智能手表上對(duì)收到的聊天信息作出回復(fù)墨林。

昨天,谷歌宣布推出 TensorFlow Lite犯祠,這是 TensorFlow 的針對(duì)移動(dòng)設(shè)備和嵌入式設(shè)備的輕量級(jí)解決方案旭等。這個(gè)框架針對(duì)機(jī)器學(xué)習(xí)模型的低延遲推理進(jìn)行了優(yōu)化,重點(diǎn)是小內(nèi)存占用和快速性能衡载。作為庫(kù)的一部分搔耕,谷歌還發(fā)布了一個(gè)設(shè)備上會(huì)話模型(on-device conversational model)和一個(gè)用于 demo 的 app,它提供了一個(gè)由 TensorFlow Lite 驅(qū)動(dòng)的自然語(yǔ)言應(yīng)用程序的示例痰娱,以便讓開發(fā)人員和研究人員更容易地構(gòu)建基于設(shè)備上推理(on-device inference)的新機(jī)器智能特征弃榨。這個(gè)模型能夠在輸入會(huì)話聊天信息時(shí)生成回復(fù)建議菩收,通過(guò)有效的推理,可以很容易地插入到聊天應(yīng)用程序中鲸睛,從而為設(shè)備上會(huì)話智能提供動(dòng)力娜饵。

谷歌發(fā)布的設(shè)備上會(huì)話模型使用了一種新的ML架構(gòu),用于訓(xùn)練緊湊的神經(jīng)網(wǎng)絡(luò)(以及其他機(jī)器學(xué)習(xí)模型)官辈,它基于一個(gè)聯(lián)合優(yōu)化的框架箱舞,最初是在

ProjectionNet?的論文中提出的(參考:ProjectionNet: Learning Efficient On-Device Deep Networks Using Neural Projections)。這個(gè)架構(gòu)可以在具有有限計(jì)算能力和內(nèi)存的移動(dòng)設(shè)備上高效地運(yùn)行钧萍,通過(guò)使用有效的“投影”(projection)操作褐缠,將任何輸入轉(zhuǎn)換為緊湊的位向量(bit vector)表示——類似的輸入被投影到鄰近的向量上,這些向量或密集风瘦,或稀疏队魏,取決于投影的類型。例如万搔,“嘿胡桨,你好嗎?”(hey, how's it going?)”和“老兄,最近怎么樣?”(How's it going buddy瞬雹?)昧谊,這兩個(gè)消息可能被投影到相同的向量表示。

在這個(gè)想法下酗捌,會(huì)話模型在低計(jì)算力和內(nèi)存占用的情況下將這些操作高效地結(jié)合起來(lái)呢诬。谷歌使用一個(gè)ML框架對(duì)這個(gè)設(shè)備上的模型進(jìn)行了端到端的訓(xùn)練,這個(gè)框架聯(lián)合訓(xùn)練兩種類型的模型——一個(gè)緊湊的 projection 模型(如前文所述)和一個(gè) trainer 模型胖缤。這兩個(gè)模型采用聯(lián)合的方式進(jìn)行訓(xùn)練尚镰, projection 模型從 trainer 模型中學(xué)習(xí)—— trainer 具有專家的特征,并且使用更大哪廓、更復(fù)雜的ML架構(gòu)進(jìn)行建模狗唉,而projection模型就像一個(gè)從專家那里學(xué)習(xí)的學(xué)生。在訓(xùn)練過(guò)程中涡真,還可以利用量化(quantization)?或“蒸餾”(distillation)等其他技術(shù)分俯,從而進(jìn)一步壓縮或選擇性地優(yōu)化目標(biāo)函數(shù)的某些部分。訓(xùn)練完畢后哆料,較小的 projection 模型就可以直接用于設(shè)備上的推理缸剪。

對(duì)于推理,訓(xùn)練的 projection 模型被編譯成一組 TensorFlow Lite 操作东亦,這些操作經(jīng)過(guò)優(yōu)化杏节,可以在移動(dòng)平臺(tái)上快速執(zhí)行,并直接在設(shè)備上執(zhí)行。下圖是用于設(shè)備上會(huì)話模型的 TensorFlow Lite 推理圖拢锹。

?????????????????????????????????????????? 設(shè)備上會(huì)話模型的 TensorFlow Lite 執(zhí)行

今天發(fā)布的開源對(duì)話模型(連同代碼)都是使用上面描述的聯(lián)合ML架構(gòu)來(lái)進(jìn)行端到端訓(xùn)練的。今天的發(fā)布還包括一個(gè)demo應(yīng)用萄喳,你可以很容易地下載并在你的移動(dòng)設(shè)備上試用一鍵智能回復(fù)卒稳。這個(gè)架構(gòu)支持基于應(yīng)用程序需求配置模型大小和預(yù)測(cè)質(zhì)量。在GitHub庫(kù)上我們提供了一個(gè)示例消息列表他巨。系統(tǒng)還可以從聊天對(duì)話中觀察到的流行回復(fù)意圖中學(xué)習(xí)并編譯的固定集的回復(fù)充坑。其底層的模式與谷歌在其應(yīng)用中使用的智能回復(fù)響應(yīng)不同。

模型下載:download.tensorflow.org/models/tflite/smartreply_1.0_2017_11_01.zip

code:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/lite/models/smartreply

對(duì)話模型之外

有趣的是染突,上面描述的ML架構(gòu)允許靈活選擇底層模型捻爷。我們還設(shè)計(jì)了與不同機(jī)器學(xué)習(xí)方法兼容的架構(gòu)——例如,當(dāng)使用TensorFlow深度學(xué)習(xí)時(shí)份企,我們學(xué)習(xí)了一個(gè)用于底層模型的輕量級(jí)的神經(jīng)網(wǎng)絡(luò)(ProjectionNet)也榄,而不同的架構(gòu)(ProjectionGraph)則使用圖形框架代替神經(jīng)網(wǎng)絡(luò)來(lái)表示模型。

這個(gè)聯(lián)合的框架還可以用來(lái)為其他任務(wù)使用不同的ML建模架構(gòu)來(lái)訓(xùn)練輕量級(jí)的設(shè)備上模型司志。舉個(gè)例子甜紫,我們推導(dǎo)出了一個(gè)ProjectionNet 架構(gòu),該架構(gòu)使用一個(gè)復(fù)雜的前饋或循環(huán)的架構(gòu)(如LSTM)骂远,并結(jié)合一個(gè)由動(dòng)態(tài)投影操作和幾個(gè)窄的完全連接層組成的簡(jiǎn)單projection 架構(gòu)囚霸。整個(gè)架構(gòu)都是在 TensorFlow 中使用反向傳播進(jìn)行端到端的訓(xùn)練。訓(xùn)練完成后激才,就可以直接使用緊湊的ProjectionNet 進(jìn)行推理拓型。使用這種方法,我們已經(jīng)成功地訓(xùn)練了小型的 ProjectionNet 模型瘸恼,它可以顯著地減小模型大辛哟臁(最大能夠減小幾個(gè)數(shù)量級(jí)),并且在多個(gè)視覺和語(yǔ)言的分類任務(wù)上的準(zhǔn)確性方面表現(xiàn)出色钞脂。類似地揣云,我們使用圖形學(xué)習(xí)框架訓(xùn)練其他的輕量級(jí)模型,即使是在半監(jiān)督的設(shè)置下也如此冰啃。

用于訓(xùn)練設(shè)備上模型的ML架構(gòu):使用深度學(xué)習(xí)訓(xùn)練的ProjectionNet(左)和使用圖形學(xué)習(xí)訓(xùn)練的ProjectionGraph(右)我們將繼續(xù)改進(jìn)并發(fā)布最新的TensorFlow Lite模型邓夕。我們認(rèn)為,使用這些ML架構(gòu)學(xué)習(xí)的現(xiàn)有模型(以及將來(lái)發(fā)布的模型)可以重復(fù)用于許多自然語(yǔ)言處理和計(jì)算機(jī)視覺的應(yīng)用程序阎毅,或者插入到現(xiàn)有的應(yīng)用程序中焚刚,以實(shí)現(xiàn)機(jī)器智能。我們希望機(jī)器學(xué)習(xí)和自然語(yǔ)言處理社區(qū)能夠在這些基礎(chǔ)上更進(jìn)一步扇调,解決新的問(wèn)題并提出我們尚未想到的用例矿咕。

TensorFlow Lite 特征、架構(gòu)、模型

今天碳柱,我們很高興地宣布TensorFlowLite的開發(fā)人員預(yù)覽版捡絮,這是 TensorFlow 針對(duì)移動(dòng)和嵌入式設(shè)備的輕量版解決方案!

TensorFlow一直運(yùn)行在許多平臺(tái)上莲镣,從服務(wù)器機(jī)架到小型物聯(lián)網(wǎng)設(shè)備福稳。但隨著過(guò)去幾年機(jī)器學(xué)習(xí)模型的采用呈指數(shù)級(jí)增長(zhǎng),因此需要將其部署在移動(dòng)和嵌入式設(shè)備上瑞侮。

TensorFlow Lite能夠?qū)υO(shè)備上的機(jī)器學(xué)習(xí)模型進(jìn)行低延遲推斷的圆。

TensorFlow Lite具有以下特征:

輕量使設(shè)備上機(jī)器學(xué)習(xí)模型推斷具有小型二進(jìn)制規(guī)模和快速初始化/啟動(dòng)。

跨平臺(tái):可以在多個(gè)平臺(tái)運(yùn)行半火,包括安卓和iOS越妈。

快速:針對(duì)移動(dòng)設(shè)備進(jìn)行了快速優(yōu)化,包括模型加載時(shí)間顯著加快钮糖,并支持硬件加速等梅掠。

越來(lái)越多的移動(dòng)設(shè)備采用專用的定制硬件來(lái)更有效地處理機(jī)器學(xué)習(xí)工作負(fù)載。TensorFlow Lite支持安卓神經(jīng)網(wǎng)絡(luò)API藐鹤,以充分利用這些新的加速器瓤檐。

當(dāng)加速器硬件不可用時(shí),TensorFlow Lite會(huì)回退到優(yōu)化的CPU執(zhí)行狀態(tài)娱节,從而確保模型仍然可以在大量設(shè)備上快速運(yùn)行挠蛉。

架構(gòu):下圖展示了TensorFlow Lite的架構(gòu)設(shè)計(jì)

組成部分如下

TensorFlow模型:保存在磁盤上經(jīng)過(guò)訓(xùn)練的TensorFlow模型。

TensorFlow Lite轉(zhuǎn)換器:是一個(gè)將模型轉(zhuǎn)換為TensorFlow Lite文件格式的程序肄满。

TensorFlow Lite模型文件:基于FlatBuffers的模型文件格式谴古,已經(jīng)過(guò)速度和大小優(yōu)化。

TensorFlow Lite模型文件被應(yīng)用在移動(dòng)應(yīng)用程序中:

Java API:在安卓平臺(tái)上圍繞著C++ API的包裹器稠歉。

C++ API:加載TensorFlow Lite模型文件并調(diào)用Interpreter掰担。安卓和iOS上有同樣的庫(kù)。

Interpreter:使用一組operator來(lái)執(zhí)行模型怒炸。Interprete支持選擇性操作員加載带饱。沒有operator的情況下,只有70KB阅羹,加載了所有operator勺疼,有300KB。這比TensorFlow Mobile所要求的1.5M的明顯降低捏鱼。

在選定的安卓設(shè)備上执庐,Interpreter將使用安卓神經(jīng)網(wǎng)絡(luò)API實(shí)現(xiàn)硬件加速。若無(wú)可用导梆,則默認(rèn)為CPU執(zhí)行轨淌。

開發(fā)人員也可以使用C++ API實(shí)現(xiàn)定制內(nèi)核迂烁。

模型

TensorFlow Lite已支持許多經(jīng)過(guò)訓(xùn)練和優(yōu)化的模型:

MobileNet:一類視覺模型,能夠識(shí)別1000個(gè)不同的對(duì)象類別递鹉,專門為移動(dòng)和嵌入式設(shè)備上的高效執(zhí)行而設(shè)計(jì)盟步。

Inception v3:圖像識(shí)別模型,功能與MobileNet類似躏结,提供更高的準(zhǔn)確性址芯,但更大。

Smart Reply:一種設(shè)備上的會(huì)話模型窜觉,可以對(duì)流入的對(duì)話聊天消息進(jìn)行一鍵式回復(fù)。第一方和第三方消息傳遞應(yīng)用在Android Wear上使用此功能北专。

Inception v3和MobileNets已經(jīng)在ImageNet數(shù)據(jù)集上訓(xùn)練禀挫。你可以通過(guò)遷移學(xué)習(xí),在自己的圖像數(shù)據(jù)集上重新訓(xùn)練拓颓。

模型下載:download.tensorflow.org/models/tflite/smartreply_1.0_2017_11_01.zip

code:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/lite/models/smartreply

參考:https://research.googleblog.com/2017/11/on-device-conversational-modeling-with.html

https://developers.googleblog.com/2017/11/announcing-tensorflow-lite.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末语婴,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子驶睦,更是在濱河造成了極大的恐慌砰左,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件场航,死亡現(xiàn)場(chǎng)離奇詭異缠导,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)溉痢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門僻造,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人孩饼,你說(shuō)我怎么就攤上這事髓削。” “怎么了镀娶?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵立膛,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我梯码,道長(zhǎng)宝泵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任忍些,我火速辦了婚禮鲁猩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘罢坝。我一直安慰自己廓握,他們只是感情好搅窿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著隙券,像睡著了一般男应。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上娱仔,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天沐飘,我揣著相機(jī)與錄音,去河邊找鬼牲迫。 笑死耐朴,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的盹憎。 我是一名探鬼主播筛峭,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼陪每!你這毒婦竟也來(lái)了影晓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤檩禾,失蹤者是張志新(化名)和其女友劉穎挂签,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盼产,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡饵婆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了戏售。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片啦辐。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蜈项,靈堂內(nèi)的尸體忽然破棺而出芹关,到底是詐尸還是另有隱情,我是刑警寧澤紧卒,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布侥衬,位于F島的核電站,受9級(jí)特大地震影響跑芳,放射性物質(zhì)發(fā)生泄漏轴总。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一博个、第九天 我趴在偏房一處隱蔽的房頂上張望怀樟。 院中可真熱鬧,春花似錦盆佣、人聲如沸往堡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)虑灰。三九已至吨瞎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間穆咐,已是汗流浹背颤诀。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留对湃,地道東北人崖叫。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像拍柒,于是被迫代替她去往敵國(guó)和親归露。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容