基础模型微调

重要

该功能在以下区域提供公共预览版centraluseastuseastus2northcentraluswestus

使用基础模型微调(现在是马赛克 AI 模型训练的一部分),可以使用自己的数据自定义基础模型,以优化其针对特定应用程序的性能。 通过执行全参数微调或继续训练基础模型,可以使用比从头开始训练模型少得多的数据、时间和计算资源来训练自己的模型。

借助 Databricks,可以在单个平台中拥有一切:用于训练的数据、要训练的基础模型、保存到 MLflow 的检查点、在 Unity Catalog 中注册并准备好部署的模型。

请参阅 教程:创建和部署基础模型微调运行 ,了解如何使用基础模型微调 API 创建运行,然后使用 Databricks UI 和马赛克 AI 模型服务查看结果并部署模型。

什么是基础模型微调?

基础模型微调使你能够使用 Databricks API 或 UI 来优化或进一步训练基础模型。

使用基础模型微调,可以:

  • 使用自定义数据训练模型,并将检查点保存到 MLflow。 保留对已训练模型的完全控制。
  • 自动将模型注册到 Unity Catalog,以便通过模型服务进行轻松部署。
  • 通过加载以前训练的模型的权重进一步训练已完成的专有模型。

Databricks 建议在以下情况下尝试基础模型微调:

  • 你已经尝试了几次学习,并希望获得更好的结果。
  • 你已尝试对现有模型进行提示工程,并希望获得更好的结果。
  • 你想要对自定义模型拥有完全所有权,以便实现数据隐私。
  • 你对延迟敏感或对成本敏感,并且想要将更小、更便宜的模型用于特定于任务的数据。

受支持的任务

基础模型微调支持以下用例:

  • 聊天补全:建议的任务。 通过用户与 AI 助手之间的聊天日志训练模型。 此格式既可用于实际的聊天日志,也可以用作问题解答和对话文本的标准格式。 文本会自动格式化为特定模型的相应格式。 有关模板化的详细信息,请参阅 HuggingFace 文档中的示例聊天模板
  • 监督式微调:根据结构化的提示-响应数据训练模型。 使用此方法使模型适应新任务、更改其响应样式或添加指令遵循功能。 此任务不会自动将任何格式应用于数据,仅在需要自定义数据格式时推荐使用。
  • 继续预训练:使用其他文本数据训练模型。 使用它将新知识添加到模型或将模型聚焦于特定领域。

要求

  • 以下某个 Azure 区域中的 Databricks 工作区:centraluseastuseastus2northcentraluswestus
  • 使用 pip install databricks_genai.. 安装的基础模型微调 API。
  • Databricks Runtime 12.2 LTS ML 或更高版本(如果数据位于 Delta 表中)。

有关所需输入数据格式的信息,请参阅“为基础模型准备数据”微调。

模型训练的建议数据大小

Databricks 建议最初使用一到四个时期进行训练。 评估经过微调的模型后,如果希望模型输出内容与训练数据更相似,则可以开始使用一到两个时期继续进行训练。

如果模型性能在微调数据中未表示的任务上显著下降,或者模型似乎输出了微调数据的精确副本,Databricks 会建议减少训练时期的数量。

若要进行监督式微调和聊天补全,应至少提供模型的一个完整上下文长度的足够标记。 例如,对于 meta-llama/Llama-2-7b-chat-hf 提供 4096 个标记,对于 mistralai/Mistral-7B-v0.1 提供 32768 个标记。

对于继续预训练,Databricks 建议至少提供 150 万个令牌,以获取能够学习自定义数据的更高质量的模型。

支持的模型

下表列出了受支持的模型。 如需了解最新的受支持模型及其关联的上下文长度,请使用 get_models() 函数。


from databricks.model_training import foundation_model

foundation_model.get_models()

重要

Meta Llama 3.2 已经由 LLAMA 3.2 社区许可完成授权,版权所有 © Meta Platforms, Inc.保留所有权利。 客户负责确保遵守此许可证的条款和 Llama 3.2 可接受的使用策略

Meta Llama 3.1 已经由 LLAMA 3.1 社区许可完成授权,版权所有 © Meta Platforms, Inc.保留所有权利。 客户需负责确保遵守适用的模型许可条款。

Llama 3 根据 LLAMA 3 社区许可授权,版权所有 © Meta Platforms, Inc.保留所有权利。 客户需负责确保遵守适用的模型许可条款。

Llama 2 和 Code Llama 模型根据 LLAMA 2 社区许可授权,版权所有 © Meta Platforms, Inc.保留所有权利。 客户需负责确保遵守适用的模型许可条款。

DBRX 根据 Databricks 开放模型许可证提供并受其约束,版权所有 © Databricks, Inc.保留所有权利。 客户有责任确保符合适用的模型许可证,包括 Databricks 可接受的使用策略

模型 上下文长度上限 备注
databricks/dbrx-base 32768
databricks/dbrx-instruct 32768
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-405B 131072
meta-llama/Meta-Llama-3.1-405B-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
meta-llama/Meta-Llama-3-70B 8192 2024 年 12 月 13 日之后,此模型将不再受支持。 有关推荐的替代模型,请参阅已停用的模型
meta-llama/Meta-Llama-3-70B-Instruct 8192 2024 年 12 月 13 日之后,此模型将不再受支持。 有关推荐的替代模型,请参阅已停用的模型
meta-llama/Meta-Llama-3-8B 8192 2024 年 12 月 13 日之后,此模型将不再受支持。 有关推荐的替代模型,请参阅已停用的模型
meta-llama/Meta-Llama-3-8B-Instruct 8192 2024 年 12 月 13 日之后,此模型将不再受支持。 有关推荐的替代模型,请参阅已停用的模型
meta-llama/Llama-2-7b-hf 4096 2024 年 12 月 13 日之后,此模型将不再受支持。 有关推荐的替代模型,请参阅已停用的模型
meta-llama/Llama-2-13b-hf 4096 2024 年 12 月 13 日之后,此模型将不再受支持。 有关推荐的替代模型,请参阅已停用的模型
meta-llama/Llama-2-70b-hf 4096 2024 年 12 月 13 日之后,此模型将不再受支持。 有关推荐的替代模型,请参阅已停用的模型
meta-llama/Llama-2-7b-chat-hf 4096 2024 年 12 月 13 日之后,此模型将不再受支持。 有关推荐的替代模型,请参阅已停用的模型
meta-llama/Llama-2-13b-chat-hf 4096 2024 年 12 月 13 日之后,此模型将不再受支持。 有关推荐的替代模型,请参阅已停用的模型
meta-llama/Llama-2-70b-chat-hf 4096 2024 年 12 月 13 日之后,此模型将不再受支持。 有关推荐的替代模型,请参阅已停用的模型
codellama/CodeLlama-7b-hf 16384 2024 年 12 月 13 日之后,此模型将不再受支持。 有关推荐的替代模型,请参阅已停用的模型
codellama/CodeLlama-13b-hf 16384 2024 年 12 月 13 日之后,此模型将不再受支持。 有关推荐的替代模型,请参阅已停用的模型
codellama/CodeLlama-34b-hf 16384 2024 年 12 月 13 日之后,此模型将不再受支持。 有关推荐的替代模型,请参阅已停用的模型
codellama/CodeLlama-7b-Instruct-hf 16384 2024 年 12 月 13 日之后,此模型将不再受支持。 有关推荐的替代模型,请参阅已停用的模型
codellama/CodeLlama-13b-Instruct-hf 16384 2024 年 12 月 13 日之后,此模型将不再受支持。 有关推荐的替代模型,请参阅已停用的模型
codellama/CodeLlama-34b-Instruct-hf 16384 2024 年 12 月 13 日之后,此模型将不再受支持。 有关推荐的替代模型,请参阅已停用的模型
codellama/CodeLlama-7b-Python-hf 16384 2024 年 12 月 13 日之后,此模型将不再受支持。 有关推荐的替代模型,请参阅已停用的模型
codellama/CodeLlama-13b-Python-hf 16384 2024 年 12 月 13 日之后,此模型将不再受支持。 有关推荐的替代模型,请参阅已停用的模型
codellama/CodeLlama-34b-Python-hf 16384 2024 年 12 月 13 日之后,此模型将不再受支持。 有关推荐的替代模型,请参阅已停用的模型
mistralai/Mistral-7B-v0.1 32768
mistralai/Mistral-7B-Instruct-v0.2 32768
mistralai/Mixtral-8x7B-v0.1 32768

使用基础模型微调

可以使用 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 工作区进行模型训练。

    • 目前仅支持从 eastus2 中专用链接后面的存储读取数据。
  • 如果在将数据存储在 Unity 目录中的 Azure Data Lake Storage 帐户上启用了防火墙,则需要允许列出来自 Databricks 无服务器数据平面群集的流量,以便使用基础模型微调。 有关详细信息和可能的自定义解决方案,请联系 Databricks 帐户团队。