GPT-人工智能如何改变我们的编码方式

在本文中,您将找到我对人工智能和工作的最新研究的总结(探索人工智能对生产力的影响,同时开启对长期影响的讨论),一个准实验方法的示例(通过 ChatGPT 和 Stack Overflow 进行说明,了解如何使用简单的 SQL 查询从 Stack Overflow 中提取数据。

作为与大多数技术革命一样,ChatGPT 的发布伴随着新奇和革命性的创新。一方面,在短短两个月内,该应用程序就拥有 1 亿月活跃用户,打破了历史上增长最快的消费者应用程序的记录。另一方面,高盛的一份报告声称,此类技术可能会取代全球超过 3 亿个工作岗位。此外,埃隆·马斯克 (Elon Musk) 与 1,000 多名技术领导者和研究人员签署了一封公开信,敦促暂停最先进的人工智能开发 。

“我们只能看到前方很短的距离,但我们可以看到很多需要做的事情。”艾伦·图灵

根据艾伦·图灵的引言,本文并不试图预测人工智能的遥远未来及其影响。然而,我关注的是影响我们的主要可观察后果之一:人工智能如何改变我们的编码方式。

ChatGPT 的诞生改变了世界。至少,作为一个每天都编码的人,我的世界一夜之间就改变了。我不必花几个小时在 Google 上寻找正确的解决方案,也不必在 Stack Overflow 上深入研究答案,并使用正确的变量名称和矩阵维度将解决方案转化为我的确切问题,我可以直接询问 ChatGPT。ChatGPT不仅会在眨眼之间给我答案,而且答案会适合我的具体情况(例如正确的名称、数据帧尺寸、变量类型等)。我大吃一惊,我的工作效率突然飙升。

因此,我决定探索 ChatGPT 发布的大规模影响及其对生产力以及最终对我们工作方式的潜在影响。我定义了三个假设 (Hs),并使用 Stack Overflow 数据进行了测试。

H1:ChatGPT 减少了 Stack Overflow 上提出的问题数量。如果 ChatGPT 可以在几秒钟内解决编码问题,那么我们可以预期编码社区平台上的问题会减少,因为提出问题和获得答案需要时间。

H2:ChatGPT 提高了所提问题的质量。如果 ChatGPT 被大量使用,那么 Stack Overflow 上的剩余问题必须得到更好的记录,因为 ChatGPT 可能已经有所帮助。

H3:剩下的问题更加复杂。我们可以预期剩下的问题更具挑战性,因为 ChatGPT 可能无法回答这些问题。因此,为了测试这一点,我们正在测试未回答问题的比例是否增加。此外,我还测试每个问题的浏览量是否发生变化。如果每个问题的浏览量保持稳定,这将是一个额外的迹象,表明剩余问题的复杂性增加了,并且这一发现不仅仅是由平台上的活动减少引起的。

为了测试这些假设,我将利用 Stack Overflow 上突然发布的 ChatGPT。2022 年 11 月,当 OpenAI 公开发布他们的ChatGPT时,没有其他替代品可用(例如 Google Bard),并且访问是免费的(不限于 OpenAI ChatGPT 4 或 Code Interpreter 等付费订阅)。因此,可以观察在线编码社区在震惊之前和之后的活动如何变化。然而,尽管这种冲击多么“干净”,其他影响可能会被混淆,从而质疑因果关系。特别是季节性(例如发布后的年末假期)以及问题越新,浏览量和找到答案的概率就越低。

理想情况下,为了减轻季节性等潜在混杂变量的影响并衡量因果效应,我们希望在没有 ChatGPT 发布的情况下观察世界,这是不可能的(例如因果推理的基本问题)。尽管如此,我将通过利用 ChatGPT 对编码相关问题的答案质量因一种语言而异而另一种语言不同这一事实来应对这一挑战,并使用准实验方法来限制其他因素混淆效果的风险(Difference-in -不同之处)。

为此,我将比较 Python 和 R 之间的 Stack Overflow 活动。Python 是一个显而易见的选择,因为它可以说是最
流行的编程语言之一(例如,在 TIOBE 中排名第一)
Python 的大量在线资源为 ChatGPT 等ChatGPT提供了丰富的训练集。现在,为了与 Python 进行比较,我选择了 R。Python 通常被认为是 R 的最佳替代品,而且两者都是免费的。然而,R 不太受欢迎(例如,在 TIOBE 编程社区索引中排名第 16),因此训练数据可能较小,这意味着 ChatGPT 的性能较差。证据证实了这种差异(有关该方法的更多详细信息,请参阅方法部分)。因此,R 代表了 Python 的有效反事实(它受到季节性影响,但我们可以预期 ChatGPT 的影响可以忽略不计)。

图1:ChatGPT对Stack Overflow每周提问数量的影响
 

上图显示了原始的每周数据。我们可以看到,在 ChatGPT 3.5 发布后,Stack Overflow 上每周提出的有关 Python 的问题数量突然大幅下降 (21.2%),而对 R 的影响则稍小一些(下降了 15.8%)。

这些“定性”观察得到了统计模型的证实。稍后描述的计量经济学模型发现,Stack Overflow 上的 Python 每周问题平均下降了 937.7 个(95% CI:[-1232.8,-642.55 ];p 值 = 0.000),具有统计显着性。随后的分析利用 Diff-in-Diff 方法,进一步揭示了问题质量的提高(在平台上通过分数来衡量),同时未回答问题的比例也有所增加(而每个问题的平均浏览量似乎有所增加)。不变)。因此,本研究为之前定义的三个假设提供了证据。

这些发现强调了人工智能在我们工作方式中的深远作用。通过解决日常查询,生成式人工智能使个人能够将精力投入到更复杂的任务上,同时提高他们的生产力。然而,重要的长期潜在不利影响也在讨论部分进行了讨论。

本文的其余部分将介绍数据和方法,然后是结果,并以讨论结束。

数据

数据是使用Stack Overflow 数据浏览器门户上的 SQL 查询提取的(许可证:CC BY-SA)。这是使用的 SQL 命令:

SELECT Id, CreationDate, Score, ViewCount, AnswerCount
FROM Posts
WHERE Tags LIKE '%<python>%'
AND CreationDate BETWEEN '2022–10–01' AND '2023–04–30'
AND PostTypeId = 1;

然后,我按周汇总数据以减少噪音,从而获得了从 2022 年 10 月 17 日星期一到 2023 年 3 月 19 日的数据集,其中包含有关每周帖子数量、观看次数、每个问题的观看次数的信息,每个问题的平均分以及未回答问题的比例。分数由平台用户定义,他们可以投票赞成或反对,以判断问题是否显示“研究努力;它是否有用且清晰” 。

方法

为了测量因果效应,我使用了双重差分模型,这是一种计量经济学方法,通常利用随时间的变化并将处理单位与未处理组进行比较。

简而言之,Diff-in-Diff 模型计算双重差异以识别因果效应。这是一个简化的解释。首先,我们的想法是计算两个简单的差异:治疗组和未治疗组(此处分别是 Python 和 R 问题)的前(ChatGPT 发布之前)和后时期之间的“平均”差异。我们关心的是处理对处理单元的影响(这里是ChatGPT发布对Python问题的影响)。然而,如前所述,可能还有另一种影响仍然与治疗相混淆(例如季节性)。为了解决这个问题,该模型的想法是计算双重差异,以检查处理组 (Python) 的第一个差异与第二个差异(对照组 R 的差异)有何不同。

这是一个稍微更正式的表示。

参考值的第一个差异:

E[Yᵢ| Treatedᵢ, Post]-E[Yᵢ| Treatedᵢ, Preₜ] = λ+β

这里的 i 和 t 分别指的是语言(R 或 Python)和周。While对待是指与Python相关的问题,Post是指ChatGPT可用的时期。这个简单的差异可能代表 ChatGPT (β) + 某些时间效应 λₜ 的因果效应(例如季节性)。

控制变量组组的第一个差异:

E[Yᵢ| Controlᵢ, Post]-E[Yᵢ| Controlᵢ, Pre] = λ

对照组的简单差异不包括治疗效果(因为未经治疗),而仅包括 λ。

因此,双重差分将给出:

DiD = ( λ+β) — λ = β

假设两组的 λ相同(平行趋势假设,如下所述),双重差异将使我们能够识别 β,即因果效应。

该模型的本质在于平行趋势假设。为了断言因果效应,我们应该相信,如果没有 ChatGPT,Stack Overflow 上 Python(已处理)和 R(未处理)帖子的演变在处理期间(2022 年 11 月之后)将是相同的。然而,这显然不可能观察到,因此无法直接测试(参见因果推理的基本问题)。然而,可以测试冲击之前的趋势是否平行,这表明对照组是一个潜在的良好“反事实”。对数据进行的两个不同的安慰剂测试表明,我们不能拒绝 ChatGPT 之前时期的平行趋势假设(测试的 p 值分别为 0.722 和 0.397(参见在线附录 B))。

正式定义:

Yᵢ = β₀ + β₁ Pythonᵢ + β₂ ChatGPT + β₃ Pythonᵢ × ChatGPT+ uᵢ

“i”和“t”分别对应 Stack Overflow 上问题的主题(i ∈ {R; Python})和周。Yᵢ 表示结果变量:问题数量 (H1)、平均问题得分 (H2) 和未回答问题的比例 (H3)。Pythonᵢ 是一个二元
变量,如果问题与 Python 相关,则取值 1,
否则取值 0(与 R 相关)。ChatGPTₜ是另一个二进制变量,
从 ChatGPT 版本及之后的版本开始,其值为 1,
否则为 0。uᵢ 是聚集在编码语言级别 (i) 的错误项

该模型的本质在于平行趋势假设。为了断言因果效应,我们应该相信,如果没有 ChatGPT,Stack Overflow 上 Python(已处理)和 R(未处理)帖子的演变在处理期间(2022 年 11 月之后)将是相同的。然而,这显然不可能观察到,因此无法直接测试(参见因果推理的基本问题)。然而,可以测试冲击之前的趋势是否平行,这表明对照组是一个很好的“反事实”。在这种情况下,两个不同的安慰剂测试表明,我们不能拒绝 ChatGPT 之前时期的平行趋势假设(测试的 p 值分别为 0.722 和 0.397(参见在线附录 B))。

结果

H1:ChatGPT 减少了 Stack Overflow 上提出的问题数量。

如简介中所述,Diff-in-Diff 模型估计 Stack Overflow 上的 Python 每周问题平均下降了 937.7 个(95% CI:[-1232.8, -642.55];p 值 = 0.000)(参见如下图2)。这意味着每周的问题数量下降了 18%。

图 2:ChatGPT 对每周问题数量的影响

H2:ChatGPT 提高了所提问题的质量。

ChatGPT 可能有助于回答问题(参见 H1)。然而,当ChatGPT无法解决问题时,它可能允许人们走得更远,获得有关问题或解决方案某些要素的更多信息。该平台允许我们测试这个假设,因为如果用户认为“这个问题显示了研究成果;有用且清晰”(增加 1 分)或没有(减少 1 分)第二次回归估计问题得分平均增加 0.07 分(95% CI:[-0.0127 , 0.1518 ];p 值:0.095)(见图 3),即增加 41.2%。

图 3:ChatGPT 对问题质量的影响(作者提供的图片)

H3:剩下的问题更加复杂。

现在我们有一些证据表明 ChatGPT 能够提供重要的帮助(解决问题并帮助记录其他问题),我们想确认剩下的问题更加复杂。为此,我们要考虑两件事。首先,我发现未回答问题的比例正在上升(没有答案可能表明问题更加复杂)。更准确地说,我发现未回答的问题比例增加了 2.21 个百分点(95% CI:[ 0.12, 0.30];p 值:0.039)(见图 4),这意味着增加了 6.8%。其次,我们还发现每个问题的观看次数没有变化(我们不能拒绝它没有变化的零假设,p 值为 0.477)。

图4:ChatGPT对未回答问题比例的影响

讨论

这些发现支持这样一种观点,即生成式人工智能可以通过处理常规问题彻底改变我们的工作,使我们能够专注于需要专业知识的更复杂的问题,同时提高我们的生产力。

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

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

相关文章

python in excel 如何尝鲜 有手就行

众所周知&#xff0c;微软在8月下旬放出消息python已入驻excel&#xff0c;可到底怎么实现呢。 今天我就将发布python in excel的保姆级教程&#xff0c;开始吧&#xff01; 获取office 365 账号 首先我们要有微软office365 这时候需要再万能的某宝去找一个账号&#xff0c;…

已经2023年了,你还不会手撕轮播图?

目录 一、前言二、动画基础1. 定时器2. left与offsetLeft3. 封装函数3.1 物体3.2 目标点3.3 回调函数 4.封装 三、基础结构3.1 焦点图3.2 按钮3.3 小圆点3.4 总结 四、按钮显示五、圆点5.1 生成5.2 属性5.3 移动 六、按钮6.1 准备6.2 出错6.2.1 小圆点跟随6.2.2 图片返回 6.3 b…

云端AI:释放企业创新力,打造智慧企业

文章目录 1. 云端AI的基本概念1.1 云计算1.2 人工智能1.3 云端AI 2. 云端AI的重要性2.1 成本效益2.2 弹性扩展2.3 无缝整合2.4 实时更新 3. 云端AI的应用领域3.1 智能客服3.2 预测分析3.3 自动化生产 4. 云端AI的未来趋势4.1 边缘计算与云端AI的融合4.2 可解释性AI4.3 隐私和安…

zabbix使用 -- 添加监控节点、自定义监控项、触发器

目录 页面中的一些概念配置agent服务来获取目标主机数据对nginx服务器进行监控在网页中添加一台配置 自定义监控项 -- 以监控nginx为例1、开启nginx本身的统计功能2、编写脚本采集数据3、在zabbix-server里获取数据监控ssh进程监控cron进程 触发器报警1、注册一个企业微信2、微…

开启全新教学模式!vLive虚拟直播如何赋能线上教培

&#xfeff; 如今&#xff0c;教培领域正在经历一场数字化的变革。随着科技的迅猛发展&#xff0c;教培形式也在不断演变&#xff0c;越来越多的企业和讲师开始采用虚拟直播来进行在线教学。那么&#xff0c;vLive虚拟直播https://live.vsochina.com/cnvLive虚拟直播是如何赋…

SpringBoot运维实用篇、打包、运行、高级配置、多环境开发、日志

文章目录 SpringBoot运维实用篇YW-1.SpringBoot程序的打包与运行程序打包程序运行SpringBoot程序打包失败处理命令行启动常见问题及解决方案SpringBoot项目快速启动&#xff08;Linux版&#xff09; YW-2.配置高级YW-2-1.临时属性设置YW-2-2.配置文件分类YW-2-3.自定义配置文件…

elasticsearch的数据聚合

聚合可以让我们极其方便的实现对数据的统计、分析、运算。例如&#xff1a; 什么品牌的手机最受欢迎&#xff1f; 这些手机的平均价格、最高价格、最低价格&#xff1f; 这些手机每月的销售情况如何&#xff1f; 实现这些统计功能的比数据库的sql要方便的多&#xff0c;而且…

下载安装包,安装 PySide2 到 windows 系统

20201206 修订&#xff1a;修改 PyCharm 中工具的配置描述 一、下载两个.whl 文件到本地&#xff0c; 可以在此下载 https://mirrors.tuna.tsinghua.edu.cn/ 我选用的是以下两个版本&#xff1a; shiboken2-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-none-win_amd64.whl …

vue three.js基本案例解析

1.安装依赖 // 比如安装148版本 npm install three0.148.0 --save2.使用页面引用 import * as THREE from three; // 引入扩展库OrbitControls.js import { OrbitControls } from three/addons/controls/OrbitControls.js; // 引入扩展库GLTFLoader.js import { GLTFLoader }…

攻防世界-WEB-NewsCenter

打开环境 有查询&#xff0c;猜测是sql注入 保存请求头到文件中 准备利用sqlmap 查找数据库 python sqlmap.py -r ./123.txt --dbs 查找表 python sqlmap.py -r ./123.txt --tables -D news 查找字段 python sqlmap.py -r ./123.txt --column -D news -T secret_table 显示字…

Spring整合tomcat的WebSocket详细逻辑(图解)

主要解决存在的疑问 为什么存在2种spring整合websocket的方式&#xff0c;一种是使用ServerEndpoint注解的方式&#xff0c;一种是使用EnableWebSocket注解的方式&#xff0c;这2种有什么区别和联系&#xff1f;可以共存吗&#xff1f;它们实现的原理是什么&#xff1f;它们的各…

华为数通方向HCIP-DataCom H12-821题库(单选题:321-340)

第321题 BGP的Open报文是用于建立对等体连接的,以下哪一项不属于Open报文中携带的参数信息? A、发送者的Router ID B、AS号 C、BGP版本号 D、TCP端口号 答案:D 解析:以下是BGP的Open报文: 第322题 在建立BGP对等体的过程中,OpenSent状态表明BGP等待的Open报文 并对收…

【Java基础篇 | 面向对象】—— 封装详解

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【JavaSE_primary】 本专栏旨在分享学习Java的一点学习心得&#xff0c;欢迎大家在评论区讨论&#x1f48c; 目录 一、封装1.1什么是封装…

thinkphp6 入门(4)--数据库操作 增删改查

一、设计数据库表 比如我新建了一个数据库表&#xff0c;名为test 二、配置数据库连接信息 本地测试 直接在.env中修改&#xff0c;不用去config/database.php中修改 正式环境 三、增删改查 引入Db库 use think\facade\Db; 假设新增的控制器路径为 app\test\control…

【操作系统】聊聊Linux内存工作机制

内存主要是用来存储系统和应用程序的指令、数据、缓存等 内存映射 内存是需要安全机制保护的&#xff0c;所以只有内核才可以直接访问物理内存。进程如果要访问内存需要通过独立的虚拟地址空间。 虚拟地址空间其实包含两部分。一部分是内核空间&#xff0c;另一部分就是用户…

[C++网络协议] I/O复用

具有代表性的并发服务器端实现模型和方法&#xff1a; 多进程服务器&#xff1a;通过创建多个进程提供服务。 多路复用服务器&#xff1a;通过捆绑并统一管理I/O对象提供服务。✔ 多线程服务器&#xff1a;通过生成与客户端等量的线程提供服务。 目录 1. I/O复用 2. select函…

BMS电池管理系统——什么是BMS(一)

BMS电池管理系统 文章目录 BMS电池管理系统前言一、BMS是什么&#xff1f;二、BMS的主要功能模块1.采样及测量功能2.状态估计及预测功能3.控制及管理功能4.通讯和诊断功能 总结 前言 作为一名电气专业的学生&#xff0c;大学里学了很多嵌入式相关的知识&#xff0c;首先要明确…

Java版工程行业管理系统源码-专业的工程管理软件- 工程项目各模块及其功能点清单

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显示…

【前端】CSS-Grid网格布局

目录 一、grid布局是什么二、grid布局的属性三、容器属性1、display①、语句②、属性值 2、grid-template-columns属性、grid-template-rows属性①、定义②、属性值1&#xff09;、固定的列宽和行高2&#xff09;、repeat()函数3&#xff09;、auto-fill关键字4&#xff09;、f…

QT实现任意阶贝塞尔曲线绘制

bezier曲线在编程中的难点在于求取曲线的系数&#xff0c;如果系数确定了那么就可以用微小的直线段画出曲线。bezier曲线的系数也就是bernstein系数&#xff0c;此系数的性质可以自行百度&#xff0c;我们在这里是利用bernstein系数的递推性质求取&#xff1a; 简单举例 两个…