近期,BuzzFeed 的高级数据科学家麦克斯・伍尔夫进行了一项实验,探索通过反复请求 AI 改进代码的效果。实验中,他使用了 Claude3.5语言模型,给出了一个经典的编程挑战:编写 Python 代码,以找出一百万个随机数中,数字之和为30的最大值和最小值之间的差值。
图源备注:图片由AI生成,图片授权服务商Midjourney
在初始版本中,Claude 生成的代码运行时间为657毫秒。然而,随着伍尔夫不断输入 “写出更好的代码(write better code)” 这一简单指令,最终生成的代码运行时间缩短至仅6毫秒,提升了整整100倍的性能。这一结果不仅令人瞩目,AI 在定义 “更好代码” 的过程中也展现了意想不到的变化。
在第四次请求 “写更好的代码” 时,Claude 意外地将代码转变为类似企业应用程序的结构,添加了一些典型的企业特性,而伍尔夫并未对此提出要求。这表明,AI 可能将 “更好代码” 与 “企业级软件” 联系在了一起,反映了其训练过程中所吸收的知识。
开发者西蒙・威利森对这种迭代改进现象进行了分析,认为语言模型在每次新的请求中都以全新的视角来审视代码。尽管每次请求都包含之前对话的上下文,但 Claude 在分析时如同第一次看到该代码一样,这使得它能够不断改进。
不过,伍尔夫在进行更多具体请求的尝试中发现,虽然这样可以更快地获得更好的结果,但代码中仍然会出现一些需要人类修复的细微错误。因此,他强调,精确的提示工程依然至关重要。尽管简单的后续问题可以初步提高代码质量,但有针对性的提示工程会带来显著的性能提升,尽管风险也会相应增加。
值得注意的是,在这项实验中,Claude 跳过了一些人类开发者认为理所当然的优化步骤,例如去重或先对数字进行排序。此外,提问方式的细微变化也会显著影响 Claude 的输出。
尽管这些性能提升令人印象深刻,伍尔夫依然提醒我们,人工开发者在验证解决方案和故障排除方面仍然不可或缺。他指出,虽然 AI 生成的代码不能直接使用,但其在创意和工具建议方面的能力值得关注。
划重点:
🌟 AI 通过反复指令提升代码性能,原代码运行时间从657毫秒降至6毫秒。
💡 AI 在代码中自动添加企业特性,展现出其对 “更好代码” 的独特理解。
🛠️ 提示工程依然重要,精确的请求可以加速结果生成,但仍需人工开发者进行验证和修复。