慢速软件的终结:由人工智能驱动的性能优化
性能优化的成本已大幅下降
曾经需要稀有专业知识和大量人工工时的高端软件性能优化,如今任何开发者都可以通过使用人工智能代理来实现。实现复杂优化(如JIT编译器、多线程算法和原生代码生成)的成本已下降数个数量级,瓶颈从技术难度转变为愿意投入计算资源(tokens)和明确目标的意愿。
这一转变意味着,过去仅限于大规模或高利润项目的优化如今对小型项目也变得可行。当验证一个复杂优化所需的人工工作量从数天缩短至几分钟的代理循环时,值得实施的优化数量急剧增加。
针对工作负载的定制化软件
由于人工智能代理能够针对特定基准反复优化代码,软件正朝着“动态定制软件”的模式演进,即为特定工作负载量身定制,而非适用于一类通用工作负载。
案例研究:FRE 正则表达式引擎
在对FRE正则表达式引擎的实验中,仅经过一次优化循环,使用代理针对特定ripgrep查询进行优化,就在保留集上实现了比标准ripgrep快2%的性能提升。虽然2%的提升看似微不足道,但所需的人工投入极小(仅几分钟),这表明如今的软件可以针对单个用户或组织的特定数据模式进行定制。
向专用性能的转变
这种能力使开发者能够超越“软件工厂”模式,不再只生产通用工具。相反,他们可以为客户的特定工作负载创建高度优化的专用版本。正如行业专家所指出的,这种方法很可能会成为大型企业处理海量数据时的标准实践。
打破“代码从来不是难点”的迷思
尽管有人认为编写代码相比系统设计要简单得多,但对于某些高性能组件而言,实现本身才是真正的难点。JIT编译器和复杂的数据库引擎就是典型例子,其代码编写难度曾长期限制了它们的采用。
人工智能代理降低了这一进入门槛。例如,在一个游戏AI项目中,通过大语言模型快速实现了多线程和多种搜索架构——这些任务若由人工完成将是一项巨大工程。最终的AI主要通过这些“烦人”的优化超越了其他对手,而这些优化正是人类开发者通常因投入产出比过低而跳过的。
人类在AI优化循环中的角色
尽管代理功能强大,但它们并不能取代实验设计。当前最先进的模型显示出对人类定义框架的严重依赖:
- 实验设计: 代理在开放式实验设计方面普遍表现不佳。人类仍需搭建基准测试环境、定义保留集,并设定成功指标。
- 验证: 代理在繁琐的验证任务中表现出色——例如实现重放日志以调试非确定性多线程错误——但它们需要正确的规范,以避免对基准测试过拟合。
- 判断力: 高层次的架构决策以及避免“臃肿”的增量改进,仍需人类监督,以确保性能提升不会被稳定性或安全性的退化所抵消。
社区观点与反驳意见
尽管技术上实现快速软件的可能性已大幅提升,但社区讨论也指出了软件在实践中仍保持缓慢的几个原因:
结构与经济障碍
"软件可能继续比它本应具备的速度更慢或更不安全,仅仅是因为没人愿意投入足够的时间和金钱去改进它。"
许多开发者和用户认为,商业激励更倾向于新功能而非性能,而Web框架(如Electron)的普及以及网络延迟(等待美国托管服务器)造成了普遍的性能瓶颈,本地代码优化无法解决这一问题。
专用软件的风险
一些批评者警告,转向工作负载特定的软件可能导致支持和知识共享变得不可能。如果每个程序实例都经过不同方式的定制和优化,那么分享故障排除步骤或对软件行为的共同理解将不复存在。
面向硬件的设计
经验丰富的工程师指出,真正的性能提升来自内存和缓存优化(面向硬件的设计),而这是当前大语言模型仍难以应对的领域,因为训练数据主要由高层级、非高性能代码构成。要实现顶级性能,人类仍需知道如何向代理提供必要的硬件信息。
Sources
相关
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch