ChatGPT能胜任高级程序员吗?
与开发人员信任的其他软件开发工具不同,AI工具在训练、构建、托管和使用方式等方面都存在一些独特的风险。
自2022年底ChatGPT发布以来,互联网上便充斥着对其几乎相同比例的支持和怀疑的论调。不管你是否喜欢它,AI正在逐步进入你的开发组织。即使你不打算开发人工智能产品,也不打算利用AI工具为你编写代码,它仍可能被集成到用于构建、测试和运行源代码的工具和平台中。
AI工具存在一些较为特殊的风险,这些风险可能会使自动化任务所带来的生产力收益受到影响。而这些风险主要源于AI的训练、构建、托管和使用方式,AI工具在这些方面与开发人员信任的其他工具存在诸多不同之处。了解风险是管理风险的第一步,为了帮助你了解AI工具的潜在风险,我们设计了一些面向AI工具的面试问题,这些问题能够决定该工具是否能顺利“入职”你的公司。
总体而言,所有的的AI工具都存在一定的共性,无论人工智能的类型或用途如何,在选择使用它之前,都应提出如下问题:
这款AI工具的基础设施在什么位置?现代人工智能无一不需要专用且昂贵的硬件进行支持。除非你打算收购一个新的数据中心;否则你的AI工具将只能进行远程工作,并需要使用远程访问和非现场数据存储,而这将造成一定的安全隐患。
在代码离开处理边界时,采取什么样的保护措施来防止IP丢失?从智能电视到智能汽车,一切人工智能产品都在向其制造商贡献数据。一些企业使用这些数据来优化他们的软件,但另一些企业会将这些数据卖给广告商。因此,你有必要准确了解AI工具将如何使用或处理其用于主要任务的源代码或其他私有数据。
你的输入能够用于模型的训练任务吗?人工智能模型的持续训练是模型所有企业以及模型训练人员非常关注的任务。例如,模型所有企业往往不希望广告商过多介入其模型训练环节,以达到免费的广告推送的目的。
结果的准确度是多少?ChatGPT最致命的缺点是其结果的不准确性。它在生成谎言和真理方面表现都很突出;这被称为AI幻觉。了解人工智能可能产生错误的方式和场景,有助于在AI工具发生错误时进行管理。
除此之外,人工智能所有企业和开发者会存在自己的一系列安全问题。这些新的担忧包括对人工智能训练模型的威胁,这些威胁可能会破坏其结果,并泄露有关模型运行方式的专有信息,以及可能会破坏模型生成结果的质量。此外,人工智能模型必须通过API、Web访问、移动应用程序和其他需要安全构建的应用程序与传统世界进行交互。
除一般问题外,开发人员在使用AI工具时还必须提出其他方面的问题,如使用AI安全扫描程序,以便管理软件开发过程中引入的风险。
AI工具是否适合应用于此类场景?了解人工智能不擅长什么是十分关键的。例如,如果一项任务可以细分为“根据学习规则做出决定”或“编写符合学习规则的内容”;那么,人工智能通常很擅长此类任务。如果问题的变化超越此范围,人工智能可能会表现得很糟糕。
如果AI工具出现错误,该采取什么保护措施?千万不要在你的过程中引入一个单一的失败点,尤其是一个可能产生幻觉的失败点。推荐的做法应当是,依靠与深度防御相关的传统做法,或管理风险的方法——即系统中的一层产生了问题,下一层也会捕获它。
审查工具结果需要如何进行监督?其实这是一个旧事重提的问题。传统的问题日志捕获方案通常分为两部分:第一个是获取重要事件的数据;第二个是审核日志。在人工智能进一步成熟,其缺陷得到理解或缓解之前,人类仍需要保持对于循环的控制。
如今,越来越多的开发人员“雇佣”ChatGPT来编写源代码。初步报告显示,ChatGPT能够用多种编程语言编写源代码,并且能够流利地使用所有常见的语言。由于当前这个测试版的训练和模型还存在一定的局限性,所以它产生的代码并不总是完美的。它通常包含可以改变软件运行方式的业务逻辑缺陷、可能会混合不同版本软件的语法错误以及其他看似人性化的问题。
大致上来看,ChatGPT仅是一个初级程序员。那么,谁会成为它的上级?
换句话说,ChatGPT也就是一个初级开发人员水平。因此,当使用这个初级开发人员编写的代码时,必须考虑如何管理它:
谁将成为其上级,以保障其编写代码的整体效果?初级开发人员通常都需要高级开发人员的协助。每一行代码都必须经过测试,有些代码必须修复。然而,有报告表明,这种校对过程比从头开始编写代码更加耗时、更加复杂。
它是将训练代码注入还是重新混合到代码库中?一个更隐蔽的威胁是,有时像GitHub Copilot这样的人工智能机器人会产生源代码,完美地复制训练数据中的代码块。因此,需要利用反剽窃工具来确保许可证风险得到管理。
AI工具从哪里获得训练数据?一个人工智能模型的能力水平与它的训练数据密切相关。如果AI使用旧的或不正确的代码进行训练,那么它将产生旧的和不正确的结果。
引擎托管在哪里?分析源代码的AI机器人需要将源代码整合到其相应的处理设备中。在离开公司管控后,应特别考虑如何保护、使用和处置数据。
无论如何,2022年12月发布的ChatGPT预示着软件开发的新时代。关注这类工具的变化而不是被它们击败是很重要的。在采用这些新工具时要明确,事情变化越多,就越该保持不变:预防安全事件总比发现意外要好。
相关文章:

ChatGPT能胜任高级程序员吗?
与开发人员信任的其他软件开发工具不同,AI工具在训练、构建、托管和使用方式等方面都存在一些独特的风险。 自2022年底ChatGPT发布以来,互联网上便充斥着对其几乎相同比例的支持和怀疑的论调。不管你是否喜欢它,AI正在逐步进入你的开发组织。…...

effective c++ item 25-29
item25:自定义swap函数 namespace std{template<typename T>void swap(T& a, T& b){T temp(a); // T要满足拷贝构造和拷贝赋值a b;b temp; } }1、Pimpl 2、自定义swap item26:尽可能延后变量的定义 case 1: temp j; for(int i 0; i < n; …...

MasterCAM实体旋转命令相关几个问题:曲线相交于边缘等
MasterCAM版本:2022 目的:通过旋转画杯子边缘主体 内外环直径分别是:56、60mm 命令:实体 - 旋转 问题: 一、处理实体期间错误parasolid(r) kernel 界面错误PK 错误代码:942-曲线相交于边缘 对应参数&a…...

p标签需要设置宽高吗?不用
Dusk: # 引用补丁,开头必须以 -javaagent: 开头,后面跟着补丁的绝对路径(可根据你实际的位置进行修改),注意路径一定要填写正确,且不能包含中文,否则会导致 IDEA 无法启动-javaagent:D:/ja-netfilter/ja-ne…...

Andorid 事件分发机制案例实操与解析
文章目录为什么要理解Android事件分发机制?滑动冲突类问题我们以什么开始?代码如下:activity xml 代码:Activity代码:item_user.xml代码修改后代码如下:Activity xmlactivity代码item_gift.xml问题出现了An…...

Git 版本控制/项目迭代
一、Git的作用/为什么要进行版本控制? 什么是项目迭代? 搞开发的时候我们不是一次性就做好平台的所有功能,而是先上线一个功能差不多的版本让用户用着,然后不断迭代、修改,上线新的版本,所以一个项目就会…...

智慧农业大数据项目建设方案
智慧农业大数据项目建设方案 目录 项目概述.................................... 6...

【数据结构专栏】动态扩容顺序栈详解
💌 博客内容:顺序栈的原理详解 😀 作 者:陈大大陈 🚀 个人简介:一个正在努力学技术的准前段,专注基础和实战分享 ,欢迎私信! 💖 欢迎大家:这…...

Linux命令·ifconfig
许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改。Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config)。通常需要以root身份登录或使用sudo以便在Linux机器上使用ifconfig工具。依赖于ifconfig命令中使…...

大器晚成我服刘邦,48岁才开始创业
读史使人明智,周末放下手机,静下心来读点人文历史。大器晚成我最佩服刘邦,48岁才开始创业 。在此之前,他是一个出身平凡的农民,早年曾多次失败和受挫。刘邦最后能够战胜项羽,常常让人觉得匪夷所思ÿ…...

AndroidStudio快捷键
动态演示:https://blog.csdn.net/weixin_67276852/article/details/124159843?spm1000.2115.3001.6382&utm_mediumdistribute.pc_feed_v2.none-task-blog-hot-11.pc_personrec&depth_1-utm_sourcedistribute.pc_feed_v2.none-task-blog-hot-11.pc_personre…...

机械硬盘的工作原理
每个磁盘的表面都有高速扫过的记录磁头。 每个磁盘上都覆盖着一层薄薄的微小的磁化金属粒。 数据以一种肉眼无法分辨的形式存在。很多组微小颗粒形成的磁化图案记录形成了数据。每一组,又称之为比特(bit)。 所有微粒都按照自身的磁性排列…...

掌握TypeScript:10个最佳实践提高代码质量
TypeScript 是一种强类型的 JavaScript 超集,提供了很多优秀的工具和语言特性,可以帮助开发者提高代码质量和开发效率。在本文中,我们将介绍 10 个 TypeScript 最佳实践,帮助初级和中级的 Web 前端开发工程师更好地使用 TypeScrip…...

【面试】Kafka面试题
文章目录1、Kafka是什么?2、partition的数据文件(offffset,MessageSize,data)3、数据文件分段 segment(顺序读写、分段命令、二分查找)4、负载均衡(partition会均衡分布到不同broker…...

【C++学习】map和set的使用
🐱作者:一只大喵咪1201 🐱专栏:《C学习》 🔥格言:你只管努力,剩下的交给时间! map和set的使用🌈关联式容器⚡键对值🌈set⚡构造函数⚡增删查改🌈…...

企业电子招投标采购系统——功能模块功能描述+数字化采购管理 采购招投标
功能模块: 待办消息,招标公告,中标公告,信息发布 描述: 全过程数字化采购管理,打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力,为外…...

4.6--计算机网络之TCP篇之TCP的连接建立--(复习+深入)---好好沉淀,加油呀
1.TCP 三次握手过程是怎样的? TCP 是面向连接的协议,所以使用 TCP 前必须先建立连接,而建立连接是通过三次握手来进行的 1.一开始,客户端和服务端都处于 CLOSE 状态。先是服务端主动监听某个端口,处于 LISTEN 状态 2…...

Pytorch 数据产生 DataLoader对象详解
目录 1、Pytorch读取数据流程 2、DataLoader参数 3、DataLoader,Sampler和Dataset 4、sampler和batch_sampler 5、源码解析 6、RandomSampler(dataset)、 SequentialSampler(dataset) 7、BatchSampler(Sampler) 8、总结 9、自定义Sampler和BatchSampler 研…...

Linux文件系统介绍
一、简介 文件系统就是分区或磁盘上的所有文件的逻辑集合。 文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。 不同Linux发行版本之间的文件系统差别很少,主要表现在…...

Java高频必背面试题基础篇02
一、Java 语⾔中关键字 static 的作⽤是什么? static 的主要作⽤有两个: (1)为某种特定数据类型或对象分配与创建对象个数⽆关的单⼀的存储空间。 (2)使得某个⽅法或属性与类⽽不是对象关联在⼀起…...

蓝桥杯—stm32g431rbt6串口中断和定时器输出pwm学习
目录 串口中断 定时器中断 输出pwm 串口中断 配置异步模式,使能中断,选择波特率。 串口接收中断开启 HAL_UART_Receive_IT(&huart1,data, 3); 回调函数: void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if(huar…...

zed驱动的安装 及 遇到问题 及 ros标定
安装zed相机驱动 zed驱动官网 下载.run文件 chmod x ZED_SDK_Ubuntu18_cuda10.2_v4.0.1.zstd.run #换自己的版本号 ./ZED_SDK_Ubuntu18_cuda10.2_v4.0.1.zstd.run #换自己的版本号当遇到 zstd: not found … Decompression failed. 重新安装&a…...

打车代驾顺风车货车租运系统开发功能(司机端)
随着社会经济水平的提高,人们对于打车代驾服务要求也不断提高,更多的人愿意在手机上通过打车代驾APP小程序软件来预约叫车,选择打车代驾服务。打车代驾软件开发是基于广大用户的要求而产生的新型服务方式,满足大众预约出行需要&am…...

CT剂量及描述方法详细介绍
CT剂量和普通放射剂量的区别 普通放射剂量分布区域大,但一般集中在皮肤入射表面,用患者入射表面剂量(ESD)来表征射线剂量; CT剂量分布在窄带内,边缘与中心分布不均匀;且属于多层扫描; 1、在理想…...

Spring Boot应用优雅关闭
POM依赖 在需要实现优雅关闭的应用工程中增加下述依赖:部分启动器默认就依赖了Actuator启动器,如:spring-cloud-starter-netflix-eureka-server,那么下述依赖是可以省略的。 <dependency><groupId>org.springframewo…...

【实用技巧】7-Zip如何加密压缩文件?
7-Zip是一款免费且实用的压缩软件,除了提供多种压缩格式,还可以对压缩文件进行加密保护,加密后只有输入密码,才能打开压缩包里的文件。如果不知道怎么操作的小伙伴,就来看看小编的分享吧。 操作方法: 1、…...

Anaconda详细安装使用
如果想在conda里面删除某个环境,可以使用 conda remove -n name --all 来删除。 其中 conda info --envs 是查看环境,切换环境 activate base 。 Anaconda Anaconda | The Worlds Most Popular Data Science PlatformAnaconda is the birthplace of Pyt…...

git放弃修改,强制覆盖本地代码
在使用Git的过程中,有些时候我们只想要git服务器中的最新版本的项目,对于本地的项目中修改不做任何理会,就需要用到Git pull的强制覆盖,具体代码如下: $ git fetch --all $ git reset --hard origin/master $ git pu…...

大数据自我进阶(数据仓库)-暂未完全完成
什么时候需要数据仓库? 1.当决策者要进行战略分析或者展示统计的需求。 2.并且数据量非常庞大,而且各个都是数据孤岛。 当满足这2个条件后,就需要搭建数据仓库。 数据仓库的第一步(数据清洗) 为了能准确的分析&am…...

Springmvc中跨服务器文件上传
既然跨服务器,就要开启两个服务器,这里使用两个Tomcat代表两个服务器 文章目录 1.建立图片要上传到的服务器:FileUpload 2.建立上传图片的服务器:Tomcat 9.0.24 3.在Tomcat 9.0.24上部署文件上传的项目,写代码 3.1导入…...