1、AI 在大数据领域的应用现状
在当今快速演进的技术领域,Data+AI 已成为数据架构的热点方向,涵盖了从数据为AI服务(Data for AI)到利用AI增强数据仓库(AI for Data)的广泛应用,LakeSoul 作为领先的湖仓一体架构主要关注后者的应用。AI for Data 的核心在于运用人工智能技术优化数据处理、分析及管理,以智能化方式突破传统数据仓库的局限。
数据湖的发展历程尤为凸显了这一转变,从第一代以Hadoop为基础的离线数据存储,到第二代如 Iceberg 和 Delta Lake 强调的增量数据处理,再到融合 AI 的第三代数据湖 LakeSoul,这标志着从传统数据处理向深度与AI技术结合的转型。
在实际应用中,AI for Data 需面对结构化的表格数据和非结构化的非表格数据两大类。对于表格数据,NL2SQL技术允许通过自然语言进行查询,极大降低了数据分析的技术门槛,使非技术用户也能进行数据查询和分析。而针对非表格数据,如图像和文本,Embedding 技术通过将数据转化为向量形式,支持复杂的数据分析任务,如相似内容查找和多模态数据融合。湖仓一体化架构以其灵活开放的设计,能够同时支持结构化、非结构化数据的存储和查询,从而能够形成统一的数据底座。
通过这些技术的融合,使数据更加智能化和易于访问,数元灵以湖仓的数据作为新一代的知识底座,集合大模型的推理能力,帮助企业快速洞察和分析数据中的价值。本文将为大家揭秘数元灵湖仓作为大模型知识库的探索实践。
2、湖仓是大模型最重要的知识库底座
湖仓正在成为广大企业核心的数据资产底座,因此也能够以知识库的形式,为大模型的推理提供充足的企业知识体系支撑。将湖仓作为大模型的知识库,具有如下几个重要的优势:
01、湖仓多模态、大规模的数据存储能力:
湖仓支持多种结构化、非结构化、向量索引数据类型,这使得大模型可以处理和理解更广泛的知识信息,涵盖多个领域和不同格式的数据资源。并且湖仓使用对象存储等存储资源,能够低成本支撑大规模的数据存储。
02、湖仓具备企业内部最全面的知识:
仓作为企业统一的数据资产底座,将企业内部、外部的大量数据统一存储并管理起来,形成统一数据资产底座。因此,湖仓中具备企业内部最为全面的知识,也就自然能够为大模型提供充足的数据储备,使其可以接触到更多的知识内容,从而提升模型的知识广度和深度。
03、湖仓支持大模型训练与优化的能力:
湖仓能够提供丰富的训练数据:存储了大量的原始数据和经过处理的数据,为大模型的训练提供了丰富的素材,有助于模型学习到更全面和准确的知识,提高模型的性能和泛化能力,支持模型迭代和优化,能够基于湖仓数据,不断改进和提升大模型的性能效果。
数元灵致力于建设湖仓一体的新一代数据智能架构,基于自主研发的国产领先湖仓一体框架,为企业提供数据智能一体化的数据资产底座。
3、数元灵将湖仓应用于大模型底座的方案
3.1 总体架构
数元灵湖仓大模型知识库的总体架构如下:
在数元灵湖仓知识库架构中,主要提供两个核心组件:
1、采集转换层:
提供多源异构的数据采集摄入。除数据库、消息队列等传统的数据源之外,也能够支持将多种非结构化数据上传到湖仓中,采集转换层会将 Word、PDF、Excel 等文件进行解析抽取,并将多模态文件以原始文件、向量索引、结构化存储等多种方式,保存到湖仓中。原始文件、结构化信息和向量索引,在写入时会自动通过文档 ID 进行关联。
2、湖仓融合检索层:
湖仓提供多种数据和知识的检索方式。对于结构化数据,提供标准的 SQL 查询,对于向量索引,提供向量检索查询,同时也能够提供原始文件的检索读取。在上层检索时,可以根据用户查询意图,生成一种或多种查询请求,通过检索层查询并将查询结果进行关联。
3.2 RAG方案
通过采用大模型技术技术,我们增强了模型对用户查询意图的理解能力。利用上下文信息和预训练的语言模型,系统能够更准确地捕捉并解释用户的需求,从而提供更为相关和精准的响应。我们整体的技术方案分为:Query 转换、Query 路由、数据向量化、NL2SQL 等几个关键部分,下面一一进行说明。
3.2.1 Query转换
在使用大型语言模型进行数据检索和信息处理时,我们采用了多层次的策略来提高查询的准确性和效率。以下是各策略的具体说明:
01 重新措辞 (Rephrasing):
通过使用 LLM 对原始查询(query)进行重新措辞,我们可以优化查询的表达方式,从而直接影响到搜索结果的相关性和质量。这一步骤有助于精确捕捉用户的搜索意图,提高检索效果。
02 假设性文档嵌入 (HyDE):
利用 LLM 生成假设性响应(答案),并将这些答案用作搜索查询的一部分。这种方法通过预测可能的答案来引导搜索过程,使得检索操作更加针对性和高效。
03 假设性问题 (Query Domain Alignment):
对每个数据块生成一个特定的问题,然后利用这些问题的向量进行搜索查询。通过这种方式,我们能够更精确地定位到相关信息,再将检索到的内容与原始文本数据块进行对比和整合。
04 子查询:
将复杂的原始查询拆解成多个子问题,分别对这些子问题执行召回操作。这种分解方法特别适用于处理多层次或多方面的查询(即 Level 2 问题),能够在不同维度上深入挖掘数据。
05 启发式答案与领域知识生成:
首先使用小型的代理模型生成问题的启发式答案,然后借助这些答案,让 LLM 生成相关的领域知识。结合领域知识,我们进一步在知识库中召回相关文档。最终,将原始查询、启发式答案及召回的文档一并输入给 LLM,以生成最终的响应。
3.2.2 Query路由
在接收到用户的 query 后,由 LLM 决定接下来的操作步骤。
选择特定路由的过程是通过 LLM 来实现的,其结果按照预定义的格式返回,以指导 query 到达指定的索引(文本向量数据库 还是 传统关系型数据库)
在让 LLM 进行路由选择时,提供给少量样本(few shot learning)来提供 LLM 进行路由选择时的推理能力。
3.2.3 数据向量化
通过向量化技术,可以使不同模态的数据,如文本、图像、视频等,转化为数值向量,进一步使用向量检索引擎进行查询和使用:
01 对于文本:
数元灵科技开源了语义向量(Embedding)模型:
DMeta-Embedding,曾经获得 MTEB 中文场景开源模型第一(总榜第一名百川只提供 API 服务,暂未开源模型 checkpoint),并在 Pair Classification Average 单项位列中文场景第一名,模型已经发布到了 HuggingFace 社区,累计下载量已经突破 11 万,可以参考:
https://mp.weixin.qq.com/s/UaTkArnd5H51T2m0qlNhvQ
02 对于图像:
ColPali 通过直接处理文档图像来解决这些问题,消除了复杂预处理的步骤,实现更快、更准确的检索。
03 对于视频:
通过 pyscenedetect 先对视频中场景进行切割,之后使用 ImageBind 对切分的视频场景做 Embedding;通过向量检索,召回与 Query 详细的场景片段,之后将 Query 与 Video 输入给多模态大模型来推理。
3.2.4 NL2SQL
NL2SQL(自然语言到SQL)技术是一种能够将普通自然语言查询转换成结构化SQL语句的先进工具,极大地方便了非技术背景用户直接与数据库进行交互。这项技术通过一系列精细的步骤,将复杂的查询请求分解并转化为精确的数据库查询命令。
首先,问题理解(Question Understanding)阶段,系统通过自然语言处理技术来解析用户的查询语句,确保准确捕捉到所有关键的意图和数据需求。接下来,在任务分解(Task Decomposition)阶段,复杂的查询被拆分成若干更小的、可管理的子任务,每一子任务对应查询中的一个特定元素,如数据字段、条件语句或是排序要求。
随后,进入子任务解决(Subtask Resolution)阶段,系统针对每一个子任务独立寻找解决方案。在这一过程中,利用嵌套提示(Nested Prompting)技术为模型提供额外的上下文信息,帮助其更准确地完成每个子任务的具体需求。这种逐步提示的方法确保了解决方案的精确性和高效性。
最后,在SQL组装(SQL Assembly)阶段,所有独立解决的子任务结果被综合起来,按照SQL语法规则组装成一个完整、准确的查询语句。这一最终生成的SQL语句不仅语法正确,而且能够完美地执行用户的原始查询意图。
数元灵科技在百度举办的 Text2SQL 权威评测榜“千言语义解析”中曾夺得冠军,其中 CSpider 数据集上达到了单项第一名,并持续一年左右位列总榜单第一,可以参考:
https://mp.weixin.qq.com/s/fUNHTMz5YDm4uJBOKwmYig
未来展望
数元灵科技基于国产领先开源湖仓框架,构建了统一的湖仓数据智能底座,已经帮助多家大型企业把数据资产汇总管理起来。
同时,通过将湖仓以知识底座的形式,与大模型融合,让湖仓数据插上大模型的翅膀,帮助企业构建智能客服等数据应用,最大化地释放企业数据价值。
近期,我们也将陆续推出湖仓知识底座服务等产品,敬请关注。