Kernel Memory 入门系列: 文档预处理


风晓
风晓 2023-12-30 09:47:52 50337 赞同 0 反对 0
分类: 资源
Embedding为我们提供了问题理解和文档检索的方法,但是面对大量的文档,如果在用于提问的时候再进行文档的Embedding的话,那这个过程是非常耗时的,再加之我们的文档并不会频繁变化,所以我们可以对文档进行预处理,提升检索的效率。

Alt text

文档的预处理大致分为了几个步骤:

  1. 文档的准备

    首先需要把我们已有的文档整理出来,起码是需要进行检索的这些文档。文档的格式不会有很大的限制,可以是docx,也可以是pdf或者ppt,当然也可以是txt或者markdown,哪怕是图片、网页或者其他可以提取文本的文档格式都可以。

  2. 文本的提取

    文本提取的过程,就是将已经整理好的文档中的文字提取出来,根据不同的文档类型匹配相应的提取方法。Kernel Memory中已经默认集成了docx、excel、ppt、pdf、plaintext(markdown、text)、json、image(via OCR)等类型的文本提取方法,如果有其他的文档类型,也可以自行添加。

  3. 文本的分片

    我们的文档往往比较大,如果直接进行检索使用的话,会导致最终的提示词上下文太长,从而造成Token的浪费。另外提示词太长的话,生成的速度也会变慢,从而费时费钱。
    其实另外一个最主要的原因是embedding的接口是有token限制的,所以太长的话要么造成信息丢失,要么引起生成错误。
    所以最好的方法就是将文本进行分片处理。Kernel Memory中提供了一个默认的分片方法,根据文本的长度、段落、句子、标点符号等进行分片,当然也可以自行添加。

  4. 文档存储

    这里其实只是做一个持久化的过程,可以用于管理文档处理的进度。

  5. 文本的Embedding

    将分片好的文本进行Embedding,得到对应的向量。根据实际的需求,可以选用不同的Embedding模型,但是需要确保,最终和最终检索所使用的Embedding模型保持一致。

  6. 存储到向量数据库

    将Embedding的结果存储到向量数据库中,这样的话,我们就可以在检索的时候,直接从向量数据库中读取向量,而不需要再进行Embedding,从而提升检索的效率。

一些其他的过程:

整个文档预处理的过程是讲已有的文本最终转化为向量,存储到向量数据库的过程。在这个处理流程中,另外需要消息队列来管理处理的进度。如果需要进行的文档的更新的话,可以使用文档删除的方法,将文档从向量数据库中删除,然后重新进行文档导入处理。

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
风晓L1
粉丝 1 资源 2038 + 关注 私信
最近热门资源
银河麒麟桌面操作系统备份用户数据  123
统信桌面专业版【全盘安装UOS系统】介绍  116
银河麒麟桌面操作系统安装佳能打印机驱动方法  108
银河麒麟桌面操作系统 V10-SP1用户密码修改  102
最近下载排行榜
银河麒麟桌面操作系统备份用户数据 0
统信桌面专业版【全盘安装UOS系统】介绍 0
银河麒麟桌面操作系统安装佳能打印机驱动方法 0
银河麒麟桌面操作系统 V10-SP1用户密码修改 0
作者收入月榜
1

prtyaa 收益393.62元

2

zlj141319 收益217.85元

3

1843880570 收益214.2元

4

IT-feng 收益208.98元

5

风晓 收益208.24元

6

777 收益172.71元

7

Fhawking 收益106.6元

8

信创来了 收益105.84元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!