ChatBI:基于LLM+ERNIE的自然语言到复杂商业智能SQL

跨地域网络混合云网络云上网络

自然语言到SQL(NL2SQL)技术允许不熟悉数据库的非专家用户使用SQL进行数据分析。NL2BI是NL2SQL在实际生产系统中的一个流行实际场景,它引入了更多的挑战,如 多轮对话(MRD) 和大型语言模型(LLMs)在架构链接中的 Token限制

NL2SQL和NL2BI问题之间的区别。 问题包含多轮对话,查询1:“过去七天的短视频播放量”,查询2:“周环比情况如何?”,查询3:“播放时长如何?”。 NL2BI问题需要处理复杂语义、比较和计算关系的能力,以及多轮对话 。两个问题的数据源也不同。

picture.image

北邮联合百度联合 提出了 ChatBI ,这是一种全面高效的技术,用于解决NL2BI任务。ChatBI通过分析交互模式,设计了 更小、更经济的模型 来匹配这种交互模式。它利用数据库社区中现有的 视图技术 ,将架构链接问题 分解 为单视图选择问题,并使用 较小的机器学习模型 来选择列数显著减少的单个视图。

ChatBI总体架构

picture.image

  • 多轮对话匹配(Multi-Round Dialogues Matching) :ChatBI处理MRD场景,使用两个较小的Bert类模型进行文本分类和文本预测。

picture.image

  • 单视图选择 :ChatBI将架构链接问题转化为单视图选择问题,使用视图技术来解决列的歧义和数量问题。

picture.image

picture.image

  • 分阶段处理流程 :ChatBI提出了一种不同于现有流程的处理流程,它首先生成包含复杂语义和比较关系的JSON中间结果,然后使用基于规则的SQL生成方法来产生目标SQL。
  1. 分阶段处理流程:ChatBI采用了一个创新的分阶段处理流程,该流程首先使用大型语言模型(LLMs)生成JSON格式的中间输出,然后将这些输出传递给BI中间件(如Apache SuperSet),以展示结果。这种方法与传统的直接依赖LLMs生成SQL的方法不同,它仅依赖于生成JSON。
  2. 复杂性解耦:通过将问题分解,ChatBI避免了LLMs直接处理SQL中的复杂语义、计算和比较关系。相反,LLMs只需要理解如何将这些复杂关系映射到JSON所需的输出。这种解耦方法简化了任务,提高了LLMs生成JSON的准确性。
  3. 虚拟列(Virtual Columns):ChatBI引入了虚拟列的概念,以处理那些需要从其他列计算得出的列,如“DAU”。虚拟列通过其对应的键(列名)来访问计算规则,这些规则存储在JSON中,称为JnM(Json nested Map)。这种方法允许LLMs生成包含复杂计算步骤的查询,同时提高了查询生成的效率。
  4. 模板和规则:在新的处理流程中,Apache SuperSet使用通用模板来生成SQL。LLMs生成的JSON输出充当填写这些模板的占位符,最终输出SQL。这种方法利用了数据库社区对基于维度和列生成SQL的广泛研究。

picture.image

ChatBI在 百度的数据平台 上进行了部署,并集成到多条产品线中进行了大规模生产任务评估。结果显示ChatBI在 实用性、通用性和效率方面的优势 ,并在实际BI场景 数据表和查询下取得了最佳结果

SRD数据集和MRD数据集介绍。 主版本和轻量版本对应不同的应用程序。DAU代表日活跃用户,新用户指首次注册的用户。

picture.image

picture.image

picture.image


          
𝐶ℎ𝑎𝑡𝐵𝐼: Towards Natural Language to Complex Business Intelligence SQL
          
https://arxiv.org/pdf/2405.00527
      

推荐阅读


欢迎关注我的公众号“ PaperAgent ”, 每天一篇大模型(LLM)文章来锻炼我们的思维,简单的例子,不简单的方法,提升自己。

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
如何利用云原生构建 AIGC 业务基石
AIGC即AI Generated Content,是指利用人工智能技术来生成内容,AIGC也被认为是继UGC、PGC之后的新型内容生产方式,AI绘画、AI写作等都属于AIGC的分支。而 AIGC 业务的部署也面临着异构资源管理、机器学习流程管理等问题,本次分享将和大家分享如何使用云原生技术构建 AIGC 业务。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论