Tech Whims

ChatGPT 在线教育业务下数据分析领域的初步应用真实案例

张晓龙 / 2023-06-05


我们在公司外出培训的时候(20230523),做了一个 ChatGPT 在数据分析应用的 demo,验证这个方向是否可行。

我们的项目方案

用 chatGPT 理解人的需求(语音、文字),生成可执行的 DSL(SQL),执行获取数据然后根据数据特征,选择合适的数据表达方式(图表)进行分析,最后给出一些基础分析和数据洞察。

AI改造数据分析中的数据准备、增强分析、结论输出以及可视化展示环节

方案的整体结构

核心是利用 gpt:

(1)解析语句,理解自然语言,然后将这个转换为 DSL或者 SQL

(2)拿到数据后,分析数据 feature,选择最优的数据表达方式

(3)基于经验和输入的内容,做基本分析和数据洞察

方案架构

2023-06-05-10-28-37

工程架构中的一些关键点

第一是解析语句生成 DSL 或者 SQL 有一个前置条件是有业务信息输入,这里我们设计的是使用数据仓库中的数据模型(metadata 和 model),输入的自然语句结合业务元信息能够很好的生成可执行的 DSL,这个点我们验证是可行同时准确度在一定的业务范围内还是不错的(chatgpt生成 sql准确性的局限性– 40% vs human 92.6%?,–> 论文:Can LLM Already Serve as A Database Interface? A BIg Bench for Large-Scale Database Grounded Text-to-SQLs);

第二个调教 chatgpt prompt 如何更好的分析数据特征,选择合适的图标,这里我们发现在选择合适的图标能力不太稳定,也就是同样的数据和输入 prompt,生成的图标表达会变化。

第三个关键是做基础分析和数据洞察,基于数据有基础的分析能力,比如最大最小、同比环比、数据趋势等等,这些是图标数据的解读,偏确定性的东西 chatgpt 能够很好的胜任,但在数据洞察上出现了很大的问题,输出的洞察内容基本是“一本正经的胡说八道”。期待 gpt 可以有高级分析师的能力,但是不达预期。我们初步分析一是输入的业务信息不够,二是调教的 prompt 不好,需要更多的精力投入分析。数据洞察上整体看,chatgpt 的瓶颈还是比较大的。

真实案例演示

项目 demo 架构采用 flask web + gpt-3.5-turbo + echarts

一些核心、简单的chatgpt 的 prompt 案例:


# 1. 输入业务信息、数据模型
    prompt_1 = '''有如下一个clickhouse表,CREATE table xxx.xxx ()...

# 2. 分析数据,生成 echart 代码
    prompt_2 = "以下是一个二维表格,根据这个二维表格的数据量和内容,给出利用分析的echarts图表的option代码,并以json格式输出,不要输出解释文字,也不要有回车"

# 3. 数据分析和洞察
    prompt_3 = "基于上面数据,给一个详尽的分析报告,报告包括结论,分析过程,有前瞻性的洞察观点,字数限制在 100 字内"

真实效果

chatgpt在线教育业务下数据分析领域的初步应用真实案例

关键 log,xxx 为脱敏的内容

2023-06-05 11:14:57,530 [WARNING] * Debugger is active!
2023-06-05 11:14:57,538 [INFO] * Debugger PIN: 935-298-896
2023-06-05 11:28:22,919 [INFO] Request Data : 统计学年是2023年春季, 各课程二级部门的可续人次,纯续人次, 并算出续班率。.
2023-06-05 11:28:27,299 [INFO] ChatGPT generate SQL :
SELECT
xxx AS "课程二级部门",
sum(xx) AS "可续人次",
sum(xx) AS "纯续人次",
round(sum(xx) / sum(xx), 4) AS "续班率"
FROM xxx.xxx
WHERE xx = '2023春季'
GROUP BY xxxx
2023-06-05 11:28:28,239 [INFO] ChatGPT auto achieve data from oneservice : [[xxx]].
2023-06-05 11:28:39,405 [INFO] ChatGPT auto choose echart type depend on data feature , genereate echart code:
2023-06-05 11:28:39,406 [INFO] ChatGPT auto transform option object to json object: {
"tooltip": {
"trigger": "item",
"formatter": "{a} {b}: {c} ({d}%)"

},
"legend": {
"orient": "vertical",
"left": "left",
"data": [xxxxx]
},
"series": [
{
"name": "续班率",
"type": "pie",
"radius": ["xxx0%", "xxx0%"],
"avoidLabelOverlap": false,
"label": {
"show": false,
"position": "center"
},
"emphasis": {
"label": {
"show": true,
"fontSize": "30",
"fontWeight": "bold"
}
},
"labelLine": {
"show": false
},
"data": [
{"value": 0.x, "name": "xxx"},
{"value": 0.xx, "name": "xxx"},
{"value": 0.xxx, "name": "xxx"},
{"value": 0.x, "name": "xxx"},
{"value": 0.xx, "name": "xxx"},
{"value": 0.xxx, "name": "xxx"},
{"value": 0.xxx, "name": "xxx"}
]
}
]
}.
2023-06-05 11:28:45,154 [INFO] ChatGPT auto analysis data : 该二维表格展示了不同课程二级部门的可续人次、纯续人次和续班率。从数据中可以得出,xxx的续班率最高,为xxx,而xxx的纯续人次最少,为380.72。xxx的可续人次最多,为xxx,但续班率却比xxxx低,为xxxx。分析数据,可以考虑优化xxxx的课程内容以提高纯续人次,也可借鉴xxxx的做法,提高其他部门的续班率。结合用户反馈和市场需求,未来可将更多资源投入优化xxxxx的课程。

一些结论

  1. 在具体的业务场景,比如在线教育里面数据分析场景,chatgpt 能够做好一些基础分析
  2. 业务分析,强依赖业务信息的输入,洞察和决策能力在chatgpt 3.5 版本上瓶颈还是比较大,在 4.0 上待验证
  3. 数据分析流程上能够自动化的点,都可以应用 chatgpt 搞定,提升整体效率是肯定的
  4. 出于数据安全的考虑,chatgpt 在垂直行业领域上内容的缺失,是在行业应用上的最大卡点
  5. chatgpt 的数据分析能力上限,是使用 chatgpt 角色的能力上限,这两者是匹配的

数据分析管家的可能性

智能分析管家概念的由来,进一步发挥 chatGPT 的能力

智能分析管家概念

设计的概念原型:

智能分析管家原型

chatgpt 在数据分析上的一些不足 & 继续提升的点

ChatGPT 在数据分析中语义理解、生成 SQL 等方面的不足:

ChatGPT 在具体业务数据分析上的局限性(依赖数据治理、分析思路、业务背景&经验):


20230605 更新

无独有偶,发现阿里达摩院与新加坡南洋理工大学在这个方向发了论文: Is GPT-4 a Good Data Analyst?,探讨了 GPT-4 能否做好数据分析师的工作,论文重点考察了 GPT-4 作为数据分析师的以下几种能力:

  1. 生成 SQL 和 Python 代码;

  2. 执行代码获得数据和图表;

  3. 从数据和外部知识源中分析数据,得出结论。

Abstract:

“As large language models (LLMs) have demonstrated their powerful capabilities in plenty of domains and tasks, including context understanding, code generation, language generation, data storytelling, etc., many data analysts may raise concerns if their jobs will be replaced by AI. This controversial topic has drawn a lot of attention in public. However, we are still at a stage of divergent opinions without any definitive conclusion. Motivated by this, we raise the research question of “is GPT-4 a good data analyst?” in this work and aim to answer it by conducting head-to-head comparative studies. In detail, we regard GPT-4 as a data analyst to perform end-to-end data analysis with databases from a wide range of domains. We propose a framework to tackle the problems by carefully designing the prompts for GPT-4 to conduct experiments. We also design several task-specific evaluation metrics to systematically compare the performance between several professional human data analysts and GPT-4. Experimental results show that GPT-4 can achieve comparable performance to humans. We also provide in-depth discussions about our results to shed light on further studies before we reach the conclusion that GPT-4 can replace data analysts.”

这周花时间研究下这篇论文