当前位置:首页|资讯|OpenAI

如何用Azure OpenAI 微调 (Fine-tuning)训练模型?

作者:等保测评办理发布时间:2024-08-21

随着 Azure OpenAI 服务正式推出 Fine-tuning(微调)功能。现在,微软很高兴宣布,在Azure 机器学习模型目录中,同样支持对 GPT-3.5-Turbo、Babbage-002 和 Davinci-002 进行Fine-tuning(微调)

企业如何合规、稳定使用ChatGPT以及Copilot?

出于合规角度,建议国内企业可以选择微软的Azure OpenAI服务来使用接口。

通过微软官方合作伙伴获取服务,企业用户可以合规、稳定地使用ChatGPT,满足国内发票需求,同时也能解决连接不稳定/响应速度慢/并发配额低等问题。

作为微软的合作伙伴,全云在线可为企业开通绿色申请通道!包括最新版本GPT-4o、Dalle-3等,只要企业有需求,全云在线都能协助快速开通!

全企业微软 Azure OpenAI 免费试用申请:
https://azureopenai.cloudallonline.com/?zxwsh75

通过为特定任务和应用进行定制和优化,Fine-tuning(微调)OpenAI 模型带来了显著的价值——提升性能和成本效益、减少延迟、并提供定制化的输出。无论是增强客户服务自动化、内容生成和自动补全、无缝翻译,还是简化文本摘要,Fine-tuning 都可以有所助益。当与其他方法如提示工程和信息检索一起使用时,Fine-tuning 会更加有效。

您可以使用 Azure 机器学习服务或 Azure OpenAI 服务来训练 Azure OpenAI 模型。我们提供了监督式 Fine-tuning,用户可以提供示例(提示/补全或会话聊天,取决于模型的选择)来重新训练模型。本篇为您介绍 Azure 机器学习模型目录中可用的 Fine-tuning 功能。

Azure 机器学习模型目录中的 Azure OpenAI 模型集增加了两款新的基础推理模型(Babbage-002 和 Davinci-002),并为三款模型(Babbage-002、Davinci-002 和 GPT 3.5 Turbo)引入了 Fine-tuning功能。

GPT-3.5-Turbo是 GPT-3.5 系列模型之一,是性能最强大且性价比最高的模型,主要针对聊天应用进行了优化,同时也非常适用于各种其他任务。Babbage-002 和 Davinci-002 模型较小,具有理解和生成自然语言和代码的能力。Babbage-002 取代了已弃用的 Ada 和 Babbage 模型,而 Davinci-002 取代了已弃用的 Curie 和 Davinci 模型。

Babbage-002 和 Davinci-002 模型在推理时支持最多16,384个输入 token。Turbo 模型在推理时支持最多4,097个输入 token。

Azure Machine Learning studio 内的模型目录(预览版)可用于探索不同的基础模型集,包括Azure OpenAI 服务模型集、由 AzureML 精心策划的一系列最先进的开源模型Hugging Face Hub 社区合作伙伴的一系列模型、Meta 的Llama 2 大型语言模型(LLMs),以及各种先进开源视觉模型

其中,Azure OpenAI 模型集仅在 Azure 上提供。通过这些模型,用户能够访问 Azure OpenAI 服务提供的提示工程、Fine-tuning、评估和部署功能。

通过结构化 Fine-tuning 释放 Azure 机器学习的全部潜力。首先从模型目录中选择您喜欢的基础模型,选择 Fine-tuning 任务,并提供必要的训练和验证数据。Azure 机器学习简化了此过程,提供了完全托管的计算资源和超参数配置。在 Fine-tuning 完成后,评估模型的指标并将其部署到 Azure OpenAI 服务中。

Azure 提供了完全托管的微调服务,无需用户管理计算资源。价格取决于所选择的模型。使用 Azure 机器学习不会产生额外费用。但是,除 Azure OpenAI 的使用和计算费用之外,您还将为其他使用的 Azure 服务(包括但不限于 Azure Blob 存储、Azure Key Vault、Azure Container Registry 和 Azure Application Insights)单独付费。

Azure 机器学习内置了一系列优化功能,如Deepspeed 和 ORT(ONNX RunTime),以加速 Fine-tuning 过程,以及 LoRA(大型语言模型的低秩适应性),极大地减少了 Fine-tuning 过程中的内存和计算需求

Azure 机器学习通过本机 LLMOps功能,为经验丰富的数据科学家简化了实验管理,提供了组织和查找最适合的模型的工具。它通过 Fine-tuning 提供增强的数据版本控制和管道功能,以满足高级开发人员的需求。在模型开发过程中,促进了协作、可重复性和效率。此外,Azure 机器学习通过SDK 和 CLI 支持无代码和基于代码的体验,使高级数据科学家能够将其集成到自定义工作流和应用程序中。

为了提高工作负载中的模型性能,您可能希望使用自己的训练数据对模型进行 Fine-tuning。您可以使用 Azure Machine Learning Studio 或基于代码的示例轻松 Fine-tuning 这些模型。您可以通过在模型卡上选择 “Fine-tuning” 来进行配置,并传递训练和验证数据集。

步骤 1

数据集准备

您的训练数据和验证数据集包括输入和输出示例,用于定义您希望模型执行的任务。确保所有的训练示例都符合推理的预期格式。为了有效地 Fine-tuning 模型,需要确保数据集的平衡和多样化。这包括维护数据平衡(涵盖各种不同的场景),并定期调整训练数据,从而获得更准确和平衡的模型响应。

对于补全任务类型的模型(比如 Babbage-002 和 Davinci-002),您使用的训练和验证数据必须格式化为 JSON 行(JSONL)文档,其中每一行代表一个单一的提示-补全对。

对于聊天任务类型的模型(比如 GPT-3.5-Turbo),数据集中的每一行应该是一个 JSON 对象的列表。每一行对应于一个对话,每个对象则代表该对话中的一个回合/话语。

步骤 2

超参数调优

超参数调优对于大型语言模型(LLMs)至关重要,它能够优化性能、节省资源,以及适应任务和数据集以构建真实的应用。您可以自定义 Fine-tuning 的参数,比如 n_epochs(训练轮数)、批处理大小和学习率倍增器,以便更好地适应特定任务和数据集。

步骤 3

评估 Fine-tuning 模型

我们提供了一组在整个训练过程中计算的训练指标,包括训练损失、训练 token 准确率、验证损失和验证 token 准确率。这些统计数据是确保训练顺利进行的宝贵指标。具体来说,训练损失应该随着时间的推移而减小,而训练 token 准确率应该呈上升趋势,反映出性能的提高。

完成 Azure OpenAI 模型的 Fine-tuning 后,您可以在“模型”列表中找到该模型。选择“部署”按钮将模型部署到 Azure OpenAI 服务,并提供 OpenAI 资源和部署名称。您可以前往工作区中的 “Endpoint”,找到已部署到 Azure OpenAI 服务的模型。

定义明确的目标

明确定义您的 Fine-tuning 目标,无论是改善任务性能还是适应特定领域的数据。

从小规模开始,逐步扩展

从少量训练示例开始,大约50到100个,如果看到改善,再逐步扩展。如果没有进展,再次评估任务设置或数据结构,再进行扩展。需要强调的是,质量比数量更重要,即使是一小组高质量示例也可以带来成功的 Fine-tuning。

优先考虑高质量的训练数据

使用高质量、拥有良好标记并与任务密切相关的训练数据。进行必要的数据预处理、处理异常值以优化模型性能。

使用一致的系统消息

在微调和部署过程中使用相同的系统消息,保持一致性。

对齐训练数据

确保您的训练数据在风格和内容上与真实用户查询的相似性。

建立基准

建立一个用于比较的基准非常重要。从基础模型和 Fine-tuning 模型中生成样本、并行比较。

迭代超参数

从默认的超参数开始。如果注意到模型与训练数据不太一致(可以将训练轮数增加1或2轮),或者如果模型的多样性低于预期(可以将训练轮数减少1或2轮)。

尝试其他技术

在 Fine-tuning 之前尝试提示编写、RAG(检索增强生成)和少样本学习等技术,以便快速建立基准并优化资源使用。

使用较小的模型优化成本效率

考虑使用较小的模型进行训练,以在较低的成本下达到所需的准确度。

迭代和协作

进行迭代式 Fine-tuning,谨慎地开始,再根据评估结果进行改进。与领域专家和利益相关者密切合作,以完善 Fine-tuning 并验证模型输出。


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1