Azure AI Foundry模型微调指南
Azure AI Foundry模型微调指南
模型微调(Fine-tuning)是通过在特定任务或数据集上对预训练AI模型进行额外训练,以提高性能、添加新技能或增强准确性。其结果是一个基于提供示例的新优化的生成式AI模型。
为什么要进行模型微调?
- 扩展和适应特定企业需求
- 减少误报,因为定制模型产生不准确或无关响应的可能性较低
- 提高特定领域任务的模型准确性
- 通过更快、更精确的结果节省时间和资源
- 获得更相关、更符合上下文的结果,因为模型针对特定用例进行了微调
Azure AI Foundry提供了来自多个模型提供商的多种模型,使您能够访问市场上最新、最优秀的模型。您可以通过使用"微调任务"过滤器并选择模型卡片来发现支持微调的模型,并了解每个模型的详细信息。某些模型可能受到区域限制。查看此列表以获取更多详细信息。
开始微调
在开始生成式AI之旅时,我们建议您从提示工程和检索增强生成(RAG)开始,以熟悉基础模型及其功能。
- 提示工程是一种技术,涉及通过设计提示来改善自然语言处理模型的准确性,这些提示包括语气和风格细节、示例响应以及意图映射。
- 检索增强生成(RAG)通过从外部源检索数据并将其纳入提示中来提高LLM的性能。RAG可以帮助企业实现定制化解决方案,同时保持数据相关性并优化成本。
当您开始构建解决方案时,了解提示工程的局限性以及何时尝试微调非常重要:
- 基础模型是否在边缘案例或异常情况下失败?
- 基础模型是否无法始终如一地提供正确格式的输出?
- 是否难以在上下文窗口中放入足够的示例来引导模型?
- 是否存在高延迟?
基础模型失败的示例可以帮助您识别用于微调的数据,并建立一个性能基线,以便评估和比较微调后的模型。没有微调的性能基线对于确定微调是否提高了模型性能至关重要。
使用场景
基础模型已经在大量数据上进行了预训练。大多数时候,您可以通过在提示中添加指令和示例来获得所需的高质量响应,这个过程称为"少样本学习"。微调允许您使用更多示例训练模型,这些示例可以针对您的特定用例进行定制,从而改进少样本学习。微调可以减少提示中的token数量,从而实现潜在的成本节约和延迟降低。
将自然语言转换为查询语言只是您可以"展示而非告诉"模型如何行为的一个用例。其他用例包括:
- 改进模型处理检索数据的能力
- 引导模型以特定的风格、语气或格式输出内容
- 在查找信息时提高准确性
- 缩短提示的长度
- 教授新技能(例如,自然语言到代码)
如果成本是您的主要动机,请谨慎行事。微调可能会通过缩短提示或允许您使用更小的模型来降低某些用例的成本。但训练可能会有较高的前期成本,而且您需要为托管自定义模型付费。
微调模型的步骤
- 选择支持您任务的模型。
- 准备并上传训练数据。
- (可选)准备并上传验证数据。
- (可选)配置任务参数。
- 训练您的模型。
- 完成后,审查指标并评估模型。如果结果未达到您的基准,请返回第2步。
- 使用您的微调模型。
重要的是要指出,微调高度依赖于您提供的数据质量。为了获得成功并达到预期结果,最好提供数百甚至数千个训练示例。
支持微调的模型
现在您了解了何时为您的用例使用微调,您可以转到Azure AI Foundry查找可用于微调的模型。对于模型目录中的某些模型,可以通过无服务器API或托管计算(预览)进行微调,或两者兼有。
微调在某些通过无服务器API部署的模型中特定Azure区域可用。要微调此类模型,用户必须在模型可供微调的区域拥有一个中心/项目。有关详细信息,请参阅模型在无服务器API端点的区域可用性。
有关使用托管计算(预览)进行微调的更多信息,请参阅使用托管计算(预览)微调模型。
有关可用于微调的Azure OpenAI模型的详细信息,请参阅Azure OpenAI服务模型文档或本指南后面的Azure OpenAI模型表。
对于可以进行微调的Azure OpenAI服务模型,支持的微调区域包括美国北部中央、瑞典中央等。
微调Azure OpenAI模型
gpt-35-turbo
此模型的微调仅限于某些区域,并非基础模型可用的所有区域都支持微调。
如果在Azure AI Foundry项目内与项目外使用Azure OpenAI模型,支持的微调区域可能有所不同。
Model ID | Fine-tuning regions | Max request (tokens) | Training Data (up to) |
---|---|---|---|
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 |
gpt-4o-mini(2024-07-18) | North Central US Sweden Central | Input: 128,000 Output: 16,384 Training example context length: 64,536 | Oct 2023 |
gpt-4o(2024-08-06) | East US2 North Central US Sweden Central | Input: 128,000 Output: 16,384 Training example context length: 64,536 | Oct 2023 |
1GPT-4目前处于公开预览阶段。