Skip to content

知识库

知识库是一种用于存储、管理和应用海量结构化、非结构化数据的系统。

原始数据必须经过妥善的组织和结构化才能发挥价值。

Coze 采用 知识库-单元-分段 三层结构来管理数据。同一知识库内可创建多个单元,每个单元针对某一种类或来源的数据。单元内的文件或页面会被自动切分成多个信息分段,每个分段表达一个独立完整的知识点。用户也可自定义切分规则。这种结构化使知识库内容条理清晰、细粒度合理。

向量是一个数学概念,表示既有大小又有方向的量,可以用一组数字来表示。

在 Coze 知识库场景下,问句和分段都被转化成高维向量,这里的“维”可以理解为事物的特征。比如描述一个人可以从年龄、身高、体重等角度,每个角度就是一个维度,而不同的值(如 18 岁、170cm、60kg)就构成了这个人的特征向量。

向量化是一种将事物转化为数字形式表示的方法,就像给每样东西贴上一串数字标签。生活中的例子有很多:

当你在手机上找一张照片时,手机会按照拍摄日期、地点、照片中的人物等信息给每张照片打上标签,这些标签就是照片的向量化表示。这样你就可以快速搜索到你想要的照片,而不用一张张翻看。

买书时,每本书都有 ISBN 号,这是书籍的向量化表示。通过 ISBN 号,书店或图书馆可以迅速找到这本书,而不会与其他书混淆。

为什么需要向量化呢?原因主要有:

  • 计算机只认识数字,向量化让计算机理解事物的特征,方便进行各种任务如检索、推荐等。
  • 向量化把复杂的文本、图像等非结构化数据转为结构化的数值形式,为后续的数据分析、挖掘、应用奠定了基础。
  • 向量化使相似的事物在数学上也接近,有利于快速找到相关内容。就像两个城市的地理位置可以用经纬度向量表示,距离近的城市坐标数值也相近。
  • 海量信息中,靠人工查找难度大、效率低,向量化使信息检索变得自动化和高效化。就像图书管理员不用记住每本书的位置,只需输入编号就可以定位。

检索增强生成

RAG,Retrieval-Augmented Generation 是一种结合了信息检索和生成模型的技术,它能够从知识库中检索相关信息,并将其整合到生成的回答中,从而提供更加准确和丰富的回答。

RAG 技术由两个主要部分组成:检索(Retrieval)和生成(Generation)。 首先,系统会将用户的查询转换为向量表示,并在知识库中寻找最相似的文档片段。然后,系统将这些检索到的信息整合到生成模型中,最终生成一个包含相关信息的回答。这种方法既能利用知识库中的海量信息,又能通过生成模型提供流畅、自然的回答。

了解 RAG 工作流程

RAG 的核心流程可以分为三个主要步骤:预检索(Pre-Retrieval)、检索(Retrieval)和后检索(Post-Retrieval)。

预检索(Pre-Retrieval)

预检索是指在系统实际进行检索操作之前所做的准备工作。具体来说,就是将新的数据准备好并进行处理,使其能够被系统高效地利用。这包括数据的分段、向量化以及创建索引等步骤。

具体步骤:

数据分段:将长文本或大文档分成更小的片段。这类似于把一本大书分成很多小章节。 向量化:将每个片段转换成数学表示形式,即向量。向量可以理解为一串数字,用来表示片段的特征。 创建索引:建立索引,使系统能够快速找到与查询相关的片段。

检索(Retrieval)

检索是 RAG 工作流程的核心部分。在这个步骤中,系统会根据用户的查询,在知识库中寻找最相关的信息片段。

具体步骤:

查询向量化:将用户的查询转换为向量表示。 相似度计算:将查询向量与知识库中每个片段的向量进行比较,计算它们之间的相似度。相似度越高,说明内容越相关。 检索相关片段:根据相似度排序,从知识库中提取最相关的几个片段。

后检索(Post-Retrieval)

后检索是指在找到相关信息片段后,将这些信息整合到生成模型中,最终生成回答的过程。

具体步骤:

整合信息:将检索到的相关片段整合到用户的查询中,形成一个完整的上下文。 生成回答:使用生成模型,根据整合后的上下文生成自然、流畅的回答。

通过以上步骤,RAG 技术能够从海量数据中快速找到相关信息,并生成高质量的回答。然而,每个步骤中都有可能遇到挑战,比如数据质量、检索效率以及生成的准确性等。理解这些挑战并加以优化,是提升 RAG 系统性能的关键。

优化策略

预检索优化

预检索是整个 RAG 流程的基础,优化预检索可以显著提升系统的整体性能。我们将从数据质量、切分优化和非结构化数据转换几个方面来探讨具体的优化方法。所以无论你是否使用 Coze 或者类似的平台去使用知识库,一开始的最佳实践都是需要将你的知识内容进行预检索优化的。

  • 配置合适的自动调用策略

其中有三种具体的搜索策略:

语义搜索:基于向量的文本相关性查询,推荐在需要理解语义关联度和跨语言查询的场景使用。 全文搜索:依赖于关键词的全文搜索,推荐在搜索具有特定名称、缩写词、短语或 ID 的场景使用。 混合搜索:结合全文检索与语义检索的优势,并对结果进行综合排序。

  • 提高数据质量

首先可以考虑数据清洗。数据清洗是指去除数据中的无关信息和噪音。例如,删除特殊字符、多余的空格、HTML 标签等。就像整理房间一样,我们需要把不需要的东西清理掉,让有用的信息更显眼。

具体操作:

去除无关文本:删除文档中无关的部分,比如广告、版权声明等。 纠正错误:检查并修正拼写错误和语法错误。 替换代词:将代词(如“他”、“她”、“它”)替换为具体的人名或名词,这样在检索时更具语义意义。 在数据清洗之后,我们还可以给数据添加一些元数据(Metadata),例如日期、类别、章节等。这些元数据可以帮助系统更好地组织和检索信息。

具体操作:

添加时间:在每个文档或相应文档的片段添加日期信息,方便可以实现基于语料时效性的检索,以保证数据的实时性。 添加标签:给每个文档片段添加描述性标签,比如“产品介绍”、“使用说明”等。 分类标记:标记文档的类别和章节,方便后续的精确检索。

  • 切分优化

数据切分是指将长文本或大文档分成更小的片段。合适的切分大小和方式可以显著影响检索的效果。切分太细会导致信息碎片化,而切分太粗则可能包含过多无关信息。

  • 非结构化数据转换

具体操作:

上传文档:将非结构化文档上传到 Kimi Chat 大模型。 生成问答对:向大模型提问,要求其生成符合内容的知识问答对。 导出 CSV:将生成的问答对导出为 CSV 格式,方便后续复制下来保存为一个 CSV 文件直接上传到知识库。

总结

本文主要探讨了如何优化知识库的检索增强生成(RAG)能力,以提升对话机器人的回答效果。文章首先介绍了 RAG 技术的概念和重要性,并指出 Coze 平台提供的知识库功能与 RAG 技术完美契合。

其中还详细解释了 RAG 的工作流程,包括预检索、检索和后检索三个主要步骤,其中重点讨论了预检索优化,因为这是目前 Coze 平台上用户可以优化的主要环节。

预检索优化的具体方法包括:

提高数据质量

数据清洗:去除无关信息和噪音; 添加元数据:添加时间、标签、分类等信息。 切分优化

选择合适的切分大小:根据应用场景调整切分粒度; 利用 Coze 平台的优势:表格类型文档天然适合小切分,文本类型文档可使用自定义分段设置。 非结构化数据转换

使用 Kimi Chat 等大模型工具,将非结构化文档转换为结构化的问答对; 通过多轮对话,生成覆盖面更全的语料,并上传到知识库。 总的来说,本文提供了一系列实用的优化方法,帮助用户充分利用 Coze 平台的强大功能,打造高效、智能的对话机器人。不过,RAG 技术的应用还有很大的探索空间。通过不断优化每个环节,我们可以进一步提升知识库的利用效率和回答质量。这需要技术人员和业务人员的密切合作,以及持续的实践和创新。

共 20 个模块,1301 篇 Markdown 文档。