编程工作流
Bard 表现出色的地方?
代码优化是一项常见却棘手的任务。通常有许多方法可以让代码更高效或运行更快,而且很少只有唯一正确答案。对代码优化请求的优质回应应提供多种解决方案。该任务要求 Bard 优化一段 SQL 代码。

Bard 提供了 10 个选项。它们都合理,尽管有些是同一思路的变体(例如五种创建索引的方法),而且都侧重于数据库管理,而非改进查询本身。
编写单元测试是一项重要却少有人乐于承担的任务,因此让 AI 替您完成可能是件好事。当然,前提是它能写出好的测试!在这个示例中,Bard 被要求为一个计算阶乘的函数编写测试。

代码结构良好,大多数测试也合理。一个可能令人担忧的地方是:针对字符串输入的测试要求函数返回数值。人类程序员可能会为字符串输入编写抛出错误的测试,因为“文本的阶乘”毫无意义。提示并未指定字符串输入应有何行为,因此这问题或许可以通过更详细的提示纠正。不过,我认为该回答良好但不完美。
Bard 表现不佳的地方?
也许 ChatGPT 在数据科学中最广泛的用例就是解释代码中的错误。这意味着我原本期待 Bard 能拿下这一题:它被要求解释一段 R 代码中的简单语法错误。

遗憾的是,Bard 拒绝回答(当被要求解释 Python 和 SQL 错误时也给出了类似回应)。这令人失望。不过,值得肯定的是,拒答是“最好的失败方式”。AI 的一大问题是自信地说出错误答案,从而误导您。为 Bard 注入谨慎是谷歌做得很好的地方。
当被要求解释一些 Python 代码时,Bard 也给出了类似的回应。

结论:ChatGPT 获胜
尽管 Bard 对部分编程问题的回答尚可,但它在代码与错误解释方面存在明显短板,不适合作为学习代码的助手。
数据分析工作流
Bard 表现出色的地方?
用自然语言(即人类句子)编写 SQL 查询是一个极其重要的用例,因为它能让技术不太熟练的业务用户也能访问数据库中的数据。在这里,Bard 被要求编写一个聚合客户明细的简单查询。

代码和解释都正确,而且还更进一步,将行按最常见到最不常见的邮箱类型排序,这对查看结果的人很有帮助。
CTE(公用表表达式)是 SQL 中的“变量”概念,类似于 Python 或 R 的变量:它们允许您分阶段构建更长的查询。将包含嵌套子查询的复杂查询改写成使用 CTE 是使代码更易读的实用技巧。在下面的示例中,我希望 Bard 将子查询(以 SELECT 开头的内部代码)移到一个公用表表达式中。

在这里,Bard 完全误解了问题,把所有内容都移进了 CTE。不过,Bard 还有一招:每次请求 Bard 生成回复时,它实际上会生成三种回复供您选择。此处第三个回复是正确的。

数据清洗是数据分析的另一种有趣用例。对人类来说这不是有趣的任务,如果 AI 能替您完成就很有帮助。不过,清洗数据往往有多种方法,并非只有单一解。

本例中,代码是正确的,但有两点值得注意。首先,它假设 customer_id 在 DataFrame 的索引中。虽然有些 pandas 用户认为这样存储数据更好,但提示里说 customer_id 是一列。其次,.replace()/.isnull() 的组合不如使用 .fillna() 简洁。同样,Bard 的“三种方案”再次发挥作用;第二种方案解决了我的两点意见。

Bard 表现不佳的地方?
作为一家教育公司,DataCamp 几乎无限需要新数据集供用户进行分析。这意味着 AI 能即时生成数据集将是颠覆性的功能。对其他人而言,能快速生成数据集以测试其分析代码也是一大好处。ChatGPT 在这方面表现很好,但让我们看看 Bard 的表现。

它再次拒绝回答。与编程示例类似,我对该 AI 表现出的克制印象不错,但也有些失望它无法完成任务。
由于数据分析很大一部分是数据处理,如果 AI 能替您编写处理代码就太好了。下面的示例稍有难度,因为它要求 AI 理解年份需要从入职日期计算。

遗憾的是,这一细微要求未被捕捉到,代码是错误的。事实上,生成的三个方案都不对。这是“自信地错”的坏例子:AI 在回复中非常自信,但却是错的。
结论:ChatGPT 获胜
我喜欢 Bard 提供三种方案,让您更有机会获得合适的答案。然而,无法生成数据集以及无法完成(稍有难度的)数据处理,这些都是阻碍。
数据可视化工作流
Bard 表现出色的地方?
我尝试了一个简单的“创建散点图”的任务,但加了个小花样:更改图表的配色主题。新闻网站 FiveThirtyEight 发布了自己的配色主题,并已包含在流行的 Matplotlib 包中。

代码是正确的,不过有个小问题:导入了 mcolors 却从未使用。
Bard 表现不佳的地方?
另一项相对直接的绘图任务是在同一图上绘制多条折线。所用数据集是 gapminder,它常用于演示。

这里的代码几乎是正确的,但出现了与之前类似的问题:Bard 不确定 country 应该是列还是索引(尽管提示中已说明)。在 plt.plot() 这一行进行行子集选择时,country 被认为在索引中,这与上一行不一致。
我请 Bard 使用 R 的 ggplot2 包完成相同任务。

Bard 在这里礼貌地拒绝了。我对此略感意外,因为 ggplot2 十多年来一直是 R 中最受欢迎的绘图包,且有大量代码示例可供参考。
结论:ChatGPT 获胜
我或许可以原谅 Bard 对 pandas 索引的混淆,但无法绘制一个简单的 ggplot2 图,使其不适合 R 用户。
机器学习工作流
Bard 表现出色的地方?
我尝试了几项任务,不幸的是都存在问题。鉴于 Python 机器学习的火爆,这对 Bard 是个重大警讯。
Bard 表现不佳的地方?
机器学习最显而易见的起点,或许就是在 Python 中训练模型并进行预测。

代码大体不错,但训练集和测试集的划分方式存在问题。良好实践是随机选择样本进入其中一组,但 Bard 只是把最后一千行放入测试集(其余都放入训练集)。只有当数据集中电影的顺序是随机的,这才说得过去。
另一个重要领域是模型可解释性。用 Shap 值解释决策树相对简单,且有相对标准的工作流。

不幸的是,代码调用了 shap.explain(),而这个函数并不存在。这类问题相对容易发现,因为运行代码就会失败。然而,生成不可运行的代码会浪费您的时间。
我还想尝试一个更偏概念性的机器学习任务。机器学习的“技艺”很大程度上在于利用领域知识构造有意义的特征供模型使用。为特征出主意并不容易,因此这是 AI 大有可为的领域。

此处的回答并不糟糕,因为它确实提出了两个有用的特征想法(类型和预算)。不过,另外两个想法只是提示中已给出的,而第二个列表并未被要求。此外,它提到的是“数据工程技术”,而非“机器学习技术”,这是不准确的。
结论:ChatGPT 获胜
Bard 在这里表现很差;毫无悬念。
时间序列分析工作流
Bard 表现出色的地方?
遗憾的是,我未能说服 Bard 完成任何时间序列任务。
Bard 表现不佳的地方?
我尝试了时间序列的数据处理任务,比如将日度数据转换为周度和月度数据。

Bard 拒绝了。
接着,我尝试让它进行平稳性检验。

Bard 又一次拒绝。和之前一样,我欣赏 Bard 内置的克制,以减少产生错误答案的数量。
结论:ChatGPT 获胜
看起来 Bard 目前还无法进行时间序列分析。
自然语言处理工作流
Bard 表现出色的地方?
您也许会想,大型语言模型在处理语言方面应该很擅长。情感分析(判断文本是正面还是负面)对于量化电商网站上的商品评价很重要,也被视为文本分析的“基础能力”。本任务稍有难度,因为包含了一个表情符号和一句俚语。

Bard 的第一个回答还可以,但忽略了提示中每一行应单独考虑这一点。(公平地说,这点并未明确说明,但人类或许会直觉地这样理解。)Bard 的第三个回答注意到了这一细节。

两种情况下,对表情符号和俚语的解读都正确。
Bard 表现不佳的地方?
将文本从一种人类语言翻译为另一种,是 Transformer 模型最初的用例。我要求 Bard 用法语作答。

遗憾的是,Bard 提供了一个关于机器学习的英文解释,并仅翻译了“machine learning”这一短语为法语,而非用法语给出完整回答。
结论:ChatGPT 获胜
这个翻译失误让我大为意外。
概念与职业相关任务
Bard 表现出色的地方?
向没有数据背景的人解释分析中的技术概念,是数据科学中较难的部分之一。我让 Bard 向一位高管解释 A/B 测试。

解释相当不错。它稍稍假设了新字体带来了更高的转化率(这取决于测试的设置;也可能只是不同的转化率)。另外两种回答注意到了这一细微点,因此我不在此扣分。
另一个有用的 AI 任务是总结长文。在这里,我让 Bard 总结由谷歌员工撰写的 Transformer 模型原始论文。

这是一份良好、易读的摘要。有一点小问题是:它包含了一些指向论文解读博客的链接,而非原论文本身。
对于希望从事数据职业的人来说,获取如何获得理想工作的思路是至关重要的职业建议。我让 Bard 提出项目创意。这也是一项创意任务,没有唯一正确答案。

最后,为较长的作品撰写引言,是那种略显烦人的任务,我更愿意交给 AI。

同样,即便上下文很少,AI 也提供了一段写得不错的内容。
Bard 表现不佳的地方?
在这一部分,Bard 对我提出的所有任务都表现良好。
结论:平分秋色
尽管很难量化 ChatGPT 与 Bard 在这些创意任务上孰优孰劣,但我很高兴发现至少有一个领域,Bard 能持续输出高质量内容。
总结
Bard 在数据科学工作流方面存在一些明显短板:无法解释代码错误,以及在 Python 机器学习任务上的糟糕表现,都是大问题。
我很喜欢它提供三个可选回答,也欣赏它足够克制、知晓自身边界。拒绝回答总比给出错误答案好得多。
归根结底,目前 ChatGPT 仍然称王,但我也期待见证 Bard 的进步。生成式 AI 领域的竞争,只会让世界受益。
更进一步
如果您想进一步了解如何将生成式 AI 用于数据科学,请查看以下资源:
- 在 Introduction to ChatGPT 课程中学习如何高效使用 ChatGPT。
- 查看我们的 《数据科学项目中使用 ChatGPT 的指南》。
- 下载这份便捷的 ChatGPT 提示词速查表,用于数据科学场景。
- 收听这期播客 《ChatGPT 与 GPT-3 如何增强工作流》,了解 ChatGPT 如何助益您的业务。
- 进一步了解 什么是 GPT-4 以及为何重要。

Richie 帮助个人与组织更好地运用数据与人工智能。他在“数据科学”这一称谓流行之前就从事相关工作,并在该领域撰写了两本书,创作了多门 DataCamp 课程。他主持 DataFramed 播客,并负责 DataCamp 的网络研讨会项目。
与 AI 版 Richie 对话,畅聊每一期 DataFramed——欢迎所有数据高手加入!
自 2023 年推出以来,Google 的 Bard 大型语言模型已有所改进,最近还新增了与其他模型类似的“实时”响应功能。
当前该领域的领跑者是 OpenAI 的 ChatGPT,我想了解 Bard 能否与之匹敌。谷歌发明了驱动这些生成式 AI 的 Transformer 模型,并拥有庞大的资源来争取重回领先地位。另一方面,OpenAI 则拥有其 GPT-2、GPT-3、GPT-3.5 和 GPT-4 模型多年用户反馈的优势。
最近,DataCamp 发布了 《数据科学用 ChatGPT 速查表》,提供了 60 多个 ChatGPT 在数据科学中的真实用例。在这份速查表中,ChatGPT 在各项任务中表现出色。
虽然谷歌明确表示 Bard 尚未针对编程任务进行优化,但本文将测试部分数据科学任务,展示 Bard 表现出色之处——以及不足之处——看看“王冠”是否易主。关于更通用的比较,请参阅另一篇文章:ChatGPT 与 Google Bard 对比。