我们已经在 SAP 中存储数据数十年了,数据量太大,因此我们使用数据仓库和类似技术。现在,借助 Transformer Models,我们有能力理解极其庞大的数据集。想象一下,我们向通用大语言模型展示 BKPF 和 BSEG 之间的关系,并回答有关它的查询。
我相信基础模型有能力重塑所有行业,但现有的大型语言模型在对复杂行业用例的适用性方面存在不足。从嵌入和微调通用基础模型,我慢慢地开始将垂直和特定领域的数据合并到模型中。我的最终目标是构建一个自定义模型来处理来自 SAP 的全面公司知识,因为就我知道的学术研究都没有专门针对这个方向。
除了学术界之外,我对软件行业如何处理 SAP 也很感兴趣。我看到供应商有两大类方法。一方面,我们有传统的数据供应商,他们在数据治理、数据质量、数据集成等方面非常熟练。这些公司经常谈论构建领域特定模型,因为向客户展示以下内容符合他们的利益:如果没有合适的数据集供模型交互,则其右侧的所有内容都将不相关。
这种观点大致上是正确的,但不是 100% 准确。基础模型接受了可能与企业查询相关的各种数据的训练,并且有大量研究允许模型以执行 API 的方式与另一个数据集进行交互查询或数据库查询。
转到图片的右端,我们看到这些公司(主要是初创公司或研究小组)在 LLM 层如何掌握提示工程以及如何应用 RAG 方面带来了很多创新。在这一端,企业的入门级要简单得多。我们可以轻松地与给定的模型进行交互,通过API 调用来应用其中一些技术,并获得一些奇妙的结果。但 API 调用的可扩展性很快就会成为一个风险。第三方模型 API 调用按 token(字符)收费,快速查看 Cohere 或 OpenAI 会发现 Cohere 价格比 OpenAI 便宜 10 到 500 倍;根据所选的引擎不同,成本可能会很快升高。
RAG 很酷,但 Vector DB 并不是一切
检索增强生成(RAG)颠覆了开放问答领域,使系统能够针对各种查询生成模仿人类行为的响应。RAG 的核心是检索模块,它扫描大量文本以识别相关的上下文段落。然后,这些段落由生成模块(通常是预先训练的语言模型,例如 GPT-3)处理以制定最终答案。
然而,尽管这种方法很有效,但它也有一些局限性。该系统关键组成部分之一是在嵌入段落上进行向量搜索,它具有固有的限制,可能会阻碍系统进行细致推理的能力,比如当遇到需要跨多个文档进行多步骤感知的复杂问题时,这一点变得尤其明显。
向量搜索的主要优点是它能够搜索语义相似性,而不是仅仅依赖字面关键字匹配。向量表示捕获概念意义,从而能够识别更相关的搜索结果,这些结果可能在语言上有所不同,但共享相似的语义概念。与传统的关键字匹配相比,这可以实现更高的搜索质量。然而,将数据转换为向量并在高维语义空间中进行搜索时存在局限性。向量搜索很难捕获文档之间的多样化关系和复杂的互连。
此外,对结构化 SAP 数据集执行向量搜索,尤其是在考虑复杂的关系时,存在一些限制和挑战。解决这些限制可能需要结合专门的算法、数据预处理和特定领域的知识,来为具有复杂表关系的 SAP 数据创建有效的向量搜索系统。此外,持续监控和优化对于确保系统随着 SAP 数据的发展保持准确和高效至关重要。
LLM已经展示了他们在理解和生成人类语言以及其他应用方面的实力。然而,它们处理图数据的能力仍未得到充分探索。需要在图相关任务上进一步评估LLM以增强其实用性,特别是在关系检测、知识推理和图模式识别方面。
许多研究都集中在评估LLM(主要是 GPT 模型)处理图相关查询和生成准确响应的能力。然而,这些研究主要集中在 OpenAI 的闭源模型上,忽视了其他开源替代方案。此外,他们还没有彻底探索诸如多答案问题的保真度或LLM的自我纠正能力等方面。
知识图谱和LLM
为了克服这些限制,知识图谱(KG)或知识图谱提示(KGP)成为一种有前途的替代方案。KGP 将各种关系显式编码为互连的图结构,增强了推理能力的丰富性。
图数据库结构有利于建模和分析不同数据类型之间的复杂关系,例如客户数据、产品数据、市场数据、第三方数据和资产负债表数据等:
-
实体:在图数据库中,每条数据都表示为一个实体。可以对实体进行标记以将其分类为不同类型。例如,您可能有“客户”、“产品”、“市场”、“第三方”和“资产负债表”等实体。
-
属性:每个实体都可以具有与其关联的属性。例如,“客户”实体可能具有“customer\_id”、“名称”和“电子邮件”等属性。类似地,“产品”实体可以具有诸如“product\_id”、“名称”和“价格”之类的属性。
-
关系:实体之间的关系在图中表示为边。这些边定义了不同数据的连接方式。例如:“客户”可能与“产品”有关系以表示他们购买的产品。“市场”可以连接到“产品”以显示哪些产品在特定市场上可用。“第三方”可以连接到“产品”,以指示与特定产品关联的第三方服务或数据源。“资产负债表”可以连接到“客户”以显示金融交易和余额。
-
查询:图数据库支持强大的查询语言,例如 Gremlin,专门为遍历和查询图数据而设计。这些查询可以检索有关数据内关系和模式的信息。假设您想要查找特定客户购买的所有产品、其相关市场、这些交易期间使用的任何第三方服务以及相应的资产负债表信息。在图数据库中可以从代表特定客户的“客户”实体开始,遍历标记为“已购买”的边以到达“产品”实体,遍历标记为“available\_in”的边以查找关联的“市场”实体,遍历标记为“third\_party\_service”的边以发现第三方数据或服务,遍历标记为“交易”的边以查找“资产负债表”实体和相关的财务数据。
SAP数据可以通过知识图建模的各种关系,如下图