最佳化ML生命週期:AWS服務套件7大利器一次搞定

AWS服務套件

您是否正在尋求構建可擴充套件且高效的機器學習解決方案?AWS 提供全面的服務套件,旨在簡化機器學習生命週期的每個步驟,從資料收集到模型監控。憑藉專用工具,AWS 已成為該領域的領導者,幫助企業簡化其機器學習流程。在本文中,我們將深入探討七大 AWS 服務,這些服務可以加速您的機器學習專案,讓您更輕鬆地建立、部署和管理機器學習模型。

什麼是機器學習生命週期?

機器學習 (ML) 生命週期是一個連續的迴圈,始於識別業務問題,終於解決方案部署到生產環境中。與傳統軟體開發不同,機器學習採用經驗主義、資料驅動的方法,需要獨特的流程和工具。以下是主要階段:

  1. 資料收集:從各種來源收集高質量資料以訓練模型。
  2. 資料準備:清理、轉換和格式化資料以進行模型訓練。
  3. 探索性資料分析 (EDA):瞭解可能影響模型的資料關係和異常值。
  4. 模型構建/訓練:開發和訓練演算法,並對其進行微調以獲得最佳結果。
  5. 模型評估:根據業務目標和未知資料評估模型效能。
  6. 部署:將模型投入生產,用於實際預測。
  7. 監控和維護:持續評估和重新訓練模型,以確保相關性和有效性。

機器學習生命週期

自動化和可擴充套件性在機器學習生命週期中的重要性

隨著機器學習專案複雜性的不斷增加,我們發現手動流程逐漸失效。自動化的生命週期可以:

  • 更快的迭代和實驗
  • 可重複的工作流程
  • 高效的資源利用
  • 一致的質量控制
  • 降低運營開銷

可擴充套件性至關重要,因為資料量會不斷增長,同時模型也需要處理更多請求。此外,我們還發現,設計精良的優秀機器學習系統能夠擴充套件到大型資料集,同時在不犧牲效能的情況下實現高吞吐量推理。

AWS服務(按機器學習生命週期階段劃分)

資料收集

資料收集流程的主要服務可以由 Amazon S3 提供。Amazon Simple Storage Service(簡稱 Amazon S3)是 AWS 中大多數機器學習工作流的基石。作為一個高度可擴充套件、持久且安全的物件儲存系統,它完全能夠儲存機器學習模型構建所需的海量資料集。

Amazon S3的主要功能:

  • 幾乎無限的儲存容量,EB 級容量
  • 99.99% 的資料永續性保證
  • 透過 IAM 策略和儲存桶策略進行細粒度的訪問控制
  • 用於資料治理的版本控制和生命週期管理
  • 與 AWS 分析服務整合,實現無縫處理
  • 跨區域複製,實現地理冗餘
  • 資料更改時,事件通知會觸發工作流
  • 資料加密選項,確保合規性和安全性

Amazon S3的技術能力

  • 支援高達 5TB 的物件大小
  • 透過分段上傳和並行處理實現效能最佳化
  • S3 傳輸加速,實現遠距離快速上傳。
  • 智慧分層儲存類別,可根據使用模式在訪問層之間自動移動資料。
  • S3 Select 用於伺服器端過濾,以降低資料傳輸成本並提高效能。

Amazon S3的定價

Amazon S3 提供 12 個月的免費套餐,其中 S3 標準儲存類別提供 5GB 空間,可支援 20,000 次 GET 請求以及 2,000 次 Put、Copy、Post 或 List 請求。

Amazon S3的定價

Source: Amazon S3

除了免費套餐外,它還提供其他具有更高階功能的資料儲存套餐。您可以付費將物件儲存在 S3 儲存桶中,費用合理地取決於儲存桶大小、物件儲存時長以及儲存類別。

Amazon S3計費標準

Source: Amazon S3

  • 藉助生命週期策略,物件可以自動遷移到更便宜的儲存層。
  • 啟用 S3 儲存透檢視可以識別任何潛在的成本節約途徑。
  • 正確配置保留策略,避免產生不必要的儲存成本。
  • S3 Inventory 用於跟蹤整個儲存過程中的物件及其後設資料。

資料收集的替代服務

  • AWS Data Exchange:當您查詢第三方資料集時,Amazon Data Exchange 會提供一份目錄,其中包含許多行業提供商提供的資料。此服務還包括搜尋、訂閱和使用外部資料集。
  • Amazon Kinesis:在即時資料收集領域,Amazon Kinesis 允許您收集、處理和分析傳入的流資料。它尤其適用於需要持續輸入並從輸入中學習的機器學習應用程式。
  • Amazon Textract:如果在文件中,您的資料將由 Textract 提取,其中還包括來自掃描文件的手寫內容,並將其提供給機器學習流程。

資料準備

資料準備是機器學習生命週期中最關鍵的流程之一,因為它決定了我們最終將獲得什麼樣的機器學習模型。為了實現這一點,我們可以利用不可變的 AWS Glue,它提供方便進行分析和機器學習資料準備的 ETL 軟體。

AWS Glue的主要功能

  • 無伺服器可根據工作負載需求自動擴充套件
  • 視覺化作業設計器,無需編碼即可進行 ETL 資料轉換
  • 嵌入式資料目錄,用於跨 AWS 管理後設資料
  • 支援使用使用者定義庫的 Python 和 Scala 指令碼
  • 方案推斷和發現
  • 批次和流式 ETL 工作流
  • 資料驗證和分析
  • 內建作業排程和監控
  • 與 AWS Lake Formation 整合,實現細粒度訪問控制

AWS Glue的技術功能

  • 支援多種資料來源,例如 S3、RDS、DynamoDB 和 JDBC
  • 針對 Apache Spark 處理最佳化的執行時環境
  • 資料抽象為半結構化資料的動態框架
  • PySpark 或 Scala 中的自定義轉換指令碼
  • 內建機器學習轉換,用於資料準備
  • 支援透過 Git 整合進行協作開發
  • 使用作業書籤進行增量處理

AWS Glue的效能最佳化

  • 有效地對資料進行分割槽以實現並行處理
  • 充分利用Glue 的內部效能監控,用於定位瓶頸
  • 根據工作負載設定工作器的型別和數量
  • 設計與查詢模式對應的資料分割槽策略
  • 儘可能使用下推謂詞,以減少掃描流程

AWS Glue的定價

AWS Glue的定價 

Source: AWS Glue

AWS Glue 的成本非常合理,因為您只需為提取、轉換和載入作業所花費的時間付費。費用將根據執行作業所使用的資料處理單元 (DPU) 數量按小時計費。

資料準備的替代服務

  • Amazon SageMaker Data Wrangler:資料科學專業人士更喜歡視覺化介面,而 Data Wrangler 內建了 300 多種資料轉換和資料質量檢查功能,無需任何程式碼。
  • AWS Lake Formation:在為機器學習 (ML) 設計全尺寸資料湖時,我們發現 Lake Formation 透過自動化大量複雜的手動任務(包括資料發現、編目和訪問控制)實現了流暢的工作流程。
  • Amazon Athena:在 Athena 中,SQL 團隊能夠對 S3 資料執行自由格式查詢,從而輕鬆生成洞察並準備用於訓練的小型資料集。

探索性資料分析 (EDA)

SageMaker Data Wrangler 憑藉其內建的視覺化功能,擅長將 EDA 視覺化,並提供 300 多種資料轉換,助力使用者進行全面的資料探索。

主要功能

  • 無需編寫程式碼,即可透過視覺化方式獲取即時資料洞察。
  • 內建直方圖、散點圖和相關矩陣。
  • 異常值識別和資料質量評估。
  • 帶有統計摘要的互動式資料分析
  • 支援使用大規模樣本進行高效探索。
  • 根據資料特徵提供資料轉換建議。
  • 匯出多種格式,以進行深入分析。
  • 與特徵工程工作流整合
  • 一鍵式資料轉換並提供視覺化反饋
  • 支援多種資料來源,包括 S3、Athena 和 Redshift。

技術能力

  • 點選即可進行資料探索
  • 自動建立資料質量報告並提供建議。
  • 設計符合分析需求的自定義視覺化功能。
  • Jupyter Notebook 整合,用於高階分析
  • 透過使用智慧取樣,能夠處理大型資料集。
  • 提供內建統計分析技術
  • 用於轉換工作流的資料沿襲分析
  • 將轉換後的資料匯出到 S3 或 SageMaker 特徵儲存。

效能最佳化

  • 重用轉換工作流
  • 使用包含常見分析模式的預構建模型。
  • 使用自動報告的工具加快資料分析速度。
  • 將分析結果匯出給利益相關者。
  • 將洞察與下游機器學習工作流整合

Amazon SageMaker Data Wrangler定價

Amazon SageMaker Data Wrangler 的定價主要基於互動式會話和處理作業期間分配的計算資源以及相應的儲存空間。據悉,SageMaker Studio 中的互動式資料準備按小時收費,具體費用因例項型別而異。在處理過程中,將資料儲存在 Amazon S3 和附加捲中也會產生相關費用。

Amazon SageMaker Data Wrangler定價

Source: SageMaker Wrangler

例如,我們看到 ml.m5.4xlarge 例項的價格約為每小時 0.922 美元。此外,執行資料轉換流的處理作業型別取決於例項型別和資源使用時長。同樣的 ml.m5.4xlarge 例項執行 40 分鐘的作業大約需要花費 0.615 美元。最好儘快關閉閒置例項,並根據您的工作負載使用合適的例項型別,以節省成本。

更多定價資訊,您可以訪問此連結

EDA的替代服務

  • Amazon SageMaker Studio:為您提供功能齊全的機器學習 IDE,包括 Jupyter Notebook、即時協作以及互動式資料視覺化工具。
  • Amazon Athena:當您希望使用 SQL 執行臨時查詢來探索資料時,Athena 是一項無伺服器查詢服務,可直接對儲存在 S3 中的資料執行查詢。
  • Amazon QuickSight:在構建 BI 儀表板的 EDA 階段,QuickSight 提供互動式視覺化功能,幫助利益相關者洞察資料模式。
  • Amazon Redshift:用於資料倉儲的 Redshift 可快速訪問和分析大規模結構化資料集。

模型構建和訓練

AWS Deep Learning AMI 是預先構建的 EC2 例項,可提供最大的靈活性和對訓練環境的控制力,並預先配置了機器學習工具。

主要特性

  • 預裝機器學習框架,針對 TensorFlow、PyTorch 等進行了最佳化
  • 可根據相容性需求提供多個框架版本
  • 基於 GPU 的配置,帶來卓越的訓練效能
  • Root 訪問許可權,可完全自定義環境
  • 支援跨多個例項進行分散式訓練
  • 允許使用 Spot 例項進行訓練,從而最大限度地降低成本
  • 預配置 Jupyter Notebook 伺服器,可立即使用
  • Conda 環境,用於隔離的軟體包管理
  • 支援基於 CPU 和 GPU 的訓練工作負載
  • 定期更新至最新的框架版本

技術能力

  • 完全掌控訓練基礎設施和環境
  • 安裝和配置自定義庫
  • 支援複雜的分散式訓練設定
  • 能夠更改系統級配置
  • 透過 SDK 和 CLI 整合 AWS 服務
  • 支援自定義 Docker 容器和編排
  • 訪問 HPC 例項
  • 靈活的儲存選項,包括 EBS/例項儲存
  • 網路調優,提升多節點訓練效能

效能最佳化

  • 分析訓練工作負載以發現瓶頸
  • 最佳化資料載入和預處理流水線
  • 合理設定批次大小,以提升記憶體效率
  • 在支援混合精度訓練的場景下進行訓練
  • 在足夠大的批次訓練中應用梯度累積
  • 對於超大型模型,考慮模型並行化
  • 最佳化網路配置以進行分散式訓練

AWS Deep Learning AMI定價

AWS Deep Learning AMI 是預先構建的 Amazon 機器映像,已針對機器學習任務進行配置,並支援 TensorFlow、PyTorch 和 MXNet 等框架。但是,底層 EC2 例項型別和使用時間可能會產生費用。

AWS Deep Learning AMI定價

Source: AWS Deep Learning AMIs

例如,inf2.8xlarge 例項每小時收費約為 2.24 美元,而 t3.micro 例項每小時收費 0.07 美元,並且也符合 AWS 免費套餐的條件。g4ad.4xlarge 例項每小時收費約為 1.12 美元,適用於深度和大規模機器學習應用程式。附帶的 EBS 卷需支付額外的儲存費用。

模型構建和訓練的替代服務

  • Amazon SageMaker:亞馬遜的旗艦服務,用於大規模構建、訓練和部署機器學習模型,具有針對效能最佳化的內建演算法、自動模型調優功能以及透過 SageMaker Studio 提供的整合開發環境。
  • Amazon Bedrock:對於生成式人工智慧應用程式,Bedrock 透過簡單的 API 介面充當來自領先提供商(Anthropic、AI21、Meta 等)的基礎模型的訪問層,無需處理任何基礎設施。
  • EC2 例項 (P3、P4):對於 IO 密集型深度學習工作負載,配備 GPU 最佳化例項,可提供最高效能以實現高效的模型訓練。

模型評估

模型評估的主要服務是 Amazon CodeGuru。它執行程式分析和機器學習,以評估機器學習程式碼質量,同時查詢效能瓶頸並提出改進建議。

主要功能

  • 基於機器學習的洞察,自動進行程式碼質量評估
  • 識別效能問題並分析瓶頸。
  • 檢測機器學習程式碼中的安全漏洞
  • 提供降低計算資源成本的建議。
  • 新增到流行的開發平臺和 CI/CD 流程。
  • 持續監控生產環境中的應用程式效能
  • 自動提供程式碼改進建議
  • 支援多種語言,包括 Python
  • 基於效能的即時異常檢測
  • 效能歷史趨勢分析

Amazon CodeGuru的技術功能

  • 程式碼審查,查詢潛在問題。
  • 執行時效能分析,以實現最佳效能
  • 將我們的解決方案與 AWS 服務整合,實現全面監控。
  • 自動生成包含關鍵洞察的報告。
  • 自定義指標跟蹤和警報
  • API 整合,實現程式設計訪問
  • 支援容器化應用程式
  • 整合 AWS Lambda 和基於 EC2 的應用程式。

效能最佳化

  • 應使用離線和線上評估策略。
  • 應使用交叉驗證來確定模型穩定性。
  • 測試模型時,應使用與訓練資料不同的資料。
  • 在評估過程中,除了技術指標外,我們還會關注業務 KPI。
  • 效能評估中應包含可解釋性指標。
  • 對於大規模模型更新,我們可能會進行 A/B 測試。
  • 模型將根據既定標準投入生產。

Amazon CodeGuru定價

Amazon CodeGuru Reviewer 提供基於可預測儲存庫大小的定價模型。在前 90 天,它提供免費套餐,覆蓋範圍在 100,000 loc 的閾值內,90 天后,每月價格設定為標準費率,前 100K 線路每 100K 線路 10 美元,接下來的每 100K 線路 30 美元(按每次湊整計算)。

Amazon CodeGuru定價

Source: Amazon CodeGuru

每個儲存庫包含無限數量的增量審查,以及每月兩次完整掃描。如果需要更多完整掃描,則需要額外支付每 10 萬行 10 美元的費用。定價基於每個儲存庫的最大分支,不包括空行或帶有程式碼註釋的行。此模型提供了一種簡單的成本估算機制,與之前的定價方法相比,可為您節省 90% 甚至更多的費用。

模型評估替代服務

  • Amazon SageMaker Experiments:它提供跟蹤、比較和管理模型和實驗版本的功能,並在訓練期間自動跟蹤引數、指標和工件,並提供對多個實驗的模型效能的視覺化比較。
  • Amazon SageMaker Debugger:在訓練期間,Debugger 會即時監控和除錯訓練作業,按指定間隔捕獲模型狀態並自動檢測異常。

機器學習模型部署

AWS Lambda 支援輕量級機器學習模型的無伺服器部署,並繼承了自動擴充套件和按使用付費的特性,使其能夠應對不可預測的工作負載。

主要功能

  • 無伺服器架構,可根據負載自動擴充套件
  • 按請求付費模式,可最佳化成本
  • 內建高可用性和容錯功能
  • 支援多種執行時環境,包括 Python、Node.js 和 Java
  • 跨多個執行環境自動負載均衡
  • 與 API Gateway 配合使用,建立 RESTful 端點
  • 接受來自各種 AWS 服務的事件驅動執行
  • 透過 CloudWatch 內建監控和日誌記錄
  • 透過容器映象支援容器化函式
  • VPC 整合,允許以安全的方式訪問私有資源

技術能力

  • 絕大多數執行時環境的冷啟動時間小於一秒
  • 併發執行擴充套件能力,支援數千次呼叫
  • 記憶體分配從 128 MB 到 10 GB,從而滿足各種工作負載的需求
  • 每次呼叫的超時時間最長可達 15 分鐘
  • 支援自定義執行時
  • 觸發器和目標與 AWS 服務整合
  • 支援配置環境變數
  • 用於共享程式碼和庫的層跨函式
  • 預置併發以保證執行效能

效能最佳化

  • 透過最佳化模型減少冷啟動問題。
  • 預置併發適用於工作可預測的情況。
  • 高效載入和快取模型
  • 最佳化與模型約束相關的記憶體分配
  • 外部服務可能受益於連線重用。
  • 應該分析函式效能,從而識別瓶頸。
  • 最佳化包大小。

Amazon SageMaker託管服務定價

Amazon SageMaker 託管服務採用按需付費模式,按秒計費,並額外收取儲存和傳輸費用。例如,在 ml.m5.large 例項中託管一個模型的費用約為每小時 0.115 美元,而在 ml.g5.xlarge 例項中託管一個模型的費用約為每小時 1.212 美元。AWS 允許 SageMaker 使用者透過承諾一定使用量(每小時 1 美元)一年或三年來節省費用。

部署備選服務:

  • Amazon SageMaker 託管服務:這為您提供完全託管的解決方案,用於大規模部署機器學習模型,以實現即時推理,包括自動擴充套件功能、透過生產變體進行 A/B 測試以及多種例項型別。
  • Amazon Elastic Kubernetes Service:當您需要對部署基礎設施進行更深入的控制時,EKS 為您提供基於容器的模型部署的託管 Kubernetes 服務。
  • Amazon Bedrock(API 部署):對於生成式 AI 應用程式,Bedrock 透過提供對基礎模型的便捷 API 訪問,消除了部署的複雜性,而無需擔心基礎設施的管理。

機器學習模型的監控與維護

機器學習模型的監控與維護過程可由 Amazon SageMaker 模型監控服務提供。該服務透過將模型的預測結果與訓練資料進行比較,監測已部署模型概念中的任何變化,並在模型質量下降時發出警報。

Amazon SageMake

Source: Amazon SageMaker

主要功能

  • 自動化資料質量和概念漂移檢測
  • 針對不同型別的漂移設定獨立的警報閾值
  • 可自定義頻率選項的計劃監控作業
  • 包含全面詳細資訊和業務用例的違規報告
  • 與 CloudWatch 指標和警報良好整合
  • 支援單次和批次兩種監控形式
  • 針對分佈變化進行程序內變化分析
  • 基於訓練資料集建立基線
  • 沿時間軸的漂移指標視覺化
  • 與 SageMaker 管道整合,實現自動再訓練

技術能力

  • 用於分佈漂移檢測的統計檢驗
  • 支援自定義監控程式碼和指標
  • 使用訓練資料自動提供約束建議
  • 與 Amazon SNS 整合,實現警報
  • 資料質量指標視覺化
  • 針對特徵重要性漂移的可解釋性監控
  • 用於公平性評估的偏差漂移檢測
  • 支援監控表格資料和非結構化資料
  • 與 AWS Security Hub 整合,實現合規性監控

Amazon SageMaker 模型監控器的效能最佳化

  • 實施多層監控
  • 針對漂移幅度定義明確的干預閾值
  • 構建儀表板利益相關者可以瞭解模型的健康狀況
  • 制定應對不同型別警報的策略
  • 使用影子模式測試模型更新
  • 除了自動監控之外,定期審查效能
  • 跟蹤技術和業務 KPI

Amazon SageMaker 模型監控器定價

Amazon SageMaker 模型監控器的價格是可變的,取決於例項型別和作業的監控時長。例如,如果您租用 ml.m5.large,在接下來的 31 天內,每天執行兩個 10 分鐘的監控作業,每小時費用為 0.115 美元,則大約需要支付 1.19 美元。

執行基準作業以定義監控引數,以及啟用即時終端節點或批次轉換作業的資料捕獲時,可能會產生額外的計算和儲存費用。在成本和頻率方面選擇合適的例項型別是管理和最佳化這些成本的關鍵。

機器學習模型監控和維護的替代服務:

  • Amazon CloudWatch:它監控基礎設施和應用程式級指標,提供包含自定義儀表板和警報的完整監控解決方案。
  • AWS CloudTrail:它記錄您 AWS 基礎設施中的所有 API 呼叫,以跟蹤使用情況和所做的更改,從而維護機器學習操作的安全性和合規性。

AWS ML 服務概述

任務 AWS 服務 理由
資料收集 Amazon S3 主要提到的用於資料收集的服務——高度可擴充套件、耐用的物件儲存,構成了 AWS 中大多數機器學習工作流的基礎。
資料準備 AWS Glue 被識別為資料準備的關鍵服務,提供無伺服器 ETL 功能,具有視覺化作業設計器和自動擴充套件,用於機器學習資料準備。
探索性資料分析 (EDA) Amazon SageMaker Data Wrangler 專門用於 EDA——提供視覺化介面,內建圖表、自動異常檢測和超過 300 種資料轉換。
模型構建/訓練 AWS Deep Learning AMIs 強呼叫於模型構建的主要服務——預配置的 EC2 例項,內建各類機器學習框架,最大化靈活性和對訓練環境的控制。
模型評估 Amazon CodeGuru 指定用於模型評估的服務——利用機器學習驅動的見解進行程式碼質量評估、效能瓶頸識別和改進建議。
部署 AWS Lambda 用於模型部署的無伺服器服務——支援自動擴充套件、按使用付費和內建高可用性。
監控與維護 Amazon SageMaker Model Monitor 用於監控已部署模型的服務——檢測概念漂移和資料質量問題,並在模型效能下降時發出自動警報。

小結

AWS 提供強大的服務套件,支援從開發到部署的整個機器學習生命週期。其可擴充套件的環境支援高效的工程解決方案,同時緊跟生成式 AI、AutoML 和邊緣部署等技術的進步。透過在機器學習生命週期的每個階段利用 AWS 工具,個人和組織可以加速 AI 的採用、降低複雜性並削減運營成本。

無論您是剛剛起步還是正在最佳化現有工作流程,AWS 都能提供構建有效機器學習解決方案所需的基礎設施和工具,從而推動業務價值的提升。

評論留言