Agents 课程文档
让我们为函数调用微调您的模型
并获得增强的文档体验
开始
让我们为函数调用微调您的模型
我们现在准备好为函数调用微调我们的第一个模型 🔥。
我们如何为函数调用训练我们的模型?
答案:我们需要数据
模型训练过程可以分为 3 个步骤
模型在大量数据上进行预训练。该步骤的输出是一个预训练模型。例如,google/gemma-2-2b。这是一个基础模型,只知道如何预测下一个 token,而没有强大的指令遵循能力。
为了在聊天环境中发挥作用,模型随后需要进行微调以遵循指令。在此步骤中,它可以由模型创建者、开源社区、您或任何人进行训练。例如,google/gemma-2-2b-it 是 Gemma 项目背后的 Google 团队进行指令调优的模型。
然后可以根据创建者的偏好对模型进行对齐。例如,一个客户服务聊天模型,绝不能对客户不礼貌。
通常,像 Gemini 或 Mistral 这样的完整产品将经历所有 3 个步骤,而您在 Hugging Face 上找到的模型已经完成此训练的一个或多个步骤。
在本教程中,我们将基于 google/gemma-2-2b-it 构建一个函数调用模型。我们选择微调模型 google/gemma-2-2b-it 而不是基础模型 google/gemma-2-2b,因为微调模型已针对我们的用例进行了改进。
从预训练模型开始将需要更多的训练,以便学习指令遵循、聊天和函数调用。
通过从指令调优模型开始,我们最大限度地减少了模型需要学习的信息量。
LoRA (大语言模型的低秩自适应)
LoRA 是一种流行的轻量级训练技术,可显着减少可训练参数的数量。
它的工作原理是将少量新权重作为适配器插入到模型中进行训练。这使得使用 LoRA 进行训练更快、更节省内存,并产生更小的模型权重(几百 MB),这些权重更易于存储和共享。

LoRA 的工作原理是将成对的秩分解矩阵添加到 Transformer 层,通常侧重于线性层。在训练期间,我们将“冻结”模型的其余部分,并且仅更新那些新添加的适配器的权重。
通过这样做,我们需要训练的参数数量显着减少,因为我们只需要更新适配器的权重。
在推理期间,输入被传递到适配器和基础模型,或者这些适配器权重可以与基础模型合并,从而不会产生额外的延迟开销。
LoRA 特别适用于将大型语言模型适应特定任务或领域,同时保持资源需求可管理。这有助于减少训练模型所需的内存。
如果您想了解更多关于 LoRA 工作原理的信息,您应该查看本教程。
为函数调用微调模型
您可以访问本教程 notebook 👉 这里。
然后,点击 以便在 Colab Notebook 中运行它。