在網路邊緣部署機器學習模型

機器學習在許多產業中扮演越來越重要的角色。機器學習模型是由資料科學家建立並受過訓練,並可根據使用的操作資料預測和分數來部署預測或分數,例如提高流程效率、偵測問題或異常並加以反應,或評估關鍵績效指標 (KPI) 和品質指標。

資料科學家透過在大型資料集上運作來建立和訓練其模型,這些資料集包含聚總的歷史作業資料,且通常仰賴強大的運算資源來開發模型。部署之後,模型程式實際執行會即時使用作業資料,並產生可據以微調作業流程和處理異常的分數或預測。有時候,您會想要在網路邊緣部署模型程式實際執行,通常原因如下:
  • 模型所需的資料量比遠端網站和中央位置之間的頻寬更大。
  • 您體驗遠端網站與中央位置之間的間歇性連線。
  • 涵蓋饋送模型程式實際執行資料、產生其分數或預測,以及對該分數或預測採取動作的延遲要求非常低。
此類型的部署可能會在嘗試集中管理這些程式實際執行時帶來挑戰。例如,Oracle Cloud Infrastructure (OCI) 資料科學只能將模型自動部署到 Oracle Cloud。此架構可解決這些挑戰。

架構

此架構是將機器學習模型部署到資料來源和生產系統附近的基礎。此圖表描述:


deployment-ml-edge-architecture.png 的描述如下
mloy-ml-edge-architecture.png 圖解描述

部署 -ml-edge- 架構 -oracle.zip

此架構的運作方式如下:
  1. 生產流程會產生資料,此資料會串流至 Oracle Cloud 上的串流服務。串流服務會觸發處理內送 streams.This 函數的函數,將內送資料儲存在自治式資料倉儲 (ADW),這或許在處理或轉換之後。
  2. 資料科學家會根據 ADW 中的資料定期重建機器學習 (ML) 模型。這些模型經過測試並確認以改善舊模型時,會儲存以進行部署 (例如,在 ONNX 表單中),並推送至物件儲存以供後續擷取使用。建議為每個本機網站提供個別的物件儲存的儲存桶,以確保將正確的模型傳遞到正確的網站。將模型儲存在模型目錄中的一般 Oracle Data Science 處理,之後再將模型部署為不使用模型部署,因為模型目錄無法在 OCI 之外存取,而且 Oracle Data Science 只能部署到 Oracle Cloud。
  3. 定期檢查特定物件儲存的儲存桶,檢查本機網站並擷取 ML 模型的更新。有新的模型可用時,本機網站會擷取、部署並開始使用這些模型。
  4. 在生產環境中,生產資料會傳送至 ML 執行時期,以產生評分、預測、警示等等。
請注意,有數種封裝和部署模型的方法存在。例如,資料科學可能會觸發函數 (未顯示) 將模型及其呼叫 Web 服務封裝為容器,該容器可以儲存在容器登錄中 (未顯示),而此函數可以由在本機網站 (未顯示) 中執行的 Kubernetes 擷取。由於我們不知道使用案例特定的可能性和限制,因此這種架構顯示了更基本的方法。
此架構包含下列元件:
  • 內部部署位置

    一或多個遠端生產網站使用網站至網站 VPN 連線至 Oracle Cloud。這些網站可能是製造設施,需要低延遲機器學習生產流程的資料流

  • 生產機械

    在每個遠端位置,一或多個生產系統、品質控制系統、MES、SCADA 系統等等,都會產生生產資料和 (或) IoT 串流。這些系統中的資料會根據 ML 模型對資料的回應,傳遞至 ML 執行時期,以評分、預測或警示

  • ML 執行環境

    在每個遠端位置,機器學習執行環境都可正常運作。其中包含 ML 執行階段 (例如 ONNX Runtime) (可能以 Web 服務執行),以及提供 IoT 閘道的評分與預測功能。ML 執行環境的確切組態將取決於特定當地情況和需求

  • 租用戶

    租用戶是指註冊 OCI 時,Oracle 在 Oracle Cloud 內設定的安全獨立分割區。您可以在租用戶的 Oracle Cloud 中建立、組織及管理您的資源。租用戶與公司或組織同義。通常,公司會有單一租用戶,並反映其在該租用戶內的組織結構。單一租用戶通常與單一訂閱關聯,而單一訂閱通常只有一個租用戶。

  • 虛擬雲端網路 (VCN) 和子網路

    VCN 是您在 Oracle Cloud Infrastructure 區域中設定的可自訂軟體定義網路。就像傳統的資料中心網路,VCN 可讓您完全控制網路環境。VCN 可以有多個非重疊 CIDR 區塊,而您可以在建立 VCN 之後進行變更。您可以將 VCN 區隔成子網路,然後對區域或可用性網域進行調整。每個子網路都是由不與 VCN 中其他子網路重疊的連續位址範圍所組成。您可以在建立子網路後變更其大小。子網路可以是公用網路或專用子網路。

  • 服務閘道

    服務閘道可讓您從 VCN 存取其他服務,例如 Oracle Cloud Infrastructure Object Storage。VCN 到 Oracle 服務的流量會透過 Oracle 網路光纖通道,而一律不會周遊網際網路。在此架構中,服務閘道會透過 VPN,以本機方式存取 Oracle Cloud 服務。

  • 物件儲存

    物件儲存可快速存取任何內容類型的大量結構化與非結構化資料,包括資料庫備份、分析資料,以及豐富內容 (例如影像和影片)。您可以安全地儲存,然後直接從網際網路或雲端平台內擷取資料。您可以無縫擴充儲存,而不會發生任何效能或服務可靠性的降低。針對快速、立即和經常存取的「熱」儲存,使用標準儲存。將封存儲存用於長時間且鮮少存取的「冷」儲存。在此架構中,當資料科學家產生這些命令檔時,物件儲存可用來儲存模型與相關命令檔的更新。

  • 自治式資料倉儲

    Oracle Autonomous Data Warehouse 是一款自我驅動、自我保護且自我修復的資料庫服務,已針對資料倉儲工作負載最佳化。您不需要設定或管理任何硬體,或是安裝任何軟體。Oracle Cloud Infrastructure 可處理建立資料庫,以及備份、打補丁、升級及調整資料庫。在此架構中,ADW 會儲存原始 (或已處理) 生產站 IoT 資料,供資料科學家稍後處理

  • 網站至網站 VPN

    網站至網站 VPN 可讓企業內部部署網路與 Oracle Cloud Infrastructure 中的 VCN 之間提供 IPSec VPN 連線。IPSec 通訊協定套件會先加密 IP 流量,再將封包從來源傳輸至目的地,並在抵達時將流量解密。

  • 功能

    Oracle Functions 是一個完全託管、多租用戶、可高度擴展、隨選、Functions-as-a-Service (FaaS) 平台。它由 Fn 專案開放原始碼引擎提供技術支援。函數可讓您部署程式碼,然後直接呼叫程式碼或觸發程式以回應事件。Oracle Functions 使用 Oracle Cloud Infrastructure Registry 中代管的 Docker 容器。在此架構中,Functions 會使用以 JDBC 連線器為建置的函數,將串流資料儲存在 ADW 中

  • 串流處理

    Oracle Cloud Infrastructure Streaming 提供完全託管、可擴展且持久的儲存解決方案,可讓您擷取連續的大量資料串流,以即時使用及處理。您可以使用「串流處理」來擷取大量資料 (例如應用程式日誌、作業遙測、Web 點擊串流資料),或是其他在發布 / 訂閱訊息傳遞模型中以持續且順序方式產生及處理資料的使用案例。此架構使用串流處理將生產資料串流遞送至 ADW 以提供持續性。在串流處理過程中,您也可以引進這些資料的處理和強化,但這並未顯示於此處

  • Oracle 資料科學

    Oracle Data Science 是讓資料科學家團隊使用 Python 和開源工具建置、訓練、部署和管理機器學習模型的完整管理平台。它包含 MLOps 功能,例如自動化管線、模型部署及模型監控;不過這些功能只能在 Oracle Cloud 上模型部署,無法用於此架構。在此架構中,資料科學家使用 Oracle Data Science 來有效率地分析和建立資料模型,以及建立這些模型的可部署版本,例如 ONNX 表單

  • Oracle 服務網路

    Oracle 服務網路 (OSN) 是 Oracle Cloud Infrastructure 中的概念性網路,保留給 Oracle 服務使用。這些服務含有公用 IP 位址,可以透過網際網路連線。使用 Oracle Cloud Infrastructure FastConnect 或 VPN 連線時,Oracle Cloud 外部的主機可以私密存取 OSN。VCN 中的主機可以透過服務網關私下存取 OSN。

建議

在網路邊緣部署機器學習模型時,請使用下列建議作為起點。您的需求可能與此處所述的架構不同。
  • VCN

    若要將流量從遠端網站 (由網站至網站 VPN 連線) 路由至服務網路中執行的服務,就必須使用已連附 DRG 和服務閘道的 VCN。此 VCN 的路由表需要一個項目,以將所選 Oracle Cloud 區域中服務的所有流量連結遞送至該服務閘道。在此架構中,遠端網站與服務網路之間的所有流量都會由從遠端網站到服務網路的要求來觸發

  • 安全

    您可以使用 Oracle Cloud Guard 主動監控及維護 Oracle Cloud Infrastructure 中資源的安全性。雲端保全使用偵測器處方,您可以定義檢查資源是否有安全漏洞,以及監控操作員和使用者是否有任何風險活動。偵測到任何組態錯誤或不安全活動時,雲端保全會根據您可以定義的回應器處方建議更正動作並協助採取這些動作。

  • 雲端保全

    複製並自訂 Oracle 提供的預設處方,以建立自訂偵測器與回應器處方。這些處方可讓您指定哪些類型的安全違規會產生警告,以及允許對其執行哪些動作。例如,您可以偵測可見性設為公用的物件儲存的儲存桶。

    在租用戶層次套用雲端保全以涵蓋最廣的範圍,並減少維護多個組態的管理負擔。

    您也可以使用受管理清單功能,將特定組態套用至偵測器。

  • 安全區域

    對於需要最高安全性的資源,Oracle 建議您使用安全區域。安全區域是一個與以最佳做法為基礎之 Oracle 定義的安全原則處方關聯的區間。例如,安全區域中的資源不得從公用網際網路存取,且必須使用客戶管理的金鑰進行加密。當您建立和更新安全區域中的資源時,Oracle Cloud Infrastructure 會根據安全區域處方中的原則驗證作業,並且拒絕違反任何原則的作業

  • 網路安全群組 (NSG)

    您可以使用 NSG 定義一組套用至特定 VNIC 的輸入和輸出規則。我們建議您使用 NSG 而非安全清單,因為 NSG 可讓您將 VCN 的子網路架構與應用程式的安全需求分開。

注意事項

部署此參照架構時,請考量以下各點。

  • 效能

    主要效能考量與生產流程所產生的資料量有關。

    機器學習程式實際執行呼叫以回應生產資料時的機器學習執行環境,會進行維度化以處理產生的資料量。這是遠端網站設定的問題,超出此架構的範圍。

    生產流程所產生的資料可能已足以明顯指出適用於串流至 OCI 的頻寬可能過於龐大。在這類情況下,建議您先在本機處理資料以捨棄無關的資料、聚總資料、壓縮資料等等,如此可以減少頻寬需求。

    藉由將 ML 程式實際執行移動到資料來源,可以減少 ML 延遲。

  • 使用狀態

    如果遠端網站與 Oracle Cloud 之間的連線中斷,則資料可以串流至本機 Kafka 安裝,然後串流至 Oracle Streaming。如此一來,如果發生網路中斷,本機 Kafka 安裝就會緩衝資料。

探索更多

進一步瞭解如何將機器學習模型部署到資料來源和生產系統附近。

檢閱下列額外資源:

確認

Author: Gareth Smith