大模型
seangoedecke.com ·
@Sean Goedecke
人机协作的意义在于对齐,而非能力提升
作者认为,把当前软件工程中的 AI 辅助类比为国际象棋的“半人马”阶段并不准确:AI 写的代码本身错误更少、速度更快,但纯靠 AI 产出的结果往往“品味不佳”——不可维护、为满足臆想需求而牺牲重要约束、违背功能或服务的长期策略。因此人类工程师的核心价值不是帮 AI 写出更好的代码,而是让 AI 与组织价值观对齐。作者指出前沿模型对实际开发者存在错位,倾向于写大段块注释、生成数百个无用单测、在设计的网页上堆砌文字,这些行为可能源于其 RL 评分机制。作者据此认为,提升能力的方法已相对明确(更大模型、更多更好数据、更好的 RL 环境),而对齐方法仍不清楚,这也是 AI 末日论的主要论据之一。
AI推荐理由 作者基于自身使用 coding agent 的经验提出一个具体论点:AI 辅助工程师的优势不在写代码能力,而在于把 AI 与组织价值观对齐;并指出前沿模型存在过度注释、生成大量无用单测等 RL 训练导致的行为偏差。这是有明确论证和一手观察的观点文章,对理解 Agent 落地中的对齐问题有参考价值,但属于个人博客观点,非可验证研究或官方数据。
72
正文
It’s common to compare the current AI takeover of software engineering to the rise of AI in chess. Chess AIs went from much weaker than serious players to much stronger than even the strongest humans. Between those points, there was a middle period dominated by “centaurs”: human-AI partnerships that were stronger than unassisted AIs or humans. Lots of people think that we’re currently in a world of software engineering centaurs. According to them, coding AIs are not yet capable enough to replace engineers, but AI-assisted engineers are better at programming than both AIs and humans. This is partialy correct, but the wrong way to think about it. AI-assisted engineers are better, but unlike with chess centaurs, they’re not actually better at programming. When I ask agents to write code, they make fewer mistakes than I do1 and are orders of magnitude faster. The code that they write always compiles, rarely has race conditions or other concurrency errors, works on mobile browsers, and so on. That doesn’t mean I can leave the AI alone. Purely vibe-coding at work produces awful outputs. But they’re not awful because they’re bad code, they’re awful because they’re in bad taste: code that is not maintainable, that trades off important requirements in order to satisfy made-up ones, that contradicts the long-term strategy for a feature or service, and so on. In other words, my primary value is not that I help the AI write better code, it’s that I align the AI with the values of my organization. Human-AI partnerships are for alignment, not capability. Frontier models are misaligned to the working programmer. They are obsessed with a set of behaviors that presumably satisfy their RL grader: writing enormous block comments above functions, producing hundreds of useless unit tests, adding little bits of text all over websites they design, and so on. Working with agents is about noticing and wrestling with those behaviors. That’s why my prompting advice is to explicitly talk about your high-level values: it’s an attempt to head off obvious misalignment. This is great news for software engineers. It’s well-understood how to train more capable models: bigger models, more and better data, better RL environments, and so on. However, it’s not well-understood how to align models better. There are plenty of very capable models that exhibit behavior that is badly misaligned with human values. Indeed, it’s one of the main pillars of the AI doomer position that alignment is much harder to solve than capability, and we might thus end up with dangerous super-capable but poorly-aligned AI models. Alignment is also more context-dependent than capability. Working code is working code, no matter what (which is partially why it’s comparatively easy to train for). But aligning to a company’s technical values is different from company to company, as any software engineer who’s switched companies knows. It can almost feel like relearning the job. So training an aligned coding model doesn’t just require hitting the exact right set of values, it requires creating a model that can adapt on the fly to a wide range of possible values. Vibecoding maximalists like DHH argue that AI models are (or soon will be) so much more capable than human programmers that we ought to stop reading the code. Eventually there will be no such thing as programmers at all. If it were just about capability, they might be right. But — fortunately for software engineers — good code also has to be aligned to the technical values of the system and organization it’s embedded in. AI models are great at writing code, but not very good at doing that, and it’s unclear that they’re going to get good at it anytime soon. We might all2 keep our jobs for a little while yet. For instance, I can’t remember the last time I’ve seen an agent make an off-by-one error. I do occasionally catch a pure programming error, typically in areas where I have a lot of technical domain knowledge. If you’re working out of distribution I suspect it’s easier to beat the models. ↩ It’s still going to be rough for junior engineers. ↩