跳到主要內容
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筆記本
  • 確保資料血緣追蹤,滿足監管要求

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