大模型在企业 BI 数据分析中的应用领域与落地实践
大模型的应用场景日益广泛,以商业智能(BI)为代表的数据分析,已成为大模型在企业内部最先落地的应用场景之一。为了应对海量数据和高复杂度决策的挑战,越来越多的企业开始寻求将大模型与 BI 相结合的应用方案,实现对数据的深度挖掘和分析,从而更好地理解客户需求、市场趋势和业务运营情况。
本文将重点介绍大模型和 BI 相互结合时的落地方式,以及针对企业侧的具体实践案例进行解读。
01、大模型与 BI 平台的结合
1.1 传统 BI 工具分层
首先,我们需要了解传统 BI 工具和大模型之间有哪些可以结合的地方。传统 BI 工具通常分为数据接入层、分析工具层和基于该工具平台的各种行业应用层面,大模型可以在这些环节发挥作用。
在数据处理层面,大模型可以帮助传统的 ETL 过程简化难度,提高实时交互效率。在数据分析层面,大模型可以替代拖拽交互方式,让业务用户用更简单、更高效的方式以自然语言形式与底层数据交互,来构建需要的报表和看板。在行业应用层面,大模型可以真正发挥对行业知识的理解能力,与具体数据结合,形成针对客户、特定项目、指标体系的输出,再加上数据准备,可能直接输出标准化的项目成果。
1.2 大模型在数据处理层的能力
数据处理主要会通过三个方面使用大模型的能力:
- 通过对话式的交互方式生成 ETL,降低难度。 同时在 ETL 过程中,可能会有许多 SQL、Python 节点。在这些节点上我们同样可以调用大模型的能力,让其生成对应的 SQL 或 Python 代码。
- 大模型可以辅助生成专属派生指标和计算指标。 即一些 SQL,以及 MDX 表达式。在传统 ETL 工具中,我们可以通过类似于聊天的交互方式让大模型帮我们选择最合适的节点,从而对数据进行处理,辅助生成 DAG 图。
- 在数据模型或指标模型中辅助生成计算字段。 在 ETL 过程中会涉及到一些传统的 SQL 节点,包括等节点。在这个层面上,我们可以借助大模型的能力去生成。
目前阶段,我们仍然难以直接将底层数据库交给大规模模型处理。首先,我们主要是通过接口调用大模型来使用,而大部分大模型没有进行私有化部署,也无法传输整个数据库,只能处理元数据定义和部分模式,输出也基于该提示词的处理,因此生成的 SQL 质量取决于信息传递和提示词生成的质量。
据目前看,这部分看似技术难度相对较低,实现也相对容易。但是在处理该项时,最大的问题是很难控制分支对象的质量。因此通过大模型能力构建模型的许多环节,可能会借助这种界面入口生成 SQL 片段或者使用 MDX 表达式。
比如,我们通常在模型构建过程中通过人工调用许多来生成,这对于大多数用户而言具有一定的学习和掌握难度。如果我们能够通过学习和微调使掌握此能力,则可以帮助我们完成此项工作。
1.3 大模型在数据分析层面的能力
接下来再聊聊数据分析层面大模型能力的使用。在这个环节中,直接与最终业务用户或需要使用数据的用户交互的形式,是通过自然语言对话形式进行数据的查询、分析和利用。从技术上来看,这个环节成熟度相对较高,因为商业用户自主分析工具已经发展了很多年,尤其是这种交互方式不断落到底层,接口越发完备。
我们只要让大型语言模型本身去帮忙理解这种语义,并与传统能力相结合,就可以让使用过程相对简单易懂。我们知道,此前数据分析大部分能力都是通过传统的 NL2SQL 方式来实现的,那么这其中大语言模型矩阵的哪些环节发生了作用呢?我总结出了以下两点。
第一,更好、更准确的语言理解能力
我们期望让大型模型可以更精确地理解用户的输入,特别是针对那些常识性的问题。以传统的 NL2SQL 举例,它难以解决像'作为一家公司,我想查询公司内部有多少本科以上学历的员工'的这种问题。
虽然该模型可以准确地识别'本科'这个词,但对于'本科以上'这四个字的理解就有困难了,因为它代表的是一个字符串类型的字段,而无法简单地通过大于等于号等操作符进行筛选。
然而,一旦引入了大模型,就能够很好地解决这个问题。它可以准确地告诉我们'本科以上'代表的是本硕博学历,只要将该信息带入生成的查询语句的过滤条件中,就能够得到我们所需的结果。
以上只是一个小例子,我们期望大语言模型能够帮助我们处理与特定行业领域知识相关的常识性问题,这样将其与传统的 NL2SQL 相结合,将有助于提升其语言理解能力,同时也能提高数据结构返回的准确性。在大语言模型出现之前,我们也可以解决类似的问题。然而,过去的项目实施通常需要依靠项目化的方法,通过不断的配置和人工微调的方式来解决查询模板无法处理问句或需求的问题,导致项目实时交付的周期长、功能投入大,长期需要运维人员持续维护。而现在,大语言模型具有自适应学习能力,可以缩短实时交付周期,以最终降低成本。
第二,构建全新实现方案
如果能够将底层的数据库,特别是 OLAP 或大数据平台直接开放给大语言模型进行学习或微调,那么是否就能够准确地处理用户的智能问句,并获得用户所需的答案呢?实际上,这可能不太现实。在传统项目实施过程中,即使是最熟悉数据库结构的人,也会发现对底层数据库的处理过程存在困难。
首先,语言对于同一个指标本身的理解其实不是技术问题,而是一种业务决策。为此需要业务协助去确认数据处理口径和结果的正确性,这个过程很难完全通过技术手段解决,因此我们必须在原始之上构建智能模型。只有在最终业务用户确认数据指标和对应维度的情况下,才能将这个模型交给大语言模型,以便查询所需的结果。如果没有进行这些工作,那么直接开放将会得到缺乏解释性和不准确的结果,用户会很难理解。


