以下是对给定Markdown文件的翻译,确保不显得过于直译,并且翻译了注释: 声明: 本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。
以下是对给定Markdown文件的翻译,确保不显得过于直译,并且翻译了注释:
[](https://aka.ms/gen-ai-lesson18-gh?WT.mc_id=academic-105485-koreyst) # 微调您的语言模型 使用大型语言模型构建生成式人工智能应用带来了新的挑战。一个关键问题是确保模型生成内容的质量(准确性和相关性),以响应特定用户请求。在之前的课程中,我们讨论了通过修改提示输入到现有模型中的技术(如提示工程和检索增强生成)来解决这个问题。 在今天的课程中,我们将介绍第三种技术——**微调**,它通过用额外的数据重新训练模型本身来解决这一挑战。让我们深入了解这些细节。 ## 学习目标 本课程介绍了预训练语言模型的微调概念,探讨了这种方法的优点和挑战,并提供了何时以及如何使用微调来提高生成式人工智能模型性能的指导。 完成本课程后,您应该能够回答以下问题: - 什么是语言模型的微调? - 在什么情况下,为什么微调是有用的? - 如何对预训练模型进行微调? - 微调有哪些局限性? 准备好了吗?让我们开始吧。 ## 图解指南 在深入学习之前,想先了解一下我们将涵盖的内容吗?查看这个图解指南,它描述了本课程的学习旅程——从了解微调的核心概念和动机,到理解执行微调任务的过程和最佳实践。这是一个值得探索的有趣话题,因此别忘了查看[资源](./RESOURCES.md?WT.mc_id=academic-105485-koreyst)页面,获取更多支持自我学习的链接!  ## 语言模型的微调是什么? 定义上,大型语言模型是基于大量来自互联网等多样化来源的文本进行**预训练**的。正如我们在之前的课程中学到的,我们需要像**提示工程**和**检索增强生成**这样的技术来提高模型对用户问题(即“提示”)的回答质量。 一种流行的提示工程方法是在回应中提供更多关于期望内容的指导,可以通过提供**指令**(明确指导)或**提供一些示例**(隐含指导)。这被称为**少量样本学习**,但它有两个限制: - 模型令牌限制可能限制您提供的示例数量,并影响其有效性。 - 添加示例到每个提示的成本可能使它变得昂贵,并限制灵活性。 微调是机器学习系统中的一种常见做法,即在新数据上对预训练模型进行再训练,以提高其在特定任务上的性能。对于语言模型,我们可以通过用一组为特定任务或应用程序领域精心策划的示例来微调预训练模型,从而创建一个针对该特定任务或领域的更准确和相关的**定制模型**。微调的一个额外好处是可以减少少量样本学习所需的示例数量——减少令牌使用和相关成本。 ## 什么时候和为什么我们应该微调模型? 在这个上下文中,当我们谈到微调时,我们指的是**监督微调**,其中再训练是通过**添加新数据**来完成的,这些数据不是原始训练数据集的一部分。这与无监督微调不同,后者是在原始数据上重新训练模型,但使用不同的超参数。 需要记住的关键点是,微调是一种高级技术,需要一定的专业知识才能获得预期的结果。如果操作不当,它可能不会提供预期的改进,甚至可能降低模型在目标领域的性能。 因此,在学习“如何”微调语言模型之前,您需要知道“为什么”要走这条路,“何时”开始微调过程。先问问自己这些问题: - **使用场景**:您微调的**使用场景**是什么?您希望改善当前预训练模型的哪个方面? - **替代方案**:您是否尝试过其他技术来实现预期结果?用它们来创建基准进行比较。 - 提示工程:尝试使用相关提示响应示例进行少量样本提示。评估响应质量。 - 检索增强生成:尝试将查询结果检索到提示中。评估响应质量。 - **成本**:您是否识别出微调的成本? - 可调性 - 预训练模型是否可调? - 努力 - 准备训练数据、评估和改进模型所需的工作量。 - 计算 - 运行微调作业和部署微调模型所需的时间。 - 数据 - 获取足够的高质量示例以影响微调。 - **收益**:您是否确认了微调的好处? - 质量 - 微调模型是否优于基准? - 成本 - 它是否通过简化提示来减少令牌使用? - 可扩展性 - 您能否将基础模型用于新领域? 通过回答这些问题,您应该能够决定微调是否是适合您的使用场景的最佳方法。理想情况下,只有当收益大于成本时,这种方法才是有效的。一旦决定继续前进,就是时候考虑如何对预训练模型进行微调了。 想了解更多关于决策过程的见解?观看[微调还是不微调](https://www.youtube.com/watch?v=0Jo-z-MFxJs) ## 我们如何对预训练模型进行微调? 要对预训练模型进行微调,您需要具备以下条件: - 一个预训练模型用于微调 - 一个用于微调的数据集 - 一个运行微调作业的训练环境 - 一个部署微调模型的托管环境 ## 微调实战 以下资源提供了逐步教程,引导您完成使用选定模型和精选数据集的实际示例。要完成这些教程,您需要特定提供商的帐户,以及访问相关模型和数据集的权限。 | 提供商 | 教程 | 描述 | | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | OpenAI | [如何微调聊天模型](https://github.com/openai/openai-cookbook/blob/main/examples/How_to_finetune_chat_models.ipynb?WT.mc_id=academic-105485-koreyst) | 通过准备训练数据、运行微调作业并使用微调模型进行推理,学习如何将一个**特定领域的模型**(例如“食谱助手”)进行微调。 | | Azure OpenAI | [GPT 3.5 Turbo 微调教程](https://learn.microsoft.com/azure/ai-services/openai/tutorials/fine-tune?tabs=python-new%2Ccommand-line?WT.mc_id=academic-105485-koreyst) | 通过创建和上传训练数据、运行微调作业、部署和使用新模型,学习如何在Azure上微调一个**GPT 3.5 Turbo 模型**。 | | Hugging Face | [使用Hugging Face微调LLM](https://www.philschmid.de/fine-tune-llms-in-2024-with-trl?WT.mc_id=academic-105485-koreyst) | 这篇博客文章介绍了如何使用[Hugging Face的transformers库](https://huggingface.co/docs/transformers/index?WT.mc_id=academic-105485-koreyst)和[Transformer强化学习(TRL)](https://huggingface.co/docs/trl/index?WT.mc_id=academic-105485-koreyst)以及Hugging Face上的开放[数据集](https://huggingface.co/docs/datasets/index?WT.mc_id=academic-105485-koreyst)对一个**开源LLM**(例如[`CodeLlama 7B`])进行微调。 | | AutoTrain | [使用AutoTrain微调LLM](https://github.com/huggingface/autotrain-advanced/?WT.mc_id=academic-105485-koreyst) | AutoTrain(或AutoTrain Advanced)是由Hugging Face开发的一个Python库,允许对许多不同的任务进行微调,包括LLM微调。AutoTrain是一个无需代码解决方案,可以在您的云中、Hugging Face Spaces上或本地进行微调。它支持Web界面、CLI和通过YAML配置文件进行训练。 | ## 作业 选择上述教程之一并逐步完成。**我们可能会在本仓库中复制这些教程的Jupyter Notebook版本以供参考。请直接使用原始源以获取最新版本。** ## 大功告成!继续您的学习。 完成本课程后,请查看我们的[生成式AI学习集合](https://aka.ms/genai-collection?WT.mc_id=academic-105485-koreyst),继续提升您的生成式AI知识! 恭喜!您完成了本课程v2系列的最后一课!不要停止学习和构建。**查看[资源](RESOURCES.md?WT.mc_id=academic-105485-koreyst)页面,获取更多关于此主题的建议列表。** 我们的v1系列课程也已更新,增加了更多作业和概念。所以花点时间刷新您的知识——并请[分享您的问题和反馈](https://github.com/microsoft/generative-ai-for-beginners/issues?WT.mc_id=academic-105485-koreyst),帮助我们改进这些课程以造福社区。
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。