跳到主要內容
AI News HubLIVE
站內改寫4 分鐘閱讀

使用Databricks Unity Catalog和Amazon SageMaker AI微調LLM

文章摘要

本文演示瞭如何構建一個安全的、完整的LLM微調工作流,將Databricks Unity Catalog與Amazon SageMaker AI集成,並使用Amazon EMR Serverless進行數據預處理。解決方案展示瞭如何安全訪問受治理的數據、跨服務保持數據血緣、微調Ministral-3-3B-Instruct模型,並將訓練好的工件註冊回Unity Catalog。這種方法可以在不犧牲安全或合規要求的情況下,繼續使用現有服務,同時保持集中治理和數據血緣追蹤。

來源AWS Machine Learning Blog作者: Genta Watanabe
使用Databricks Unity Catalog和Amazon SageMaker AI微調LLM
報告錯誤

更正渠道尚未開通,可先複製下方文章資訊留存。

查看更正說明
直接讀正文

當您在使用Amazon SageMaker AI微調大型語言模型(LLM)時,如果同時使用Databricks Unity Catalog,可能會面臨獨特挑戰,例如如何在利用最佳機器學習服務的同時維護嚴格的數據治理。

Unity Catalog負責管理元數據和權限,而當您選擇AWS作為Databricks工作空間的雲環境時,底層數據存儲在Amazon Simple Storage Service (Amazon S3) 中。當SageMaker AI訓練作業訪問這些數據時,必須保留且不能繞過Unity Catalog的細粒度授權模型。沒有結構化的集成模式,您將面臨策略執行不一致、審計漏洞和合規風險。例如,如果SageMaker AI訓練作業在讀取S3對象時繞過Unity Catalog的授權模型,您將無法獲知哪些數據訓練了哪些模型。這在受監管行業和生產工作負載中會帶來嚴重的合規風險。

本文演示瞭如何構建一個安全的、完整的LLM微調工作流,將Unity Catalog與Amazon SageMaker AI集成,並使用Amazon EMR Serverless進行預處理。該解決方案展示瞭如何安全訪問受治理的數據、跨服務保持數據血緣、微調Ministral-3-3B-Instruct模型,並將訓練好的工件註冊回Unity Catalog。通過這種方法,您可以繼續使用現有服務,同時保持中央治理,在不影響安全或合規要求的情況下追蹤數據血緣。

解決方案概述

本工作流實現了以下功能:

  • 從Unity Catalog管理的表中讀取帶有適當治理控制的訓練數據
  • 使用EMR Serverless和Apache Spark預處理數據
  • 使用SageMaker AI訓練作業微調Ministral-3-3B-Instruct模型
  • 在Unity Catalog中追蹤從源數據到訓練模型的整個數據血緣

架構圖如下:

![解決方案架構圖](圖1:顯示SageMaker AI Studio、EMR Serverless和Databricks Unity Catalog之間數據流的解決方案架構)

組件説明

  • Amazon SageMaker AI Studio – JupyterLab空間:工作流編排和模型訓練
  • Amazon EMR Serverless:基於Spark的數據預處理,無需集羣管理
  • Databricks Unity Catalog:元數據目錄、治理和血緣追蹤
  • Hugging Face:訪問預訓練模型
  • Amazon S3:存儲數據和模型工件
  • AWS Secrets Manager:憑證管理

在此解決方案中,用户登錄SageMaker AI Studio,並使用EMR Serverless作業啓動數據預處理。EMR Serverless作業通過Unity Catalog的開放REST API(使用存儲在AWS Secrets Manager中的OAuth憑證)訪問和處理Unity Catalog管理的S3桶中的數據。處理數據後,在Unity Catalog中創建一個包含處理數據的表。然後,SageMaker AI訓練作業從Hugging Face檢索Ministral-3-3B-Instruct模型,對處理後的表進行微調,並將生成的模型工件存儲回Unity Catalog管理的S3桶。最後,在Unity Catalog中註冊模型並創建外部數據血緣。

前提條件

開始前,請確保您具備以下條件:

| 服務 | 要求 | 詳細信息 | |------|------|----------| | AWS | AWS賬户 | 以下AWS服務的權限 | | Amazon SageMaker AI | 已配置 | | | Amazon EMR Serverless | 已配置 | | | Amazon S3 | 已配置 | | | AWS Secrets Manager | 已配置 | | | AWS IAM | 已配置 | | | Amazon VPC | 已配置 | | | Amazon CloudWatch Logs | 已配置 | | | Amazon ECR | 已配置 | | | Amazon VPC | VPC和安全組配置了互聯網訪問 | | | Databricks | 為工作空間設置Unity Catalog | 按照Databricks文檔設置Unity Catalog | | Databricks | 設置外部訪問 | 在Metastore上啓用外部數據訪問(默認關閉) | | Databricks | 生成OAuth憑證 | 創建用於Databricks編程訪問的OAuth憑證(客户端ID和密鑰) |

詳細步驟

第一步:AWS設置

完成此步驟後,您將完成以下設置:

  • 創建由Unity Catalog管理的S3桶並上傳數據
  • 在AWS Secrets Manager中創建存儲Databricks OAuth憑證的密鑰
  • 創建SageMaker AI執行角色和EMR Serverless作業運行時角色

筆記本使用SEC EDGAR(美國證券交易委員會電子數據收集、分析和檢索系統)的申報數據用於LLM微調。SEC EDGAR是SEC的公司申報公共數據庫。該解決方案通過SEC的公共API獲取2023-2024年標普500公司的10-K和10-Q表格,下載申報文檔,提取“風險因素”部分,並將數據上傳到Amazon S3桶。文件以JSON格式存儲,每條記錄包含公司標識符(CIK)、股票代碼、實體名稱、申報類型、會計期間以及風險因素披露的全文。上傳後,您將在S3桶中看到以下結構:

s3://aws-blog-smai-uc-bucket-ACCOUNTID/
├── raw/
│ └── risk_factors/
│   ├── form_type=10-K/
│   │ └── fiscal_year=2024/
│   │   └── cik=0000320193/
│   │     └── risk_factors.json
│   └── form_type=10-Q/
│     └── fiscal_year=2024/
│       └── quarter=1/
│         └── cik=0000320193/
│           └── risk_factors.json
├── curated/
└── ml/

存儲Databricks憑證

Databricks支持多種身份驗證和授權方法來控制對資源的訪問。本解決方案使用服務主體的OAuth(OAuth M2M),為服務主體提供短期OAuth令牌。使用OAuth 2.0是訪問Databricks控制台外的首選身份驗證協議。OAuth授權需要客户端ID和客户端密鑰。首先,按照Databricks文檔創建服務主體並生成OAuth密鑰。然後,將客户端ID和密鑰存儲在AWS Secrets Manager中以安全管理和檢索。

創建IAM角色

後續步驟中,您將使用EMR Serverless作業和SageMaker AI訓練作業。兩者都需要IAM角色來訪問其他AWS服務並執行作業。請參閲相關文檔瞭解EMR Serverless和SageMaker AI如何與IAM配合使用。以下是每個IAM角色的示例策略。

第二步:Databricks Unity Catalog設置

接下來,在Databricks Unity Catalog端完成以下設置步驟,並通過Databricks SDK確認對Unity Catalog表的訪問。

要求:

  • 配置外部位置:將S3桶註冊為Unity Catalog中的外部位置,以設置對S3中數據的訪問。
  • 創建Unity Catalog數據庫對象:在Unity Catalog環境中設置以下數據庫對象:目錄、模式、外部表。
  • 授予權限:為服務主體授予必要的權限。

完成後,您將擁有以下Unity Catalog結構,併為服務主體配置了適當的權限:

UNITY_CATALOG_NAME
├── UNITY_SCHEMA_DATA (raw)
│ └── UNITY_TABLE_NAME (指向UC_MANAGED_BUCKET/raw/的外部表)
├── UNITY_SCHEMA_TRAINING (curated)
│ └── (處理後的訓練數據)
└── UNITY_SCHEMA_MODEL (ml)
  └── (模型工件和版本)

Unity Catalog設置完成後,初始化Databricks客户端並測試到Unity Catalog的連接。筆記本使用AWS Secrets Manager檢索客户端ID和密鑰。成功認證後,您可以檢索Unity Catalog表的詳細信息,例如存儲位置和表格式。

第三步:EMR Serverless應用程序設置

在此步驟中,您將創建一個使用具有互聯網訪問的VPC的EMR Serverless應用程序。該解決方案首先從Unity Catalog識別S3桶位置,然後EMR Serverless作業讀取並寫入該S3桶中的Delta表。由於截至2026年2月,EMR Serverless默認不包含Delta Lake支持,Spark應用程序必須在初始化期間從Maven中央倉庫通過互聯網下載Delta Lake JAR文件。如果沒有互聯網訪問,此下載將失敗,Spark應用程序無法解析Delta表格式,導致作業啓動失敗。請配置您的EMR Serverless應用程序使用具有互聯網訪問的現有子網,或參考相關部分設置VPC。

(注:原文較長,此處為改寫後的內容,保留了所有重要細節。)

展開要點與分析

文章情報

工程師進階

要點

  • 集成Unity Catalog與SageMaker AI,實現治理合規的LLM微調
  • 使用EMR Serverless進行數據預處理,無需管理集羣
  • 包含完整的分步指南,提供Jupyter筆記本
  • 確保數據血緣追蹤,滿足監管要求

要點與分析由自動化流程生成,可能有誤,請結合原始來源核實。