Martin Fowler:AI带来非确定性计算时代的挑战与机遇

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工作分解成很薄的"切片",并仔细审查所有内容。要把每个切片当作来自不可靠合作者的拉取请求,虽然代码产出高但不能完全信任。需要建立更严格的方式与大语言模型对话,领域驱动设计和领域特定语言可能是解决方案。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1155500.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计springboot天天儿童福利院管理系统 基于 Spring Boot 的儿童福利院信息管理系统设计与实现 Spring Boot 框架下儿童福利院管理系统的开发与应用

计算机毕业设计springboot天天儿童福利院管理系统244mg9 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着社会的不断发展,信息技术在各个领域的应用愈发广泛。特别…

基于微信小程序的心理咨询预约系统-计算机毕业设计源码+LW文档免费

摘 要:随着国家的高速发展和互联网技术的不断进步,生活节奏日益加快。为了更有效地利用时间并提升工作效率,越来越多的人倾向于通过互联网处理各类事务,这促使了微信小程序的大量涌现。与此同时,人们逐渐接受了这种便…

taobao商品详情API接口数据分析比价

如何选择与实现 1. 选择策略 选择API的情况: 你的应用需要长期稳定运行。对数据的准确性和实时性要求很高。业务场景需要全面、深度的商品信息(如构建完整的商品详情页)。希望合规操作,避免法律风险。 考虑解析详情页的情况&…

基于STM32与W5500的Modbus TCP协议实现指南

一、硬件架构设计核心硬件组成主控芯片:STM32F103(Cortex-M3内核,72MHz主频)网络模块:W5500(集成MACPHY,支持TCP/IP硬件协议栈)通信接口:SPI(STM32 SPI2 ↔ W…

AI工作负载推动数据库重返Postgres

我花了几年时间观察数据库领域经历一波波的兴奋和失望。向量、图数据库、多模态和NoSQL系统轮流成为焦点。每一波都承诺更简单的开发和新的可能性。有些兑现了承诺,有些没有。大多数在当时都有其合理性。然后AI来了。AI不仅仅是对现有系统的延伸,它打破了…

【TSP问题】基于变邻域搜索算法求解旅行社问题附Matlab代码和论文

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 &#x1…

从零开始刷算法——二叉树篇:层序遍历 + 有序数组转二叉搜索树

在二叉树的算法体系中,"读取"(遍历)与"写入"(构建)是两个最核心的命题。本文将通过两道经典题目——二叉树的层序遍历与有序数组转搜索树,深入剖析两种截然不同的思维模式:…

为什么说RAG是AI 2.0时代的“杀手级”应用?

你好,我是常扬,欢迎你加入到《RAG 快速开发实战》课程的学习中。在正式开始之前,我想先介绍一下自己,我本科在同济大学学习软件工程,后来又在复旦大学攻读人工智能方向的硕士和博士,期间发表过多篇 SCI 核心…

零基础也能学懂提示词?OpenCSG公益课给出清晰学习路径:从“会问”到“会驱动”

提示词工程的进阶路径不是背技巧,而是从简单到复杂的“表达升级”。本文给出零基础可执行的学习路线与写法框架,让你用自然语言更精确地驱动AI完成复杂任务。 一、先建立一个判断:你写的不是“问题”,而是“任务指令” 很多提示…

通义深度搜索-生成对话

产品链接 面向深度的查询问答和调研分析需求场景,多步骤推理规划研究路径,生成有洞察、可溯源、图文并茂的长文报告-大模型服务平台百炼(Model Studio)-阿里云帮助中心 本产品(通义深度搜索)对外服务接口目录。所有接口使用 DashScope HTTP 协议对外提…

机器学习:基于python二手房数据分析系统 可视化 Scrapy 爬虫 链家二手房数据 Django框架 基于用户的协同过滤推荐 二手房推荐系统 (源码)

博主介绍:✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立软件开发工作室,专注于计算机相关专业项目实战6年之久,累计开发项目作品上万套。凭借丰富的经验与专业实力,已帮助成千上万的学生顺利毕业,…

机器学习:python招聘数据分析可视化系统 机器学习 招聘推荐 薪资预测 爬虫 决策树回归模型 XGBoost回归模型 Flask框架 前程无忧

博主介绍:✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌ > 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与…

书籍-塔西佗《编年史》

塔西佗《编年史》详细介绍 书籍基本信息 书名:编年史(Annales / Ab Excessu Divi Augusti) 作者:塔西佗(Publius Cornelius Tacitus,约56-120年) 成书时间:约公元110-120年 卷数&…

如何翻译图片?图片上的外语一键翻译成中文,教程来了~

工程图纸是扫描图可以翻译吗?手机拍的图纸照片可以翻译吗?图片形式的图纸可以翻译吗?针对以上三类工程图纸翻译常见问题,进行统一答复:PlanForm-AI工程图纸翻译都可以翻译,教程如下:1.如果你遇到…

物联网毕设 基于单片机的红外热视仪(源码+硬件+论文)

文章目录 0 前言1 主要功能2 硬件设计3 核心软件设计4 实现效果5 最后 0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己…

机器学习:python租房数据分析可视化系统 K-means聚类算法 线性回归预测算法 机器学习 链家租房网 Django框架 scrapy 爬虫(建议收藏)

博主介绍:✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立软件开发工作室,专注于计算机相关专业项目实战6年之久,累计开发项目作品上万套。凭借丰富的经验与专业实力,已帮助成千上万的学生顺利毕业,…

OpenCSG课程精华:为什么结构化提示词更有效?Markdown / XML / JSON 的正确打开方式

构化提示词的关键不是“好看”,而是边界清晰、可被系统消费。本文解释 Markdown、XML、JSON 三种结构化方式的适用场景,并给出更稳的输出控制方法。 一、结构化的意义:先解决“边界不清”,再谈“表达优雅” 大模型最怕的是混淆&…

jmeter基础知识-安装配置环境变量

1.安装JDK 2.配置java环境变量 搜索栏输入编辑环境变量 用户变量:只对当前用户生效 系统变量:对所有用户生效 点击新建在变量名中输入:JAVA_HOME 变量值中输入jdk的安装路径 例如:C:\ProgramFiles\Java\jdk1.8.0_161 再次点击…

RH134 第八章 管理存储堆栈

一 创建和拓展逻辑卷1.1 逻辑卷(LVM)概念LVM 有助于更加轻松地管理磁盘空间。可以将卷组 Volume Group 中的可用空间分配给逻辑卷 (Logical Volume),并且可以调整文件系统的大小✔ 如果磁盘出现错误,可将替换磁盘注册为物理卷 (Ph…

什么是PKI

文章目录 为什么需要PKIPKI应用场景有哪些PKI是如何工作的 公钥基础设施PKI(Public Key Infrastructure),是一种遵循既定标准的证书管理平台,它利用公钥技术能够为所有网络应用提供安全服务。PKI技术是信息安全技术的核心&#xf…