基于RAG架构的开发(Retrieval-Augmented-Generation 检索增强生成)
-
RAG解决的问题
- 大模型的知识冻结,一些数据不能够实时同步更新
- 大模型的一些幻觉,有时候答非所问
-
RAG模型
难点解析:
-
文件解析
- 需要处理不同类型的文件,如一个pdf里面的图片、表格、文字...
-
文件切割
- 需要确定切割标准:字符数、语义、段落、token...
-
知识检索
- 需要确定检索方法:相似度的检索、基于欧式距离的检索、基于最大边际效应的检索(确保相关性的同时,增加多样性)...
-
知识重排序
- 需要降低通过“知识检索”步骤出来的结果的噪声,选出相似度最高的几个结果
- 重排序会增加响应时长,适合于需要回答高精度和高相关性的场景
这里有三个位置涉及到大模型的使用:
- 第3步向量化时,需要使用EmbeddingModels(嵌入模型)。
- 第7步重排序时,需要使用RerankModels(重排序模型)。
- 第9步生成答案时,需要使用LLM(大语言模型)。
基于Agent架构的开发
充分利用LLM的推理决策能力,通过增加规划、记忆和工具调用的能力,构造一个能够独立思考、逐步完成给定目标的智能体。
一个数学公式来表示: Agent =LLM + Memory + Tools + Planning + Action
像我们平常使用LLMs进行问答对话,如果涉及到了联网,即代表应用到了Tools,那么我们在使用的就已经是一个智能体了。
大模型应用开发的4个场景
纯Prompt场景
即通过基础提示词去使用基础大模型
Agent + Function Calling
需要对接外部系统时使用。比如询问旅游计划,Agent就会去调用外部工具查询天气情况。
RAG(Retrieval-Augmented Generation)
适用于涉及到具体领域的一些知识时,在智能客服上使用最广
Fine-tuning(精调/微调)
把RAG数据整合到Agent基础模型中,作为基础模型的一部分。
成本更高,一般在前几种方法行不通的时候才使用这种方法。
面对一个需求我们应该按照如下步骤去选择技术方案: