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)使得某个⽅法或属性与类⽽不是对象关联在⼀起…...
XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...
Linux部署私有文件管理系统MinIO
最近需要用到一个文件管理服务,但是又不想花钱,所以就想着自己搭建一个,刚好我们用的一个开源框架已经集成了MinIO,所以就选了这个 我这边对文件服务性能要求不是太高,单机版就可以 安装非常简单,几个命令就…...
水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关
在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...
在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例
目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码:冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...
