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