大语言模型的Prompt工程、RAG和微调区别及应用示例

本文通过生活中的考试比喻,阐述了Prompt工程(考试大纲)、RAG(开卷考试)和模型微调(针对性辅导)在大语言模型开发中的角色。它们共同提升模型在特定任务中的表现和适应性,如编程辅助中的代码生成和问题解答。
摘要由CSDN通过智能技术生成

在大语言模型的开发和应用中,Prompt工程、检索增强生成(Retrieval-Augmented Generation, RAG)和模型微调是三种关键技术。为了更好地理解这些技术的作用和相互之间的关系,我们可以通过一个贴近生活的比喻来进行阐述:将大语言模型比作参加考试的学生,如下图所示(从小到大我最怕的一件事情就是考试,以至于到现在每每精神压力比较大的时候,晚上做噩梦都是梦到自己在考场上,几十年来一直如此):

图片

用上图的这个示例更适合来说明几者的关系。

Prompt工程

Prompt工程可以被视为考试中的考试大纲。它指导学生(即语言模型)应该学习和复习哪些内容,以便在考试(即特定的任务)中取得好成绩。通过精心设计的输入(即提示词或问题),Prompt工程引导模型生成高质量的输出。

一个简单的示例,假设需要模型撰写一篇关于“气候变化”的文章,简单的提示词可能是“写一篇关于气候变化的文章。”通过Prompt工程,可以改进这个提示词为:“请详细描述气候变化的科学原理、主要影响以及目前的全球应对策略。”这种精细化的提示词能够引导模型产生更专业、更详尽的内容。

  • 示例 - 1 prompt提示词:写一篇关于气候变化的文章

图片

  • 示例 - 2 prompt 提示词:请详细描述气候变化的科学原理、主要影响以及目前的全球应对策略

图片

RAG

RAG技术类似于考试中的开卷考试,允许学生(语言模型)在回答问题前,先从一个大型的知识库中查找相关信息。这种方法不仅提高了回答的准确性,也使得生成的内容更加丰富和有根据。

一个简单的示例是我们在进行应急的过程中,如“数据库异常锁表故障”时,如果没有相应的《应急预案文档》作为知识库,模型可能只能提供一个非常通用的答案。而有了RAG,模型可以直接引用本地知识库中的具体信息,提供更加准确和适用的解决方案。

  • 无RAG的情况下,我们询问大模型chatGPT的结果,给的是一个非常通用的知识,基本上是放之四海皆准的回答:

图片

  • 而在有RAG的情况下,我们使用本地的部署环境,大模型就会直接引用本地知识库中的知识来进行解答,而本地的应急文档更符合当前系统的应用架构特色,更符合企业内部的处置步骤:

图片

微调

微调则相当于对学生进行针对性辅导,使其在某个特定科目或领域中表现得更好。这不仅增强了模型在特定任务上的表现,也使得模型能够更好地适应不同的应用场景。

在生成代码的任务中,使用微调后的模型(如codiumate)可以不仅仅生成代码,还能提供实现目标的详细步骤和执行计划。这种方法不仅提高了代码的质量,也使得整个开发过程更加高效和系统化。(注意:虽然目前没有官方资料证实codiumate是基于ChatGPT进行微调的结果,但它显然是针对代码生成这一垂直领域的应用。例如,我们对一个通用的大模型如llama-3进行微调,使其成为Python程序员的辅助编程助手,那么在给定特定编程任务的目标后,能够提供的不仅仅是代码片段。这种微调后的模型,能够根据用户的具体需求,提供从项目规划到代码实现的全面解决方案。这不仅包括代码本身,还包括实现目标的详细步骤说明和执行计划,极大地提升了开发效率和项目管理的便捷性。)

通过一个示例看其如何满足新需求:“请给出生成相应的代码,利用股票的历史交易数据,通过深度学习算法预测未来的股票价格”,我们分别使用llama-3和codiuate来看一下效果。

  • 示例,llama-3写一段代码,如下图所示生成的质量其实已经很不错了,生成的代码基本可用。

图片

  • 在探讨codiumate的应用时,我们可以看到它不仅仅是一个代码生成工具。

    • 第一步:先给出完成这个目标的完整实现步骤说明,有点像设计说明

      图片

    • 第二步:给出执行计划

图片

  • (1)首先,按步骤生成requirements.txt文件,并执行安装相应的包

    图片

    图片

    (2)生成data_collector.py,复制红框中的内容到该文件中,则会自动生成相应的代码段如下图所示:

    图片

    (3)后面的步骤不再详细说明,感兴趣的可以自行测试。

    • 第三步:执行这个计划,这时可以来完成代码了:

三者关系

在实际应用中,通过精心设计的Prompt引导模型的输出方向,结合RAG技术的外部知识检索能力,以及通过微调增强的特定领域适应性,三者共同作用可以极大地提升模型的性能。例如,在编程辅助领域,通过微调专门化的模型来理解编程语言和框架,结合RAG技术检索相关编程问题的解决方案,再通过精细化的Prompt引导生成具体的代码或解决方案,可以显著提高开发效率和代码质量。

图片

  • 29
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值