什么时候应该进行微调,什么时候应该考虑其他技术?
0 引言
在 LLM 出现之前,微调通常用于小规模模型(100M – 300M 参数)。当时,最先进的领域应用通过监督微调(SFT)构建,即使用标注数据对预训练模型进行进一步训练,以适应自己的领域和下游任务。然而,随着大型模型(>1B 参数)的兴起,微调的问题变得更加复杂。最重要的是,大型模型的微调需要更大的资源和商业硬件。下表 1 列出了在三种情况下,微调 Llama 2 7B 和 Llama 2 13B 模型的峰值 GPU 内存使用量。
QLoRA 这样的算法使得使用有限资源对大模型进行微调变得更加可行。作为示例,表 1 显示了 Llama 2 7B 的三种微调模式(全微调、LoRA 和 QLoRA)的峰值 GPU 内存。类似的内存减少也在使用 PEFT 或量化技术对 Llama 1 进行的微调中被报道。除了计算资源外,参数全量微调的一个常见问题是灾难性遗忘。PEFT 技术旨在通过对少量参数进行训练来解决这些问题。
表 1:在 Llama 2 7B 上使用不同微调方法([来源](https://github.com/pytorch/torchtune?tab=readme-ov-file#fine-tuning-recipes))的内存消耗(单位:GB)。QLoRA 使用了 4-bit NormalFloat 量化。
1 适合微调的场景类型
1.1 语气、风格和格式定制
某些用例可能需要 LLM 反映特定的个性或为特定的受众服务。通过使用自定义数据集微调 LLM,我们可以调整聊天机器人的响应,使其更贴近特定用户的需求或预期体验。我们还可能希望以特定格式输出结果,如 JSON、YAML 或 Markdown。
1.2 提升准确性和处理边缘案例
微调可以纠正通过提示词工程和上下文学习难以解决的幻觉或错误。它还可以增强模型执行新技能或任务的能力,而这些技能或任务难以通过提示表达。这一过程有助于纠正模型在执行复杂提示时的失误,并提高其生成预期输出的可靠性。我们提供两个示例:
- Phi-2 在金融数据情感分析中的准确性从 34% 提升至 85%。
- ChatGPT 在 Reddit 评论情感分析中的准确性使用 100 个示例后提升了 25 个百分点(从 48% 到 73%)。通常,对于初始准确率较低的情况(< 50%),微调使用几百个示例就能带来显著提升。
1.3 处理代表性不足的领域
尽管 LLM 经过大量通用数据训练,但它们并不总是能够掌握每个小众领域的细微差别、术语或特定性。在法律、医疗或金融等领域,微调已被证明可以提高下游任务的准确性。我们提供两个示例:
- 如文章中所述,患者的病历包含高度敏感的数据,通常不在公共领域中出现。因此,基于 LLM 的病历总结系统需要进行微调。
- 对于像印度语言这样的代表性不足的语言,使用 PEFT 技术的微调在所有任务中都有所帮助。
1.4 成本节约
微调可以将 Llama 2 70B/GPT-4 等大模型的技能提炼到较小的模型中,如 Llama 2 7B,从而在不影响质量的情况下降低成本和延迟。此外,微调减少了对冗长或特定提示词(提示词工程中使用)的需求,从而节省 Token 并进一步降低成本。例如,这篇文章展示了如何通过微调 GPT-3.5 评审模型,将其从更昂贵的 GPT-4 模型中提炼出来,最终节省了成本。
1.5 新任务/能力
通过微调,往往可以实现新的能力。我们提供三个示例:
- 微调 LLM 以更好地使用或忽略来自检索器的上下文
- 微调 LLM 评审模型来评估其他 LLM 的指标,如扎根性、合规性或有用性
- 微调 LLM 来增加上下文窗口
2 微调与其他领域适应技术的比较
2.1 微调 vs. 上下文学习(少样本学习)
上下文学习(ICL)是一种强大的提升 LLM 系统性能的方式。由于其简便性,ICL 应在进行任何微调活动之前尝试。此外,ICL 实验有助于评估微调是否能提升下游任务的性能。使用 ICL 时的一些常见考虑因素包括:
- 随着需要展示的示例数量增加,推理成本和延迟也随之增加。
- 示例越多,LLM 忽略部分示例的情况也越常见。这意味着你可能需要一个基于 RAG 的系统,根据输入找到最相关的示例。
- LLM 可能会直接输出作为示例提供给它的知识。这种担忧在微调时也存在。
2.2 微调 V.S RAG
共识是,当 LLM 的基础性能不令人满意时,你可以“从 RAG 开始,评估其性能,如果不够理想,再转向微调”,或者“RAG 可能比微调更有优势” (来源)。然而,我们认为这种范式过于简化,因为在多个场景下,RAG 不仅不是微调的替代方案,反而更多的是微调的补充方法。根据问题的特性,可能需要尝试一种或两种方法。采用这篇文章的框架,以下是一些问题,帮助你确定微调或 RAG(或两者)是否适合你的问题:
- 你的应用程序是否需要外部知识?微调通常不适合用于注入新知识。
- 你的应用程序是否需要自定义语调/行为/词汇或风格?对于这些类型的需求,微调通常是正确的方法。
- 你的应用程序对幻觉有多宽容?在压制虚假信息和想象性编造至关重要的应用中,RAG 系统提供了内置的机制来最小化幻觉。
- 有多少标注的训练数据可用?
- 数据的静态性/动态性如何?如果问题需要访问动态的数据语料库,微调可能不是正确的方法,因为 LLM 的知识可能很快变得过时。
- LLM 应用程序需要多大的透明性/可解释性?RAG 天生可以提供参考文献,这对于解释 LLM 输出非常有用。
- 成本和复杂性:团队是否具备构建搜索系统的专业知识或以前的微调经验?
- 应用程序中的任务多样性如何?
在大多数情况下,微调和 RAG 的混合解决方案将带来最佳效果——问题随之变成了做两者的成本、时间和独立收益。
3 总结
请参考上述问题,以指导你是否需要 RAG 和/或微调,并通过内部实验来分析错误并理解可能的指标提升。最后,微调探索确实需要一个稳健的数据收集和数据改进策略,我们建议在开始微调之前进行这一步。
如何系统的去学习大模型LLM ?
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业
?”“谁的饭碗又将不保了?
”等问题热议不断。
事实上,抢你饭碗的不是AI,而是会利用AI的人。
继科大讯飞、阿里、华为
等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?
与其焦虑……
不如成为「掌握AI工具的技术人
」,毕竟AI时代,谁先尝试,谁就能占得先机!
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。
针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓
一、LLM大模型经典书籍
AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。
二、640套LLM大模型报告合集
这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)
三、LLM大模型系列视频教程
四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)
LLM大模型学习路线 ↓
阶段1:AI大模型时代的基础理解
-
目标:了解AI大模型的基本概念、发展历程和核心原理。
-
内容:
- L1.1 人工智能简述与大模型起源
- L1.2 大模型与通用人工智能
- L1.3 GPT模型的发展历程
- L1.4 模型工程
- L1.4.1 知识大模型
- L1.4.2 生产大模型
- L1.4.3 模型工程方法论
- L1.4.4 模型工程实践
- L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
-
目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
-
内容:
- L2.1 API接口
- L2.1.1 OpenAI API接口
- L2.1.2 Python接口接入
- L2.1.3 BOT工具类框架
- L2.1.4 代码示例
- L2.2 Prompt框架
- L2.3 流水线工程
- L2.4 总结与展望
阶段3:AI大模型应用架构实践
-
目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
-
内容:
- L3.1 Agent模型框架
- L3.2 MetaGPT
- L3.3 ChatGLM
- L3.4 LLAMA
- L3.5 其他大模型介绍
阶段4:AI大模型私有化部署
-
目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
-
内容:
- L4.1 模型私有化部署概述
- L4.2 模型私有化部署的关键技术
- L4.3 模型私有化部署的实施步骤
- L4.4 模型私有化部署的应用场景
这份 LLM大模型资料
包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓