文档知识库是指一系列紧密关联且始终保持更新的知识集合。这个知识库可以表现为一个结构化的数据库形态(比如:MySQL),也可以表现为一套非结构化的文档体系(比如:文件、图图片、音频、视频等),甚至可能是两者兼具的综合形式。
一.概述

在构建本地知识库问答系统的时候,第一步要对本地的知识文档进行处理,因为希望更傻瓜式的去使用它,因此不太希望有人力参与对文档进行处理,比如分段、摘要等等。但如果不做任何处理,直接使用文档喂给大模型肯定是会超出tokeni限制。因此第一步会将文档的知识转成向量存储到向量数据库中,在进行知识问答的时候,先将问题在向量数据库中进行匹配,将匹配到的结果提供给LLM让其针对结果进行整理和回答。
二.详情
分块处理(Chunking)

在文档知识库中,分块处理是一个关键步骤,它有助于提高信息检索和处理的效率。以下是对文档知识库中分块处理方式的详细探讨:
一、分块处理的目的
(1).减少信息丢失
整个文档的内容过多,数据粒度大,嵌入到向量中丢失的信息多。将文档分块可以减少每个块的信息量,从而降低信息丢失的风险。
(2).提高答案准确性
当召回的单个文档内容较多时,会存在部分干扰信息,使得生成的答案准确性不高。通过分块处理,可以只召回与查询最相关的文档片段,从而提高答案的准确性。
(3).降低成本开销
召回的内容越多,时间和计算成本越高。分块处理可以减少需要处理的数据量,从而降低计算成本。
(4).提高召回质量
仅召回质量高的文档片段,才能有助于模型提供正确的答案。通过分块处理,可以更容易地识别和召回高质量的文档片段。
二、常见的分块策略
(1).基于字符的分块
- 方法:将文档按照字符序列进行切分,通常设定一个固定的长度,如每500或1000个字符作为一个块。
- 优点:简单易行,不需要复杂的算法。
- 缺点:可能无法很好地捕捉到文本的语义结构,导致上下文丢失。
(2).基于句子的分块
- 方法:将文档按照句子进行分块,每个句子作为一个块。可以使用自然语言处理工具(如NLTK或Spacy)来识别句子边界。
- 优点:保持每个句子的完整,有助于保持语义的完整性。
- 缺点:单个句子可能缺乏足够的背景信息来处理复杂的问题,且句子长度不一,导致段落长度不一致。
(3).基于段落的分块
- 方法:将文档按照段落进行分块,每个段落作为一个块。
- 优点:符合文本的自然逻辑结构,更容易保持上下文的连贯性。
- 缺点:段落长度可能会有很大差异,过长的段落可能会超出模型的令牌限制。
(4).基于主题的分块
- 方法:识别文档中的主题,并根据主题内容进行分块。这通常需要更复杂的自然语言理解技术,如主题建模。
- 优点:片段有意义地分组,提升了检索的准确性。
- 缺点:需要高级的自然语言处理模型和足够的计算资源,处理时间可能会比较耗时。
(5).递归嵌入和聚类
- 方法:使用递归神经网络对文本进行嵌入,然后通过聚类算法将相似的文本块聚集在一起。
- 优点:可以自适应地识别文本的层次结构和主题。
- 缺点:实现复杂度较高,需要更多的计算资源。
(6).滑动窗口分块
- 方法:通过在文本上滑动一个窗口来创建重叠的部分,确保这些部分相邻的内容有重叠。
- 优点:重叠有助于保持信息的连贯性,提高检索到的相关信息片段的可能性。
- 缺点:重复内容可能会导致信息重复,增加处理和存储的负担。
(7).富含上下文的分块
- 方法:通过加入周围片段的摘要或元数据来丰富每个片段,从而在整个过程中保持上下文。
- 优点:提供额外信息而不显著增加大小,帮助模型生成更准确且符合上下文的回答。
- 缺点:需要额外处理来生成摘要或元数据,增加了存储开销。
(8).模态特定的分块
- 方法:分别处理不同类型的内容(文本、表格、图片等),根据每种内容的特性进行分块。
- 优点:量身定制的方法,针对每种内容类型进行优化分块,提高准确性。
- 缺点:每个模态都需要自定义的实现逻辑,集成难度较高。
三、分块处理的注意事项
(1).选择合适的分块大小
分块大小应根据文档的性质、用户查询的长度和复杂性以及检索结果的用途来确定。过小的分块可能导致信息不完整,过大的分块则可能超出模型的令牌限制或增加计算成本。
(2).保持上下文的连贯性
在分块处理时,应尽可能保持每个块的上下文连贯性。这可以通过使用重叠窗口、加入周围片段的摘要或元数据等方式来实现。
(3).考虑模型的令牌限制
在将分块后的文本发送到外部模型提供商(如OpenAI)之前,需要确保每个块的大小不超过模型的令牌限制。
(4).优化分块策略
根据实际应用场景和需求,不断优化分块策略,以提高检索效率和准确性。

嵌入模型(Embedding Model)

在文档知识库中,嵌入模型(Embedding Model)扮演着至关重要的角色。以下是对嵌入模型的详细解析:
一、嵌入模型的概念
嵌入模型是指将高维度的数据(例如文字、图片、视频)映射到低维度空间的过程。简单来说,嵌入向量就是一个N维的实值向量,它将输入的数据表示成一个连续的数值空间中的点。在自然语言处理(NLP)中,嵌入模型被广泛用于将文本数据转换为数值向量,这些向量能够捕捉原始数据的潜在关系和结构,为后续的处理和学习任务提供有效的特征表示。
二、嵌入模型的工作原理
嵌入模型的工作原理是利用神经网络中的嵌入层,将高维的离散数据映射到低维度的连续向量空间。在NLP中,这通常意味着将单词、短语或句子转换为数值向量。这些向量能够捕捉单词的语义特征,如意义、上下文关系等,使得计算机能够更有效地处理和理解文本数据。
三、嵌入模型在文档知识库中的应用
(1).信息检索
嵌入模型通过向量化表示和预训练模型&
文章来源于互联网:【AIGC】文档知识库落地中的那些事
相关推荐: 【全网最全】AIGC产品经理面试高频100题答案解析
【全网最全】AIGC产品经理面试高频100题答案解析 说明: 1)目前干货文档总字数9.57 万,不管是模型基本功还是每个问题的答案都尽可能详尽; 2)重点给大家深度讲解了机器学习、深度学习、AIGC三个大方向的13个 经典模型 3)每个模型从实现****原理…
5bei.cn大模型教程网










