Gemma 模型微调

微调生成式人工智能 (AI) 模型(例如 Gemma)会修改模型的行为。通常,您微调 Gemma 是为了提高其在特定任务或领域中的表现,或者更好地履行某种角色(例如客户服务)。Gemma 模型发布时权重是开放的,这意味着您可以修改这些权重,从而更改模型的行为。微调 Gemma 模型的一般步骤如下:

选择框架

Gemma 模型与各种 AI 调优框架兼容。每种框架都有各种优势,并且通常局限于特定的模型格式。以下是使用各种框架调优 Gemma 模型的指南:

确保您选择的框架支持作为输出的预期部署模型格式(例如 Keras 格式、Safetensors 或 GGUF)。

收集数据

模型调整需要数据。调整数据通常由包含预期回答的输入数据对组成。您可以在网上找到许多公共数据集,用于训练各种任务或输出。例如,如果您想训练 Gemma 模型将汽车零部件说明转换为零件编号,则数据集可能包含以下内容:

training_data = [
  {"input_text": "Part number for A4 brake caliper", "output_text": "4M0615107BS"},
  {"input_text": "Part number for Beetle fuel pump", "output_text": "6A127026H"},
  {"input_text": "Part number for Camaro cylinder head", "output_text": "12711770"},
]

如果您希望 Gemma 模型执行一组特定的任务或角色,通常需要编译一个数据集,其中展示该任务的多种变体。调优模型所需的数据量取决于您的目标,尤其是您希望模型实现的行为变化幅度,以及您希望模型的效果如何(基于要完成的任务和输入数据的变化程度)。

一般来说,您应先使用一小部分数据进行任务调优,然后调整训练参数并添加数据,直到任务性能满足您的需求。我们的一些示例应用表明,只需 20 个提示-回答对,您就可以影响 Gemma 模型的行为。如需了解详情,请参阅使用 Gemma 构建企业电子邮件 AI 助理使用 Gemma 通过口语指令执行任务

调优和测试模型

准备好调优框架和调优数据后,您就可以开始 Gemma 模型调优流程了。在进行调整时,您可以选择调整方式,这会影响完成调整所需的资源。您还应为经过调优的模型制定测试计划,以评估其在调优后是否能按预期运行。

参数高效微调

在微调 Gemma 等开放权重模型时,您可以选择调优模型的所有参数,也可以使用更新部分参数的资源占用量较低的参数高效调优技术。完整调整方法意味着,在应用调整数据时,您会为模型的所有参数计算新的权重。由于您需要针对数十亿个参数执行这些计算,因此这种方法的计算密集度和内存密集度都很高。使用资源占用较少的调优方法(称为参数高效微调 [PEFT]),包括低秩适配器 (LoRA) 调优等技术,可以使用更少的计算资源获得类似的结果。如需详细了解如何使用 LoRA 以更少的资源进行调优,请参阅使用 LoRA 在 Keras 中微调 Gemma 模型在 Hugging Face 中微调 Gemma 模型

测试调优后的模型

针对特定任务对模型进行调优后,您应针对要让模型执行的一组任务测试其性能。您应使用模型未专门训练过的任务或请求来测试模型。如何测试经过调优的模型取决于您希望模型执行的任务以及您对模型输入和输出的管理密切程度。管理生成式模型测试的常见方法是使用成功、失败和边界情况:

  • 成功测试:经过调整的模型应始终能够成功执行的请求。
  • 失败测试:请求调整后的模型始终无法执行或明确拒绝执行(如果有请求)。
  • 边界测试:如果请求在可接受的输出行为的定义边界(或一组边界)内,则经过调优的模型应能够执行这些请求。

在测试生成式 AI 应用的失败或边界条件时,您还应应用 Responsible Generative AI 工具包中所述的生成式 AI 安全方法、技术和工具。

部署模型

完成调优并成功完成测试后,就可以部署模型了。通常,您可以参阅所选框架的文档,了解如何部署经过调优的模型。

如果您要部署使用 LoRA 优化权重的模型,请注意,使用此技术时,您通常需要同时部署原始模型及其权重,并将 LoRA 权重作为模型的额外计算层。