确定性 vs 非确定性:GPT 时代的新编程范式
分享嘉宾 | 王咏刚 责编 | 梦依丹
出品 | 《新程序员》编辑部
在 ChatGPT 所引爆的新一轮编程革命中,自然语言取代编程语言,在只需编写提示词/拍照就能出程序的时代,未来程序员真的会被简化为提示词的编写员吗?通过提示词操纵 AI?在 SeedV 实验室创始人兼 CEO,创新工场 AI 工程院执行院长王咏刚表示:今天所有的计算机、系统都会被 AI 去重新改写,重新定义。这也引发了无数人思考:未来的程序员真的会被简化为提示词的编写员吗?然后由提示词操纵 AI?是不是这样一个非常简单的范式,就可以总结未来所有的 AI 开发?
王咏刚给出了否定的答案,其表示,「未来的 AI 开发应该是一种多范式的开发流程」。
王咏刚,SeedV 实验室创始人兼 CEO,创新工场 AI 工程院执行院长
本文是由 ChatGPT 整理的演讲实录,责编稍作调整:
一切都将被 AI 重新定义
“最近一段时间,我处在既兴奋又焦虑的状态之下,十几年的 NLP 经验被拉到与刚毕业大学生一样的门槛之上。我的开发经验并不比当下使用 ChatGPT 开发的大学生有任何优势”。
我是从 98 年开始写商业化程序的老兵,拥有十多年的自然语言工作经验,5、6 年的 AI 投资和孵化经历。现在又再次以一个创业者的身份开启一段全新的历程。我呼吁大家现在立刻开始跟 AI 协作起来,无论是学习、开发还是创业,赶快行动,时下的每分每秒,技术、产品、应用都在改变着未来。
想象一下最近一个月里,哪些企业成为了最受瞩目的话题?你最常听到的声音来自哪类企业?或许你会注意到,有一类企业却鲜有出现——手机厂商。近期几乎所有手机厂商都遭遇了一些难题。那么这些厂商和人工智能有什么直接的联系呢?值得思考。
作为对未来技术的期许,我希望能够有一款革命性的手机,它将以人工智能为中心,从硬件平台、上层应用到整个使用体验都进行重新设计。
如果有一天,Open AI 创始人说他们要推出一款革命性的手机,我一点也不会感到意外。因为我们正处于一个所有应用、计算机和计算机系统都将被人工智能重新定义的时代。蒋涛说未来每个人都将成为程序员和计算机设计师,而我们之前积累了大量的工程和科研经验,也见证了大量的投资和创业案例。
未来的程序员真的只需要编写提示词进行开发吗?
最近,许多人问我一个问题:市场上出现的很多创业团队,包括美国、欧洲和中国的团队,是否都只是简单地调用 GPT 的 API,输入一个提示词,然后就获得了惊人的功能。这样的创业方式和开发方式算是真正的创业和开发吗?如果所有人都在这个层面上开发,那么你的系统和产品是否还有技术门槛?
作为一位有着多年投资经验的投资人,我也在思考同样的问题。当我面对着 100 个项目,全都是通过使用 Hackathon 方式,仅仅用几个小时的时间,甚至是由几个中学生打造而成的项目,你该如何选择投资的项目呢?
所有这些项目在技术门槛上几乎都处于同一水平线上。谁将成为 AI 时代的“快手”?谁将成为 AI 时代的“移动支付”?这个答案可能没有人知道。
但是,让我们不要再去思考或者纠结这个问题了。行动比思考和讨论更加有效。不论你是在投资、创业、研发或者进行任何形式的思考,先行动起来。因此,今天我带领我们的团队思考一个问题:未来的程序员是否真的只需要写几个提示词就可以了?我们需要去挑战并回答这个问题。
如果今天的程序员通过编程语言来控制计算机,那么未来的程序员是否只需要编写提示词来操纵 AI 呢?虽然这个简单的范式可能能够总结未来所有 AI 开发,但我认为未来的 AI 开发应该是多范式的。
为了解释这个想法,我想给大家看两幅画作。现在有一些 AI 算法能够绘制非常精美的画作,但你能猜出这两幅画中哪一幅是由 AI 算法绘制的吗?
事实上,未来的 AI 开发需要采用多种不同的开发流程,而不只是简单地编写提示词来操纵 AI。
右边的画是由今天的 AI 算法生成的,而左边的画则不同,它是通过数学公式主导生成的,是一张由分形公式产生的三维图案。
十年前,这样的软件便能够帮助艺术家创造出数字艺术品,但那时人们并未将它视作数字艺术。虽然这种软件现在几乎没有人维护了,但它们创造的画面仍然能够带给我们震撼的视觉感受。
我想通过这两幅画来说明一个问题:今天的 AI 是建立在神经网络或深度学习的数学范式下的数学拟合体系上的,它拟合的是我们所面临的文本、图像等多种数据中的统计规律。然而,这种拟合体系并非是唯一存在的数理思维模型。
自古希腊起,人类就已经建立起了一套完整的数理逻辑思维方法,从归纳到演绎,涵盖各种数学家和物理学家的研究成果。今天,我们仍能够通过这些优美的公式,从演绎的角度推导出许多不同层级的应用结果。因此,未来的 AI 开发应该是一个多范式的开发流程。
未来 AI 编程的两种范式
如果您来自某些垂直行业,例如数学模拟、物理模拟或大气模拟等,您会发现在这些任务中通常有两种途径。第一种方法是使用公式或解方程的方式进行模拟,第二种方法是使用与 AI 统计相关的统计任务进行模拟。这两种任务存在本质上的差异。它们有一些共性,例如都涉及到随机性,但左图任务更注重确定性。当您解决一个方程或使用数学公式进行推导时,结果在很大程度上都符合预期。
右图的任务则不同,AI 模型采用了大规模的统计模型,具有强大的内禀特性,其中包括一种被称为不确定性或非确定性的特性。这个特性是所有从事 AI 软件开发的人都需要首先解决的问题。
有人提出了提示工程(Prompt Engineering)概念。提示工程的最基本任务是将 AI 从那种容易陷入胡说八道的状态中拉回来,让它尽可能准确地完成我要求的任务。专业工程师的最基本任务是将右图的 AI 从发散、随机化、不确定性等方面带到左图人的预期里面。
在人类的预期范围内,如蒋涛所提到的类似于 Wolfram Mathematica 这样的系统中,它可以非常精确地控制。举个例子,如果你需要重新整理一个包含公司过去数万条交易数据的 Excel 表格,将所有交易单位从旧的会计制度转换为今天的新会计制度,如果 AI 在处理这 10,000 多条数据时出现了一两个错误,该怎么办?
这是当下迫切需要考虑的问题,AI 所犯的错误能否和不确定性能否及时发现。因为 AI 系统的错误和不确定性可能会对许多任务产生重大影响。为了解决这个问题,可以考虑以下几点:
1、设计可解释性的 AI 系统,这样可以更好地理解 AI 系统的决策过程和输出结果,从而更容易发现错误和不确定性;
2、引入监督和反馈机制,监督 AI 系统的输出结果并及时传回错误和不确定性信息,以便修正和改进 AI 系统的性能;
3、利用集成学习和多模型融合等技术,提高 AI 系统的鲁棒性和准确性,从而降低错误和不确定性的风险;
4、建立完善的测试和评估体系,定期测试和评估 AI 系统的性能,并及时发现错误和不确定性。
这些措施都可以帮助我们更好地管理和控制 AI 系统的错误和不确定性,从而提高 AI 系统的可靠性和性能。
如果我们编写一个非常牢固的程序,它的出错概率会很小。但是,如果我们将任务交给不确定性较高的 AI,必须对其进行测试和检查,以确保其输出的结果是正确的。
此外,如果不加任何提示工程,不加任何中间思维链,即使是用 GPT-4 来生成三维坐标,也是有困难的。
在经过指令工程、提示思维链、工具意图等技术增强后,AI 的生成结果会精准很多。因此,必须谨慎地处理 AI 输出的结果,并且在必要时对其进行更正。
我今天分享的主题是关于未来 AI 编程范式的讨论。未来的 AI 编程范式将不再局限于简单的提示词所得出结果的编程范式,而是一个相对复杂的工程。这个工程至少包括两个编程范式:
1、适用于端到端的感知类任务、创造性任务和探索性任务。它支持我们以 n to n 的方式,通过提示词得到结果。
2、适用于强调控制力、结果确定性和计算精准性的所有应用任务。在这种任务中,我们不能完全交给大型模型一次性解决问题。相反,我们需要通过插件的方式调用各种后台服务,这些中间层服务在调用底层的基于数理逻辑和传统计算机算法的功能模块时,将成为未来长期存在的编程范式。
虽然我今天特别善于使用提示,但我也擅长传统的计算机算法。我建议你们尽快将你们的算法变成可以被 GPT 调用的插件之一,变成 GPT 可以使用的工具之一。
在未来,人们的主要应用程序将是 GPT 或类似的 AI 程序,而不是人类开发的传统计算机程序。因此,人类工程师的任务是帮助 AI 开发大量能够与现实世界进行精确交互的插件或工具。简单来说,在这种范式中,人类工程师的角色将被降级,但这是我们必须承认的现实。让我们从现在开始行动起来,而不是过多地讨论,谢谢大家。
分享嘉宾简介:
王咏刚,SeedV 实验室创始人兼 CEO,创新工场 AI 工程院执行院长。专注于人工智能前沿科技研发。曾以联合创始人身份创立过包括上市公司在内的多家人工智能科技公司,也曾是人工智能高端应用型人才培养项目 DeeCamp 的发起者和领导者。王咏刚曾在谷歌公司从事技术工作超过十年,在自然语言处理,分布式系统,动画和游戏引擎等方面有专深积累。
相关文章:

确定性 vs 非确定性:GPT 时代的新编程范式
分享嘉宾 | 王咏刚 责编 | 梦依丹 出品 | 《新程序员》编辑部 在 ChatGPT 所引爆的新一轮编程革命中,自然语言取代编程语言,在只需编写提示词/拍照就能出程序的时代,未来程序员真的会被简化为提示词的编写员吗?通过提示词操纵 …...

【Linux奇遇记】我和Linux的初次相遇
🌈个人主页: Aileen_0v0 🔥系列专栏:Linux奇遇记系列专栏💫"没有罗马,那就自己创造罗马~" 目录 前端和后端的介绍 1.前端 2.后端 3.前后端区别 Linux在前后端开发中的角色 如何学习Linux 去进行程序开发 Linux的常见根目…...

剪贴板劫持--PasteJacker的使用
启动 PasteJacker [1] Windows [2] Linux [3] Exit第一次是让我们选择要攻击针对的目标系统,这里以Windows系统为例,即我自己的物理机 因此键入 1 ,回车 [1] Download and execute a msfvenom backdoor using certutil (Web delivery Past…...
说一下vue2的响应式原理?
vue2采用数据代理数据劫持发布订阅模式的方法。 在初始化vue实例时,会把data对象和data对象的属性都添加到vm对象中,通过object.defineProperty()进行数据代理,用vm对象的属性来代理data对象的属性,并在Observer类中递归遍历data…...

如何使用CORS和CSP保护前端应用程序安全
前端应用在提供无缝用户体验方面起着核心作用。在当今互联网的环境中,第三方集成和API的普及使得确保强大的安全性至关重要。安全漏洞可能导致数据盗窃、未经授权访问以及品牌声誉受损。本文将向您展示如何使用CORS和CSP为您的网页增加安全性。 嗨,大家好…...

C/C++输出硬币翻转 2021年6月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
目录 C/C硬币翻转 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C硬币翻转 2021年6月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 假设有N个硬币(N为不大于5000的正整数),从1…...
ipad可能会在iOS 16中失去智能家居中心功能
在iOS 16测试版代码中发现的文本表明苹果将放弃对iPad家庭中心的支持 家庭app迎来重大改版,未来更将对智能家居互联互通标准Matter提供支持。 即使某一款智能家居设备再优秀,只要它没有接入HomeKit,那么就不能在苹果的家庭app中直接管理控制。…...
maven打包可运行jar
普通java程序 <build><finalName>JavaDeviceClient</finalName><plugins><plugin><artifactId>maven-compiler-plugin</artifactId><version>2.3.2</version><configuration><source>1.8</source><…...

Arcgis连接Postgis数据库(Postgre入门十)
效果 步骤 1、矢量数据首先有在postgis数据库中 这个postgis数据库中的一个空间数据,数据库名称是test3,数据表名称是test 2、Arcgis中连接postgis数据库中 3、成功连接 可以将数据拷贝或导入到gdb数据库中...

【蓝桥杯选拔赛真题17】C++时间换算 第十二届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析
目录 C/C++时间换算 一、题目要求 1、编程实现 2、输入输出 二、算法分析 <...

【腾讯云 HAI域探秘】探索AI绘画之路:利用腾讯云HAI服务打造智能画家
目录 前言1 使用HAI服务作画的步骤1.1 注册腾讯云账户1.2 创建算力服务器1.3 进入模型管理界面1.4 汉化界面1.5 探索AI绘画 2 模型参数的含义和调整建议2.1 模型参数的含义和示例2.2 模型参数的调整建议 3 调整参数作画的实践和效果3.1 实践说明3.2 实践效果13.3 实践效果23.4 …...
安卓常见设计模式10------责任链模式(Kotlin版)
1. W1 是什么,什么是责任链模式? 责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它用于将请求的发送者和接收者解耦,并将请求沿着一个处理链进行传递,直到有一个处理者能…...
利用 Google Artifact Repository 构建maven jar 存储仓库
参考了google 官方文档 https://cloud.google.com/artifact-registry/docs/java/store-java#gcloud_1 首先 enable GAR api gcloud services enable artifactregistry.googleapis.com gcloud services list | grep -i artifact artifactregistry.googleapis.com Artifac…...

Facebook广告被暂停是什么原因?Facebook广告账号被封怎么办?
许多做海外广告投放的小伙伴经常遇到一个难题,那就是投放的Facebook广告被拒或 Facebook 广告帐户被关闭赞停的经历,随之而来的更可能是广告账户被封,导致资金的损失。本文将从我自身经验,为大家分享,Facebook广告被暂…...

Javaweb之javascript的BOM对象的详细解析
1.5.2 BOM对象 接下来我们学习BOM对象,BOM的全称是Browser Object Model,翻译过来是浏览器对象模型。也就是JavaScript将浏览器的各个组成部分封装成了对象。我们要操作浏览器的部分功能,可以通过操作BOM对象的相关属性或者函数来完成。例如:…...

使用Nginx和Spring Gateway为SkyWalking的增加登录认证功能
文章目录 1、使用Nginx增加认证。2、使用Spring Gateway增加认证 SkyWalking的可视化后台是没有用户认证功能的,默认下所有知道地址的用户都能访问,官网是建议通过网关增加认证。 本文介绍通过Nginx和Spring Gateway两种方式 1、使用Nginx增加认证。 生…...
Android 12.0 增加多张图片作为系统静态壁纸的功能实现
1.前言 在12.0的系统rom定制化开发中,在做系统定制化开发中,在对系统的静态壁纸做定制的时候,需要增加几种静态壁纸可以让用户自己设置壁纸,所以可以在壁纸的系统应用中 添加几种静态壁纸图片,然后配置好 就可以在选择壁纸的时候,作为静态壁纸,接下来看如何具体实现这个…...

无线优化之RRM模板
一、简介 RRM即,Radio Resource Management,射频资源管理 WLAN技术是以射频信号(如2.4G/5G的无线电磁波)作为传输介质,无线电磁波在传输过程中因周围环境导致无线信号衰减,从而影响无线用户上网的服务质量。 RRM模板主要用于保持最优的频射资源状态,自动检查周围无线…...

BI 数据可视化平台建设(1)—交叉表组件演变实战
作者:vivo 互联网大数据团队 - Zhu Jianchen 本文是vivo互联网大数据团队《BI数据可视化平台建设》系列文章第1篇 - 交叉表组件。 交叉表在数据分析里应用广泛,通过本文,你将了解到: 交叉表的基本概念,以及BI可视化平…...

Python---练习:求幸运数字6
案例: 幸运数字6(只要是6的倍数):输入任意数字,如数字8,生成nums列表,元素值为1~8,从中选取幸运数字移动到新列表lucky,打印nums与lucky。 思考: 要求是6的…...

Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...

大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...