Airflow 是現代 MLOps 技術堆疊的核心,負責協調整個機器學習生命週期。

使用 Airflow 進行機器學習維運 (MLOps)

機器學習維運 (MLOps) 是一個廣泛的術語,涵蓋在生產環境中運行機器學習模型所需的一切。MLOps 是一個快速發展的領域,有許多不同的最佳實踐和行為模式,而 Apache Airflow 為所有步驟提供了與工具無關的協調能力。MLOps 的一個新興子集是大型語言模型維運 (LLMOps),它專注於圍繞大型語言模型(如 GPT-4 或 Command)的應用程式開發管線。

以下影片展示了使用 Airflow 和 Weaviate 創建自動 RAG 管線的範例,該管線從新聞文章中攝取和嵌入資料,並提供交易建議。您可以在這裡找到此範例中顯示的程式碼。


為什麼使用 Airflow 進行 MLOps?

Airflow 是協調 MLOps 工作流程的熱門選擇,因為它具有以下特點:

  • Python 原生:您可以使用 Python 程式碼來定義 Airflow 管線,這使得整合最流行的機器學習工具以及將您的 ML 運作嵌入最佳實踐 CI/CD 工作流程變得容易。透過使用 TaskFlow API 的裝飾器,您可以將現有腳本轉換為 Airflow 任務。
  • 可擴展:Airflow 本身是用 Python 撰寫的,這使其可以透過自訂模組Airflow 外掛程式進行擴展。
  • 資料不可知:Airflow 是資料不可知的,這表示它可以被用來協調任何資料管線,無論資料格式或儲存解決方案為何。您可以輕鬆地插入任何新的資料儲存,例如最新的向量資料庫或您最愛的關聯式資料庫管理系統 (RDBMS)。

Airflow 用於 MLOps 的功能

Airflow 有幾個關鍵功能,使其成為協調 MLOps 工作流程的絕佳選擇

  • 監控和警報:Airflow 隨附了生產就緒的監控和警報模組,例如 Airflow notifiers、廣泛的日誌記錄功能和 Airflow listeners。它們使您能夠精細地控制如何監控您的 ML 運作,以及在發生錯誤時 Airflow 如何向您發出警報。
  • Day 2 運作的功能:簡單的功能,例如自動重試、複雜的依賴關係和分支邏輯,以及使管線動態化的選項,在協調 MLOps 管線時會產生很大的差異。Airflow 內建了所有這些功能。
  • Airflow providers:Airflow providers 使用額外的模組擴展了核心 Airflow 功能,以簡化與流行資料工具(包括許多流行的 MLOps 工具)的整合。您可以在這裡找到活動 providers 的列表。