丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能開發(fā)者 正文
發(fā)私信給skura
發(fā)送

0

TFX 最新博文:如何使用 TensorFlow 生態(tài)系統(tǒng)實(shí)現(xiàn)快速高效的 BERT 部署?

本文作者: skura 2020-03-14 07:45
導(dǎo)語:為什么TFX是BERT部署的完美搭檔?

Transformer 模型,特別是 BERT 模型,徹底改變了 NLP,并在諸如情感分析、實(shí)體抽取或問答等任務(wù)上開辟了新的天地。BERT 模型允許數(shù)據(jù)科學(xué)家站在巨人的肩膀上。當(dāng)企業(yè)用這些模型在大型語料庫(kù)中進(jìn)預(yù)訓(xùn)練時(shí),數(shù)據(jù)科學(xué)家可以將遷移學(xué)習(xí)應(yīng)用到這些多用途的 transformer 模型中,并針對(duì)其領(lǐng)域特定的問題取得突破性的結(jié)果。

在 SAP 的 Concur 實(shí)驗(yàn)室,研究人員希望使用 BERT 解決差旅費(fèi)領(lǐng)域的新問題。他們想簡(jiǎn)化 BERT 的推論。但不幸的是,他們一直沒找到完美的解決方案。

通過與 TensorFlow 團(tuán)隊(duì)合作,并使用他們的最新成果,Concur 實(shí)驗(yàn)室最終實(shí)現(xiàn)了一致、簡(jiǎn)單、快速的 BERT 模型推斷,可以在幾毫秒內(nèi)實(shí)現(xiàn)從原始文本的分類預(yù)測(cè)。

那么,各種 TensorFlow 庫(kù)和組件如何幫助研究人員達(dá)到這個(gè)里程碑?作為 SAP Concur 實(shí)驗(yàn)室的高級(jí)機(jī)器學(xué)習(xí)工程師,Hannes Hapke 寫了一篇博文分享了他們的做法。TFX 團(tuán)隊(duì)的研究人員也參與了這篇博文的編輯。

這篇博客文章將向你概述如何使用 TensorFlow 生態(tài)系統(tǒng)來實(shí)現(xiàn)可伸縮、快速、高效的 BERT 部署。全文編譯如下。

本文討論的方法將允許開發(fā)人員使用 TensorFlow Extended(TFX)v0.21 或更高版本來訓(xùn)練 TensorFlow 模型。但是,對(duì) tf.text 操作的支持尚未包含在 TensorFlow Service(v2.1)的當(dāng)前版本中,而是包含在nightly docker版本中,并將包含在 v2.2 版本中。

如果你想查看完整的示例,請(qǐng)查看 Colab notebook。它展示了整個(gè) TensorFlow 擴(kuò)展(TFX)管道以生成可部署的 BERT 模型,并將預(yù)處理步驟作為模型圖的一部分。

BERT 部署的現(xiàn)狀

transformer 模型的最新進(jìn)展令人吃驚。但不幸的是,將這些模型用在生產(chǎn)中卻并不簡(jiǎn)單或者完美。理想情況下,我們希望將原始文本發(fā)送到服務(wù)器,但是 BERT 模型需要對(duì)輸入文本進(jìn)行預(yù)處理,然后才能從實(shí)際模型中獲得預(yù)測(cè)。

有一些解決方案通過在客戶端對(duì)文本進(jìn)行預(yù)處理來解決這個(gè)問題,還有的解決方案是,在服務(wù)器端實(shí)現(xiàn)了一個(gè)中間步驟來處理輸入數(shù)據(jù)。這兩個(gè)方法都不太正確,因?yàn)樗鼈冃枰~外的部署協(xié)調(diào),降低了推理的效率。

TFX 最新博文:如何使用 TensorFlow 生態(tài)系統(tǒng)實(shí)現(xiàn)快速高效的 BERT 部署?

圖 1:當(dāng)前的 BERT 部署

什么是最佳部署?

在部署模型時(shí),方法越簡(jiǎn)單越好。我們希望部署 transformer 模型,并將預(yù)處理作為模型圖的一部分。由于預(yù)處理被集成到模型圖中,我們可以簡(jiǎn)單地將單個(gè)模型部署到模型服務(wù)器,刪除其他部署依賴項(xiàng),并充分利用模型服務(wù)器的優(yōu)點(diǎn)。例如,我們可以批處理預(yù)測(cè)請(qǐng)求,以優(yōu)化推理硬件的使用。

利用 TensorFlow 生態(tài)系統(tǒng)部署 BERT

TensorFlow 對(duì)我們來說是一個(gè)非常高效的框架,因?yàn)樗粌H是一個(gè)機(jī)器學(xué)習(xí)框架,而且還提供了一個(gè)具有廣泛的支持包和工具的生態(tài)系統(tǒng)。TensorFlow Serving 對(duì)我們來說非常有用。它提供了簡(jiǎn)單、一致、可伸縮的模型部署。

我們密切關(guān)注的另一個(gè)系統(tǒng)項(xiàng)目是 TensorFlow Transform。它為我們提供了一個(gè)將模型預(yù)處理步驟構(gòu)建為圖的機(jī)會(huì),然后,我們可以將這些圖與實(shí)際的深度學(xué)習(xí)模型一起導(dǎo)出。TensorFlow Transform 要求所有預(yù)處理步驟都表示為 TensorFlow 操作。正因?yàn)槿绱?,TensorFlow 文本的最新發(fā)展對(duì)我們來說也非常有幫助。RaggedTensors 的實(shí)現(xiàn)不僅開啟了新的應(yīng)用,而且,其庫(kù)還提供了實(shí)現(xiàn)自然語言預(yù)處理步驟所需的功能。

在 TensorFlowWorld 2019 上展示了 TensorFlow Text 的一個(gè)新功能,那就是完全實(shí)現(xiàn)一個(gè) BERT 標(biāo)記器。因此,我們可以用幾行 TensorFlow 代碼來表示預(yù)處理步驟。我們還通過使用另一個(gè) TensorFlow 工具:TensorFlow Extended(TFX),實(shí)現(xiàn)了模型管道和部署一致的目標(biāo)。TFX 允許我們以可重復(fù)的方式表達(dá)整個(gè) ML 管道,因此有助于我們部署一致的機(jī)器學(xué)習(xí)模型。

TFX 最新博文:如何使用 TensorFlow 生態(tài)系統(tǒng)實(shí)現(xiàn)快速高效的 BERT 部署?

圖 2:附 tf.Text 的 TFX 管道

用 TensorFlow ops 編寫預(yù)處理步驟

理想的模型部署接受原始文本作為模型的輸入,并提供模型預(yù)測(cè)作為結(jié)果。簡(jiǎn)化 BERT 部署的關(guān)鍵是將預(yù)處理步驟表示為 TensorFlow ops。BERT 模型要求將原始輸入文本標(biāo)記為標(biāo)記 id、輸入掩碼的伴隨數(shù)據(jù)結(jié)構(gòu)和生成的輸入類型 id。借助 TensorFlow Text,我們現(xiàn)在可以用更少的代碼來實(shí)現(xiàn)這一點(diǎn)。在接下來的文章中,我們將討論從原始文本到特定于 BERT 的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換的細(xì)節(jié),包括添加特定于 BERT 的標(biāo)記。

vocab_file_path = load_bert_layer().resolved_object.vocab_file.asset_path
bert_tokenizer = text.BertTokenizer(vocab_lookup_table=vocab_file_path,
                                   token_out_type=tf.int64,
                                   lower_case=do_lower_case)

...

input_word_ids = tokenize_text(text)

input_mask = tf.cast(input_word_ids > 0, tf.int64)

input_mask = tf.reshape(input_mask, [-1, MAX_SEQ_LEN])

zeros_dims = tf.stack(tf.shape(input_mask))

input_type_ids = tf.fill(zeros_dims, 0)

input_type_ids = tf.cast(input_type_ids, tf.int64)

TFX 最新博文:如何使用 TensorFlow 生態(tài)系統(tǒng)實(shí)現(xiàn)快速高效的 BERT 部署?

圖 3:BERT 標(biāo)記器

利用 TensorFlow Transform 和上述代碼,可以將預(yù)處理圖與訓(xùn)練好的 TensorFlow 模型一起導(dǎo)出。隨著 TensorFlow Serving 的最新更新,我們部署的 BERT 模型現(xiàn)在可以接受原始文本作為輸入。在這里,沒有其他部署依賴項(xiàng)!

使用 TensorFlow Transform 為我們提供了一些實(shí)際的好處。一方面,我們可以在組織上劃分?jǐn)?shù)據(jù)預(yù)處理和模型架構(gòu)工作之間的職責(zé)。另一方面,我們可以方便地調(diào)試、測(cè)試和生成預(yù)處理輸出的統(tǒng)計(jì)信息。transform 組件輸出轉(zhuǎn)換后的訓(xùn)練集,作為 TFRecords,這些訓(xùn)練集易于檢查。

在 Transform 輸出的「調(diào)試」過程中,我們發(fā)現(xiàn)了一些小錯(cuò)誤,這些錯(cuò)誤不會(huì)導(dǎo)致模型的訓(xùn)練失敗,但可能會(huì)影響其性能。例如,[SEP] 標(biāo)記中的偏移量。從技術(shù)上來講,這里不需要 TensorFlow Transform。由于每個(gè)示例的預(yù)處理獨(dú)立于整個(gè)語料庫(kù)進(jìn)行,我們可以很容易地將其直接構(gòu)建到模型圖中。但是,我們發(fā)現(xiàn)用這種方法構(gòu)建和調(diào)試管道會(huì)更容易。

TFX 最新博文:如何使用 TensorFlow 生態(tài)系統(tǒng)實(shí)現(xiàn)快速高效的 BERT 部署?

圖 4:BERT 層

理想的部署?

簡(jiǎn)化開發(fā)

通過使用各種 TensorFlow 工具,我們能夠以簡(jiǎn)單而簡(jiǎn)潔的方式部署 BERT 模型。將預(yù)處理步驟集成到模型圖中可以減少訓(xùn)練數(shù)據(jù)和推理數(shù)據(jù)之間的傾斜風(fēng)險(xiǎn)。部署的模型不需要額外的客戶機(jī)或服務(wù)器依賴項(xiàng),這進(jìn)一步降低了模型錯(cuò)誤的風(fēng)險(xiǎn)。我們可以將我們的 BERT 模型與 TensorFlow Serving 一致地部署,同時(shí)還可以利用模型優(yōu)化——如批處理推斷。

推理性能

我們最初的性能測(cè)試看起來很有希望。在我們的演示 BERT 模型圖上的推論,包含預(yù)處理步驟和每個(gè)預(yù)測(cè)模型。這些模型平均約 15.5 ms,它們是在單個(gè) V100 GPU、最多 128 個(gè)標(biāo)記、gRPC 請(qǐng)求上測(cè)量的,由 GPU 的非優(yōu)化 TensorFlow 服務(wù)構(gòu)建的無基礎(chǔ) BERT 模型。這和以前在客戶端使用 BERT 標(biāo)記化的部署以及使用 TensorFlow Serving 托管的分類模型的平均推斷時(shí)間大致相同。當(dāng)然,根據(jù)你的機(jī)器及其型號(hào)的不同,你可能會(huì)看到不同的結(jié)果。

了解更多信息

如果你想深入了解代碼,請(qǐng)查看 Colab notebook,其中有一個(gè)使用預(yù)先訓(xùn)練的 BERT 模型實(shí)現(xiàn)情感分類模型的示例。如果你想試用我們的演示部署,請(qǐng)查看 Concur 實(shí)驗(yàn)室的演示頁面,上面展示了我們的情感分類項(xiàng)目。

如果你對(duì) TensorFlow Extended(TFX)和 TensorFlow Transform 的內(nèi)部工作感興趣,請(qǐng)進(jìn)入 TFX 用戶指南并查看即將出版的 O'Reilly 出版物「Building Machine Learning Pipelines, Automating Model Life Cycles With TensorFlow」。

要了解有關(guān) TFX 的更多信息,請(qǐng)?jiān)L問 TFX 網(wǎng)站,加入 TFX 討論組,瀏覽 TFX 博客中的其他文章,或者在 YouTube 上觀看我們的 TFX 播放列表,并訂閱 TensorFlow 頻道。

via:https://blog.tensorflow.org/2020/03/part-1-fast-scalable-and-accurate-nlp-tensorflow-deploying-bert.html

雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

TFX 最新博文:如何使用 TensorFlow 生態(tài)系統(tǒng)實(shí)現(xiàn)快速高效的 BERT 部署?

分享:
相關(guān)文章
當(dāng)月熱門文章
最新文章
請(qǐng)?zhí)顚懮暾?qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說