在你的训练套装中拥有最高质量的例子很重要。质量差的数据会消极地训练模型,降低准确性,并增加错误。构建一个高质量、干净的数据集将需要时间,并且需要数据科学和主题专业知识来构建必要的提示及其预期答案。
使用Azure AI Foundry工具进行微调
一旦您掌握了所有先决条件,您就可以使用Azure AI Foundry中的“创建自定义模型”工具来启动微调过程。这可以在门户的微调部分找到,它将引导您完成基本模型的调整过程。您应该已经选择了您计划调整的模型,因此请从可用模型列表中选择它。

接下来,您需要选择训练数据。这可以是已经存储在Azure AI Foundry中的数据,也可以作为过程的一部分上传。现有数据将存储在Azure OpenAI连接中。数据可以从本地文件或Azure Storage导入(如果您使用Fabric构建训练数据,则可能会导入)。在培训前将本地培训数据上传到Blob是个好主意,因为这样可以降低使用Azure AI Studio表单时上传问题的风险。
该服务提供了上传验证数据的选项,其格式与JSONL训练数据相似。验证数据可能很有用,但没有必要,如果您尚未创建合适的数据集,您可以跳过此阶段。
您现在可以添加调谐参数。LoRA将使用这些来定义训练过程,从批次大小和学习率到通过训练数据的周期数。其他参数包括对漂移量的控制和培训工作的可重复性。您可以选择自己的值,也可以让进程在默认值上运行。根据对训练数据的分析,默认值将因运行而异。
您现在可以开始训练您的微调模型了。这是一个批处理过程,由于它需要大量资源,您的工作可能会排队一段时间。一旦被接受,运行可能需要几个小时,特别是如果您正在使用大型、复杂的模型和大型训练数据集。Azure AI Foundry的工具允许您查看微调作业的状态,显示结果、事件和使用的超参数。
每次通过训练数据都会产生一个检查点。这是具有当前调谐状态的模型的可用版本,因此您可以在微调工作完成之前使用代码评估它们。您将始终可以访问最后三个输出,以便在部署最终选择之前可以比较不同的版本。
确保微调模型是安全的
微软自己的人工智能安全规则适用于您的微调模型。在您明确选择发布之前,它不会公开,并在私人工作区进行测试和评估。与此同时,您的训练数据保持私密,不会与模型一起存储,从而降低了机密数据因即时攻击而泄露的风险。微软将在使用前扫描培训数据,以确保其没有有害内容,如果发现不可接受的内容,微软将在运行前中止工作。
一旦调整周期完成,相同的人工智能安全工具将运行在您的微调模型上。聊天机器人使用各种量身定制的提示和其他攻击来尝试生成有害的输出。如果您的模型失败,即使在评估沙盒中也不会提供。
使用微调的模型
模型经过调整和测试后,您可以在Azure AI Foundry门户中找到它,准备好使用熟悉的Azure AI API和SDK作为标准AI端点进行部署。调整后的模型只能部署一次,如果15天不使用,它将被删除,需要重新部署。部署的模型可以在任何支持微调的区域运行,而不仅仅是用于训练模型的区域。
有用的是,微软支持持续微调选项,将现有的调整视为基本模型,然后使用新的训练数据运行相同的过程,也许基于用户提示和预期输出,而不是这些输入生成的实际响应。
更开放式的用例可以利用新技术的预览:直接偏好优化。DPO使用人类偏好来管理调谐,将训练数据作为带有“首选”和“非首选”输出的示例对话提供。这些可以基于日志中早期的用户对话,其中输出不是您想要向用户呈现的。
微调模型的成本因地区和模型而异。如果您在美国中北部调整GPT-4o模型,预计在训练完成后,将支付27.50美元用于100万个培训代币,每小时1.70美元来托管模型。令牌大致等同于一个音节,因此训练集中的每个单词平均花费2到3个令牌。一旦模型部署,推断的定价为每百万输入代币2.75美元,每百万输出代币11美元。值得通过使用调整模型的成本/收益分析来工作,尽管很难对与错误或声誉损害相关的成本进行计算。
在Azure AI Foundry中进行微调有助于您从经过一般数据训练的模型中获得最佳输出,使您能够将它们集中在特定响应上。它不是对意外输出的完全修复,但当与检索增强生成(RAG)和其他接地LLM操作技术一起使用时,它应该会显著降低风险并提高准确性。如果没有在您自己的自定义数据集上训练LLM,以及附带的所有计算和资源要求,它可能和我们现在得到的一样好。