跳到主要内容

【论文简评】GPT-4 是一个好的数据分析师吗?

· 阅读需 11 分钟

阿里巴巴的达摩学院 和 新加坡南洋理工大学在2023年5月24日发表了一篇论文,名叫 Is GPT-4 a Good Data Analyst? 题目引起了我的兴趣,我简单看了一下论文,有几个点简单评论下。

论文地址: https://arxiv.org/abs/2305.15038

简单评论

  1. 数据集。 他们使用的数据集是 nvBench (https://github.com/TsinghuaDatabaseGroup/nvBench) 的一个子集。选择了其中的 100 个问题。

nvBench: Natural Language to Visualization (NL2VIS) Benchmarks

自然语言可视化 (NL2VIS) 基准

nvBench 是一个用于复杂和跨域 NL2VIS 任务的大型数据集,涵盖 105 个域,支持七种常见的可视化类型,包含 25,750 个(NL,VIS)对。这个存储库包含 NL2VIS 的语料库,有 JSON 格式和 Vega-Lite 格式。

顺便说一下,nvBench 使用的是 vega-lite 进行可视化,很好的品味 😃😃😃

  1. 我随机取了原始 nvBench 数据集中的几个问题,来大致了解问题的难度。老实讲,我觉得有点太简单了。

"[""显示每个级别的教员比例。""""我们每个级别有多少教员?给我一个比例。",""我想知道每个等级的教员比例。"]" "[""找到至少有两个入学名额的学生的学生证和个人姓名。""]" "[""对于那些在过去没有任何工作的员工,返回一个关于雇用日期和经理_id bin hire_date按时间分布的条形图。""""对于那些在过去没有任何工作的员工,用条形图向我展示关于雇用日期和经理_id bin hire_date按时间分布的总和。 "", "对于那些在过去没有任何工作的员工,用柱状图给我比较一下经理人_id与招聘日期的总和,以及招聘日期的时间。 "", "对于那些在过去没有任何工作的员工,用条形图显示hire_date和manager_id bin hire_date按时间的分布情况。"""对于那些在过去没有任何工作的员工,画一个关于hire_date和manager_id bin hire_date按时间的分布情况的条形图。""] " "[""显示一个饼图,按价格递减和名称递增排序,至少花费180的产品的名称和价格是什么?"""画一个饼图,按价格递减和名称递增排序,至少花费180的产品的名称和价格是什么?"""按价格递减和名称递增排序,至少花费180的产品的名称和价格是什么?用饼状图来表示。""]" "[""给我一个直方图,按价格递减和名称递增排序,至少花费180的产品的名称和价格是什么?"""返回一个条形图,按价格递减和名称递增排序,至少花费180的产品的名称和价格是什么?"""按价格递减和名称递增排序,至少花费180的产品的名称和价格是什么。显示条形图。""]" "[""用条形图给我提供关于米_100与米_500的比较。"""给我提供关于米_100与米_500的比较。"""找到米_500和米_100 ,并用条形图把它们形象化。"""条形图显示米_500和米_100的分布。"""用条形图给我展示关于米_500和米_100的分布。"""条形图x轴米500 y轴米_100"]" "[""在柱状图中显示每个客队的比赛数量,你能按降序显示柱状图吗?",""柱状图x轴客队y轴客队数量,按X轴的降序显示。"]" "[""对于那些来自产品和每个产品制造商的记录,给我关于代码在名称上的平均数的比较,并按属性名称分组,我想按代码的平均数降序排序。""""对于那些来自产品和每个产品制造商的记录,给我关于名称的分布和代码的平均数,并按属性名称在条形图上分组,并按总数降序排序。 "",""对于那些来自产品和每个产品制造商的记录,用条形图显示名称的分布和代码的平均数,并按属性名称分组,并按总数降序排序。 "", "对于那些来自产品和每个产品制造商的记录,用条形图显示名称和代码的平均分布,并按属性名称分组,请按降序排列Y。"""对于那些来自产品和每个产品制造商的记录,返回一个关于名称和代码平均分布的条形图,并按属性名称分组,请按降序排列Y。""]" "["""画一个条形图,说明飞行员的不同国籍是什么?显示每个国籍和每个国籍的飞行员数量,我想按名字升序排列。"",""条形图显示不同国籍的总人数,我想按X轴从低到高显示。""""哪些是不同国籍的飞行员?显示每个国籍和每个国籍的飞行员数量 显示条形图,按X轴从高到低排列。""]" "[""各主要行业中没有加油站的公司有多少?画一个条形图,按升序显示X。",""用条形图显示各主要行业中没有加油站的公司数量,请按条形图从低到高排序。"]" "[""对于所有名字里有字母D或S的员工,给我比较一下部门_id比工作_id的总和,并按属性job_id分组,以升序显示总人数。""""对于所有名字里有字母D或S的员工,给我看一下工作_id的分布和部门_id的总和,并按属性job_id分组,以条形图排序。 "", "对于所有名字中有字母D或S的员工,返回一个关于job_id和department_id之和的条形图,并按属性job_id分组,按总人数升序显示。 "",""对于所有名字中有字母D或S的员工,绘制一个关于job_id和部门_id之和的条形图,并按属性job_id分组,我想按部门id之和从低到高排序。""""对于所有名字中有字母D或S的员工,条形图显示job_id和部门_id之和的分布,并按属性job_id分组,我想按Y轴升序显示。""]" "[""对于那些不在有经理的部门工作的员工,他们的id在100到200之间,请用条形图显示雇佣日期的分布和按工作日计算的employee_id bin hire_date的平均数,并按Y轴从高到低的顺序显示。"""对于那些不在有经理的部门工作的员工,他们的id在100到200之间,给我用条形图比较employee_id在工作日的平均数,并按员工id平均值从高到低显示。 "", "对于那些不在有经理的部门工作,id在100到200之间的员工,返回一个条形图,说明按工作日计算的employee_date和employee_id bin hire_date的平均分布,并按Y轴从高到低排序。 "",""对于那些不在有经理的部门工作,id在100到200之间的员工,用条形图向我展示按工作日计算的hire_date和employee_id bin hire_date的平均分布,并按员工id的平均值降序排列。"""对于那些不在有经理的部门工作,id在100到200之间的员工,画一个按工作日计算的hire_date和employee_id bin hire_date的平均分布的条形图,按Y轴降序显示。" ]" "[""对于那些在2002-06-21之前被雇佣的员工,返回一个关于部门ID随雇佣日期变化的折线图,我想按X轴升序排列。"""对于那些在2002-06-21之前被雇佣的员工,用折线图显示部门ID随雇佣日期变化的趋势,按X轴从低到高排列。 "", "对于那些在2002-06-21之前被雇佣的员工,请用折线图显示 department_id 相对于 hire_date 的变化,请按 HIRE_DATE 从低到高排序。 "",""对于那些在2002-06-21之前被雇佣的员工,请用折线图显示部门ID在雇佣日期上的变化,我想在X轴上按升序排列。 "",""对于那些在2002-06-21之前被雇用的员工,请画一个关于department_id在hire_date上的变化的折线图,请按HIRE_DATE从低到高显示。"",""对于那些在2002-06-21之前被雇用的员工,请给我关于department_id在hire_date上的趋势,按x轴升序排序。""]"

  1. 对于绘图子问题,GPT-4 很好。

存在问题是,都是些简单的条形图、饼图这样的图。这也是原数据集的问题。

  1. 对于数据分析的正确性, GPT-4 没人类分析师准,数据生成会有幻觉现象。

当然了,这本来就是 LLMs 固有的问题。插件系统、reAct 或 langchain 就是在解决类似问题

  1. GPT-4 尽管生成了错误的数字,但分析可能是正确的。

哈哈哈。语言模型么,自然可能一本正经的胡说八道,数据集的问题都比较简单,当然胡说八道准确的概率会大一些。

  1. GPT-4 语言能力很强。对齐度和流畅度平均得分都是满分。GPT-4 能够通过进行适当的比较(例如, “最成功的”、“不太成功的”、“多样化的范围”)来理解数据。此外,GPT-4 可以从数据中提供一些洞察,例如:“表明他们在竞争中的主导地 位”。上述提到的 GPT-4 的这些能力,包括上下文理解、代码生成和数据讲故事,也在许多其他案 例中得到了展示。此外,在这种情况下,GPT-4 还可以从数据及其背景知识中做出一些合理的猜测, 例如:“潜在的原因是它们的设计、性能或其他因素”。

  2. 人类数据分析师可以用一些个人的想法和情感来表达分析。例如,数据分析师提到 "这有点令人惊讶......"。

其实这个问题也不是什么问题,调整下 prompt 也肯定能做到

  1. 在提供见解或建议时, 人类数据分析师往往比较保守。例如,在第 5 点, 人类数据分析师在给出建议之前会提到“如果没有数据问题”。与人类不同的是,GPT-4 会直接以自信的语气提供建议,而不会提及其假设。

这也是 LLMs 的潜在问题,无解。最多在 prompt 层面做一些调整。

结论

数据集有点简单了。但更复杂的问题似乎也没办法标准化。

其他一些想法

其实之前我就问过 GPT 类似问题。目前看,没有什么变化。

对于数据分析或数据科学从业者,他们容易被人工智能替代吗?为什么我觉得好像有点难?

数据分析或数据科学从业者需要运用复杂的数据分析技术和算法来解决实际问题,同时需要具备相关的业务知识、沟通技能、团队合作能力等。虽然人工智能技术在数据分析和数据科学领域的应用已经日益普及,但是仍然需要人类的智慧和判断力来解决实际问题。

虽然一些简单的数据分析任务可以通过人工智能技术自动化完成,但是对于复杂的问题,仍然需要数据分析从业者的专业知识和经验来进行分析和解决。此外,数据分析和数据科学领域需要进行数据清洗、数据预处理、数据可视化等一系列的数据处理工作,这些工作仍然需要人类的判断和技能来完成。

因此,虽然人工智能技术在数据分析和数据科学领域的应用越来越广泛,但是数据分析和数据科学从业者仍然具有不可替代的重要性。他们需要保持专业知识和技能的更新,以适应技术的发展,并继续发挥自己在数据分析和数据科学领域的价值。