隨著人工智慧應用日益普及,如何有效地將機器學習模型整合到生產系統中成為一個關鍵挑戰。本文深入探討 DevOps 和 MLOps 的實踐,以及如何將這些實踐應用於 AI 工程,以構建可靠且可擴充套件的 AI 系統。從分散式計算的基礎概念出發,探討雲原生技術如容器化和自動擴充套件,以及現代 API 設計風格 REST 和 GraphQL 的應用。接著,文章著重於 MLOps 的核心環節,包括資料和模型版本控制、實驗追蹤、模型訓練和佈署,以及模型效能監控。最後,本文討論如何將 MLOps 流程無縫整合到現有的 DevOps 流程中,以實作端對端的自動化和持續交付。

DevOps 實踐

DevOps 是一套實踐,旨在將開發和營運團隊整合起來,以提高軟體交付的速度和品質。DevOps 過程包括設計、初始化、開發、建構、測試、釋出、佈署、營運和監控等階段。

DevOps 過程

DevOps 過程如下所示:

  1. 設計和初始化:包括架構基礎工作和設定自動化指令碼以支援後續過程。
  2. 開發:開發人員編寫程式碼並提交變更。
  3. 建構:自動化建構過程以生成可執行檔。
  4. 測試:自動化測試以確保程式碼品質。
  5. 釋出:自動化釋出過程以將軟體佈署到生產環境。
  6. 佈署:將軟體佈署到生產環境。
  7. 營運:監控和維護軟體在生產環境中的執行。
  8. 監控:監控軟體的效能和品質,以確保其符合要求。

MLOps 背景

在傳統機器學習(ML)中,模型的整合往往缺乏結構化的方法論。為瞭解決這個問題,機器學習營運(MLOps)應運而生。MLOps 是一套實踐,旨在將 DevOps 原則應用於機器學習生命週期中。MLOps 的重點包括資料治理、模型生命週期管理以及加強資料科學家、機器學習工程師和營運團隊之間的聯絡。

MLOps 實踐

MLOps 實踐包括:

  • 資料版本控制和管理:確保資料集是版本控制的,以便其使用是可重現的。
  • 實驗追蹤:記錄實驗以比較結果並建立在成功模型上的實驗。
  • 模型版本控制:跟蹤不同迭代的機器學習模型,以確保可重現性。
  • 模型訓練和重新訓練:與實驗追蹤和資料版本控制相關的模型訓練;不斷改進模型。
  • 模型佈署:簡化模型佈署到生產環境的過程。
  • 模型效能監控:評估模型在生產環境中的效能,以確保其符合預期。

MLOps 是 DevOps 的一部分,旨在將機器學習模型整合到可靠的生產系統中。透過應用 MLOps 實踐,可以提高機器學習模型的品質和可靠性,並加速其佈署到生產環境。

2.4 摘要

在現代計算環境中,分散式計算是基礎。分散式系統由多個獨立元件組成,這些元件可以封裝為虛擬機器(VMs)或容器。它們之間透過訊息進行通訊,並使用 DNS 或容器協調中的功能來發現訊息接收者的位置。

元件可以使用雲基礎設施或容器協調基礎設施自動擴充套件。擴充套件意味著建立(或終止)多個元件例項,並使用負載平衡器將訊息分發到正在執行的例項。

常見的分散式系統軟體架構包括客戶端-伺服器架構、導向服務的架構(SOA)和微服務架構。

REST 是一種介面風格,將提供者視為具有有限操作(PUT、GET、POST 和 DELETE)的資料提供者。GraphQL 是 REST 的一種變體,要求客戶端明確指定所需的回覆資訊。這樣可以減少通訊成本,特別適合於邊緣裝置。

傳統的 DevOps 和 MLOps 是互補的過程集合,用於管理整個軟體開發生命週期中的開發、佈署和營運。兩者都使用基礎設施即程式碼(IaC)作為可重複和一致的實踐手段。

MLOps 著重於為模型做好執行準備,而 DevOps 著重於將各種可執行元件整合、測試、佈署和營運。其中一套可執行元件來自 MLOps。在本文中,我們關注於 AI 工程和將 MLOps 整合到 DevOps 中的整體系統。

圖表翻譯:

  graph LR
    A[分散式計算] --> B[雲端計算]
    B --> C[容器化]
    C --> D[自動擴充套件]
    D --> E[負載平衡]
    E --> F[REST/GraphQL]
    F --> G[DevOps/MLOps]
    G --> H[AI工程]

圖表展示了分散式計算、雲端計算、容器化、自動擴充套件、負載平衡、REST/GraphQL、DevOps/MLOps 和 AI 工程之間的關係。

內容解密:

上述內容介紹了分散式計算的基礎概念,包括其組成、通訊方式和軟體架構。同時,還討論了 REST 和 GraphQL 的區別以及 DevOps 和 MLOps 的角色。這些概念是理解 AI 工程和整體系統設計的基礎。

人工智慧基礎概念

人工智慧(AI)是一個涵蓋了各種技術和方法的領域,包括機器學習(ML)、深度學習(DL)等。選擇合適的 AI 模型是開發 AI 系統中的一個重要步驟。這章節將介紹 AI 模型的基礎概念,包括模型選擇、模型準備和訓練。

模型選擇

模型選擇是 AI 系統設計中的一個關鍵步驟。不同的模型適合解決不同的問題,例如,監督學習(Supervised Learning)適合於有標籤的資料,無監督學習(Unsupervised Learning)適合於無標籤的資料。另外,自監督學習(Self-Supervised Learning)是一種模型透過生成自己的標籤來學習的方法。

基礎模型

基礎模型(Foundation Models,FM)是一種在大量無標籤資料上訓練的模型。這種模型可以學習到廣泛的模式和表達,然而,其訓練過程通常涉及自監督學習,即模型透過預測被遮蔽的詞彙來學習。

問題型別

不同的模型適合於解決不同的問題。例如,符號 AI(Symbolic AI)適合於需要明確邏輯和規則的問題,而非符號 AI(Non-Symbolic AI)適合於需要從資料中學習模式的問題。

推理引擎

推理引擎(Inference Engine)是使用模型在電腦系統中的一個必要元件。它負責將輸入資料轉換為模型可以理解的格式,並執行模型推理以獲得輸出結果。

訓練過程

訓練過程是模型準備的另一個重要步驟。這涉及設定控制模型訓練的引數,例如學習率、批次大小等。選擇合適的引數對於模型的效能有著重要影響。

隨著 AI 應用日益普及,MLOps 成為連線模型開發與實際佈署的關鍵橋樑。深入剖析 MLOps 的核心實踐,可以發現資料和模型的版本控制、實驗追蹤以及效能監控等環節,有效解決了傳統機器學習模型整合的痛點。技術堆疊的各層級協同運作中體現,MLOps 不僅涵蓋了 DevOps 的自動化佈署和基礎設施即程式碼(IaC)等優勢,更著重於模型訓練、效能調校及持續監控,構成了完整且可靠的 AI 系統交付流程。對於重視模型迭代效率和線上穩定性的企業,匯入 MLOps 並與現有 DevOps 流程整合,將是提升 AI 應用價值的關鍵策略。玄貓認為,MLOps 的發展趨勢將朝向更自動化、更智慧化的方向演進,並與日趨成熟的 AI 平臺和工具深度融合,進一步降低 AI 應用落地的門檻。接下來的 2-3 年,將是 MLOps 從概念驗證走向大規模應用的關鍵時期。