写点什么

提示工程、微调和 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:555225

评论 1 条评论

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

火山引擎携手地瓜机器人,加速大模型在机器人场景规模落地

火山引擎边缘云

IoT 机器人 AIOT 智能IoT边缘服务 大模型

【开源鸿蒙】运行OpenHarmony轻量系统QEMU RISC-V版本

码匠许师傅

qemu OpenHarmony risc-v

mcgs笔记 构件 动画显示构件模拟设备转动

万里无云万里天

自动化 HMI mcgs

手工转测试开发轻松实现薪资 50%涨幅的逆袭之路

霍格沃兹测试开发学社

mcgs笔记 工具箱 元件库(公共图库)展示(下)

万里无云万里天

自动化 HMI mcgs

mcgs笔记 构件 标签的闪烁效果

万里无云万里天

自动化 HMI mcgs

mcgs笔记 画面 由全屏回到缩小的窗口状态

万里无云万里天

自动化 HMI mcgs

828华为云会议Flexus版重磅亮相,让每一场会议都高效!

轶天下事

mcgs笔记 构件 查看位置坐标与大小

万里无云万里天

自动化 HMI mcgs

mcgs笔记 设备窗口 快速连接变量

万里无云万里天

自动化 HMI mcgs

什么是 Rainbond?打破 Kubernetes 的复杂性

北京好雨科技有限公司

Kubernetes 云原生 rainbond 企业 9 月 PK 榜

mcgs笔记 工程上传功能

万里无云万里天

自动化 HMI mcgs

【YashanDB知识库】执行sql语句时报YAS-04401 data type - expected, but BLOB got异常

YashanDB

yashandb 崖山数据库 yashandb知识库

望繁信科技与华恒生物正式签约,共同开启流程数字化转型新篇章

望繁信科技

数字化转型 流程挖掘 流程资产 流程智能

来云栖大会!探展云上开发,沉浸式体验云原生 + AI 新奇玩法

阿里巴巴云原生

阿里云 云原生

inBuilder的业务领域划分

inBuilder低代码平台

微服务 低代码

来云栖大会!探展云上开发,沉浸式体验云原生 + AI 新奇玩法

阿里云云效

阿里云 云原生

2024年职教展-2024全国职业教育产业博览会

秋硕展览

【开源鸿蒙】调试OpenHarmony轻量系统QEMU RISC-V版本

码匠许师傅

gdb qemu OpenHarmony risc-v

mcgs笔记 画面 百分比缩放

万里无云万里天

自动化 HMI mcgs

mcgs笔记 设备窗口 通讯状态

万里无云万里天

自动化 HMI mcgs

利用观测云实现云资源FinOps优化

观测云

云服务 FinOps

悲惨!刚入职没几天,无意间把数据库删了,很尴尬,原因很奇葩

五阳

程序员 java 架构

6个 Spring websocket注解:整体架构分析与注解应用案例(必须收藏)

肖哥弹架构

Java spring websocket

mcgs笔记 构件 水平移动与垂直移动

万里无云万里天

自动化 HMI mcgs

图像检测【YOLOv5】——深度学习

芯动大师

深度学习 模型 Anaconda

技术干货 | YashanDB+Zabbix搭建监控可视化平台,手把手实操!

YashanDB

yashandb 崖山数据库

残疾人辅具展|2024年广州国际残疾人用品展会

秋硕展览

mcgs笔记 按钮 按下与抬起的差异设置

万里无云万里天

自动化 HMI mcgs

阿里巴巴拍立淘API:实时图像搜索与快速响应的技术探索

代码忍者

API 测试 pinduoduo API

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