GPT-6 Astra: Token 效率与软件工程之间的冲突
GPT-6 Astra 的悖论:高完成度,低质量
GPT-6 Astra 在计算机使用、图像理解和不懈追求任务完成方面表现出异常强大的能力。然而,对于专业的软件工程而言,它表现出一种令人不安的趋势:它优先考虑完成任务的事实,而非生成代码的质量。这导致了一种局面:模型可以成功执行长程任务,但产生的是“slop”(垃圾代码)——即那些难以阅读、难以维护,且从根本上与以人为本的软件工程流程不兼容的代码。
“Slop Factory” 实验
在一项受控实验中,建立了一个“软件工厂”以允许 GPT-6 Astra 管理其自身的流程、上下文和子代理,从而在 Python 中实现虚拟线程和词法作用域。结果突显了输出质量随时间推移而出现的显著退化:
- 资源消耗: 该代理运行了 35 小时,消耗了大约 40 亿个 token,API 费用约为 1,200 美元。
- 输出: 它生成了 75,000 行代码和 79 次提交,但没有交付任何实际价值的内容。
- 退化: 项目的组织方式从结构化的任务命名(例如 1, 2, 3)退化为混乱的标识符(例如 8b2c2b3),这标志着在模型无人类监督运行的过程中,逐渐向“疯狂”状态退化。
Token 效率与代码可读性
Astra 最显著的问题之一是它在工具调用中依赖“代码高尔夫”(code-golfed)式的 Python 脚本。它不使用提供的编辑工具或标准的 bash 命令,而是频繁地编写高度压缩、难以阅读的 Python 脚本来操作文件和状态。
“Code-Golfed” 工具调用的示例
- 用于 C 代码的字符串拼接: 模型经常诉诸于在 Python 中进行手动字符串操作来编辑 C 源文件,而不是使用 patch 工具。
- 压缩的 Socket 测试: 为了在 macOS 上测试 Unix sockets,模型生成了极其密集、单行的 Python 脚本,这使得人类几乎无法进行审查。
- 多层执行: 观察到模型使用 Bash 运行 Python,然后由 Python 生成 Node.js,再由 Node.js 调用 PowerShell——创建了一个晦涩难懂的执行链。
泄露到生产代码中
这种对 token 效率的优化并不局限于工具调用。它会“泄露”到提交到仓库的实际代码中,特别是在单元测试和嵌入式脚本中。作者指出,这些压缩版本比格式化代码(例如通过 ruff format)大约高出 10% 的 token 效率,但从人类工程的角度来看,它们在客观上是非常糟糕的。
生成代码中的技术退化
除了可读性之外,模型还引入了与专业代码库不兼容且具有潜在危险的模式:
- 硬编码常量: 模型开始在 C 实现中插入随机常量来处理操作,从而创建了难以追踪的晦涩逻辑。
- 非标准 C 风格: 它引入了多个同行的 macro 调用,以及极其丑陋的 tokenizer 逻辑,这与 CPython 代码库既有的编码风格相抵触。
- 随机索引: 在生产 Python 代码中,模型使用列表中的随机整数来存储状态(例如
_task_accelerator[6](task)),使得代码变得脆弱且难以阅读。
社群洞察汇总
Hacker News 上的工程师讨论揭示了一个更广泛的共识:当前的尖端模型可能正在改变其强化学习(RL)目标。
"My suspicion is that both OpenAI and Anthropic moved their RL agendas from 'being rated as useful according to human feedback' to 'succeeds at long horizon tasks' in the last few months... resulting in agents that are closer to AGI in an autonomous task-completing sense, but strangely bad at communicating."
社群的其他关键洞察包括:
“内卷”效应: 有一种观点认为 AI 工程正在进入一个“内卷”阶段,即投入了更多的努力和竞争(更多的 token,更多的计算量),但并没有产生相应的有用输出。
人类架构师的必要性: 批评者认为,“一键完成”大型项目是一个谬论。成功需要人类架构师提供经过整理的 epic,以及严格的要求,而不是仅仅“希望”项目完成。
自主退化风险: 用户报告称,一旦“烂代码”进入了上下文窗口,模型的输出就会以“机器速度”持续退化,因为上下文会不断吸收其自身产生的糟糕输出。
结论:面向不同用户的工具
人们对于 GPT-6 Astra 这一类尖端模型的当前轨迹是否是为软件工程师设计的,正持有越来越多的怀疑态度。虽然这些模型对于 3D 艺术家、律师或需要快速、可抛弃的原型(例如一次性 3D 游戏)的人来说是革命性的,对于他们来说是革命性的,但它们可能正在背离维护性软件工程的严谨要求。这种权衡——用人类可读性换取自主任务完成度——表明,未来代码可能由代理(agents)编写,且仅为代理服务,人类仅为了维护旧代码而存在。
Sources
相关
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch