独家 | ChatGPT Claude和Gemini 数据分析大比拼(第一部分)(上)

d0dec7b11960224cf29286dee007f6c9.png

作者:Yu Dong翻译:陈之炎校对:付文欣
本文约3000字,建议阅读5分钟
十个问题帮你测试出哪个AI助手能写出最佳的SQL代码。

标签:AI助手,SQL


目录

  • 背景

  • SQL技能比拼!

  • 第一轮:问题解决(LeetCode SQL)

  • 第二轮:业务逻辑

  • 第三轮:查询优化

  • 总结

  • 下一步是什么


1. 背景

欢迎来到ChatGPT vs. Claude vs. Gemini 数据分析系列博文的第一弹。在本系列博文中,我将比较不同AI模型在各种数据科学和分析任务上的表现,旨在帮助数据爱好者和专业人士选择最适合各自需求的AI助手。

我会比较下面的三个具体模型。之所以选择这三个模型,是因为它们都提供了一个易于访问且方便日常任务的聊天机器人界面。我使用了订阅账户进行性能比较(是的,为了写这篇文章,我在上周订阅了Claude和Gemini Advanced)。

ChatGPT 4o:对所有ChatGPT用户开放,但对免费用户有使用限制。

Plus订阅每月20美元。

  • 上下文窗口:128k 标记

  • 训练数据更新至2023年10月

(来源于官方文档:https://platform.openai.com/docs/models/gpt-4o)

Claude 3.5 Sonnet:对所有Claude.ai用户开放,但免费用户有使用限制。专业计划每月20美元。

  • 上下文窗口:200k 标记

  • 训练数据更新至2024年4月

(来源于官方文档:https://docs.anthropic.com/en/docs/about-claude/models)

Gemini Advanced:向Google One AI Premium计划订阅者开放,每月20美元(都是一样的价格...)

  • 上下文窗口:100万个标记

(详情:https://support.google.com/gemini/answer/14517446)

  • 训练数据更新至2023年11月

(来源于官方文档:https://ai.google.dev/gemini-api/docs/models/gemini?hl=zh-cn)

2095e77d94156c1961c8d0c7cfcbf829.png 

afc658c6837eeffe4cc760d99b32e6bc.png

由DALL·E提供图片

2. SQL技能比拼!

在本系列文章的第一篇中,我们将重点关注最重要的数据技能之一——SQL。每位数据分析师或科学家都需要SQL,其相对简单的语法使其成为评估LLMs的理想起点。我将评估三者的查询准确率、效率、格式化和可解释性。

评估过程包括十个问题,分为三个类别:

1. 问题解决:前三题来自LeetCode SQL问题。这些问题对于输入和输出表的结构有着清晰的描述,类似于面试问题。

2. 业务逻辑:接下来的四个问题是我原创的问题。我将尝试模拟在工作中如何使用SQL——我将提供实际数据集和业务问题或指标的简短描述。

3. 查询优化:在最后一部分,将挑战用LLMs优化三个SQL查询。

让我们开始吧!

3. 第一轮:问题解决(LeetCode SQL)

3.1. 问题1 - LeetCode SQL 262 行程和用户

我选择这个问题是因为它在LeetCode上被标记为“困难”,通过率仅为36.5%。它的复杂性在于如何在不同列上两次连接同一表并对多个过滤器进行解释。

GPT-4o:GPT在第一次回答就提供了正确的解决方案,并附有详细的解释。给予满分。

Claude 3.5 Sonnet:Claude提供了准确的代码和详细的解释。给予满分。

99abd3301560d47fe126e57fa655e391.png 

eb78fe44776778be37cf0221403be7e6.png

Gemini Advanced:Gemini也提供了正确的查询和解释,获得了满分。有趣的是,它在回答的最后给了一个GitHub链接。看来Gemini不仅根据它的“知识”生成问题,还搜索了互联网。然而,它链接的仓库是一个随机的LeetCode练习仓库,不包括这个SQL问题……我认为链接搜索结果可以增加可信度。但如果结果不相关,那么……?

84d1b57e7bb78d13de77fa5c99ce20e1.png 

74bb8a3d2750ed765ba1f95497836c6a.png

Gemini链接了一个随机的GitHub仓库(图片由作者提供)

3.2. 问题2 - LeetCode SQL 185 部门三大最高薪水

这也是一个较“困难”的SQL问题,需要一个窗口函数。

GPT-4o:GPT使用窗口函数提供了正确的解决方案,并附有清晰的解释。给予满分。

7c37b891339d5b59ed474e3fbbbf7745.png 

d5ba48eda89e58f27cec6d236be08d4b.png

Claude 3.5 Sonnet:Claude也提供了类似的正确解决方案,并有全面的解释。给予满分。

Gemini Advanced:Gemini提供了正确的解决方案,获得了满分。这一次,它链接了包含LeetCode SQL解决方案的相关GitHub仓库和具体的LeetCode问题。我很高兴它没有犯同样的错误。

94cf39117fbb72d4ff50d7e2a1419afe.png 

4f00a737833acd057337d1c1fd2222f2.png

Gemini链接了相关GitHub仓库和正确的LeetCode问题(图片由作者提供)

3.3. 问题3 - LeetCode SQL 1341 电影评分

我选择的最后一个问题是“中等”难度问题,但通过率仅为40.1%。它需要合并两次聚合得到的前几个结果。

GPT-4o:解决方案正确且解释得很好,尽管有点冗长和低效。MaxUser和MaxMovie CTEs是多余的。见下文Claude的整洁解决方案。因此,我给它一半的分数。

d2539b1d9bea62a4a906e5b6e7092c1a.png 

98b4aceb8168c5ae3b99ee45fb50d95b.png

48800e161b953705739030475a12e6ff.png

Claude 3.5 Sonnet:Claude的解决方案清晰高效,解释了两个子查询。它获得满分。

cbcab98f968b15f53a59b5d18ed070de.png

654b27fae3205c34832ff2d300d940ac.png 

Gemini Advanced:不幸的是,Gemini的解决方案是错误的。过滤器WHERE user_rank=1 OR movie_rank=1抛出了一个语法错误,因为combined_results实际上并没有movie_rank列。有趣的是,它链接到了一个包含正确解决方案的相关GitHub仓库,但它并没有在自己的答案中使用这个解决方案。

(所以即使它搜索了互联网,它也不使用搜索结果中的解决方案?我真困惑…)

7e450e77ac511ad4b32e8cea9a8dea5b.png 

3a3e1704d7d80250167ce9616f409eaf.png

59c5d46e9fcf4457cfac9b12cd7bd2a8.png

第一轮回顾

在这一轮中,Claude 3.5 Sonnet是赢家,它正确回答了所有三个问题,并附有清晰的解释。GPT-4o得分2.5分,由于查询效率低下而失去了0.5分。Gemini Advanced因最后一个问题中的语法错误而只得到2分。它的“来源和相关内容”功能仍然不一致——有时不相关,有时与其答案不一致。

16a999547eee1c225d15cd134d6f999d.png 

f716db114851b8fb4cb04289f6618eed.png

第一轮得分(图片由作者提供)

4. 第二轮:业务逻辑

奖励:数据集准备

在这一轮中,我计划上传假数据集到三个AI工具,提供有限的描述,并让它们读取数据集来解释我的业务问题并编写SQL查询。但首先,需要生成合成数据。

我也将使用LLMs来完成这项任务。

a35876c15606d55a76403d2c026f18c6.png 

65ea531b7976d83c026a1164bab23517.png

生成合成数据集的提示(图片由作者提供)

ChatGPT-4o:它生成了四个带有下载链接的CSV文件。令我印象深刻的是,GPT不仅创建了我指定的列,还添加了非常符合商业背景的额外列。它使用faker包生成了看起来非常真实的假数据。

a065d4e9082880be268501a0cafa15fd.png 

dc44c107e901016b476c373f7aeaa9ac.png

GPT生成的合成数据集。别担心,所有的支付信息都是假的。(图片由作者提供)

e70d29a048d1b1375d886852c477fbc3.png 

838a5d3f7d81c6206f9d1e5b65f0b5e0.png

ChatGPT利用faker包生成合成数据集(图片由作者提供)

Claude 3.5 Sonnet:Claude提供了使用np.random方法生成合成数据集的Python代码。然而,它不能直接运行代码提供的CSV下载链接,它也没有使用faker包,所以生成的数据感觉不太真实。

Gemini Advanced:Gemini在这任务中表现不佳。它生成了四个我可以打开的Google电子表格的表格,但这些只是表格描述的表格。在后续澄清后,它创建了只有10行的假表格,并拒绝提供更大的数据集。

48d5e0e4ae331edf65566dafb7fc2afa.png 

c29a2fc6c3aa676e540ecf1943952f09.png

Gemini创建了表格描述的表格(图片由作者提供)

加载数据集

有了这四个合成数据集,我尝试将它们上传到三个AI工具(在新的对话线程中)。总文件大小为920 KB,数据集大小从500到5000行不等。

e27f9a8da128a24c5bf80aee86170fca.png 

e0d66102c41e2c3538476672bbeb46e4.png

GPT生成的文件(图片由作者提供)

ChatGPT-4o:ChatGPT成功加载了四个数据集,并为每个表格提供了预览。用户界面允许展开表格以便更仔细地检查。它的文件上传大小限制为每个文件512MB,一次对话中最多包含10个文件。

Claude 3.5 Sonnet:当我尝试上传四个数据集时,Claude返回了一个错误:“对话超出长度限制的119%。”这令人惊讶,因为Claude 3.5 Sonnet的上下文窗口比ChatGPT-4o高。尽管他们声明的文件上传限制为“每个文件30MB(最多5个文件)”,实际限制似乎更低,可能是由于需求量高的原因。最终,我不得不削减超过一半的行数,将总文件大小减少到320 KB,它才工作。

b75b04239b5aa52fc3cbd97605baf535.png 

96828984131c9e1f4dafc524b58e9e9d.png

Claude关于长度限制的错误消息(图片由作者提供)

Gemini Advanced:Gemini回应说,“我无法协助你,因为我只是一个语言模型,没有能力理解和响应。”

因此,我不得不为后续问题提供表格描述,而不是上传真实的数据集。

2419f52eef36faa6a43cdca09305eed0.png 

a24e9ed0e23c7ab3fcc5ff8f4a3bf598.png

Gemini关于文件上传的错误消息(图片由作者提供)


4.1. 问题4:月度销售计算

提示:请帮我写一个SQL查询,计算美国用户的每月总订单金额。

GPT-4o:它提供了正确的答案,并根据对数据集的理解,主动添加了订单状态过滤器order_status = 'Completed'。我给它打满分和附加0.5额外分数。

Claude 3.5 Sonnet:它也提供了正确的查询。对于“美国用户”过滤器,它编写了country = 'United States' OR country = 'US'。我故意将一些“United States”的实例替换为“US”,以模仿现实世界中的数据不一致性。我很高兴看到Claude注意到了这个细节。它也得到满分和0.5的额外分数。

9b123001241ccf8ef3d6e48c57acc098.png 

53eb91870c77e401a0f480320fea1ef2.png

Gemini Advanced:Gemini生成了正确的查询,获得了满分。

以上为 ChatGPT  Claude和Gemini 数据分析大比拼(第一部分)(上)全部内容,下篇为分享 ChatGPT  Claude和Gemini 数据分析大比拼(第一部分)(下),谢谢阅读。

原文标题:

ChatGPT vs. Claude vs. Gemini for Data  Analysis (Part 1)

原文链接:

https://towardsdatascience.com/chatgpt-vs-claude-vs-gemini-for-data-analysis-part-1-821086810318

编辑:于腾凯

校对:丁玺茗

作者简介

000b997a47ad18894eacb2450f157850.jpeg

陈之炎,北京交通大学通信与控制工程专业毕业,获得工学硕士学位,历任长城计算机软件与系统公司工程师,大唐微电子公司工程师,现任北京吾译超群科技有限公司技术支持。目前从事智能化翻译教学系统的运营和维护,在人工智能深度学习和自然语言处理(NLP)方面积累有一定的经验。业余时间喜爱翻译创作,翻译作品主要有:IEC-ISO 7816、伊拉克石油工程项目、新财税主义宣言等等,其中中译英作品“新财税主义宣言”在GLOBAL TIMES正式发表。能够利用业余时间加入到THU 数据派平台的翻译志愿者小组,希望能和大家一起交流分享,共同进步

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

关于我们

数据派THU作为数据科学类公众号,背靠清华大学大数据研究中心,分享前沿数据科学与大数据技术创新研究动态、持续传播数据科学知识,努力建设数据人才聚集平台、打造中国大数据最强集团军。

56e137b7cdad5885dd4f46ccebeee6fd.png

新浪微博:@数据派THU

微信视频号:数据派THU

今日头条:数据派THU

点击“阅读原文”拥抱组织

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值