微信扫码
与创始人交个朋友
我要投稿
在大语言模型的开发和应用中,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引导生成具体的代码或解决方案,可以显著提高开发效率和代码质量。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-05-28
2024-04-26
2024-08-21
2024-04-11
2024-07-09
2024-08-13
2024-07-18
2024-10-25
2024-07-01
2024-06-17