2024年初的 LLM 与编程

大型语言模型正在成为强大但不可靠的编程助手,能加速样板代码、文档、测试和陌生 API 的使用,但在更深层的系统编程和细微错误上仍会严重失手。评论者认为,LLM 在经验丰富的开发者能够快速验证和纠正输出时最有价值,并将其用途与日渐变差的网页搜索以及 Kagi 或 Brave Search 等工具进行对比。许多人预计 LLM 会改变编程工作的性质——把价值从机械写代码转向更高层的设计与推理——同时也对岗位替代感到担忧,并对将当前模型描绘成近似人类推理者的炒作保持怀疑。

LLM 与传统搜索

  • 许多评论者表示,由于广告和 SEO 垃圾内容,通用网页搜索已经退化,因此 LLM 和替代搜索引擎更有吸引力。
  • 付费搜索引擎(例如带有站点屏蔽/固定功能的)以及专门工具(Brave 的 “goggles”、phind、perplexity)被建议作为 Google 的补充或替代。
  • 也有人仍然在 Google 上找到不错的结果,这表明近期质量可能有所改善,或者结果取决于查询内容。

开发者如何使用 LLM

  • 常见用途:样板代码、胶水代码、测试、SQL、配置、文档、图表、AWS/bash 片段、理解遗留代码,以及快速原型。
  • LLM 尤其被重视在于:
    • 降低启动和完成副项目的心理门槛。
    • 充当“初级开发者”或导师,解释不熟悉的 API 或概念。
    • 帮助有经验的工程师在他们暂时处于“初级”状态的领域工作。
  • 系统/底层工作:多人报告称,在需要深厚领域知识或棘手的位级推理时,LLM 表现很差。

可靠性、验证与风险

  • 普遍共识是,LLM 输出必须经过审查;幻觉和细微错误的代码都很常见。
  • 编程被认为相对适合,因为代码通常可以编译、测试或进行性质检查,不过也有人强调“能编译”并不等于“正确或安全”。
  • 有些人用 LLM 同时生成代码和测试;也有人不信任由生成代码的同一模型来生成测试。

对工作与职业的影响

  • 许多人觉得自己更高效,甚至“战斗力飙升”;也有人感到被落下,因为模型恰好在他们最需要帮助的地方失灵。
  • 关于工作影响的看法分歧:
    • 一些人预计传统编程岗位会减少,而更强调架构、产品思维以及测试/验证。
    • 另一些人认为软件需求会增长(历史上的自动化模式),但建议个人要准备好再培训。
  • 也有人担心初级开发者依赖 LLM 产出他们并不理解的代码。

工具、工作流与本地模型

  • 讨论了 IDE 集成(Copilot、Cody、Continue、Wingman、Cursor)和 CLI 工具(例如直接编辑代码库的 agent),以避免复制粘贴式工作流。
  • 对自动补全的体验褒贬不一:有人觉得它改变了工作方式,也有人觉得它让人分心。
  • 通过 Ollama 之类的框架,面向代码的本地模型(Deepseek Coder、CodeLlama 变体、Phind 模型)正在出现;如果性能较弱,它们仍可能是保护隐私的选择。

推理、炒作与“垃圾知识”

  • 关于 LLM 是否真的“推理”,还是只是插值训练数据的争论持续存在;一些人强调实际能力比哲学上的确定性更重要。
  • 多人认为 LLM 是一种卸载短暂的、工具特定的“垃圾知识”(API、配置)的方式,让人类把精力集中在持久概念(算法、数据结构、数学)上。
  • 也有人担心营销和炒作正在让人们把过高的能力归因于本质上不可靠的系统。