《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > Facebook開源NLP建??蚣躊yText,從論文到產(chǎn)品部署只需數(shù)天

Facebook開源NLP建??蚣躊yText,從論文到產(chǎn)品部署只需數(shù)天

2018-12-17

Facebook AI Research(FAIR)今天宣布推出 PyText 的開源版本,它是這家公司正在使用的主要自然語言處理(NLP)建??蚣埽壳懊刻煸跒?Facebook 及其應用程序系列的用戶提供超過 10 億次 AI 任務處理。


Yann LeCun 對此介紹道,「PyText 是一個工業(yè)級的開源 NLP 工具包,可用于在 PyTorch 中開發(fā) NLP 模型,并通過 ONNX 部署。其預訓練模型包括文本分類、序列標注等?!?/p>


項目地址:https://github.com/facebookresearch/pytext

微信圖片_20181217190010.jpg


為了降低人們創(chuàng)建、部署自然語言處理系統(tǒng)的難度,F(xiàn)acebook 開源了一個建??蚣堋狿yText,它模糊了實驗與大規(guī)模部署之間的界限。這一框架基于 PyTorch,可以為 NLP 的發(fā)展帶來以下好處:


提供簡化的工作流程,加速實驗。

提供一大批預構(gòu)建的模型架構(gòu)和用于文本處理和詞匯管理的工具,以促進大規(guī)模部署。

提供利用 PyTorch 生態(tài)系統(tǒng)的能力,包括由 NLP 社區(qū)中的研究人員、工程師預構(gòu)建的模型和工具。


AI 研究人員和工程師現(xiàn)在可以利用 PyText 加快實驗進度,部署用于文檔分類、序列標注、語義分析、多任務建模及其他任務的系統(tǒng)。利用該框架,F(xiàn)acebook 在幾天內(nèi)就實現(xiàn)了 NLP 模型從理念到完整實施的整個過程,還部署了依賴多任務學習的復雜模型?,F(xiàn)在,PyText 被 Facebook 用于超過十億次的日常預測工作,這表明該框架可以以產(chǎn)品級的規(guī)模運行,能夠滿足嚴格的延遲要求。


在優(yōu)化框架時,神經(jīng)網(wǎng)絡工程師一直都在實驗和生產(chǎn)之間進行權(quán)衡,NLP 系統(tǒng)的工程師更是如此。NLP 系統(tǒng)需要創(chuàng)建、訓練、測試數(shù)十個模型,其結(jié)構(gòu)具有動態(tài)特性。以研究為導向的框架可以提供一個簡單的 eager-execution 接口,加快創(chuàng)建動態(tài)高級模型的進程,但如果將它們部署到生產(chǎn),就會面臨延遲多、內(nèi)存占用多的困境。針對生產(chǎn)進行優(yōu)化的框架可以通過將模型展示為靜態(tài)圖來加快部署,但這種方法增加了創(chuàng)建文本序列動態(tài)表征的難度。PyTorch 1.0 是一個統(tǒng)一的框架,縮短了從研究到生產(chǎn)的路徑。而基于 PyTorch 的 PyText 則著眼于滿足 NLP 建模的特定需求。


此次一起開源的還有一些用于大規(guī)模訓練和部署 PyText 模型的預訓練模型及教程。


走向更好的 NLP


AI 研究人員及工程師擁有許多可以理解語言的系統(tǒng)應用,而且這些應用還在增加。Facebook 利用 NLP 向用戶提供相關性更強的內(nèi)容,為他們提供更加強大的可用功能、標記違規(guī)動態(tài)、翻譯等其它服務。會話 AI 的前沿研究進展迅速,PyText 可以進一步加快這一進程,同時提高產(chǎn)品質(zhì)量。PyText 目前已經(jīng)部署到 Facebook 的視頻通話設備 Portal 以及 Messenger 的 M suggestions 功能中。此外,F(xiàn)acebook 還在探索 PyText 在會話 AI 領域的其它應用。


借助 PyText,Portal 可以支持「Hey Portal」語音命令中的組合和嵌套調(diào)用查詢。這一功能使得用戶可以使用類似「給我爸打電話」這樣的語音命令。這種命令要求系統(tǒng)理解呼叫者與被呼叫者之間的關系,利用了 Facebook 論文《Semantic Parsing for Task Oriented Dialog using Hierarchical Representations》中提到的語義分析技術。


Facebook 已經(jīng)利用 PyText 快速迭代 Portal NLP 模型的持續(xù)改進,如組裝、條件隨機域及用在所有領域的混合模型。這種做法將 Facebook 核心領域模型的準確率提高了 5 到 10 個百分點。他們還借助 PyText 對分布式訓練的支持將 Portal 的訓練時間縮短到原來的 1/3 到 1/5。


利用 PyText 實現(xiàn)的快速迭代還提高了 Facebook NLP 模型的效率和可擴展性。在 Portal、Messenger 及其它許多用例中,模型需要實時運行,以提供快速響應。此外,F(xiàn)acebook 還需要大規(guī)模運行的高效 NLP 系統(tǒng)。PyText 降低了 Facebook 工程師在系統(tǒng)中部署實時高級 NLP 技術的難度,這些系統(tǒng)有數(shù)十億使用多種不同語言的用戶。


PyText 以 Facebook 的其它 NLP 系統(tǒng)為基礎,并對其它系統(tǒng)進行補充。例如,它可以和 Facebook 的 fastText library 一起使用。研究人員和工程師可以在 fastText 中訓練詞嵌入,然后將其應用到 PyText 中。


PyText 還針對 DeepText 進行了一些重要改進,如后者無法實施動態(tài)圖。由于模型中的有條件執(zhí)行和自定義數(shù)據(jù)結(jié)構(gòu),PyText 中的一些語義解析和多任務學習模型無法利用 DeepText 構(gòu)建。PyText 還加速了訓練,因為它可以利用 GPU 及更易實施的分布式訓練。Facebook 打算將 PyText 作為未來主要的 NLP 平臺。


靈活的模塊化設計


PyText 是建立在 PyTorch 上的,它可以連接 ONNX 和 Caffe2。借助 PyText,AI 研究人員和工程師可以把 PyTorch 模型轉(zhuǎn)化為 ONNX,然后將其導出為 Caffe2,用于大規(guī)模生產(chǎn)部署。


它為模型組件提供了一個靈活的模塊化工作流程,具有可配置的層和可擴展接口。PyText 可作為端到端平臺,開發(fā)者可以立即應用它來創(chuàng)建整個 NLP 流程。而其模塊化結(jié)構(gòu)也允許工程師將單個組件整合到現(xiàn)有系統(tǒng)中。


每個組件所扮演的角色以及與其它組件的交互視任務而定。例如,數(shù)據(jù)處理程序組件和訓練器、損失、優(yōu)化器組件一起訓練模型。但數(shù)據(jù)處理程序也會和預測器、模型交互來執(zhí)行推斷(在真實環(huán)境中運行訓練好的模型)。這種模塊化方法增強了 PyText 的多功能性,該平臺幾乎可被用于從研發(fā)到生產(chǎn)過程中的任何環(huán)節(jié),從零開始構(gòu)建整個 NLP 系統(tǒng),或者對現(xiàn)有系統(tǒng)進行修改。


PyText 還具備其它改進 NLP 工作流程的功能。該框架支持分布式訓練,這可以極大加速需要多次運行的 NLP 實驗。它還支持多任務學習,以同時訓練多個模型。對訓練的其它優(yōu)化包括:


便攜性。PyText 模型是建立在 PyTorch 之上的,可以輕松在 AI 社區(qū)的不同組織之間共享。

預構(gòu)建模型。PyText 具有專注于各種常見 NLP 任務(如文本分類、語義解析和語言建模)的多種模型,因此可以輕松地在新數(shù)據(jù)上使用預構(gòu)建模型,僅需極少的額外工作。

上下文模型。為了提高對各種 NLP 任務中的會話理解,我們可以使用用 PyText 利用上下文信息,例如會話線程的早期部分。Facebook 在 PyText 中構(gòu)建了兩種上下文模型:用于意圖標注任務的 SeqNN 模型和用于兩個任務聯(lián)合訓練的 Contextual Intent Slot 模型。在 Facebook 的測試中,引入上下文信息使 M suggestions 在多個數(shù)據(jù)集上產(chǎn)生了顯著的性能提升。


至于生產(chǎn)中的優(yōu)化推斷,PyText 使用 PyTorch 1.0,通過優(yōu)化的 Caffe2 執(zhí)行引擎導出模型進行推斷。Native PyTorch 模型需要 Python 運行時,而由于 Python 的 Global Interpreter Lock 的多線程限制,這種運行時無法充分擴展。導出至 Caffe2 則提供了高效的多線程 C++后端,以高吞吐量地高效服務巨大流量。PyText 的其它功能也使將模型移動并部署到生產(chǎn)中變得更加容易,如:


適用于研究和生產(chǎn)的 NLP 工作的通用資源,如用于訓練和推斷的簡單 API,還有用于訓練和推斷的文本預處理。

詞匯管理,因此 PyText 可以在模型導出至 Caffe2 以后將詞匯添加到模型中。

增加了對字符串張量的支持,以便在訓練和推斷中有效處理文本。


從研究到生產(chǎn)變得更容易

微信圖片_20181217190038.jpg


PyText 的誕生最初是為了創(chuàng)建一個新的 NLP 模型,它為降低創(chuàng)建新模型、編輯現(xiàn)有模型的難度提供了必要的抽象概念。訓練和評估這些模型非常簡單,然后執(zhí)行參數(shù)掃描來確定最佳模型。PyText 旨在讓開發(fā)者專注于其想要改變的特定組件或模型,并在系統(tǒng)的其余部分使用「開箱即用」組件。


由此產(chǎn)生了一個可以在 Python 環(huán)境下運行的 PyTorch 模型。借助 PyText 的 Python 服務,AI 開發(fā)者可以通過部署其模型和接收一小部分使用該產(chǎn)品的用戶的流量來快速獲得在線指標。

微信圖片_20181217190104.jpg


一旦工程師對模型的性能感到滿意,那他/她就可以利用 PyText 中的 exporter 模塊,通過 ONNX 把模型導出至 Caffe2。然后 Caffe2 可以在 C++ 處理產(chǎn)品流量的推斷服務中評估和部署。

微信圖片_20181217190126.jpg

這個代碼示例展示了如何使用 ONNX 將模型導出至 Caffe2,預先添加一個運算符(如 string2id),然后執(zhí)行任何必要的后處理。


PyText 和 NLP 工具的未來


在 Facebook 內(nèi)部的部署證明,PyText 可以幫助工程師加快 NLP 建模方法的迭代速度,然后快速將其擴展到生產(chǎn)中。NLP 領域規(guī)模龐大,發(fā)展迅速,所以 Facebook 將繼續(xù)提升 PyText 測試新最佳模型的能力,并高效、大規(guī)模部署這些模型。


由于在移動設備上部署復雜 NLP 模型仍是一大挑戰(zhàn),F(xiàn)acebook 正在努力為設備內(nèi)置(on-device)模型構(gòu)建端到端的工作流程。其近期的計劃包括支持多語言模型和其它建模能力,使模型更容易調(diào)試,進一步優(yōu)化分布式訓練。


更多關于 PyText 的細節(jié)請參考:https://research.fb.com/publications/pytext-a-seamless-path-from-nlp-research-to-production/


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 在线观看免费亚洲 | 亚洲成a人v天堂网 | 三级黄色在线视频 | 国产一级a毛片高清 | 国产丝袜视频 | 相泽亚洲一区中文字幕 | 日韩视频欧美视频 | 成人看片黄a在线观看 | 曰批免费视频播放在线看片二 | 美女一级ba大片免色野外 | 日本黄漫画网站入口免费 | 波多野结衣在线一区 | 中文字幕在线观看亚洲日韩 | 亚洲国产日韩欧美在线as乱码 | 国产一级毛片国产 | 成人a免费α片在线视频网站 | 天天爱天天做久久天天狠狼 | 成人欧美在线视频 | 一级黄色录像大片 | 日韩伦理在线 | www.成年人| 色综合久久久高清综合久久久 | 欧美一区二区三区视频 | 免费人成网ww777kkk手机 | 亚洲色图综合在线 | 日韩视频第1页 | 亚洲欧美成人综合在线 | 天天艹天天操 | 国产一区二区三区四 | 亚洲精品高清在线观看 | 美国俄罗斯毛片一区二区 | 日韩精品久久久久影院 | 日韩中文字幕精品一区在线 | 日韩欧美精品在线 | 国产精品秒播无毒不卡 | 手机国产日韩高清免费看片 | 激情插插 | 成人私人影院在线观看网址 | 成年人在线免费看视频 | 国产成人精品cao在线 | 日韩手机看片 |