category
重要事项
本文中描述的一些功能可能仅在预览版中可用。此预览版没有服务级别协议,我们不建议将其用于生产工作负载。某些功能可能不受支持或功能受限。有关详细信息,请参阅Microsoft Azure预览版的补充使用条款。
微调通过使用示例数据重新训练现有的大型语言模型(LLM)。结果是一个新的自定义LLM,它针对提供的示例进行了优化。
本文可以帮助您决定微调是否是适合您用例的正确解决方案。本文还介绍了Azure AI Studio如何支持您的微调需求。
在本文中,微调是指有监督的微调,而不是连续的预训练或通过人类反馈的强化学习(RLHF)。监督微调是在特定数据集上重新训练预训练模型的过程。其目的通常是提高特定任务的模型性能,或者引入在最初训练基础模型时没有很好地表示的信息。
从微调开始
当您决定微调是否是适合您用例的正确解决方案时,熟悉以下关键术语会有所帮助:
- 提示工程是一种涉及为自然语言处理模型设计提示的技术。该过程提高了响应的准确性和相关性,以优化模型的性能。
- 检索增强生成(RAG)通过从外部源检索数据并将其合并到提示中来提高LLM性能。RAG可以帮助企业实现定制解决方案,同时保持数据相关性并优化成本。
微调是一种高级技术,需要专业知识才能正确使用。以下问题可以帮助您评估是否已准备好进行微调,以及您对整个过程的思考程度。您可以使用这些问题来指导您的下一步行动,或确定可能更合适的其他方法。
你为什么想微调一个模型?
在以下情况下,您可能已经准备好进行微调:
- 您可以清楚地阐明一个具体的微调用例,并确定您希望微调的模型。
- 微调的好用例包括引导模型以特定和定制的风格、音调或格式输出内容。它们还包括引导模型所需的信息太长或太复杂而无法放入提示窗口的情况。
- 您有清楚的例子来说明您如何在替代方法中应对挑战,以及您测试了哪些可能的解决方案来提高性能。
您通过使用基础模型发现了缺点,例如边缘情况下的性能不一致、无法在上下文窗口中适应足够的镜头提示来引导模型或高延迟。
在以下情况下,您可能还没有准备好进行微调:
- 模型或数据源的知识不足。
- 你找不到合适的数据来为模型服务。
- 你没有一个明确的微调用例,或者你只能说“我想让模型变得更好”
如果你认为成本是你的主要动力,请谨慎行事。微调可以通过缩短提示或允许您使用较小的模型来降低某些用例的成本。但是培训的前期成本更高,而且你必须为托管自己的自定义模型付费。有关Azure OpenAI服务中微调成本的更多信息,请参阅定价页面。
如果你想在模型中添加域外知识,你应该从RAG开始,使用Azure OpenAI On Your Data或嵌入等功能。根据用例和数据,以这种方式使用RAG通常是一种更便宜、适应性更强、潜在更有效的选择。
哪些方法不适用于替代方法?
了解快速工程的不足之处,可以为您的微调提供指导。基础模型是否在边缘情况或例外情况下失败?基础模型是否没有始终如一地以正确的格式提供输出,并且您无法在上下文窗口中放置足够的示例来修复它?
基础模型和快速工程的失败示例可以帮助您确定他们需要收集的数据以进行微调,以及您应该如何评估微调后的模型。
这里有一个例子:一位客户希望使用GPT-3.5 Turbo将自然语言问题转换为特定的非标准查询语言的查询。客户在提示中提供指导(“始终返回GQL”),并使用RAG检索数据库模式。然而,语法并不总是正确的,在边缘情况下经常失败。客户收集了数千个自然语言问题和数据库的等效查询示例,包括模型之前失败的案例。然后,客户使用这些数据来微调模型。将新的微调模型与工程提示和检索相结合,使模型输出的准确性达到可接受的使用标准。
到目前为止,你尝试了什么?
微调是一种高级功能,而不是生成人工智能之旅的起点。您应该已经熟悉了使用LLM的基础知识。您应该首先通过快速工程和/或RAG评估基础模型的性能,以获得性能基线。
有一个没有微调的性能基线对于了解微调是否会提高模型性能至关重要。使用坏数据进行微调会使基础模型变得更糟,但如果没有基线,就很难检测到回归。
在以下情况下,您可能已经准备好进行微调:
- 您可以展示快速工程和基于RAG的方法的证据和知识。
- 除了为用例尝试的微调之外,您还可以分享其他技术的具体经验和挑战。
- 尽可能对基线绩效进行定量评估。
在以下情况下,您可能还没有准备好进行微调:
- 你还没有测试任何其他技术。
- 您对微调如何专门应用于LLM的知识或理解不足。
- 您没有基准测量来评估微调。
您将使用哪些数据进行微调?
即使有一个很好的用例,微调也只能和你能提供的数据质量一样好。你需要愿意投入时间和精力来进行微调。不同的模型需要不同的数据量,但你通常需要能够提供相当大量的高质量策划数据。
另一个重要点是,即使有高质量的数据,如果你的数据不是微调所需的格式,你也需要投入工程资源进行格式化。有关如何准备数据进行微调的更多信息,请参阅微调文档。
在以下情况下,您可能已经准备好进行微调:
- 您确定了一个需要微调的数据集。
- 您的数据集采用了适合训练的格式。
- 您采用了一定程度的管理来确保数据集的质量。
在以下情况下,您可能还没有准备好进行微调:
- 您尚未确定数据集。
- 数据集格式与要微调的模型不匹配。
你将如何衡量你的微调模型的质量?
这个问题没有一个单一的正确答案,但你应该为微调的成功设定明确的目标。理想情况下,这种努力不应该只是定性的。除了用户接受度测试或a/B测试微调模型与基础模型的对比外,它还应该包括成功的定量衡量标准,比如使用一组数据进行验证。
Azure AI Studio中支持的微调模型
现在,您已经知道何时对用例进行微调,您可以转到Azure AI Studio查找可用于微调的模型。以下部分描述了可用的型号。
Azure OpenAI模型
Azure AI Studio支持以下Azure OpenAI模型进行微调:
Model ID | Fine-tuning regions | Max request (tokens) | Training data (up to) |
---|---|---|---|
babbage-002 |
North Central US Sweden Central Switzerland West |
16,384 | Sep 2021 |
davinci-002 |
North Central US Sweden Central Switzerland West |
16,384 | Sep 2021 |
gpt-35-turbo (0613) |
East US2 North Central US Sweden Central Switzerland West |
4,096 | Sep 2021 |
gpt-35-turbo (1106) |
East US2 North Central US Sweden Central Switzerland West |
Input: 16,385 Output: 4,096 |
Sep 2021 |
gpt-35-turbo (0125) |
East US2 North Central US Sweden Central Switzerland West |
16,385 | Sep 2021 |
gpt-4 (0613) 1 |
North Central US Sweden Central |
8192 | Sep 2021 |
1 GPT-4微调目前正在公开预览中。有关更多信息,请参阅GPT-4微调安全评估指南。
要微调Azure OpenAI模型,您必须向项目中添加一个与受支持区域的Azure OpenAI资源的连接。
Phi-3系列型号
Azure AI Studio支持以下Phi-3系列模型进行微调:
Phi-3-mini-4k-instruct
Phi-3-mini-128k-instruct
Phi-3-medium-4k-instruct
Phi-3-medium-128k-instruct
位于美国东部的项目目前支持Phi-3模型的微调。
Meta Llama 2家族模型
Azure AI Studio支持以下Llama 2系列模型进行微调:
Meta-Llama-2-70b
Meta-Llama-2-7b
Meta-Llama-2-13b
目前,位于美国西部3的项目支持对Llama 2模型进行微调。
Meta Llama 3.1家族模型
Azure AI Studio支持以下Llama 3.1系列模型进行微调:
Meta-Llama-3.1-70b-Instruct
Meta-Llama-3.1-8b-Instruct
目前,位于美国西部3的项目支持对Llama 3.1模型进行微调。
相关内容
- Fine-tune an Azure OpenAI model in Azure AI Studio
- Fine-tune a Llama 2 model in Azure AI Studio
- Fine-tune a Phi-3 model in Azure AI Studio
- Deploy Phi-3 family of small language models with Azure AI Studio
- 登录 发表评论
- 12 次浏览
最新内容
- 20 hours ago
- 20 hours ago
- 22 hours ago
- 22 hours ago
- 22 hours 23 minutes ago
- 6 days 21 hours ago
- 1 week ago
- 1 week 3 days ago
- 1 week 3 days ago
- 1 week 3 days ago