张梦飞 :AI商用级问答场景,怎么让AI+知识库回答的更准确?一篇专门为小白讲透RAG而作的教程(上篇)

张梦飞 :AI商用级问答场景,怎么让AI+知识库回答的更准确?一篇专门为小白讲透RAG而作的教程(上篇)

张梦飞 :AI商用级问答场景,怎么让AI+知识库回答的更准确?一篇专门为小白讲透RAG而作的教程(上篇) 张梦飞 :AI商用级问答场景,怎么让AI+知识库回答的更准确?一篇专门为小白讲透RAG而作的教程(上篇) Created on April 30, 2024 4. 大模型生成回答 3. 逐词生成回答: ◦ 生成模型开始逐词构建回答。模型在每一步生成一个词,同时考虑到之前已生成的词和整个上下文的语义。这个过程是迭代的,直到整个回答构建完成。 4. 语言流畅性和准确性优化: ◦ 在回答生成的过程中,模型会优化语言的流畅性和逻辑性。确保生成的文本不仅在语法上正确,而且在逻辑上连贯,与用户问题紧密相关。 5. 回答评估与调整: ◦ 完成初步生成后,系统可能会对回答进行评估,检查其准确性、相关性和用户满意度。如果需要,可以对回答进行微调或完全重新生成。 5. 输出回答: ◦ 最终,生成的答案会呈现给用户。 这就是一个RAG的全流程,简单总结: 1. 问题解析阶段: ◦ 接收并预处理问题,通过嵌入模型(如Word2Vec、GloVe、BERT)将问题文本转化为向量。这一步确保问题向量能有效用于后续检索。 2. 知识库检索阶段: ◦ 知识库中的文档同样向量化后,比较问题向量与文档向量,选择最相关的信息片段。抽取相关信息传递给下一步骤 3. 信息整合阶段: ◦ 接收检索到的信息,与上下文构建形成融合、全面的信息文本。整合信息准备进入生成阶段。 4. 大模型生成回答: ◦ 整合后的信息被转化为向量并输入到LLM(大语言模型)。模型逐词构建回答,最终输出给用户。 4、实例 看理论有点懵是吗?为了更加具象化,我们来一起看看,让我询问AI一个问题时,经历了什么。 这是调试预览中的对话示例。在回复中,可以看到这里有写11条引用,3条上下文,我们具体来看下,有什么处理。 一、知识库检索部分: 1、把输入的问题,通过Embedding做了向量化 2、使用qwen语言模型把问题做了优化、添加了接近的检索词 3、知识库向量检索,抽取条件包含相似度0.85 4、通过检索一共抽取出了11个内容块(chunk) 二、大模型对话部分 (因为我刷新后丢失了记录,改成说了一句:你好,所以下边的问题,变成了你好) 5、此处将①②一起传递给了LLM(大语言模型),最终得到了AI的回答。 ①System:我设置的Prompt(提示词) ②Human:知识库检索的到的信息(下图两个<data 中间的内容就是知识库检索到的信息)。 ③AI:最终收到的回复信息。 现在再来看这四步操作,是否对“知识库+LLM”的问答流程会有更加清晰地认知呢? ①、问题解析阶段 ②、知识库检索阶段 ③、信息整合阶段 ④、大模型生成回答 如果我们要对最后的输出结果进行优化,那么只需要从这些环节中入手优化即可。接下来我们开始一起实操,对每一个环节进行优化。 三、联系方式 最后,欢迎交流 4. 大模型生成回答 3. 逐词生成回答: ◦ 生成模型开始逐词构建回答。模型在每一步生成一个词,同时考虑到之前已生成的词和整个上下文的语义。这个过程是迭代的,直到整个回答构建完成。 4. 语言流畅性和准确性优化: ◦ 在回答生成的过程中,模型会优化语言的流畅性和逻辑性。确保生成的文本不仅在语法上正确,而且在逻辑上连贯,与用户问题紧密相关。 5. 回答评估与调整: ◦ 完成初步生成后,系统可能会对回答进行评估,检查其准确性、相关性和用户满意度。如果需要,可以对回答进行微调或完全重新生成。 3. 逐词生成回答: ◦ 生成模型开始逐词构建回答。模型在每一步生成一个词,同时考虑到之前已生成的词和整个上下文的语义。这个过程是迭代的,直到整个回答构建完成。 4. 语言流畅性和准确性优化: ◦ 在回答生成的过程中,模型会优化语言的流畅性和逻辑性。确保生成的文本不仅在语法上正确,而且在逻辑上连贯,与用户问题紧密相关。 5. 回答评估与调整: ◦ 完成初步生成后,系统可能会对回答进行评估,检查其准确性、相关性和用户满意度。如果需要,可以对回答进行微调或完全重新生成。 3. 逐词生成回答: ◦ 生成模型开始逐词构建回答。模型在每一步生成一个词,同时考虑到之前已生成的词和整个上下文的语义。这个过程是迭代的,直到整个回答构建完成。 ◦ 生成模型开始逐词构建回答。模型在每一步生成一个词,同时考虑到之前已生成的词和整个上下文的语义。这个过程是迭代的,直到整个回答构建完成。 4. 语言流畅性和准确性优化: ◦ 在回答生成的过程中,模型会优化语言的流畅性和逻辑性。确保生成的文本不仅在语法上正确,而且在逻辑上连贯,与用户问题紧密相关。 ◦ 在回答生成的过程中,模型会优化语言的流畅性和逻辑性。确保生成的文本不仅在语法上正确,而且在逻辑上连贯,与用户问题紧密相关。 5. 回答评估与调整: ◦ 完成初步生成后,系统可能会对回答进行评估,检查其准确性、相关性和用户满意度。如果需要,可以对回答进行微调或完全重新生成。 ◦ 完成初步生成后,系统可能会对回答进行评估,检查其准确性、相关性和用户满意度。如果需要,可以对回答进行微调或完全重新生成。 5. 输出回答: ◦ 最终,生成的答案会呈现给用户。 ◦ 最终,生成的答案会呈现给用户。 这就是一个RAG的全流程,简单总结: 1. 问题解析阶段: ◦ 接收并预处理问题,通过嵌入模型(如Word2Vec、GloVe、BERT)将问题文本转化为向量。这一步确保问题向量能有效用于后续检索。 ◦ 接收并预处理问题,通过嵌入模型(如Word2Vec、GloVe、BERT)将问题文本转化为向量。这一步确保问题向量能有效用于后续检索。 2. 知识库检索阶段: ◦ 知识库中的文档同样向量化后,比较问题向量与文档向量,选择最相关的信息片段。抽取相关信息传递给下一步骤 ◦ 知识库中的文档同样向量化后,比较问题向量与文档向量,选择最相关的信息片段。抽取相关信息传递给下一步骤 3. 信息整合阶段: ◦ 接收检索到的信息,与上下文构建形成融合、全面的信息文本。整合信息准备进入生成阶段。 ◦ 接收检索到的信息,与上下文构建形成融合、全面的信息文本。整合信息准备进入生成阶段。 4. 大模型生成回答: ◦ 整合后的信息被转化为向量并输入到LLM(大语言模型)。模型逐词构建回答,最终输出给用户。 ◦ 整合后的信息被转化为向量并输入到LLM(大语言模型)。模型逐词构建回答,最终输出给用户。 4、实例 看理论有点懵是吗?为了更加具象化,我们来一起看看,让我询问AI一个问题时,经历了什么。 这是调试预览中的对话示例。在回复中,可以看到这里有写11条引用,3条上下文,我们具体来看下,有什么处理。 这是调试预览中的对话示例。在回复中,可以看到这里有写11条引用,3条上下文,我们具体来看下,有什么处理。 这是调试预览中的对话示例。在回复中,可以看到这里有写11条引用,3条上下文,我们具体来看下,有什么处理。 一、知识库检索部分: 1、把输入的问题,通过Embedding做了向量化 2、使用qwen语言模型把问题做了优化、添加了接近的检索词 3、知识库向量检索,抽取条件包含相似度0.85 4、通过检索一共抽取出了11个内容块(chunk) 二、大模型对话部分 (因为我刷新后丢失了记录,改成说了一句:你好,所以下边的问题,变成了你好) 5、此处将①②一起传递给了LLM(大语言模型),最终得到了AI的回答。 ①System:我设置的Prompt(提示词) ②Human:知识库检索的到的信息(下图两个<data 中间的内容就是知识库检索到的信息)。 ③AI:最终收到的回复信息。 一、知识库检索部分: 1、把输入的问题,通过Embedding做了向量化 2、使用qwen语言模型把问题做了优化、添加了接近的检索词 3、知识库向量检索,抽取条件包含相似度0.85 4、通过检索一共抽取出了11个内容块(chunk) 二、大模型对话部分 (因为我刷新后丢失了记录,改成说了一句:你好,所以下边的问题,变成了你好) 5、此处将①②一起传递给了LLM(大语言模型),最终得到了AI的回答。 ①System:我设置的Prompt(提示词) ②Human:知识库检索的到的信息(下图两个<data 中间的内容就是知识库检索到的信息)。 ③AI:最终收到的回复信息。 一、知识库检索部分: 1、把输入的问题,通过Embedding做了向量化 2、使用qwen语言模型把问题做了优化、添加了接近的检索词 3、知识库向量检索,抽取条件包含相似度0.85 4、通过检索一共抽取出了11个内容块(chunk) 二、大模型对话部分 (因为我刷新后丢失了记录,改成说了一句:你好,所以下边的问题,变成了你好) 5、此处将①②一起传递给了LLM(大语言模型),最终得到了AI的回答。 ①System:我设置的Prompt(提示词) ②Human:知识库检索的到的信息(下图两个<data 中间的内容就是知识库检索到的信息)。 ③AI:最终收到的回复信息。 现在再来看这四步操作,是否对“知识库+LLM”的问答流程会有更加清晰地认知呢? ①、问题解析阶段 ②、知识库检索阶段 ③、信息整合阶段 ④、大模型生成回答 如果我们要对最后的输出结果进行优化,那么只需要从这些环节中入手优化即可。接下来我们开始一起实操,对每一个环节进行优化。 三、联系方式 最后,欢迎交流 🎂 作者:张梦飞 作者:张梦飞 在前边把AI大模型能力接入微信后,发现很多朋友想要落地的应用场景,是让用知识库回答问题。 但目前大模型存在幻觉,一不留神就胡乱回答,这在严肃的商用场景下是不可接受的。当我想要解决此问题时,发现虽然资料很多,但是多数太偏“技术向”,对于很多和我一样的非技术从业者来说,犹如天书一般。有落地需求的朋友们,即使完成了通路搭建,也无法真正的应用。 落地场景,幻觉是不得不直面的问题。而非技术从业者的小白们,很难找到一个“说人话”的文章,让他们完全了解并应用。 而我对此比较感兴趣,同时作为产品经理,有一些用户思维和技术基础。因此我斗胆在整理、学习了多位前辈的成果后,写一篇讲给“小白”们的教程。 以下内容,如有错漏,欢迎补充、批评、指正。 原本是想把讲清楚+如何应用全写在一起的,但发现全文太长,且测试还要花些时间,因此先发上篇。 如果我直接讲理论部分,我相信小白强迫自己看了前200字就会关掉窗口。因此,我们先将这个过程具象化。 一、对话示例 以下是一个问答机器人的界面。这是一个示例,你可以把右侧的对话当做是微信的对话框,这些对话交互是可以在任何一个受支持的窗口下实现的。 上方页面左侧画红框的地方,是这个“问答机器人”的配置,右侧是与“机器人”的一轮对话。 问答机器人的配置这里有三处配置: • AI模型 • 提示词 • 知识库。 模型、提示词、知识库 三者可以想象成: • 大语言模型:是一个学习过无数本书、拥有无穷智慧的人。他读过无数的书、看过无数的段子,因此对公共知识、学识技能、日常聊天十分擅长。然而,在工作场景下,只会聊天侃大山可不行,你想让他帮你干活。这个时候,就需要“提示词”出场了, • 提示词:是你告诉这个全知全能的人,他是一个什么样的角色、他要专注于哪些技能,让他能够按照你的想法,变成一个你需要的“员工”。 • 知识库,相当于你给这个“聪明”员工的发放了一本工作手册。即使是看过再多的书、浏览过再多的文字,也不会准确的知道见到老板娘过来吃饭要打三折,张梦飞过去吃饭要打骨折。而知识库,就是把这些内容写在了工作手册上。让这个聪明的员工,见到有人来的时候,就翻一翻手册,然后再做出反应。 那我这里的设定: • AI模型:这里使用的是阿里千问模型。 • 提示词:这里设定的角色是“美嘉”,是按照美嘉的人设、背景和对话风格做的设定。 • 知识库:这里放的是《爱情公寓》全季的剧情,让“美嘉”拥有了自己过往的“记忆”,知道自己做过什么、好朋友是谁等等。 右侧是一个十分简单的问答,我问: “你是谁?你和子乔在台球厅吵架那次是为了什么吵架?” 她的回复是: “我是陈美嘉,那次在台球厅和吕子乔吵架是因为他约会被人撞见,我讽刺他脸大影响信号,他还反击我。后来谈到过去的事情,我指责他忘恩负义,他就说我平。最后,我伤心地说要分手,因为他之前甩过我。” 其中,她是陈美嘉,这里是人设中的设定。 吵架的经过是知识库中的内容。 在我提问了之后,大模型去知识库里找到了这个内容,然后回复了我们。这就是一个简单的正确回复的demo。 然而,我们会发现,有时候她的回答会十分不准确。 比如: 明显回答的牛头不对马嘴。而且,图二中是知识库截图,其中是有“一菲为美嘉找了一份助教工作”的内容的。但是回答这个问题时,并没有根据正确的知识库内容回答。 这个,就是基于知识库问答中的一个非常常见的错误场景。在其他情况下,甚至有可能出现报价错误、胡编乱造等等。这在严肃场景中,是不能接受的出错。 现在应该能够直观的理解,为什么需要让大模型根据知识库回答的更加准确、更符合我们的要求。 在AI领域中,优化AI更准确的回答一些专有问题的过程,有一个更加专业的术语,叫做RAG。接下来,咱们进入正题,一步一步探索,如何优化回答。 二、问答 如果我们要优化幻觉问题和提高准确性,就务必要了解清楚从“问题输入” “得到回复”,这个过程中,究竟发生了什么。然后针对每一个环节,逐个调优,以达到效果最佳化。 因此,我们先深入其中了解问答全貌。 1、RAG RAG(Retrieval Augmented Generation),即检索增强生成,是一种结合信息检索和文本生成能力的技术,它由两部分组成:一个“检索器”和一个“生成器”。检索器从外部知识中快速找到与问题相关的信息,生成器则利用这些信息来制作精确和连贯的答案。这种结合使得RAG非常适合处理需要广泛知识的任务,如问答系统,能够提供详细而准确的回答。 简单来说,就是通过检索的模式,为大语言模型的生成提供更多信息,从而使大模型生成的答案更符合要求。 简单来说,就是通过检索的模式,为大语言模型的生成提供更多信息,从而使大模型生成的答案更符合要求。 2、向量 首先我们需补个课,简单了解一下大模型中的“向量”:(同时建议了解下LLM的实现原理) 你可以把向量想象成空间中的点位,而每个词或短语都对应一个点。 当系统需要找到与一个特定词或短语相关的内容时,它会查看这个词在虚拟空间中点的位置,寻找直线距离最近的点。在这个空间中,距离越近的点,代表词义或内容上的关联度越高。 简单来说,通过比较这些点的距离,检索器可以快速找到语义上接近的词语或信息,从而高效地检索相关内容。这就像在一个城市地图上找最近的餐馆,距离越近,越可能是你想去的地方。 简单来说,通过比较这些点的距离,检索器可以快速找到语义上接近的词语或信息,从而高效地检索相关内容。这就像在一个城市地图上找最近的餐馆,距离越近,越可能是你想去的地方。 理解了向量,我们来看看收到一个对话时,RAG的完整的工作流程。 3、RAG的工作原理 ①、问题解析阶段 ②、知识库检索阶段 ③、信息整合阶段 ④、大模型生成回答 1. 问题解析阶段: a. 收到问题后,问题会被预处理,然后输入进嵌入模型(Embedding Modle)转化为向量。以便后续检索时,能够把问题语句与向量数据库中的其他上下文信息进行比对。 具体进行了什么操作呢?(了解即可) 1. 文本预处理: ◦ 这包括去除无关字符、标准化文本(例如将所有字符转换为小写)、分词等,以清洁和准备文本数据。 2. 嵌入表示: ◦ 将预处理后的文本(词或短语)转换为向量。这通常通过使用预训练的嵌入模型来完成,如Word2Vec、GloVe、BERT等。这些模型将每个词或短语映射到一个高维空间中的一个点(即向量)。 3. 特征提取: ◦ 对于整个问题句子,可能会应用进一步的特征提取技术,比如句子级别的嵌入,或使用深度学习模型(如BERT)直接提取整个句子的表示。这个表示能够捕捉句子的上下文信息,不仅仅是单个词。 4. 向量优化: ◦ 在某些情况下,问题的向量表示可能会根据具体任务进行优化,例如通过调整模型参数来更好地与检索系统的其他部分协同工作。 a. 收到问题后,问题会被预处理,然后输入进嵌入模型(Embedding Modle)转化为向量。以便后续检索时,能够把问题语句与向量数据库中的其他上下文信息进行比对。 具体进行了什么操作呢?(了解即可) 1. 文本预处理: ◦ 这包括去除无关字符、标准化文本(例如将所有字符转换为小写)、分词等,以清洁和准备文本数据。 2. 嵌入表示: ◦ 将预处理后的文本(词或短语)转换为向量。这通常通过使用预训练的嵌入模型来完成,如Word2Vec、GloVe、BERT等。这些模型将每个词或短语映射到一个高维空间中的一个点(即向量)。 3. 特征提取: ◦ 对于整个问题句子,可能会应用进一步的特征提取技术,比如句子级别的嵌入,或使用深度学习模型(如BERT)直接提取整个句子的表示。这个表示能够捕捉句子的上下文信息,不仅仅是单个词。 4. 向量优化: ◦ 在某些情况下,问题的向量表示可能会根据具体任务进行优化,例如通过调整模型参数来更好地与检索系统的其他部分协同工作。 1. 文本预处理: ◦ 这包括去除无关字符、标准化文本(例如将所有字符转换为小写)、分词等,以清洁和准备文本数据。 ◦ 这包括去除无关字符、标准化文本(例如将所有字符转换为小写)、分词等,以清洁和准备文本数据。 2. 嵌入表示: ◦ 将预处理后的文本(词或短语)转换为向量。这通常通过使用预训练的嵌入模型来完成,如Word2Vec、GloVe、BERT等。这些模型将每个词或短语映射到一个高维空间中的一个点(即向量)。 ◦ 将预处理后的文本(词或短语)转换为向量。这通常通过使用预训练的嵌入模型来完成,如Word2Vec、GloVe、BERT等。这些模型将每个词或短语映射到一个高维空间中的一个点(即向量)。 3. 特征提取: ◦ 对于整个问题句子,可能会应用进一步的特征提取技术,比如句子级别的嵌入,或使用深度学习模型(如BERT)直接提取整个句子的表示。这个表示能够捕捉句子的上下文信息,不仅仅是单个词。 ◦ 对于整个问题句子,可能会应用进一步的特征提取技术,比如句子级别的嵌入,或使用深度学习模型(如BERT)直接提取整个句子的表示。这个表示能够捕捉句子的上下文信息,不仅仅是单个词。 4. 向量优化: ◦ 在某些情况下,问题的向量表示可能会根据具体任务进行优化,例如通过调整模型参数来更好地与检索系统的其他部分协同工作。 ◦ 在某些情况下,问题的向量表示可能会根据具体任务进行优化,例如通过调整模型参数来更好地与检索系统的其他部分协同工作。 2. 知识库检索阶段: 此阶段,首先需要有一个知识库,那么知识库是如何完成制作,并被检索的呢? 我们需要先了解一个概念,在大模型的检索中,并不是依靠传统的关键字去搜索。而是依靠问题在空间中的向量位置,去寻找距离这个向量最近的其他词句,然后完成检索。 所以,要在向量中进行检索,我们的知识库其实也是被转化成了了一个巨大的向量库。 ◦ 知识库文档向量化:知识库中的文档也需要被转换成向量形式。这使得文档内容能够在数值级别上与问题向量进行比较。在我们使用知识库工具时,上传文档就会帮助我们完成文档的向量化。这一步就是依靠Embedding Modle完成的。 知识库检索: ◦ 根据前一步输出的问题向量,检索器开始在一个庞大的向量空间中搜索与问题相关的内容(既向量距离最接近)。检索器根据问题的关键词和上下文,选出最相关的信息片段。 在这一步,检索器从知识库里,检索到了一些和用户问题最相关的内容。 检索器具体进行了什么操作呢?(了解即可)? 1. 相似性计算: ◦ 使用一种相似性度量方法(如余弦相似性)来计算问题向量和各个文档向量之间的相似度。这一步是为了找出与问题内容最为接近的文档。 2. 排序与选择: ◦ 根据相似性得分,所有文档会被排序。系统通常会选择得分最高的几个文档,认为这些文档与问题最相关。 3. 信息抽取: ◦ 从选定的高相关性文档中抽取具体的信息片段或答案。这可能涉及到进一步的文本处理技术,如命名实体识别、关键短语提取等。 此阶段,首先需要有一个知识库,那么知识库是如何完成制作,并被检索的呢? 我们需要先了解一个概念,在大模型的检索中,并不是依靠传统的关键字去搜索。而是依靠问题在空间中的向量位置,去寻找距离这个向量最近的其他词句,然后完成检索。 所以,要在向量中进行检索,我们的知识库其实也是被转化成了了一个巨大的向量库。 ◦ 知识库文档向量化:知识库中的文档也需要被转换成向量形式。这使得文档内容能够在数值级别上与问题向量进行比较。在我们使用知识库工具时,上传文档就会帮助我们完成文档的向量化。这一步就是依靠Embedding Modle完成的。 知识库检索: ◦ 根据前一步输出的问题向量,检索器开始在一个庞大的向量空间中搜索与问题相关的内容(既向量距离最接近)。检索器根据问题的关键词和上下文,选出最相关的信息片段。 在这一步,检索器从知识库里,检索到了一些和用户问题最相关的内容。 检索器具体进行了什么操作呢?(了解即可)? 1. 相似性计算: ◦ 使用一种相似性度量方法(如余弦相似性)来计算问题向量和各个文档向量之间的相似度。这一步是为了找出与问题内容最为接近的文档。 2. 排序与选择: ◦ 根据相似性得分,所有文档会被排序。系统通常会选择得分最高的几个文档,认为这些文档与问题最相关。 3. 信息抽取: ◦ 从选定的高相关性文档中抽取具体的信息片段或答案。这可能涉及到进一步的文本处理技术,如命名实体识别、关键短语提取等。 1. 相似性计算: ◦ 使用一种相似性度量方法(如余弦相似性)来计算问题向量和各个文档向量之间的相似度。这一步是为了找出与问题内容最为接近的文档。 ◦ 使用一种相似性度量方法(如余弦相似性)来计算问题向量和各个文档向量之间的相似度。这一步是为了找出与问题内容最为接近的文档。 2. 排序与选择: ◦ 根据相似性得分,所有文档会被排序。系统通常会选择得分最高的几个文档,认为这些文档与问题最相关。 ◦ 根据相似性得分,所有文档会被排序。系统通常会选择得分最高的几个文档,认为这些文档与问题最相关。 3. 信息抽取: ◦ 从选定的高相关性文档中抽取具体的信息片段或答案。这可能涉及到进一步的文本处理技术,如命名实体识别、关键短语提取等。 ◦ 从选定的高相关性文档中抽取具体的信息片段或答案。这可能涉及到进一步的文本处理技术,如命名实体识别、关键短语提取等。 3. 信息整合阶段: ◦ 信息融合:在这里接收到上一步中检索到的全部信息。然后把这些信息连带用户问题和系统预设,被整合成一个全新的上下文环境,为生成回答提供基础。 具体进行了什么操作呢?(了解即可)? 1. 信息筛选与确认: ◦ 首先,系统会对检索器提供的信息进行评估,筛选出最相关和最可信的内容。这通常涉及到对信息的来源、时效性和相关性进行验证。 2. 消除冗余: ◦ 在多个文档或数据源中,可能会有重复的信息。系统需要识别和去除这些冗余内容,以防在生成回答时出现重复或相互矛盾的信息。 3. 关系映射: ◦ 系统将分析不同信息片段之间的逻辑和事实关系,如因果、对比、顺序等。这有助于构建一个结构化的知识框架,使得信息在语义上更加连贯。 4. 上下文构建: ◦ 将筛选和结构化的信息组织成一个连贯的上下文环境。这通常包括对信息进行排序、归类和整合,使其形成一个统一的叙述或解答框架。 5. 语义融合: ◦ 在必要时,系统可能会进行语义融合,即合并意义相近但表达不同的信息片段,以减少语义上的重复并增强信息的表达力。 6. 预备生成阶段: ◦ 最后,整合好的上下文信息被编码成适合生成器处理的格式,如将文本转化为适合输入到生成模型的向量形式。 ◦ 信息融合:在这里接收到上一步中检索到的全部信息。然后把这些信息连带用户问题和系统预设,被整合成一个全新的上下文环境,为生成回答提供基础。 具体进行了什么操作呢?(了解即可)? 1. 信息筛选与确认: ◦ 首先,系统会对检索器提供的信息进行评估,筛选出最相关和最可信的内容。这通常涉及到对信息的来源、时效性和相关性进行验证。 2. 消除冗余: ◦ 在多个文档或数据源中,可能会有重复的信息。系统需要识别和去除这些冗余内容,以防在生成回答时出现重复或相互矛盾的信息。 3. 关系映射: ◦ 系统将分析不同信息片段之间的逻辑和事实关系,如因果、对比、顺序等。这有助于构建一个结构化的知识框架,使得信息在语义上更加连贯。 4. 上下文构建: ◦ 将筛选和结构化的信息组织成一个连贯的上下文环境。这通常包括对信息进行排序、归类和整合,使其形成一个统一的叙述或解答框架。 5. 语义融合: ◦ 在必要时,系统可能会进行语义融合,即合并意义相近但表达不同的信息片段,以减少语义上的重复并增强信息的表达力。 6. 预备生成阶段: ◦ 最后,整合好的上下文信息被编码成适合生成器处理的格式,如将文本转化为适合输入到生成模型的向量形式。 1. 信息筛选与确认: ◦ 首先,系统会对检索器提供的信息进行评估,筛选出最相关和最可信的内容。这通常涉及到对信息的来源、时效性和相关性进行验证。 ◦ 首先,系统会对检索器提供的信息进行评估,筛选出最相关和最可信的内容。这通常涉及到对信息的来源、时效性和相关性进行验证。 2. 消除冗余: ◦ 在多个文档或数据源中,可能会有重复的信息。系统需要识别和去除这些冗余内容,以防在生成回答时出现重复或相互矛盾的信息。 ◦ 在多个文档或数据源中,可能会有重复的信息。系统需要识别和去除这些冗余内容,以防在生成回答时出现重复或相互矛盾的信息。 3. 关系映射: ◦ 系统将分析不同信息片段之间的逻辑和事实关系,如因果、对比、顺序等。这有助于构建一个结构化的知识框架,使得信息在语义上更加连贯。 ◦ 系统将分析不同信息片段之间的逻辑和事实关系,如因果、对比、顺序等。这有助于构建一个结构化的知识框架,使得信息在语义上更加连贯。 4. 上下文构建: ◦ 将筛选和结构化的信息组织成一个连贯的上下文环境。这通常包括对信息进行排序、归类和整合,使其形成一个统一的叙述或解答框架。 ◦ 将筛选和结构化的信息组织成一个连贯的上下文环境。这通常包括对信息进行排序、归类和整合,使其形成一个统一的叙述或解答框架。 5. 语义融合: ◦ 在必要时,系统可能会进行语义融合,即合并意义相近但表达不同的信息片段,以减少语义上的重复并增强信息的表达力。 ◦ 在必要时,系统可能会进行语义融合,即合并意义相近但表达不同的信息片段,以减少语义上的重复并增强信息的表达力。 6. 预备生成阶段: ◦ 最后,整合好的上下文信息被编码成适合生成器处理的格式,如将文本转化为适合输入到生成模型的向量形式。 ◦ 最后,整合好的上下文信息被编码成适合生成器处理的格式,如将文本转化为适合输入到生成模型的向量形式。 ◦ 生成器:最终全新的上下文被一起传递给大语言模型。随后,大语言模型(LLM)根据提供的信息来回答问题。 ◦ 因为这个上下文包括了检索到的信息,因此大语言模型相当于同时拿到了问题和参考答案,通过LLM的全文理解,最后生成一个准确和连贯的答案。 在生成过程中,系统基于整合好的上下文信息来构建最终的回答时。这个过程具体包括以下关键步骤: 1. 上下文向量化: ◦ 将整合后的上下文信息转化为向量。这通常通过一个预训练的语言模型进行,例如BERT或GPT。这些向量能够捕捉上下文中的语义信息,为生成回答提供必要的输入。 ◦ 将整合后的上下文信息转化为向量。这通常通过一个预训练的语言模型进行,例如BERT或GPT。这些向量能够捕捉上下文中的语义信息,为生成回答提供必要的输入。 2. 生成模型激活: ◦ 使用一个基于Transformer的生成模型(如GPT)接收向量化的上下文。这个模型利用自注意力机制来理解上下文中的各种关系和信息。 ◦ 使用一个基于Transformer的生成模型(如GPT)接收向量化的上下文。这个模型利用自注意力机制来理解上下文中的各种关系和信息。

在 小宇宙note 阅读完整内容