生成自己的问答知识库可以通过以下两种方式:
上面将文本转换成向量(一串数字)能大大节省空间,它不是压缩,可简单理解为索引(Index)。接下来就有意思了。比如我有一个大文本,可以先把它拆分成若干个小文本块(也叫chunk),通过embeddings API将小文本块转换成embeddings向量,这个向量是跟文本块的语义相关。在一个地方(向量储存库)中保存这些embeddings向量和文本块,作为问答的知识库。当用户提出一个问题时,该问题先通过embeddings API转换成问题向量,然后将这问题向量与向量储存库的所有文本块向量比对,查找距离最小的几个向量,把这几个向量对应的文本块提取出来,与原有问题组合成为新的prompt(问题/提示词),发送给GPT API。这样一来就不用一次会话中输入所有领域知识,而是输入了关联度最高的部分知识。一图胜千言,转一张原理图。再举一个极其简单的例子,比如有一篇万字长文,拆分成Chrunks包含:文本块1:本文作者:越山。xxxx。文本块2:公众号越山集的介绍:传播效率方法,分享AI应用,陪伴彼此在成长路上,共同前行。文本块3:《反脆弱》作者塔勒布xxxx。文本块4:“科技爱好者周刊”主编阮一峰会记录每周值得分享的科技内容,周五发布。...文本块n如果提问是”此文作者是谁?“。可以直观的看出上面的文本块1跟这个问题的关联度最高,文本块3次之。通过比较embeddings向量也可以得到这结论。那最后发送给GPT API的问题会类似于”此文作者是谁?从以下信息中获取答案:本文作者:越山。xxxx。《反脆弱》作者塔勒布xxxx。“这样一来,大语言大概率能回答上这个问题。
知识库问答是机器人最基础的功能,它可以根据用户的问题,从知识库中找到最佳答案。这其实就是利用了大模型的RAG机制。那什么是RAG机制?RAG机制,全称为“检索增强生成”(Retrieval-Augmented Generation),是一种用于自然语言处理的技术。它结合了两种主要的人工智能技术:检索(Retrieval)和生成(Generation),以提高机器对话和信息处理的能力。简单来说,RAG机制先从一个大型的数据集中找到与当前问题相关的信息,这一步叫做“检索”。然后,它使用这些检索到的信息来帮助生成更准确、更相关的回答,这一步叫做“生成”。可以把它想象成这样一个场景:当你问一个很复杂的问题时,RAG机制先去一个巨大的图书馆里找到所有相关的书籍,然后基于这些书籍中的信息来给你一个详细的回答。这种方法让机器在处理信息时更加精确,因为它结合了大量的背景信息和先进的语言模型的能力,使得生成的内容不仅依赖于模型本身的知识,还融入了具体、相关的外部信息。这对于提升对话AI的理解力和回答质量非常有帮助。基于RAG机制,我们可以实现知识库问答功能。首先,我们需要创建一个知识库,里面包含了大量社区的AI相关的文章和资料。比如我这里创建了一个有关AI启蒙和信息来源的知识库,然后通过手工录入的方式上传这个栏目的所有文章内容:就这样,陆陆续续地将社区其他板块的文章和资料导入到知识库中。在设计Bot中,我们添加这个知识库,并设置合适的搜索策略、最大召回数量和最小匹配度,尽可能好地利用知识库返回的内容进行结合回答:
知识库问答是机器人最基础的功能,它可以根据用户的问题,从知识库中找到最佳答案。这其实就是利用了大模型的RAG机制。那什么是RAG机制?RAG机制,全称为“检索增强生成”(Retrieval-Augmented Generation),是一种用于自然语言处理的技术。它结合了两种主要的人工智能技术:检索(Retrieval)和生成(Generation),以提高机器对话和信息处理的能力。简单来说,RAG机制先从一个大型的数据集中找到与当前问题相关的信息,这一步叫做“检索”。然后,它使用这些检索到的信息来帮助生成更准确、更相关的回答,这一步叫做“生成”。可以把它想象成这样一个场景:当你问一个很复杂的问题时,RAG机制先去一个巨大的图书馆里找到所有相关的书籍,然后基于这些书籍中的信息来给你一个详细的回答。这种方法让机器在处理信息时更加精确,因为它结合了大量的背景信息和先进的语言模型的能力,使得生成的内容不仅依赖于模型本身的知识,还融入了具体、相关的外部信息。这对于提升对话AI的理解力和回答质量非常有帮助。基于RAG机制,我们可以实现知识库问答功能。首先,我们需要创建一个知识库,里面包含了大量社区的AI相关的文章和资料。比如我这里创建了一个有关AI启蒙和信息来源的知识库,然后通过手工录入的方式上传这个栏目的所有文章内容:就这样,陆陆续续地将社区其他板块的文章和资料导入到知识库中。在设计Bot中,我们添加这个知识库,并设置合适的搜索策略、最大召回数量和最小匹配度,尽可能好地利用知识库返回的内容进行结合回答: