基础模型训练
重要
此功能目前以公共预览版提供。 联系你的 Databricks 帐户团队以注册公共预览版。
使用基础模型训练时,可以使用自己的数据来自定义基础模型,以针对特定应用优化其性能。 通过微调或继续训练基础模型,可以使用比从头开始训练模型少得多的数据、时间和计算资源来训练自己的模型。
借助 Databricks,可以在单个平台中拥有一切:用于训练的数据、要训练的基础模型、保存到 MLflow 的检查点、在 Unity Catalog 中注册并准备好部署的模型。
本文概述了 Databricks 上的基础模型训练。 有关如何使用它的详细信息,请参阅以下内容:
什么是基础模型训练?
基础模型训练让你可以使用 Databricks API 或 UI 来优化或进一步训练基础模型。
使用基础模型训练时,你可以:
- 使用自定义数据训练模型,并将检查点保存到 MLflow。 保留对已训练模型的完全控制。
- 自动将模型注册到 Unity Catalog,以便通过模型服务进行轻松部署。
- 通过加载以前训练的模型的权重进一步训练已完成的专有模型。
Databricks 建议在以下情况下尝试基础模型训练:
- 你已经尝试了几次学习,并希望获得更好的结果。
- 你已尝试对现有模型进行提示工程,并希望获得更好的结果。
- 你想要对自定义模型拥有完全所有权,以便实现数据隐私。
- 你对延迟敏感或对成本敏感,并且想要将更小、更便宜的模型用于特定于任务的数据。
受支持的任务
基础模型训练支持以下用例:
- 监督式微调:根据结构化的提示-响应数据训练模型。 使用此方法使模型适应新任务、更改其响应样式或添加指令遵循功能。
- 继续预训练:使用其他文本数据训练模型。 使用它将新知识添加到模型或将模型聚焦于特定领域。
- 聊天补全:通过用户与 AI 助手之间的聊天日志训练模型。 此格式既可用于实际的聊天日志,也可以用作问题解答和对话文本的标准格式。 文本会自动格式化为特定模型的相应聊天格式。
要求
- 以下某个 Azure 区域中的 Databricks 工作区:
centralus
、eastus
、eastus2
、northcentralus
、westcentralus
、westus
、westus3
。 - 使用
pip install databricks_genai
安装的基础模型训练 API。 - Databricks Runtime 12.2 LTS ML 或更高版本(如果数据位于 Delta 表中)。
有关所需输入数据格式的信息,请参阅为基础模型训练准备数据。
模型训练的建议数据大小
若要进行监督式微调和聊天补全,应至少提供模型的一个完整上下文长度的足够标记。 例如,对于 meta-llama/Llama-2-7b-chat-hf
提供 4096 个标记,对于 mistralai/Mistral-7B-v0.1
提供 32768 个标记。
对于继续预训练,Databricks 建议至少提供 150 万个样本,以获取能够学习自定义数据的更高质量的模型。
支持的模型
重要
Llama 3 根据 LLAMA 3 社区许可授权,版权所有 © Meta Platforms, Inc.保留所有权利。 客户需负责确保遵守适用的模型许可条款。
Llama 2 和 Code Llama 模型根据 LLAMA 2 社区许可授权,版权所有 © Meta Platforms, Inc.保留所有权利。 客户需负责确保遵守适用的模型许可条款。
DBRX 根据 Databricks 开放模型许可证提供并受其约束,版权所有 © Databricks, Inc.保留所有权利。 客户有责任确保符合适用的模型许可证,包括 Databricks 可接受的使用策略。
模型 | 上下文长度上限 |
---|---|
databricks/dbrx-base |
4096 |
databricks/dbrx-instruct |
4096 |
meta-llama/Meta-Llama-3-70B |
8192 |
meta-llama/Meta-Llama-3-70B-Instruct |
8192 |
meta-llama/Meta-Llama-3-8B |
8192 |
meta-llama/Meta-Llama-3-8B-Instruct |
8192 |
meta-llama/Llama-2-7b-hf |
4096 |
meta-llama/Llama-2-13b-hf |
4096 |
meta-llama/Llama-2-70b-hf |
4096 |
meta-llama/Llama-2-7b-chat-hf |
4096 |
meta-llama/Llama-2-13b-chat-hf |
4096 |
meta-llama/Llama-2-70b-chat-hf |
4096 |
codellama/CodeLlama-7b-hf |
16384 |
codellama/CodeLlama-13b-hf |
16384 |
codellama/CodeLlama-34b-hf |
16384 |
codellama/CodeLlama-7b-Instruct-hf |
16384 |
codellama/CodeLlama-13b-Instruct-hf |
16384 |
codellama/CodeLlama-34b-Instruct-hf |
16384 |
codellama/CodeLlama-7b-Python-hf |
16384 |
codellama/CodeLlama-13b-Python-hf |
16384 |
codellama/CodeLlama-34b-Python-hf |
16384 |
mistralai/Mistral-7B-v0.1 |
32768 |
mistralai/Mistral-7B-Instruct-v0.2 |
32768 |
mistralai/Mixtral-8x7B-v0.1 |
32768 |
使用基础模型训练
可以使用 databricks_genai
SDK 访问基础模型训练。 以下示例创建并启动了使用 Unity Catalog 卷中的数据的训练运行。 有关配置详细信息,请参阅使用基础模型训练 API 创建训练运行。
from databricks.model_training import foundation_model as fm
model = 'meta-llama/Llama-2-7b-chat-hf'
# 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+ 标记)。
- 不支持 PrivateLink。
- 对于连续预训练,工作负载限制为 60-256MB 文件。 大于 1GB 的文件可能会导致处理时间过长。
- Databricks 努力使最新、最先进的模型可通过基础模型训练进行自定义。 随着新模型可用,我们可能会移除从 API 和/或 UI 访问旧模型的功能、弃用旧模型或更新支持的模型。 如果基础模型将从 API 和/或 UI 中移除或弃用,Databricks 将执行以下步骤,在移除和/或弃用日期之前至少三个月通知客户:
- 在你的 Databricks 工作区的“试验 > 基础模型训练”页的模型卡片中显示警告消息,指出模型已计划弃用。
- 更新我们的文档,加入一个指出模型已计划弃用的通知。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈