写点什么

提示工程、微调和 RAG,你应该选择哪一种?

MyScale

  • 2024-04-22
    北京
  • 本文字数:2470 字

    阅读完需:约 8 分钟

大小:1.21M时长:07:02
提示工程、微调和 RAG,你应该选择哪一种?

自众多大型语言模型(LLM)和高级对话模型发布以来,人们已经运用了各种技术来从这些 AI 系统中提取所需的输出。其中一些方法会改变模型的行为来更好地贴近我们的期望,而另一些方法则侧重于增强我们查询 LLM 的方式,以提取更精确和更有关联的信息。

 

检索增强生成(RAG)、提示和微调等技术是应用最广泛的。在这篇文章中,我们将研究对比这些技术的优缺点。这很重要,因为本文将帮助你了解何时该使用这些技术,以及如何有效地使用它们。

提示工程

提示是与任何大型语言模型交互的最基本方式。你可以把提示看作是给模型提供的指令。当你使用提示时,你会告诉模型你希望它给你反馈什么样的信息。这种方法也被称为提示工程,有点像是学习如何提出正确的问题以获得最佳答案的方法。但你能从中获得的东西是有限的,这是因为模型只能反馈它从训练中获知的内容。



提示工程的特点是它非常简单。你不需要成为技术专家也能写好提示,这对大多数人来说都是个好消息。但由于它的效果很大程度上取决于模型的原始学习水平,所以它可能并不总能提供你需要的最新或最具体的信息。当你处理的是一般性的主题,或当你只需要一个快速答案,而不需要太多细节时,提示工程最好用。

优点:

  • 易于使用:提示易于使用,不需要高级技术技能,因此可供广大受众使用。

  • 成本效益:由于它使用预先训练好的模型,因此与微调相比,其所涉及的计算成本极低。

  • 灵活性:用户可以快速调整提示以探索各种输出,而无需重新训练模型。

缺点

  • 不一致:模型响应的质量和相关性可能因提示的措辞而有很大差异。

  • 有限的定制能力:定制模型响应的能力受限于用户制作有效提示的创造力和技巧。

  • 对模型知识的依赖:输出局限在模型在初始训练期间学到的内容上,这使得它对于高度专业化或最新的信息需求来说效果不佳。

微调

微调是指你找来一个语言模型并让它学习一些新的或特殊的东西。可以把它想象成更新手机上的应用程序以获得更好功能的方法。但在微调的情况下,应用程序(模型)需要大量新信息和时间来正确学习各种内容。对于模型来说,这有点像是重返校园。



由于微调需要大量的算力和时间,因此成本可能很高。但如果你需要语言模型很好地理解某些特定主题,那么微调就会很划算。这就像是教模型成为你所感兴趣的领域的专家一样。经过微调后,模型可以为你提供更准确、更接近你所需内容的答案。

优点:

  • 自定义:微调允许广泛的自定义,使模型能够生成针对特定领域或风格的响应。

  • 提高准确性:通过在专门的数据集上进行训练,模型可以产生更准确、更相关的响应。

  • 适应性:经过微调的模型可以更好地处理原始训练过程中未涵盖的小众主题或最新信息

缺点:

  • 成本:微调需要大量计算资源,因此比提示工程更昂贵。

  • 技术技能:这种方法需要更深入地了解机器学习和语言模型架构。

  • 数据要求:有效的微调工作需要大量且精心策划的数据集,这类数据集可能很难编译。

检索增强生成(RAG)

检索增强生成(RAG)将常见的语言模型与知识库之类的东西混合在一起。当模型需要回答问题时,它首先从知识库中查找并收集相关信息,然后根据该信息回答问题。模型会快速检查信息库,以确保它能给你最好的答案。



RAG 在你需要最新信息,或需要比模型最初学习到的内容更广泛的主题答案的情况下特别有用。在设置难度和成本方面它不算高也不算低。它很有用,因为它可以帮助语言模型给出新鲜且更详细的答案。但就像微调一样,它需要额外的工具和信息才能正常工作。

 

RAG 系统的成本、速度和响应质量严重依赖于矢量数据库,所以这种数据库成为了 RAG 系统中非常重要的一部分。

优点:

  • 动态信息:通过利用外部数据源,RAG 可以提供最新且高度相关的信息。

  • 平衡:在提示的简易性和微调的定制能力之间提供了中庸之道。

  • 上下文相关性:通过附加的上下文来增强模型的响应,从而产生更明智和更细致的输出。

缺点:

  • 复杂性:RAG 实现起来可能很复杂,需要语言模型和检索系统之间做好集成。

  • 资源密集型:虽然 RAG 的资源密集程度低于完全微调的方法,但它仍然需要相当大的计算能力。

  • 数据依赖性:输出的质量在很大程度上取决于检索到的信息的相关性和准确性

提示、微调和 RAG 对比

下面的表格完整对比了提示、微调和检索增强生成方法。此表将帮助你了解不同方法之间的差异,并决定哪种方法最适合你的需求。

特性

提示工程

微调

RAG

所需技能等级

低:需要对如何构建提示有基本的了解。

中等到高等:需要了解机器学习原理和模型架构。

中等:需要了解机器学习和信息检索系统。

成本与资源

低:使用现有模型,计算成本最低。

高:训练需要大量计算资源。

中等:需要检索系统和模型交互的资源,但需求少于微调。

可定制性

低:受到模型预训练知识和用户编写有效提示的能力的限制。

高:允许对特定域或样式进行广泛的定制。

中等:可通过外部数据源进行定制,但定制自由度取决于其质量和相关性。

数据需求

无:只利用预先训练好的模型,不需要额外的数据。

高:需要大量相关的数据集才能进行有效的微调。

中等:需要访问相关的外部数据库或信息源。

升级频率

低:跟随底层模型一起升级。

变量:取决于何时使用新数据重新训练模型。

高:可以纳入最新的信息。

质量

可变:高度依赖于用户编写提示的技巧。

高:针对特定数据集进行定制,从而获得更相关、更准确的响应。

高:利用上下文相关的外部信息增强响应。

用例

一般问答、常用主题、教育目的。

专业应用、特定行业需求、定制任务。

需要最新信息的情况以及涉及上下文的复杂查询。

实现难度

低:利用现有工具和界面直接实现。

高:需要深入的设置和训练过程。

中等:需要将语言模型与检索系统相结合。

上表分解了提示、微调和 RAG 三种方法的要点。它应该可以帮助你了解每种方法最适合哪种情况。希望这张表可以帮助你为下一个任务选择正确的工具。

RAG:增强 AI 应用程序的最佳选择

RAG 是一种独特的方法,它将传统语言模型的强大功能与外部知识库的精确度结合在了一起。这种方法有很多优势,因而脱颖而出。在特定情况下,相比单独使用提示或微调方法,RAG 的优势特别突出。

 

首先,RAG 通过实时检索外部数据来确保其所提供的信息是最新并且高度相关的。这对于需要最新信息的应用程序来说非常重要,与新闻相关的查询或快速发展的领域就是典型例子。

 

其次,RAG 在可定制性和资源需求方面提供了一种平衡的方法。与需要大量计算能力的完全微调方法不同,RAG 允许更灵活、更节省资源的操作,让更多用户和开发人员可以轻松使用它。



最后,RAG 的混合特性弥补了 LLM 的广泛生成能力与知识库中可用的特定详细信息之间的差距。在它的帮助下,模型不仅会产生相关且详细的输出,而且还具有丰富的上下文。

 

优化、可扩展且经济高效的矢量数据库解决方案可以极大地增强 RAG 应用程序的性能和功能。这就是为什么你需要 MyScale,这是一个基于 SQL 的矢量数据库,它可以与主要的 AI 框架和语言模型平台(如 OpenAI、Langchain、Langchain JS/TS 和 LlamaIndex)顺利集成。使用 MyScale 后,RAG 可以变得更快、更准确,这对于寻求最佳结果的用户来说非常有用。

小结

总之,你应该选择提示工程、微调还是检索增强生成方法将取决于你项目的具体要求、可用资源和期望的结果。每种方法都有其独特的优势和局限性。提示是易用且经济高效的,但提供的定制能力较少。微调以更高的成本和复杂性提供充分的可定制性。RAG 实现了某种平衡,提供最新且与特定领域相关的信息,复杂度适中。

 

原文链接:https://myscale.com/blog/prompt-engineering-vs-finetuning-vs-rag/

2024-04-22 16:554813

评论 1 条评论

发布
用户头像
写的蛮好,翻译的也很地道
2024-08-21 09:28 · 江苏
回复
没有更多了
发现更多内容

Markdown工具Typora结合gitee码云图床自动上传云端图片

Flychen

Typora markdown gitee

ServerlessDays China:无服务器的未来

WasmEdge

云计算 Serverless 容器 虚拟机 webassembly

week6

Geek_2e7dd7

week6 学习总结

Geek_2e7dd7

解读:新基建为区块链带来的新机遇

CECBC

练习 6-1

闷骚程序员

话题讨论|在编程中,有哪些好习惯是应该一直坚持下去的?

InfoQ写作社区官方

写作平台 话题讨论 话题

猿灯塔:spring Boot Starter开发及源码刨析(四)

猿灯塔

Java 猿灯塔 spring Boot Starter

第六周作业

赵龙

架构师训练营 - 第六周 - 作业

韩挺

​中国SaaS处在什么阶段?

ToB行业头条

【融云分析】融云实时音视频 SDK 对智能硬件的视频适配

Geek_116789

Redis基础:redis特点

古月木易

redis

一口气讲透一致性哈希(Hash),助力「码农变身」

码农神说

一致性算法 一致性哈希 一致性hash 一致性Hash算法

架构师是怎样炼成的 6-1

闷骚程序员

快来!我从源码中学习到了一招Dubbo的骚操作!

why技术

源码 面试 dubbo 动态代理

Spring Boot 2.3.0正式发布:优雅停机、配置文件位置通配符新特性一览

YourBatman

spring springboot

《中国区块链产业园15强名录》

CECBC

火焰图:全局视野的Linux性能剖析

Marionxue

将设计模式应用到日常的curd中—分离关联查询

LSJ

Java 设计

java 后端博客系统文章系统——No4

猿灯塔

啃碎并发(10):内存模型之内部原理

猿灯塔

企业的数字化转型探索

松子(李博源)

企业架构 数字化 企业数字化转型

Redis基础:redis特点

奈学教育

redis

我的程序跑了60多小时,就是为了让你看一眼JDK的BUG导致的内存泄漏。

why技术

Java 源码 jdk 并发 bug

架构师训练营 - 第六周 - 学习总结

韩挺

你有认真了解过自己的“Java对象”吗

大头星

Java JVM

MySql的Dockerfile编写

玏佾

数据库周刊32丨Oracle自治数据库大动作;腾讯云MySQL 8.0上线;华为数据库工程师认证发布;update引起业务卡顿;PostgreSQL安全加固;openGauss单机安装;中国DBA联盟"ACDU"邀您加入……

墨天轮

MySQL 数据库 oracle postgresql

统一物品编码 破解追溯“断链”困局

CECBC

支付公司如何赚钱?支付网关如何设计?

诸葛小猿

微信 支付宝 聚合支付 第三方支付 支付网关

提示工程、微调和 RAG,你应该选择哪一种?_生成式 AI_InfoQ精选文章