提速1000倍,預測延遲少於1ms,百度飛槳發布基於ERNIE的語義理解開發套件

  • 2019 年 11 月 8 日
  • 筆記

機器之心發布

機器之心編輯部

昨天,在「WAVE Summit+」2019 深度學習開發者秋季峰會上,百度對外發布基於 ERNIE 的語義理解開發套件,旨在為企業級開發者提供更領先、高效、易用的 ERNIE 應用服務,全面釋放 ERNIE 的工業化價值,其中包含 ERNIE 輕量級解決方案,提速 1000 倍!

今年 7 月份,百度發布持續學習語義理解框架 ERNIE 2.0,在共計 16 個中英文任務上超越 BERT、XLNET,取得了 SOTA 的效果。

ERNIE 2.0 發布以來,ERNIE 產業化應用進程不斷加速,易用性不斷提升,配套產品也不斷豐富和完善。目前,ERNIE 2.0 在百度內部及行業內已取得了廣泛應用,在多種場景下都取得了明顯效果提升。這些場景的成功運用為 ERNIE 產業化應用積累了豐富的經驗。

上圖為 ERNIE 全景圖,預置了包含 ERNIE 通用模型、ERNIE 任務模型、ERNIE 領域模型以及本次發布的 ERNIE Tiny 輕量級模型等系列預訓練模型。在此基礎上,構建了包含工具和平台的飛槳語義理解開發套件。全面覆蓋了訓練、調優、部署等開發流程,具備輕量方案、能力全面、極速預測、部署靈活、平台賦能等五大特色。接下來,我們逐一揭秘。

特色 1:輕量級解決方案,預測速度提升 1000 倍

ERNIE 2.0 擁有強大的語義理解能力,而這些能力需要強大的算力才能充分發揮,這為實際應用帶來了非常大的挑戰。為此,百度發布輕量級預訓練模型 ERNIE Tiny 以及一鍵式數據蒸餾工具 ERNIE Slim,預測速度提升達到 1000 倍。

ERNIE Tiny 技術原理

ERNIE Tiny 主要通過模型結構壓縮和模型蒸餾的方法,將 ERNIE 2.0 Base 模型進行壓縮,其特點和優勢主要包括以下四個方面:

  • 淺:模型採用 3 層 transformer 結構,線性提速 4 倍;
  • 寬:模型加寬隱層參數,從 ERNIE 2.0 的 768 擴展到 1024,寬度的增加帶來效果的提升。依託飛槳的通用矩陣運算優化,『變寬』並不會帶來速度線性的下降;
  • 短:為縮短輸入文本的序列長度,降低計算複雜度,模型首次採用中文 subword 粒度輸入,長度平均縮短 40%;
  • 萃:ERNIE Tiny 在訓練中扮演學生角色,利用模型蒸餾的方式在 Transformer 層和 Prediction 層學習教師模型 ERNIE 2.0 模型對應層的分布和輸出。

通過以上四個方面的壓縮,ERNIE Tiny 模型的效果相對於 ERNIE 2.0 Base 平均只下降了 2.37%,但相對於「SOTA Before BERT」提升了 8.35%,而速度提升了 4.3 倍。

ERNIE Tiny 的預測速度在一些性能要求苛刻的場景中是不夠的,這些場景中延遲響應往往要求小於 1ms,為此,套件提供了一鍵式數據蒸餾 ERNIE Slim 工具。該工具以數據為橋樑,將 ERNIE 的知識遷移至小模型,在效果損失很小的情況下實現預測速度上千倍的提升。

ERNIE Slim 技術原理

ERNIE Slim 原理同傳統深度學習數據蒸餾的方法略有不同。首先需要使用 ERNIE 2.0 模型對輸入標註數據對進行 Fine-tune 得到 Teacher Model,然後使用 Teacher Model 對無標註數據進行預測,該步驟中我們可採用添加雜訊詞、同詞性詞語替換、N-sampling 三種策略進行數據增強,最後通過 BoW、CNN 等計算複雜度小的模型進行訓練。

下表展示了 ERNIE Slim 的效果。從表格中可以看出,相對於 ERNIE 2.0 base 模型,數據蒸餾後的小模型效果損失不大,預測速度提升千倍以上;而相對於簡單模型,速度接近的情況下,效果會得到顯著提升。

特色 2:一鍵式高性能全類微調工具

ERNIE Fine-tune 微調工具旨在為給開發者提供一套簡單好用的 Fine-tune 框架,目前覆蓋 NLP 四大常用任務:單句分類、句對匹配、命名實體識別、閱讀理解。工具集支援多機多卡 Fine-tune,同時使用 FP16 Tensor Core 技術在 Tesla V 系列 GPU 上獲得 60% 的訓練速度提升。

Fine-tune 微調工具包含了一個基於飛槳的訓練組織框架 Propeller,可以幫助開發者進行模型管理、參數熱啟動、自動多卡並行等工作,從而讓開發者更專註於網路結構以及輸入數據流水線的構建。

特色 3:極速預測 API

ERNIE Fast-inference API 旨在解決產品應用的延遲敏感場景,為企業開發者提供極速預測的 C++ API,便於開發者集成。該工具也充分藉助了最新版飛槳的高速預測優勢,飛槳 1.6 通過 OP 聚合演算法,有效加速了 ERNIE 的預測。

在延遲敏感場景下,對比競品在 GPU(P4) 設備 21% 的延遲降低,ERNIE Fast-inference API 在 CPU(Intel Xeon Gold 6148 CPU)設備上的延遲降低 60%。

特色 4:向量伺服器,支援跨平台靈活部署

為進一步降低開發者使用成本,套件提供預測服務方案——ERNIE Service,來方便獲取 ERNIE 模型的向量分布以及預測打分。

ERNIE Service 架構

ERNIE Service 是基於 Python 構建的多 GPU 預測服務,Client 端發送的請求會自動分發至 GPU 上執行 ERNIE Fast-inference API 來獲取 ERNIE 向量 及打分。目前 ERNIE Service 支援不同平台、不同設備、不同語言的靈活調用,具備預測性能高等特點,相比競品 BERT-as-service 在 QPS 上提升 13%。

特色 5:平台賦能

此外,套件還包含了 ERNIE 的平台化使用方案,開發者可通過 EasyDL 專業版一站式完成 NLP 任務的數據標註、處理、ERNIE 微調、優化、部署等全流程的功能,為開發者提供豐富的演算法、算力服務,進一步降低 ERNIE 的產業化應用門檻。平台預置了常用的 NLP 文本分類、文本匹配等經典網路,能夠快速滿足多層次開發者的需求。

綜合來看,ERNIE的語義理解開發套件依託百度在預訓練模型等自然語言處理技術和飛槳平台領先優勢,為人工智慧產業化大生產貢獻力量,賦能各行各業。

相關鏈接:

  • ERNIE 工業級開源工具:https://github.com/PaddlePaddle/ERNIE
  • ERNIE 平台化服務:https://ai.baidu.com/easydl/pro