在当今AI驱动的时代,数据分析已成为各行各业不可或缺的能力。然而,传统的数据分析流程通常需要掌握SQL、数据处理和可视化等多项专业技能,这对非技术背景的业务人员来说是一个不小的挑战。
想象一下,当数据中心的负责人打开手机时,只需通过自然语言描述:“帮我分析过去24小时,各业务系统的告警量TOP-10,并以饼状图展示” 。系统便能自动完成从自然语言到SQL查询、数据处理和可视化的全过程。这省去需求提取、原型设计、开发、测试和上线的漫长过程,极大地提高了效率。从这个角度看,人类将进入一个更加高效和智能的时代。
所以,这次主要想跟大家分享如何运用AI大模型进行数据分析,过程中也会带一些示例,方便大家理解。话不多说,主要内容如下:
看看大语言模型的使用手册,会带相关测试案例让大家更好理解。主要内容如下:
哪些大模型可准确无误地生成SQL语句?
大模型实现的数据分析效果预览
AI应用场景测试 | 理解数据库模式 - schema信息
AI应用场景测试 | 提示词设计
一、哪些大模型可准确无误地生成SQL语句?
为了知道目前有哪些大模型可以快且准生成SQL语句,我们测试了以下大模型:
-
QWEN 2.5 - 72B
-
LLAMA 3 - 70B
-
QWEN 2.5 - 32B
-
Gemma2 27B
-
LLAMA 3.2 - 11B
为了支持这些大模型的运行,我的硬件配置如下:
-
显卡:技嘉 4090
-
CPU:Intel i7 - 14代
-
内存:DDR 6000 64GB
最终结果显示,参数量在70B以上的模型表现出色,能够准确无误地生成SQL语句。而其他三个模型在语言表达上需要更精确一些。在测试案例中,每一个大模型仅出现一个错误,说明输入的指令需要更贴近数据库模式(schema)的定义。
二、运用大模型实现数据分析效果预览
在看解决方案之前,我们先看一下自然语言大模型生成SQL的效果
上图为使用AI大模型生成的【按照不同的告警来源展示告警数量top10(饼状图)】
上图为使用AI大模型生成的【按照不同的告警来源展示告警数量top10(条形图)】
上图为使用AI大模型生成的【展示业务系统为企业服务总线的告警数量(表格)】
上图为使用AI大模型生成的【展示业务系统为“企业服务总线”的告警数量,告警发生日期为“2020-09-16”(表格)】
上图为使用AI大模型生成的【按天统计业务系统为“企业服务总线"的告警量】
上图为使用AI大模型生成的【按月统计系统为“上海网络”的告警量】
上图为使用AI大模型生成的【展示数据库中有多少不同的alertKPl】
上图为使用AI大模型生成的【展示数据库中独立的alertKPl】
上图为使用AI大模型生成的【展示数据库中指标为app_comp.ap-sys_succ_rate的告警,并按业务系统告警量top_10展示(表格)】
上图为使用AI大模型生成的【展示数据库中指标为app_comp.ap-sys_succ_rate的告警,并按业务系统告警量top_10展示(饼状图)】
三、AI应用场景测试 | 理解数据库模式 - schema信息
我们需要有一个界面能够配置数据库中的schema描述,schema描述对大模型非常有意义,主要体现在以下几个方面:
①结构理解
Schema描述了数据库的结构,包括表的名称、字段名称、数据类型、表之间的关系等。这些信息对于理解用户的自然语言查询至关重要,因为它帮助系统知道数据是如何组织的。
② 意图解析
在将自然语言转换为SQL查询时,系统需要识别用户查询中涉及的具体数据实体。Schema提供了这些实体的定义,使得系统可以准确地将自然语言中的术语映射到数据库中的表和字段。
③查询生成
Schema信息用于生成正确的SQL查询。系统需要知道如何在SQL中引用表和字段,以及如何构建JOIN操作来结合多个表的数据。
④错误检测
通过了解schema,系统可以检测并避免生成无效的SQL查询。例如,如果用户请求的字段在schema中不存在,系统会及时反馈错误信息。
⑤优化查询
Schema信息可以帮助系统优化生成的SQL查询。例如,系统可以利用索引信息来生成更高效的查询。
⑥用户交互
在一些高级的NL2SQL系统中,schema信息可以用于生成用户提示或建议,帮助用户更好地构建查询。
总结 :数据库的schema描述是NL2SQL系统理解和处理自然语言查询的基础,确保生成的SQL查询准确、有效并符合数据库的结构。
理解schema信息示例如下:
本例中我们使用运维领域的一张alertInfo表,来做示例说明如下,这是整个nl2sql的核心,如果涉及多张表以及表和表之间的关系,也参照类似的定义来表达即可:
四、 AI应用场景测试 | 提示词设计
在NL2SQL中,提示词的设计非常重要,通过它可以:
①引导模型生成
提示词用于引导大语言模型(如GPT-4)生成SQL查询。通过精心设计的提示词,模型可以更准确地理解用户的意图,并生成符合语法和语义的SQL语句。
②提高准确性
提示词可以帮助模型更好地解析自然语言中的复杂结构和模糊表达,从而提高生成SQL的准确性。例如,提示词可以明确要求模型识别特定的表、字段或条件。
③ 减少歧义
自然语言往往具有多义性,提示词可以帮助消除歧义,使模型更清晰地理解用户的查询意图。例如,通过提示词明确上下文或限定查询范围。
④增强模型能力
通过提示词,模型可以被引导去利用其内置的知识和推理能力,生成更复杂和优化的SQL查询。这对于处理复杂查询或多表JOIN操作尤为重要。
总结:提示词设计在NL2SQL系统中起到关键作用,它不仅影响SQL生成的准确性和效率,还直接关系到用户的使用体验和系统的实用性。
1.提示词设计参考如下
下面是我这里内置的默认提示词,主要用于关系型数据库查询,大家可以参考参考
2.提示词使用注意事项
-
"{schema_content}"即为我们在第一章中定义的schema说明,这是做为做的知识背景说明提供给大模型理解用的。
-
示例提示词第10点,是最重要的一点,一般在设计这样的系统时,要避免对数据源进行修改,以免对数据造成破坏。
由于篇幅有限,本期的分享暂告一段落,下期将重点跟大家一起来看看【如何运用大模型进行数据可视化展示】以及【如何利用日志进行系统优化】这两块内容,感兴趣的朋友可以提前Mark一下~
注:文章来源见图片水印(布博士--擎创科技产品解决方案专家)
擎创科技,Gartner连续推荐的AIOps领域标杆供应商。公司专注于通过提升企业客户对运维数据的洞见能力,为运维降本增效,充分体现科技运维对业务运营的影响力。
行业龙头客户的共同选择
了解更多运维干货与行业前沿动态
可以右上角一键关注
我们是深耕智能运维领域近十年的
连续多年获Gartner推荐的AIOps标杆供应商
下期我们不见不散~