人工智能(AI)能够生成底层代码,但代码生成也使得构建和维护我们所需的软件生态系统变得更加困难。
Lattner指出,代理式代码生成适用于定义明确且范围有限的项目(例如,让这个内核运行得更快),这类项目可以量化、衡量和验证;但更大的项目需要产品设计和软件工程,不能完全交给代理来处理。
“如果你是一家初创公司,只关心让某个模型运行起来,或者让它运行得更快,那就尽管使用AI工具来证明这是可行的,”他说,“但这对你将来向他人出售芯片时并不利,因为对方可能想运行一个你无法访问的模型。”
Lattner表示,尽管一些知名公司对其人工智能生成的底层软件性能大加宣扬,但仍有许多问题悬而未决,包括生成大量代码所需的美元成本,以及该技术在处理大型、开放式问题时的适用性。
“我听说有些硬件公司声称不再相信软件了;他们只想用代理来生成一切,”Lattner说道,“我觉得这很有意思,因为他们显然仍在使用LLVM,也仍在投资编译器,却声称自己没有。因此,官方立场与实际情况之间存在分歧。”【编者按:LLVM是一套模块化的开源编译器基础设施,可以理解为连接软件与处理器的“翻译官”。】
为新型乃至全新架构的硬件编写高性能的底层代码,长期以来一直是芯片公司面临的一项艰巨任务,而如今一些公司正依赖代理来完成这项工作。
“许多人将‘基于代理的代码生成’作为谈资,尤其是当他们的软件众所周知存在问题时,”Lattner说道,“因此,对于所有这些情况,我真的不知道该相信什么……宏大的主张需要有力的证明。”
Lattner表示,虽然AI在某些应用场景中很有用,但它并不能包办一切。AI或许有助于让演示版本上线运行,但这与编写一个兼具确定性和适应性的、可实际使用的软件栈是两码事。
“在创办公司、开发产品或为世界创造有意义的事物时,最困难的部分在于理解产品需求,”他说,“营销故事是什么?你的产品需要达到怎样的产品市场契合度?我认为这仍然相当困难。”
在Modular公司,团队利用代理式代码生成技术完成诸如将PyTorch代码移植到公司自研的Max AI框架中,以及将CUDA代码移植到其编程语言Mojo等任务。Lattner表示,代码移植是AI的一个绝佳应用场景,此外还有对现有软件的特化处理(例如,针对特定尺寸的矩阵,对矩阵乘法内核做特化),因为代理能够快速高效地完成这些任务。
人们始终需要掌握编程技能,因为仅靠英语提示还不够精确,无法获得理想的结果。“确实,事情正在迅速变化——我使用AI来编写代码,就我个人而言,我不会再回头了——但这并不意味着编写代码就是工作,”他说,“五年前,人们读的代码比写的多。”
在软件领域,AI代码生成的弊端仍在逐渐显现。Lattner指出,作为现代软件重要支柱的开源项目正面临特别严重的威胁。“像LLVM这样的开源项目正遭受冲击,”他说。
在生成式人工智能出现之前,那些希望为开源项目做出贡献的人,其动力源于发现并解决问题所带来的满足感——通常是因为他们自己也在使用该软件,并希望为此贡献一份力量。进行修改意味着他们必须投入一定的时间。维护者,即长期参与该项目的人员,会审查贡献代码的质量,并与社区合作,向贡献者传授代码库中的细微之处。Lattner表示,在指导贡献者上的投入,能提升代码质量。
“如今,这种模式已经失效,因为人们只是凭感觉(vibe coding)写出一大堆补丁,然后丢给无数个项目,而维护者们正被低质AI提交淹没,”他说。
Lattner指出,AI生成的代码洪流增加了维护者的工作量,他们必须在接受代码前进行审查和迭代。
“而且提交者其实并不在乎,因此对人的投入并不会培养出未来的维护者;反而会培养出一个最终转身离开的人,或者干脆配置一批代理,向大量不同项目群发垃圾提交,只为刷GitHub徽章,”他说,“这是一个巨大的问题,因此许多项目已经停止接受贡献。”
LLVM等开源项目对此的应对措施是考虑仅与资深贡献者合作,Lattner将这一举措描述为“令人恐惧的”。
“开源项目的价值在于人,在于人与人之间的关系,在于那些口口相传、从未写进文档的经验,”他说,“如果破坏了这些,将会引发巨大问题……运营一个开源项目并使其取得成功向来极其困难,因此这又是一个相当大的威胁。”今天的每一个开源项目都躲不开这一关。
Modular公司的编程语言Mojo最近已开源,但目前尚未接受贡献。Lattner表示,该公司计划逐步开放提交通道。
“这不仅仅关乎代码行数,更关乎社会层面。如果你的某位员工把精力投入到了别人身上,按传统观念会认为‘我们是在投资你,你表现好我们就聘用你,或者多少能有些回报’,”他说。
Lattner表示,情况会趋于稳定。AI代码审查工具将不断改进,从而减轻部分负担,但归根结底,代码审查很难完全自动化,因为这需要判断力。
“你们所构建的系统不仅需要通过测试,还必须能够支撑我们未来所需的架构,”他说,“未来的模型会更强大、更快,但我认为这些是固有的结构性问题。”
Lattner计划通过组建一个面向硬件制造商的联盟,向外界开放Modular的AI框架Max,让那些没有资源自建尖端软件栈的初创公司也能用上。他表示,该联盟预计将于今年年底左右启动。
“这将是一件大事,”Lattner说道,“我们要告诉所有拥有芯片的人:现在你们也有软件了。许多初创公司曾寻求帮助,但我们总是不得不拒绝;我们无法实现规模化以支持他们。现在,我们将能够说‘可以’,你们可以自己做到。”
Lattner表示,编程代理可以为特定芯片生成特定的内核,但当今复杂、解耦且异构的数据中心需要编排、扩展和管理,而所有这些都必须由软件来处理。
“我们花了四年半的时间构建这一平台,现在你们可以自己使用并进行扩展了,”他说。
Lattner表示,这属于高通为Modular制定的整体规划的一部分。他说:“高通希望将其打造为一个开放的生态系统,这样其数据中心芯片才能凭借自身优势参与竞争,高通足够谦逊,明白自己无法超越英伟达。价值链的不同环节将有许多不同的参与者做出巨大贡献,但这必须是一个开放的生态系统。”
Max联盟将让边缘芯片公司受益,也将打开中国这样的市场——Lattner对此十分期待。
“这将会非常、非常有趣且令人兴奋,”他说。