Hacker News 中文摘要

RSS订阅

我减少了对大型语言模型的使用 -- I'm dialing back my LLM usage

文章摘要

资深软件工程师Alberto Fortin分享了他使用大型语言模型(LLM)的经历。他最初对LLM充满热情,但在实际开发中遇到挑战,特别是在使用Go和ClickHouse重建基础设施时。他反思了AI宣传与实际应用之间的差距,并测试了新版模型如Claude Opus 4,探讨是否解决了核心问题。他的经验为工程师在生产环境中评估LLM提供了实用建议,强调平衡期望与理解工具的优缺点。

文章总结

文章标题:为什么我减少了对LLM的使用 - Zed博客

主要内容总结:

本文由经验丰富的软件工程师Alberto Fortin分享了他与AI(特别是大型语言模型,LLM)的亲身经历。Alberto最初对LLM充满热情,认为它们将彻底改变他的开发工作流程。然而,在使用Go和ClickHouse重建基础设施的过程中,他遇到了显著的挑战,促使他重新审视AI的炒作与现实之间的差距。

1. 现实检验:当AI炒作遇到生产代码

Alberto在重建基础设施时,发现LLM生成的代码质量不尽如人意,不仅存在bug,代码的可维护性也较差。他表示,尽管LLM能快速提供解决方案,但这些方案往往会导致新的问题,修复这些问题反而耗费更多时间。图片

2. 生产力幻觉

Alberto指出,开发者最初对LLM的自动补全功能感到兴奋,认为它能极大提高生产力。然而,随着使用深入,他发现LLM的实际效果远不如预期,开发者对LLM的期望过高,导致过度依赖。图片

3. 掌控权:心态转变

Alberto强调,开发者需要明确自己在开发过程中的主导地位,LLM应作为辅助工具而非决策者。他提到,由于对LLM失去信任,他不再将大型功能交给LLM处理,而是自己动手修复bug,确保对代码库的完全理解。图片

4. 实用建议

Alberto建议开发者保持冷静,理性看待AI技术。他认为AI确实带来了技术革命,但目前尚未达到理想状态。开发者应利用AI来辅助工作,但不应过度依赖,尤其是在架构设计和产品决策方面仍需依靠人类智慧。图片

结论: Alberto的经历为在生产环境中评估LLM的工程师提供了宝贵的经验教训。他呼吁开发者平衡对AI的期望,找到合理的使用方式,避免被过度炒作所迷惑。

评论总结

评论总结

  1. Codex 的使用体验

    • 主要观点:Codex 虽然初看很有帮助,但实际使用中需要花费大量时间解释,且容易出错,最终效率不如手动编码。
    • 关键引用
      • "But you actually spend so much time trying to explain Codex the most obvious things and it gets them wrong all the time."
      • "So I also dialed back Codex usage and got back to doing many more things by hand again."
  2. LLMs 的局限性

    • 主要观点:LLMs 无法像人类一样做出创造性跳跃,且在复杂问题上的表现有限。
    • 关键引用
      • "Both models knew about HTTPS RR but couldn’t suggest it as a solution."
      • "It’s only after I included it in their context both agreed it as a possible solution."
  3. LLMs 作为工具而非智慧来源

    • 主要观点:LLMs 应被视为工具,而非决策的权威来源,过度依赖可能导致理解上的困境。
    • 关键引用
      • "LLMs should be taken as a tool, not as a source of wisdom."
      • "More than once, this leads to him getting into a state of limbo when he tries to explain what he means with what he wrote."
  4. LLMs 在代码生成中的应用

    • 主要观点:LLMs 在生成样板代码和简化繁琐任务方面非常有用,但仍需开发者进行仔细审查和调整。
    • 关键引用
      • "LLMs save me a lot of time as a software engineer because they save me a ton of time doing either boilerplate work or mundane tasks."
      • "I always read through and review any generated code and often tweak the output."
  5. LLMs 对开发者技能的影响

    • 主要观点:过度依赖 LLMs 可能导致开发者编程能力的退化,且公司更关注快速达成目标而非开发者的长期成长。
    • 关键引用
      • "They are exactly like steroids - bigger muscles fast but tons of side effects and everything collapses the moment you stop."
      • "Companies don’t care because they are more concerned about getting to their targets fast instead of your health."
  6. LLMs 的未来发展

    • 主要观点:随着 LLMs 的进步,未来可能不再需要开发者直接编写代码,而是由 LLMs 处理代码细节,开发者只需关注功能需求。
    • 关键引用
      • "In that world, I’d bet code gets the same treatment as memory management today, where only a small percent of people need to manage it directly."
      • "We let the LLM deal with the code and we deal with the context, treating code more like a binary."
  7. LLMs 的使用策略

    • 主要观点:开发者应谨慎使用 LLMs,将其用于生成小段代码或单元测试,但整体架构和集成仍需手动完成。
    • 关键引用
      • "I’ll advise you to use LLMs to generate tedious bits of code but you must have the overall architecture committed into your memory."
      • "LLMs can do it sometimes but when it becomes big enough that it can’t fit into the context window, then it’s a real issue."
  8. LLMs 的优化与改进

    • 主要观点:通过优化提示词和增加额外指令,可以提高 LLMs 的使用效果,但仍需开发者进行详细审查和调整。
    • 关键引用
      • "I’ve added around 1000 words of additional instructions telling Copilot how to operate."
      • "The workflow is to allow Copilot to make changes, see what’s broken, fix those, review the diff against the goal, simplify the changes, etc."
  9. LLMs 的批评与反思

    • 主要观点:LLMs 的讨论过于集中在技术细节上,而忽视了更广泛的社会问题,如战争、经济不平等等。
    • 关键引用
      • "I just want humanity to deal with some of our actual issues, like fascism, war in Europe and the middle east, the unfairness in our economies."
      • "Instead we’re stuck talking about if the lie machine can fucking code."

总结

评论中对 LLMs 的使用体验和影响存在多种观点。一方面,LLMs 在生成样板代码和简化繁琐任务方面表现出色,能够显著提高开发效率;另一方面,过度依赖 LLMs 可能导致开发者编程能力的退化,且在复杂问题上的表现有限。开发者普遍认为 LLMs 应被视为工具,而非决策的权威来源,使用时需谨慎审查和调整。未来,随着 LLMs 的进步,可能会进一步改变开发者的工作方式,但开发者仍需保持对代码质量和架构的掌控。