「自然語言處理」如何部署深度學習模型?

<code>當我們使用TensorFlow學習模型後,如何部署呢?可以試試TensorFlow 的TFX/<code>

TFX管道是實現ML管道的一系列組件(TFX Pipeline Components),ML管道是專門為可伸縮的高性能機器學習任務而設計的。這包括建模、訓練、模型推斷。


為了學習TFX,我們需要知道下面這些概念。

一、TFX的核心概念

  • TFX Pipelines

TFX管道通過幾個組件定義數據流,目的是實現特定的ML任務(例如,為特定數據構建和部署迴歸模型)。管道的結果是部署的模型服務。

  • Artifacts

Artifact是在組件之間傳遞的數據單元。通常,組件至少有一個輸入Artifact和一個輸出Artifact。我們簡單把這個理解為不同部件的輸入、輸出數據格式規定。


在介紹了TFX中相關概念後,接下來解釋一下上文中出現的TFX Pipeline Components包含哪些成分

「自然語言處理」如何部署深度學習模型?


二、TFX組件(TFX Pipeline Components)

TFX組件包含一系列機器學習成分,這些組件實現的目的是為了實現大規模、高效的機器學習任務。包括modeling, training, serving inference。以及管理模型在線上、移動端的部署。整個組件包含機器學習的整個流程:


一個 TFX pipeline包含下面九個組件。分別是:

  1. ExampleGen:輸入數據管理的組件,負責管理數據的輸入和拆分
  2. StatisticsGen:計算數據集的統計信息。
  3. SchemaGen:檢查統計信息,並創建數據的schema
  4. ExampleValidator: 檢查數據集中的異常值和缺失值
  5. Transform:特徵工程
  6. Trainer:訓練模型
  7. Evaluator:模型評估
  8. ModelValidator: 幫助您驗證導出的模型,確保它們“足夠好”可以投入生產
  9. Pusher:通過serving 部署模型


「自然語言處理」如何部署深度學習模型?

TFX中個部件示意圖

三、模型部署

通過上面介紹TFX的組件,我們走了一遍機器學習的流程,當我們通過一些列操作,訓練出我們的模型的時候,這時候就需要部署了。

TFX支持三種部署目標:

1、Inference: TensorFlow Serving

TensorFlow Serving是一個靈活、高性能的機器學習模型服務系統,專為生產環境設計。它使用前幾步學習的模型並通過REST或gRPC接口接受推斷(inference)請求。它在一組進程或多個網絡服務器上運行,使用幾種高級體系結構中的一種,來處理同步和分佈式計算。

2、在移動端和IoT設備上進行inference: TensorFlow Lite

TensorFlow Lite是一套工具,致力於幫助開發人員在移動端和IoT應用程序中使用他們訓練部署TensorFlow模型。它使用與TensorFlow Serving相同的訓練後的模型,並應用諸如量化和修剪等優化來優化生成的模型的大小和性能,以應對在移動和物聯網設備上運行的挑戰。

3、 JavaScript中的推斷: TensorFlow JS

TensorFlow JS是一個JavaScript庫,用於在瀏覽器和Node.JS上培訓和部署ML模型。它使用與TensorFlow service和TensorFlow Lite使用相同的訓練後的模型,並將它們轉換為TensorFlow.js Web格式。


下面學習一些tensorflow中的tensorflow serving。在企業級應用中,比較常見的就是用這種方法將之部署成微服務的方式,提供高效可靠的推斷服務。

「自然語言處理」如何部署深度學習模型?


四、TensorFlow Serving介紹

實際部署過程中,tensorflow serving支持下面幾種部署:

1、直接裸機安裝ModelServer部署

2、使用docker部署

3、使用Kubernetes部署


實際使用過程中,建議通過容器化部署,不僅簡單高效,容易配置環境,而且這樣的方式對系統的影響程度最小,避免了很多其他的安裝錯誤。


分享到:


相關文章: