https://zed.dev/blog/why-llms-cant-build-software
大语言模型(LLMs)虽然擅长写代码和修复指出的问题,但它们无法像人类工程师那样建立和维护清晰的“心理模型”来理解需求与代码之间的差异,也难以有效迭代解决复杂问题。
⦁ 软件工程师的关键能力是反复构建“心理模型”:先理解需求,写出代码,再理解代码实际行为,发现与需求的差异并调整代码或需求。
⦁ LLMs 写代码没问题,也能响应修正提示写测试、加日志,但它们不会“知道”自己代码是不是真的符合需求,只能凭上下文和统计猜测,很容易在测试失败时陷入猜测和重写的死循环。
⦁ 人类工程师可以借助经验、思考和沟通来解决问题,调整思路;LLM 则缺乏内省和反思的能力。
⦁ LLM 常见的问题包括上下文遗漏、偏重最新信息(recency bias)和“幻觉”生成(hallucination)。
⦁ 未来若想让模型更好地参与软件开发,需要突破现有建模方式,赋予模型“记忆”、跳出线性上下文、实现更复杂的抽象和推理能力。
⦁ 目前理想的状态是人机协作,LLM 作为辅助工具,软件工程师仍是最终决策者和问题解决者。
换句话说,LLMs 能帮你刷代码块、撰写测试和文档,但它们还不能独立担负复杂软件开发的“思考”和“决策”重任。
#AI #Doc
大语言模型(LLMs)虽然擅长写代码和修复指出的问题,但它们无法像人类工程师那样建立和维护清晰的“心理模型”来理解需求与代码之间的差异,也难以有效迭代解决复杂问题。
⦁ 软件工程师的关键能力是反复构建“心理模型”:先理解需求,写出代码,再理解代码实际行为,发现与需求的差异并调整代码或需求。
⦁ LLMs 写代码没问题,也能响应修正提示写测试、加日志,但它们不会“知道”自己代码是不是真的符合需求,只能凭上下文和统计猜测,很容易在测试失败时陷入猜测和重写的死循环。
⦁ 人类工程师可以借助经验、思考和沟通来解决问题,调整思路;LLM 则缺乏内省和反思的能力。
⦁ LLM 常见的问题包括上下文遗漏、偏重最新信息(recency bias)和“幻觉”生成(hallucination)。
⦁ 未来若想让模型更好地参与软件开发,需要突破现有建模方式,赋予模型“记忆”、跳出线性上下文、实现更复杂的抽象和推理能力。
⦁ 目前理想的状态是人机协作,LLM 作为辅助工具,软件工程师仍是最终决策者和问题解决者。
换句话说,LLMs 能帮你刷代码块、撰写测试和文档,但它们还不能独立担负复杂软件开发的“思考”和“决策”重任。
#AI #Doc