這很重要
這項功能位於 測試版 (Beta) 中。
本文說明 Databricks 上的無伺服器 GPU 計算,並提供建議的使用案例、如何設定 GPU 計算資源和功能限制的指引。
什麼是無伺服器 GPU 計算?
無伺服器 GPU 計算是 無伺服器計算供應專案的一部分。 無伺服器 GPU 計算是針對自定義單一和多節點 深度學習 工作負載特製化。 您可以使用無伺服器 GPU 計算,使用您慣用的架構來定型和微調自定義模型,並取得最先進的效率、效能和品質。
無伺服器 GPU 計算包括:
- Notebook、Unity 目錄和 MLflow 之間的整合式體驗: 您可以使用 Notebooks 以互動方式開發程式代碼。
- A10 GPU 加速器:A10 GPU 旨在加速中小型機器學習和深度學習工作負載,包括經典 ML 模型和微調較小的語言模型。 A10 非常適合具有中等計算要求的任務。
- 多 GPU 和多節點支援: 您可以使用無伺服器 GPU Python API 執行分散式訓練工作負載、多個 GPU 和多個節點。 請參閱 分散式訓練。
無伺服器 GPU 計算上預安裝的套件不是 Databricks Runtime ML 的取代專案。 雖然有一般套件,但並非所有 Databricks 執行時間 ML 依賴項和函式庫都會反映在無伺服器 GPU 計算環境中。
無伺服器 GPU 運算上的 Python 環境
Databricks 提供兩個受控環境來服務不同的使用案例。
備註
無伺服器 GPU 運算不支援自訂基礎環境。 請改用預設或 AI 環境,並直接在「環境」側邊面板pip install或其中指定其他相依性。
預設基礎環境
這提供了一個具有穩定客戶端 API 的最小環境,以確保應用程序兼容性。 只會安裝必要的 Python 套件。 這可讓 Databricks 獨立升級伺服器、提供效能改善、安全性增強功能,以及錯誤修正,而不需要對工作負載進行任何程式代碼變更。 如果您想要完全自訂訓練的環境,請選擇此環境。
如需詳細資訊,請參閱版本資訊:
AI 環境
Databricks AI 環境可在無伺服器 GPU 環境 4 中使用。 AI 環境建置在預設環境之上,具有常見的執行階段套件和 GPU 上機器學習專用的套件。 它包含流行的機器學習庫,包括用於模型訓練和推理的 PyTorch、langchain、transformers、ray 和 XGBoost。 如果您要執行訓練工作負載,請選擇此環境。
如需詳細資訊,請參閱版本資訊:
建議使用案例
Databricks 建議使用無伺服器 GPU 計算資源,適用於任何需要訓練自定義及 GPU 的模型訓練使用案例。
例如:
- LLM 微調
- 計算機視覺
- 推薦系統
- 增強式學習
- 以深度學習為基礎的時間序列預測
需求
- 下列其中一個 Azure 支持區域的工作區:
eastuseastus2centralusnorthcentraluswestcentraluswestus
設定伺服器無需 GPU 計算
若要將筆記本連線到無伺服器 GPU 運算並設定環境:
- 在筆記本中,按一下頂端的 [連線 ] 下拉式功能表,然後選取 [ 無伺服器 GPU]。
- 按一下
以開啟 「環境」 側邊面板。
- 從 [加速器] 欄位選取 [A10]。
- 在基本環境欄位中選取無以設為預設環境,或選取AI v4以設為AI環境。
- 如果您從 [基本環境] 欄位中選擇 [無],請選取 [環境版本]。
- 按一下 [套用] ,然後 按一下 [確認 您要將無伺服器 GPU 計算套用至筆記本環境]。
備註
閒置 60 分鐘後將自動終止與您的計算資源的連線。
將函式庫新增至環境
您可以在無伺服器 GPU 計算環境中安裝額外的函式庫。 請參閱 將相依性新增至筆記本。
備註
使用 「環境」 面板新增相依性,如無伺服器 GPU 運算排程工作不支援將 相依性新增至筆記本 中所示。
建立和排程作業
下列步驟說明如何為無伺服器 GPU 運算工作負載建立和排程任務。 如需詳細資訊,請參閱 建立和管理排程的筆記本作業 。
開啟您要使用的筆記本之後:
- 選取右上角的 排程 按鈕。
- 選取 [新增排程]。
- 使用「工作名稱」、「排程」和「計算」填入「新排程」表單。
- 選取 ,創建。
您也可以從 作業和管線 UI 建立和排程作業。 請參閱 建立新作業 以取得逐步指引。
分散式訓練
您可以使用 無伺服器 GPU Python API 跨多個 GPU 啟動分散式訓練 (無論是在單一節點內還是跨多個節點)。 API 提供簡單、統一的介面,可抽象化 GPU 佈建、環境設定和工作負載分配的詳細資料。 只需進行最少的程式碼變更,您就可以從同一筆記本電腦從單一 GPU 訓練無縫遷移到跨遠端 GPU 的分散式執行。
裝飾器@distributed 的工作原理很像使用 torchrun 啟動多節點訓練,但使用純 Python。 例如,下面的程式碼片段會將 hello_world 函式分散到 8 個遠端的 A10 GPU:
# Import the distributed decorator
from serverless_gpu import distributed
# Decorate the function with @distributed and specify the number of GPUs, the GPU type, and whether
# or not the GPUs are remote
@distributed(gpus=8, gpu_type='A10', remote=True)
def hello_world(name: str) -> None:
print('hello', name)
# Trigger the distributed execution of the hello_world function
hello_world.distributed('world')
執行時,會收集所有工作者的記錄和輸出,並顯示在工作區的 實驗 區段中。
此 API 支援熱門的平行訓練程式庫,例如 分散式資料平行 (DDP)、 全分片資料平行 (FSDP)、 DeepSpeed 和 Ray。
首先匯入 入門筆記本 以實際操作 API,然後探索 筆記本範例 ,以查看如何使用各種程式庫在實際分散式訓練案例中使用它。
如需完整詳細資訊,請參閱 無伺服器 GPU Python API 文件。
局限性
- 無伺服器 GPU 運算僅支援 A10 加速器。
- 不支援 Private Link。 不支援 Private Link 後面的儲存或 pip 倉庫。
- 合規性安全性配置檔工作區不支援無伺服器 GPU 計算(例如 HIPAA 或 PCI)。 目前不支持處理受管制的數據。
- 在無伺服器 GPU 運算平台上的排程任務,不支援與 Notebook 相關聯的不相容套件版本的自動修復功能。
- 工作負載的執行時間上限為 7 天。 對於超過此限制的模型訓練工作,請實作檢查點,並在達到執行時間上限後重新啟動工作。
最佳做法
請參閱 無伺服器 GPU 運算的最佳實務。
伺服器無需 GPU 運算問題排解
如果您在無伺服器 GPU 運算上執行工作負載時遇到問題,請參閱 疑難排解指南 ,以取得常見問題、因應措施和支援資源。
筆記本範例
以下是各種筆記本範例,示範如何使用無伺服器 GPU 運算來執行不同的任務。
| 任務 | Description |
|---|---|
| 大型語言模型 (LLM) | 微調大型語言模型的範例,包括參數效率高的方法,如 Low-Rank 適應 (LoRA) 和監督微調方法。 |
| 電腦視覺 | 電腦視覺任務的範例,包括物件偵測和影像分類。 |
| 基於深度學習的推薦系統 | 使用現代深度學習方法(例如雙塔模型)建立推薦系統的範例。 |
| 經典機器學習 | 傳統機器學習任務的範例,包括 XGBoost 模型訓練和時間序列預測。 |
| 多 GPU 和多節點分散式訓練 | 使用無伺服器 GPU API 跨多個 GPU 和節點擴展訓練的範例,包括分散式微調。 |
多GPU訓練範例
請參閱 Multi-GPU and multi-node distributed training 的筆記本,展示如何利用各種分散式訓練函式庫進行多 GPU 訓練。