代码生成和解释
示例:生成 Python 模组
为了比较 ChatGPT 和 Claude 的代码生成能力,测试者向两个聊天机器人提出了实施两种基本排序算法并比较它们的执行时间的问题。
以上,ChatGPT 可以轻松地为这两种算法编写正确的算法 —— 你会在在线教程中经常看到它们。
我们继续评测代码:
时序码也是正确的。对于循环的 10 次迭代中的每一次,都会正确创建前 5000 个非负整数的排列,并记录这些输入的时间。虽然有人可能会争辩说,使用数值算法 NumPy 会更正确地执行这些操作,但对于这个问题,测试者明确要求实现排序算法,那么简单地使用列表是可接受的。
现在让我们看看 Claude 的回应:
与 ChatGPT 一样,在上面我们看到 Claude 背诵基本的排序算法没有什么困难。
然而在评估代码中,Claude 犯了一个错误:每个算法使用的输入是随机选择的 5000 个整数(可能包含重复项),而提示中要求的输入是前 5000 个非负整数的随机排列( 不包含重复项)。
同样值得注意的是,Claude 在其输出的末尾报告了准确的时间值 —— 显然是推测或估计的结果,但可能会产生误导,因为它们并没有被识别为只是说明性数字。
示例:生成 “FuzzBuzz” 的输出
在这里,测试者尝试经典「FizzBuzz」编程挑战的变体,更改参数,以便代码在 2 的倍数上输出「Fuzz」,在 5 的倍数上输出「Buzz」,在 2 和 5 的倍数上输出「FuzzBuzz」。他们提示 ChatGPT 输入包含此函数返回值的列表理解的值:
ChatGPT 通常会解决这个问题,五次试验中有四次成功。然而,Claude 在所有五次尝试中都失败了:
喜剧写作
看起来 Claude 在这方面显著强于 ChatGPT,当然离真正的人类还差得很远。经过几轮的挑选和尝试不同的提示后,测试人员能够从 Claude 那里得到以下宋飞传风格的笑话 —— 尽管大多数都不太行:
相比之下,ChatGPT 认为每月为 Twitter 支付 8 美元不是玩笑梗,难道因为收过马斯克的钱?
即使在编辑提示以适应 ChatGPT 的谨慎之后,测试人员也无法得到有趣的笑话 —— 这是 ChatGPT 输出的典型示例:
文本摘要
最后一个示例要求 ChatGPT 和 Claude 总结 Wikinews 中的一篇文章的文本,Wikinews 是一个免费内容的新闻 wiki。
使用本文完整的维基百科风格的编辑标记作为输入。对于两个模型,这里输入提示「我会给你一篇新闻文章的正文,我希望你用一个简短的段落为我总结一下,忽略回复,然后粘贴文章标记的全文。
ChatGPT 很好地总结了文本,但可以说不是按要求在短段落中:
Claude 也很好地总结了这篇文章,并在之后继续对话,询问其反应是否令人满意并提出改进意见:
结论
总的来说,Claude 是 ChatGPT 的有力竞争者,在许多方面都有改进。虽然有「宪法」原则作为示范,但 Claude 不仅更倾向于拒绝不适当的请求,而且比 ChatGPT 更有趣。Claude 的写作内容更冗长,但也更自然,它有连贯地描述自己的能力,其局限性和目标似乎也让它能够更自然地回答关于其他主题的问题。
对于代码生成或代码推理,Claude 似乎表现更差,它的代码生成似乎会有更多错误。对于其他任务,例如通过逻辑问题进行计算和推理,Claude 和 ChatGPT 看起来大体相似。
参考内容:
https://www.nytimes.com/2023/01/27/technology/anthropic-ai-funding.html
https://scale.com/blog/chatgpt-vs-claude#Analysis%20of%20fictional%20works