AI编程概念
2024 年 4 月 22 日

Yuichiro Chino/Getty Images

在过去的一年左右时间里,我一直在对大型语言模型进行一系列测试,以查看它们处理一些相当基本的编程挑战的能力如何。

同样:最佳免费AI课程(以及AI“微学位”和证书是否值得) (opens new window)

这个想法很简单:如果它们无法处理这些基本挑战,那么要求它们做更复杂的事情可能不值得。另一方面,如果它们能够处理这些基本挑战,它们可能会成为帮助开发人员节省时间的有用助手。

为了设定这个基准,我一直在使用三个测试(并刚刚添加了第四个)。它们是:

  1. 编写WordPress插件: 这是使用PHP编程语言在WordPress中进行基本Web开发的测试。它还需要一点用户界面构建。如果一个AI聊天机器人通过了这个测试,它就可以作为Web开发人员的助手来创建基本的代码。我最初在“我让ChatGPT写了我需要的WordPress插件。它在不到5分钟内完成了 (opens new window)”中记录了这个测试。
  2. 重写字符串函数: 这个测试评估了AI聊天机器人如何更新实用程序函数以提供更好的功能。如果一个AI聊天机器人通过了这个测试,它可能能够帮助为开发人员创建工具。如果失败,大一编程学生可能可以做得更好。我最初在“好吧,ChatGPT刚刚真正调试了我的代码 (opens new window)”中记录了这个测试。
  3. 查找一个令人恼火的bug: 这个测试需要对WordPress的工作原理有深入了解,因为显而易见的答案是错误的。如果一个AI聊天机器人能够正确回答这个问题,则它的知识库相当完整,即使涉及到像WordPress这样的框架。我最初在“好吧,ChatGPT刚刚真正调试了我的代码 (opens new window)”中记录了这个测试。
  4. 编写脚本: 这个测试要求一个AI聊天机器人使用两个相当专业的编程工具进行编程,这些工具并不为许多用户所知。它本质上测试了AI聊天机器人在大型语言之外的知识。我最初在“谷歌推出Gemini Code Assist,我谨慎乐观地认为它将帮助程序员 (opens new window)”中记录了这个测试。

我将带领您了解每个测试,并将结果与我测试过的其他AI聊天机器人的结果进行比较。这样,您将更好地了解AI聊天机器人在编程性能方面的差异。

这一次,我要对Meta的新Meta AI进行测试。让我们开始吧。

1. 编写WordPress插件 #

这是左侧Meta AI生成的界面,与右侧ChatGPT生成的界面进行比较:

也:如何开始使用Facebook、Instagram等Meta AI (opens new window)

在操作方面,ChatGPT接收了一组名称并生成了预期的随机结果。不幸的是,Meta AI接收了一组名称,闪现了一下,然后呈现了一个白屏。这在WordPress世界中通常被描述为“白屏死机”。

这里是这次和以前测试的综合结果:

  • Meta AI: 界面:合适,功能:失败
  • Meta Code Llama: 完全失败
  • Google Gemini Advanced: 界面:良好,功能:失败
  • ChatGPT: 界面:良好,功能:良好

2. 重写字符串函数 #

这个测试旨在测试美元和美分的转换。Meta AI存在四个主要问题:当不应该更改正确的值时,它进行了更改,没有正确测试具有多个小数点的数字,如果一个美元金额少于两个小数位数(换句话说,它对输入为$5或$5.2的情况会失败),并且一旦处理完成就会拒绝正确的数字,因为它格式化这些数字时出现错误。

也:如何使用ChatGPT (opens new window)

这是一个相当简单的任务,大多数一年级计算机科学学生应该能够完成。令人失望的是,Meta AI失败了,尤其是因为Meta的Code Llama在相同的测试中成功了 (opens new window)

这里是这次和以前测试的综合结果:

  • Meta AI: 失败
  • Meta Code Llama: 成功
  • Google Gemini Advanced: 失败
  • ChatGPT: 成功

3. 查找一个令人恼火的bug #

这不是一个编程作业。这个测试接收一些现有的代码块,以及错误数据和问题描述。然后要求AI聊天机器人找出代码的问题并推荐修复方法。

这里的挑战在于存在一个明显的错误答案。问题需要对WordPress API的工作原理有一定了解,以及理解正在编写的程序的各个组件之间的相互作用。

Meta AI轻松通过了这个测试。它不仅正确地识别了错误,甚至提出了一个建议,虽然不是必要的,但提高了代码的效率。

在简单重写字符串函数的挑战上表现如此糟糕之后,我没想到Meta AI会在一个更具挑战性的问题上成功。这表明了AI聊天机器人的回应并不一定是一致的。

这里是这次和以前测试的综合结果:

  • Meta AI: 成功
  • Meta Code Llama: 失败
  • Google Gemini Advanced: 失败
  • ChatGPT: 成功

4. 编写脚本 #

这个测试需要对MacOS脚本工具Keyboard Maestro (opens new window)、苹果的脚本语言AppleScript和Chrome脚本行为有编程知识。

Keyboard Maestro是一个非常强大的工具(这是我将Macs作为主要工作机器的原因之一),但它也是一个由澳大利亚一名孤独程序员编写的相当隐晦的产品。如果一个AI聊天机器人能够使用这个工具进行编程,那么它有可能在各种语言方面具有相当不错的编程知识。AppleScript是苹果的MacOS脚本语言,但它也相当隐晦。

也:最佳AI图像生成器:经过测试和审查 (opens new window)

Meta AI和Meta的Code Llama以完全相同的方式失败了:它们没有按照指示从Keyboard Maestro中检索数据。似乎它们都不知道这个工具。相比之下,Gemini和ChatGPT知道它是一个单独的工具 (opens new window),并正确地检索了数据。

这里是这次和以前测试的综合结果: Meta AI: 失败

  • Meta Code Llama: 失败
  • Google Gemini Advanced: 成功
  • ChatGPT: 成功

总体结果 #

以下是四项测试的总体结果:

我已经使用ChatGPT来协助编码项目大约六个月了。这里的结果并没有说服我转换到其他AI聊天机器人。事实上,如果我使用任何这些AI聊天机器人,我会担心我可能会花更多时间检查和找出错误,而不是完成工作。

我对其他大型语言模型感到失望。我的测试表明,ChatGPT仍然是无可争议的编码冠军,至少目前是这样。

您是否尝试过使用Meta AI、Gemini或ChatGPT进行编码?您的体验如何?请在下面的评论中告诉我们。


您可以在社交媒体上关注我的日常项目更新。请务必订阅我的每周更新通讯 (opens new window),并在Twitter/X上关注我@DavidGewirtz (opens new window),在Facebook上关注我Facebook.com/DavidGewirtz (opens new window),在Instagram上关注我Instagram.com/DavidGewirtz (opens new window),在YouTube上关注我YouTube.com/DavidGewirtzTV (opens new window).

精选 #