微调生成式人工智能 (AI) 模型(例如 Gemma)会改变模型的行为。您通常会微调 Gemma,以期提高其在特定任务或领域的表现,或更好地履行某个角色(例如客户服务)。Gemma 模型以开放权重的形式发布,这意味着您可以修改这些权重,从而改变模型的行为。对 Gemma 模型进行微调的一般步骤如下:
选择框架
Gemma 模型与各种 AI 调优框架兼容。每种框架都具有各种优势,但通常仅限于特定的模型格式。以下是使用各种框架调优 Gemma 模型的指南:
- 使用 LoRA 的 Keras
- 适用于 JAX 的 Gemma 库
- Hugging Face
- Google Cloud GKE (使用 HF Transformers 的多 GPU)
- Google Cloud Vertex AI
- Unsloth
- Axolotl
- 使用分布式调优的 Keras
请确保您选择的框架支持您打算使用的部署模型格式(例如 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 应用的故障或边界条件时,您还应应用负责任的生成式 AI 工具包中所述的生成式 AI 安全方法、技术和工具。
部署模型
完成调优并成功完成测试后,就可以部署模型了。您通常可以参考所选框架的文档,了解如何部署经过调优的模型。
如果您要部署使用 LoRA 调整权重的模型,请注意,使用此技术时,您通常需要部署原始模型及其权重,并将 LoRA 权重作为模型的额外计算层。