Limboy
Can LLMs write better code if you keep asking them to “write better code”?

Most coders want AI to write code faster: I want AI to write FASTER CODE.

这篇文章探讨了通过迭代提示大型语言模型(LLM)“写更好的代码”是否能有效提升代码质量和性能。作者使用 Claude 3.5 Sonnet 模型,通过两种方式进行实验:一是随意地迭代提示“写更好的代码”,二是使用更明确的系统提示和用户提示,并加入“罚款”机制。实验结果表明,随意迭代虽然能逐步提升代码性能,但容易引入不必要的复杂性。而通过更明确的提示工程,可以更快地获得性能更优的代码,但同时也更容易出现细微的错误。文章还指出,LLM 在代码优化方面有其局限性,需要人工干预来识别和修复错误,并强调了 LLM 在提供新思路和工具方面的价值。最终,通过迭代提示和适当的提示工程,代码性能可以提升高达 100 倍。

简单来说,LLM 更喜欢明确的指令,抽象的指令(如写更好的代码)虽然可能 work,但可能会引入依赖或增加复杂度。如果把它比作车的话,目前还是半自动驾驶阶段,有时它会进入死胡同,此时就需要有经验的司机来指导它如何绕过去。因此要发挥这辆车的最大性能,司机的经验依旧不可或缺。

Of course, these LLMs won’t replace software engineers anytime soon, because it requires a strong engineering background to recognize what is actually a good idea, along with other constraints that are domain specific. Even with the amount of code available on the internet, LLMs can’t discern between average code and good, highly-performant code without guidance.

当然,这些大型语言模型在不久的将来不会取代软件工程师,因为这需要强大的工程背景来识别什么是真正的好主意,以及其他特定领域的约束。即使互联网上有大量的代码,LLM在没有指导的情况下也无法区分普通代码和优秀、高性能的代码。