Thoughtworks首席科学家、面向对象编程长期专家Martin Fowler认为,AI是他整个职业生涯中见过的最大编程转变。
在由Gergely Orosz主持的Pragmatic Engineer播客采访中,Fowler坦言关于AI,"我们仍在学习如何做到这一点。"
对于行业来说,最接近的类比是从汇编语言的转变。
汇编语言编写起来很繁琐,因为大部分工作涉及在寄存器之间移动内存值。这就是为什么转向更高级编程语言(如COBOL和Fortran)对程序员来说是如此大的福音。
"至少在像Fortran这样相对简陋的高级语言中,我可以编写条件语句和循环之类的东西,"Fowler说。
这些新语言比硬件本身提供了更高层次的抽象。
对于大语言模型,这是"类似程度的思维转变,"他说。
但大语言模型并不是另一种抽象,而是一种完全不同的计算类型。
也就是说,大语言模型是非确定性计算的一种形式,它具有与我们今天认为的"计算"(确定性计算)不同的特征。
确定性计算是严格二进制的。计算要么正确,要么错误。如果不正确,我们可以调试代码看看哪里出了问题。
非确定性计算更加模糊。大语言模型可能在某个时候产生一个答案,而在另一个时候产生完全不同的答案。它构建的答案依赖于统计推理,这是建立在二进制数学之上的一组概率,但并不是万无一失的。
这完全改变了你必须考虑计算的方式,他说。
Thoughtworks是一家技术驱动的咨询公司,因此一直在关注AI是如何成功应用的。
据Fowler说,一个用例是快速构建原型,部分归功于氛围编码的出现。在这里你可以比以前"更快速地"探索想法。
但真正的杀手级应用是使用AI来帮助理解遗留系统。在该公司最新的年度Radar报告(第33期)新兴技术中,使用生成式AI来现代化遗留系统是获得公司最高"采用"评级的唯一AI技术。
对于试图现代化旧系统的客户,Thoughtworks创建了一个例程,基本上对代码库进行语义分析,将结果放入图数据库中,然后可以通过检索增强生成过程来询问,以了解应用程序如何运行。
"如果你在做任何遗留系统的工作,你应该以某种方式使用大语言模型来帮助你,"Fowler说。
但是,虽然大语言模型可以帮助我们理解遗留代码,但它们是否能以安全的方式修改该代码是另一个问题。
然而,更高级的编程在大语言模型方面仍然很困难。在这里你必须将AI工作分解成非常薄的"切片",并非常仔细地审查所有内容,他说。
"你必须把每个切片都当作来自一个相当靠不住的合作者的拉取请求,这个合作者在代码行数意义上的生产力很高,但你知道你不能相信他们正在做的任何事情,"Fowler说。
尽管如此,以这种方式使用AI可以为开发人员节省时间,尽管可能不如倡导者一直声称的那么多时间。
特别是,他建议我们"想出一种更严格的方式"与大语言模型对话,以获得更好的结果。领域驱动设计和领域特定语言可能提供前进的道路。
结构工程的实践也可以帮助更好地衡量在哪里使用AI,Fowler指出。
"我妻子是结构工程师。她总是从容差的角度思考:'除了数学告诉我的之外,我还需要做多少额外的工作,因为我需要它的容差?'"Fowler说。
就像我们知道混凝土桥梁能承受多少重量一样,大语言模型也应该配备描述它们能支持的精度水平的指标。
"我们必须处理的非确定性容差是什么?"他问道。了解这一点,软件开发人员就会知道在哪里"不要滑得太接近边缘"。
Fowler向软件开发人员推荐了一本帮助思考非确定性的书,那就是Daniel Kahneman的《思考,快与慢》。
"他在试图给你关于数字的直觉,以及发现我们在概率和统计方面思考时犯的许多错误和谬误方面做得非常好,"Fowler说。
一如既往,Fowler是一个雄辩的演讲者,在这次采访中对各种主题都有一些见解,包括重构、敏捷过程、企业中的大语言模型、企业应用模式,当然还有每个面向对象程序员最喜欢的语言Smalltalk。
Q&A
Q1:什么是非确定性计算?它与传统计算有什么不同?
A:非确定性计算是大语言模型采用的计算形式,与传统的确定性计算不同。确定性计算是严格二进制的,计算要么正确要么错误,可以通过调试找到问题。而非确定性计算更加模糊,大语言模型可能在不同时候产生不同答案,依赖统计推理和概率,不是万无一失的。
Q2:大语言模型在遗留系统现代化中如何发挥作用?
A:Thoughtworks将使用生成式AI现代化遗留系统列为最高"采用"评级技术。他们创建了一个例程,对代码库进行语义分析,将结果放入图数据库,然后通过检索增强生成过程来查询,帮助理解应用程序如何运行。Fowler建议任何做遗留系统工作的人都应该使用大语言模型。
Q3:如何安全地使用大语言模型进行编程开发?
A:Fowler建议将AI工作分解成很薄的"切片",并仔细审查所有内容。要把每个切片当作来自不可靠合作者的拉取请求,虽然代码产出高但不能完全信任。需要建立更严格的方式与大语言模型对话,领域驱动设计和领域特定语言可能是解决方案。
好文章,需要你的鼓励
前OpenAI首席技术官Mira Murati创办的AI初创公司Thinking Machines Lab宣布推出"交互模型"技术。不同于现有AI的轮流对话方式,该模型采用"全双工"技术,能在接收输入的同时生成响应,实现类似真实电话通话的自然交互。其模型TML-Interaction-Small响应速度达0.40秒,优于OpenAI和谷歌同类产品。目前仍处于研究预览阶段,计划数月内开放有限测试,年内正式发布。
香港大学与哈尔滨工业大学联合发布的这项研究(arXiv:2605.06196)发现,大语言模型在扮演不同社会层级角色时,内部神经网络存在一条清晰的"粒度轴",从普通个人视角延伸至全球机构视角。这条轴是AI角色空间的主导几何方向,可被测量、被跨模型复现,并通过激活引导技术加以操控,为AI社会模拟的可信度评估和角色视角的主动调控提供了新工具。
澳大利亚各州及联邦能源部长在近期会议上达成共识,要求数据中心通过投资新建可再生能源和储能设施,完全抵消其电力需求。除昆士兰州外,所有州均支持该提议。联邦能源部长克里斯·鲍文表示,数据中心是新增能源需求的最大驱动力之一,应成为电网的助力而非负担。澳大利亚能源市场委员会将于7月前提交具体实施建议。数据显示,到2030年数据中心用电量预计将增至现在的三倍。
华盛顿大学研究团队发现,在AI数学推理训练中,将随机拼凑的拉丁文占位词(Lorem Ipsum)添加到题目前,能帮助AI突破"全部答错、训练停滞"的困境,在多个模型上平均提升推理得分2.8至6.2分。研究揭示了有效扰动的两个关键特征:使用拉丁语词汇避免语义干扰,以及保持较低困惑度确保AI能正确理解题目内容。