多文档
提取和检索是一项艰巨的任务。将信息以结构化
的方式进行映射以便于检索,其实比听起来要复杂得多。构建适用于多个文档的 RAG 系统尤为困难,尤其是当你希望确保 LLMs 返回的答案具有一定的细粒度
,而不仅仅是QFS(查询聚焦摘要)任务
时。为解决这一问题,找到一个基于表格的多文档提取和图谱创建工具:KnowledgeTable。
介绍 KnowledgeTable(知识表)
KnowledgeTable(知识表)是一款 WhyHow.AI 开源
软件包,旨在简化从非结构化文档中提取和探索结构化数据(图结构)的过程。通过自然语言查询
界面实现创建表格
和图表
等结构化知识表示
。凭借可定制的提取规则
、精细的格式选项
以及在用户界面中显示的数据来源追溯
功能,KnowledgeTable能够适应很多应用场景。
KnowledgeTable的目标是为商业用户提供类似电子表格的熟悉界面,同时为开发者提供
灵活且高度可配置
的后端支持。无论您处理的是几个文件还是上百份文档,都确保了与现有RAG应用
的无缝集成
。
为什么选择KnowledgeTable(知识表)?
一个优秀的RAG应用系统需要将非结构化数据转换为表格或图表等结构化格式。WhyHow.AI 开源了用于整理文档内容及元数据的工具:KnowledgeTable。这款工具界面友好,无论是技术人员还是非专业用户都能方便地使用它来探索和管理数据。
作为一款开源项目,KnowledgeTable可以根据实际具体需求进行调整。支持整合自定义模型
、工作流程
或设定提取规则
,其灵活特性
均能促进创新,并满足个性化要求。通过恰当的数据结构化处理,简化了数据提取步骤,帮助用户从非结构化信息中快速获取有价值的信息。
功能特性
-
具备额外的查询和记忆功能
-
块链接 - 将原始源文本块链接到答案,以便追踪和溯源。
-
自然语言提取 - 使用自然语言查询从非结构化文档中提取结构化数据。
-
自定义提取规则 - 定义规则来指导提取过程,并确保数据质量。
-
自定义输出格式 - 控制提取数据的输出格式。
-
过滤 - 根据元数据或提取的数据筛选文档。
-
导出为CSV或三元组 - 以CSV或图三元组的形式下载提取的数据。
-
链式提取 - 在提取问题中使用花括号引用先前的列,例如“
{疾病}
的治疗方法是什么?”。
产品优势
-
多文档准确性提升:相比ChatGPT 4.0(网页版)在多文档检索上的表现,我们的准确性提升了2.5倍,同时超越了Text2Cypher两倍,并优于GraphRAG。
-
基于规则的提取:通过提取规则和类型对开源多文档提取过程进行细致控制。
-
基于本体的查询引擎:提供直观的查询引擎,允许用户直接调用特定工具和列,从而无缝结合结构化和非结构化的检索。
基础概念
表格
像电子表格一样,表格
是一系列存储结构化数据的行和列。每一行
代表一个文档
,而每一列
则代表通过一个问题提取并格式化的实体
。
表格的价值体现在几个方面:
-
对于商业用户而言,它是从大量文档集合中进行结构化信息提取的一种简便方法。
-
对于开发者而言,它是在KG-RAG系统中的一个中间步骤,用来解析一系列规则及文档中实体类型的本体控制值,这些都可以转化为图谱。
-
用于多文档RAG流程的后端处理,帮助创建易于在RAG系统中查询的结构化表示。
文档
每个文档
是一个上传至KnowledgeTable中的非结构化数据源(如合同、论文或报告)。当您上传文档时,它会被分割
成块,这些块会被向量化
并打上元数据标签
,然后存储在向量数据库中。
问题
问题是引导提取的核心机制。它定义了您希望从文档中提取哪些数据。
生成表、动作表和知识表是什么?
- 生成表:将静态数据库表转换为动态的、由AI增强的实体,能够自主生成和交互数据。
生成表的schema
-
动作表:创建用于用户提示的列,并自动生成API端点来解析和响应查询,LLM(大语言模型)生成的结果直接流向前端。
-
知识表:作为文档集合的存储库,形成可以集成到应用程序中的多模态上下文,并通过生成的元数据列增强检索系统的结构。
主要内容
提取规则
对提取内容的控制非常重要。需要了解文档中的某些信息,并希望通过尽可能多地提供上下文来改善提取过程。
目前支持的规则,以及将来会继续增加的规则包括:
-
Must Return:指返回的答案必须符合用户提供的值列表。例如,在医疗应用案例中,你可能已经有了一个罕见病名称列表,你希望能够加载并提取出来。给定的列表是详尽无遗的,返回的结果应该只反映列表中的内容。
-
May Return:可以给出一些示例,帮助大语言模型在执行提取时进行少量样本学习。提供的列表并不是详尽的,大语言模型可能会找到列表之外的例子。
-
Allowed of Responses:当你知道预期的响应数量时适用。例如,一个人被分配的ID数量。能够限制响应的数量有助于减少可能出现的幻觉现象。
随着该软件包的开源,你可以贡献其他类型的提取规则加入到代码库中,或者在自己的系统中运行时,调整最适合你的数据和流程的提取过程。
链式提取
你可以选择链接提取过程,这样前一列产生的值就可以定义并决定后续列的提取过程。例如,首先提取文档中提到的所有疾病,然后在随后的列中映射所需的药物。要在问题字段中引用另一列,只需标记与参考列名匹配的词即可,比如:@diseases。
如果你选择了"文本列表"或"数字列表",则可以将包含多个值的单元格拆分为单个值的多行,这使得链式提取变得更加容易。
审计性和来源引用
在RAG过程中,能够追踪提取的信息回到最初的向量信息块是非常基本的要求。对于每个单元格,可以看到答案来源的信息块。这提供了审计性,并且快速参考可以帮助必要时验证大语言模型输出的正确性。
这也是RAG系统中的一个关键步骤,需要访问底层的数据块来帮助构建最终返回给用户的答案。
应用场景
通过输入问题、规则配置和文档,KnowledgeTable就会根据输入处理数据并返回结构化输出。可能需要调整问题或规则设置以优化提取结果。
-
合同管理:提取关键信息,如当事方名称、生效日期和续签日期
-
财务报告:从年度报告或收益声明中提取财务数据
-
研究提取:从一系列研究报告中提取关键信息
-
元数据生成:通过对文件执行有针对性的问题来对文档和文件信息进行分类和标记(例如:这封电子邮件线程涉及哪个项目?)
可自定义扩展功能
KnowledgeTable构建得非常灵活和可定制,允许您根据工作流程进行扩展:
-
与您自己的数据库集成。
-
创建自定义问题和规则。
-
连接您的模型。
-
使用自定义嵌入。
-
扩展以处理更大负载。
可选集成
非结构化API
KnowledgeTable提供了与非结构化API的可选集成,以增强文档处理能力。这种集成为多种文档类型的高级解析和提取提供了可能。
要使用非结构化API集成:
-
在 Unstructured.io (https://www.unstructured.io)注册获取API密钥
-
在
.env
文件中设置UNSTRUCTURED_API_KEY
环境变量,或使用您的API密钥:
export UNSTRUCTURED_API_KEY=your_api_key_here
- 安装带有非结构化支持的项目:
pip install .[unstructured]
当设置了UNSTRUCTURED_API_KEY
时,KnowledgeTable会自动使用非结构化API进行文档处理。如果没有设置密钥或遇到非结构化API的问题,系统将回退到默认的文档加载器。
注意:使用非结构化API可能会根据在Unstructured.io上的计划产生费用。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。