基礎模型微調
重要
這項功能在下列區域開放公開預覽:centralus
、eastus
、eastus2
、northcentralus
和 westus
。
使用基礎模型微調(現在是馬賽克 AI 模型訓練的一部分),您可以使用自己的數據來自定義基礎模型,以優化其特定應用程式的效能。 對基礎模型進行完整的參數微調或持續訓練後,相較於從頭訓練模型,自行訓練模型耗用的資料、時間和運算資源可大幅減少。
有了 Databricks,您可以在單一平台上獲得一切:用於訓練的您的數據、要訓練的基礎模型、儲存至 MLflow 的檢查點,以及已在 Unity Catalog 中註冊並準備部署的模型。
請參閱 教學課程:建立和部署基礎模型微調執行 ,以瞭解如何使用基礎模型微調 API 建立執行,然後使用 Databricks UI 和馬賽克 AI 模型服務來檢閱結果並部署模型。
什麼是基礎模型微調?
基礎模型微調可讓您使用 Databricks API 或 UI 來微調或進一步定型基礎模型。
使用基礎模型微調,您可以:
- 使用自訂資料訓練模型,並將檢查點儲存至 MLflow。 您保留已訓練模型的完整控制權。
- 自動將模型註冊至 Unity 目錄,以方便使用模型服務進行部署。
- 載入先前訓練之模型的權數,進一步訓練已完成的專屬模型。
Databricks 建議您在下列情況下嘗試基礎模型微調:
- 您已嘗試進行幾次學習,希望改善結果。
- 您已嘗試對現有模型進行提示工程,希望改善結果。
- 基於資料隱私,您想擁有自訂模型的完整所有權。
- 您對延遲或成本敏感度高,想針對特定工作資料使用更小也更便宜的模型。
支援的工作
基礎模型微調支援下列使用案例:
- 聊天完成:建議的工作。 用使用者與 AI 助理之間的聊天記錄訓練模型。 此格式可用於實際的聊天記錄,也可當成問題解答和交談文字的標準格式。 文字會自動格式化為適合特定模型的格式。 如需範本化的詳細資訊,請參閱 HuggingFace 文件的範例聊天範本。
- 指示微調:在結構化提示響應數據上訓練模型。 用這個方法配合新工作調整模型、變更其回覆風格,或新增指令遵循功能。 這項工作不會將任何格式設定自動套用至資料,而且唯有在需要自訂資料格式時才建議使用。
- 繼續預先訓練:使用其他文字資料訓練模型。 使用這項功能將新知識新增至模型,或讓模型聚焦於特定領域。
需求
- 下列其中一個 Azure 區域的 Databricks 工作區:
centralus
、eastus
、eastus2
、northcentralus
或westus
。 - 使用
pip install databricks_genai
安裝的基礎模型微調 API。 - 如果您的數據存儲在 Delta 表中,請使用 Databricks Runtime 12.2 LTS ML 或更高版本。
如需必要輸入數據格式的相關信息,請參閱準備基礎模型微調數據。
建議模型訓練使用的資料大小
Databricks 建議一開始用一到四個 Epoch 訓練。 評估微調的模型之後,如果希望模型輸出與訓練資料更相似,可以使用一到兩個以上 Epoch 開始繼續訓練。
如果模型處理微調資料未呈現之工作時,效能大幅降低,或者模型似乎輸出與微調資料一模一樣的複本,Databricks 建議減少訓練的 Epoch 數量。
為微調模型指令和完成對話,您應至少提供足夠的令牌,以滿足模型的完整上下文長度。 例如,meta-llama/Llama-3.2-3B-Instruct
有 131072 個令牌。
為了持續進行預先訓練,Databricks 建議至少使用 150 萬個標記,以獲得能夠學習自定義數據的更高品質模型。
支援的模型
下表列出支援的模型。 如需適用的模型授權和可接受的使用原則資訊,請參閱 模型授權。
若要繼續支援最先進的模型,Databricks 可能會更新支援的模型或淘汰較舊的模型。 請參閱 ,有關即將淘汰的模型。
Model | 內容長度上限 | 備註 |
---|---|---|
meta-llama/Llama-3.2-1B |
131072 | |
meta-llama/Llama-3.2-1B-Instruct |
131072 | |
meta-llama/Llama-3.2-3B |
131072 | |
meta-llama/Llama-3.2-3B-Instruct |
131072 | |
meta-llama/Meta-Llama-3.1-70B |
131072 | |
meta-llama/Meta-Llama-3.1-70B-Instruct |
131072 | |
meta-llama/Meta-Llama-3.1-8B |
131072 | |
meta-llama/Meta-Llama-3.1-8B-Instruct |
131072 |
即將淘汰的模型
下表列出計劃淘汰的支援模型。 請參閱 已淘汰的模型,以取得已淘汰的模型、計劃淘汰日期,以及建議的模型替代方案。
重要
2025 年 1 月 30 日之後,Meta Llama 3.1 405B 模型系列已淘汰。 如需建議的替代模型,請參閱 淘汰的模型。
Model | 內容長度上限 | 備註 |
---|---|---|
mistralai/Mistral-7B-v0.1 |
32768 | 2025 年 4 月 30 日之後,不再支援此模型。 |
mistralai/Mistral-7B-Instruct-v0.2 |
32768 | 2025 年 4 月 30 日之後,不再支援此模型。 |
mistralai/Mixtral-8x7B-v0.1 |
32768 | 2025 年 4 月 30 日之後,不再支援此模型。 |
databricks/dbrx-base |
32768 | 2025 年 4 月 30 日之後,不再支援此模型。 |
databricks/dbrx-instruct |
32768 | 2025 年 4 月 30 日之後,不再支援此模型。 |
模型授權
下表提供支援的模型系列適用的模型授權和可接受的使用原則資訊。
模型家庭 | 授權和可接受的使用原則 |
---|---|
Meta Llama 3.2 | Meta Llama 3.2 根據 LLAMA 3.2 Community License 獲得授權,Copyright © Meta Platforms, Inc。著作權所有,並保留一切權利。 客戶須負責確保其遵守此授權的條款,以及 Llama 3.2 可接受的使用原則。 |
Meta Llama 3.1 | Meta Llama 3.1 根據 LLAMA 3.1 Community License 獲得授權,Copyright © Meta Platforms, Inc。著作權所有,並保留一切權利。 客戶應負責確保遵循適用的模型授權。 |
DBRX | DBRX 係依 Databricks Open Model License 授權並受其約束,Copyright © Databricks, Inc。著作權所有,並保留一切權利。 客戶應負責確保遵循適用的模型授權,包括 Databricks 使用原則。 |
使用基礎模型微調
基礎模型微調可使用 SDK 來存取 databricks_genai
。 下列範例會建立並啟動一個使用 Unity Catalog 卷資料的訓練運行。 如需設定詳細數據,請參閱 使用基礎模型微調 API 建立定型執行。
from databricks.model_training import foundation_model as fm
model = 'meta-llama/Meta-Llama-3.1-8B-Instruct'
# UC Volume with JSONL formatted data
train_data_path = 'dbfs:/Volumes/main/mydirectory/ift/train.jsonl'
register_to = 'main.mydirectory'
run = fm.create(
model=model,
train_data_path=train_data_path,
register_to=register_to,
)
如需逐步說明資料準備、微調訓練回合組態和部署的指令微調範例,請參閱指令微調:具名實體辨識示範筆記本。
限制
大型資料集 (10B+ 權杖) 因為運算可用性,所以未獲支援。
針對持續的預訓練,工作負載的文件需限制在 60-256MB。 大於 1GB 的檔案可能導致處理時間較長。
Databricks 致力於使用基礎模型微調,讓最新的最先進的模型可供自定義。 當新的模型可供使用時,可能會移除從 API 或 UI 存取較舊的模型、較舊的模型可能已被取代或支援的模型更新。 請參閱生成式 AI 模型維護原則。
如果您已在工作區上設定 Azure Private Link,基礎模型微調僅支援
eastus2
中的 Azure 工作區。如果您的記憶體上已設定 Private Link,Databricks 建議使用 Unity 目錄數據表。
如果您在 Azure Data Lake Storage 帳戶上啟用防火牆,該帳戶會將您的數據儲存在 Unity 目錄中,您必須將來自 Databricks 伺服器無需管理的數據平面叢集的流量加入允許清單,才能使用基礎模型微調。 如需詳細資訊和可能的自訂解決方案,請連絡 Databricks 帳戶團隊。