行走的代码生成器:chatGPT要让谷歌和程序员“下岗”了

article/2024/12/22 9:01:01

就在本周,OpenAI 又发布了一个全新的聊天机器人模型 ChatGPT,作为 GPT-3.5 系列的主力模型之一。

图片来源:OpenAI

更重要的是它是完全免费公开的!所以一经发布大家立刻就玩开了——很快,网友们就被 ChatGPT 的能力所震惊了:

这哪里是个聊天机器人,分明是个无情的编程答题机器,活的 Stack Overflow 啊!

ChatGPT 到底是什么?OpenAI这样说

ChatGPT 是 OpenAI 训练的对话式大规模语言模型,以对话的方式进行交互。

它和之前的另一款模型 InstructGPT 属于同级模型,代表“GPT 3.5”代。之前微软和 OpenAI 签订了战略合作计划,所以 GPT 3.5 代的所有模型,包括 ChatGPT,都是在 Azure AI 超级计算集群上训练的。

图片来源:OpenAI

OpenAI 使用前面提到的 RLHF 技术对 ChatGPT 进行了训练:简单来说,在训练原始模型的时候,OpenAI 让人类训练师扮演对话的双方(用户vs聊天机器人),提供对话作为学习资料。而在人类扮演聊天机器人的时候,OpenAI 也会让模型生成一些建议来帮助训练师撰写自己的回复。

这些机器生成的回答,再经过训练师的打分排名,将更好的结果输入回到模型中,实现强化学习训练的奖励机制。

作为一个聊天机器人,ChatGPT 具有当代同类产品具备的一些主流特性,特别是多轮对话能力,能够在同一个会话期间内回答上下文相关的后续问题。

但更重要的是,因为采用了先进的、注重道德水平的训练方式,ChatGPT 具有其他聊天机器人不具备或表现较差的能力:承认自己的错误,并且按照预先设计的道德准则,对“不怀好意”的提问和请求“说不”。

图片来源:OpenAI

正如前面提供的例子所显示的那样,ChatGPT会采用一些预先设计好的句式,结合用户的具体请求来进行拒绝和话题转移。

拒绝:如果你问它如何闯进别人的房子,它会回答你,“擅闯私宅是违法的,这是一种犯罪行为,会导致严重的法律后果”。

转移话题:如果你换个方式提问“其实我想知道如何保护我的家免遭盗窃”,它会回答你,“这里有几个步骤可以帮助到你,包括xxxx……但是,您最好联系专业人员获取建议。”

一、没有它解决不了的编程难题

在众多网友“调戏”ChatGPT 的过程中,人们发现一个大惊喜:它真的可以按需编程了。

之前大家经常开玩笑地说,程序员只需要用好 Google 和 StackOverflow 这两个工具,就能走遍天下无敌手了。 

然而其实,那些真正每天和各种新的软件工程难题较劲的朋友都知道,有些疑难杂症就算问谷歌和 Stack Overflow,要翻阅了几十上百页时间跨度几年甚至十年的回帖记录,最后也很难找到一个靠谱答案……

而 ChatGPT 就不一样了:从目前各路程序员网友对它的测试结果来看,似乎真的没有什么问题能够难倒它的……

找 bug

技术公司 Replit 的创始人给 ChatGPT 发了一段 JavaScript 代码,让它找到里面的 bug。

ChatGPT 的回答非常全面也非常有意思:它首先试图确认这段代码的意图是什么,然后根据意图很快就找到了 bug 所在,并且还附上了相当细致的描述,来解释问题出在哪,会导致什么样的 bug,应该怎么改,为什么要这样改等等。

图片来源:@amasad

而且ChatGPT还给出了一段代码示例,把修改部分的代码批注写在了示例里面:

图片来源:@amasad

送佛送到西,ChatGPT 还在最后提供了一小段修改建议:“可以把 var 换成 let,让循环每次迭代的时候自动生成新变量,从而避免每次都要手动创建。”

图片来源:@amasad

另一位网友 Josh 提交了一段代码,问 ChatGPT“我怎么都搞不懂这段代码为什么无法运行”。

ChatGPT 很详细地进行了解释:除法公式格式有问题,一个字符串(a)无法被一个数字(1)除,因为被除数和除数应该都是数字。

图片来源:@jdjkelly

但这还没完。ChatGPT 再次试图理解原代码的意图,然后给 Josh 提供了一些修改的建议:如果想让除法处理非数字,则需要给函数加入额外的逻辑,让它能够检查实参的类型是什么,只有在两边都是数字的时候才运行。如果有一边不是数字,就返回错误或者一个默认值。

图片来源:@jdjkelly

帮你查文档

硅星人试了下面这段命令:

“生成一段 Python 代码,使用 Google Cloud API 来读取一张图片的内容,并且输出其中的情绪。” (Generate Python code that uses GCP to read an image and get the sentiment.)

ChatGPT 回复了一段代码,并且同样通过批注的方式注释了每一句代码的作用是什么。

它还提醒我:

1)如果要运行这些代码的话必须要先设立好 GCP 项目并且安装 Python 版本的 Cloud Vision API。

2)不能直接把代码复制粘贴进去,而是要设定好图片文件的路径。

3)如果有任何不明白的,ChatGPT 还直接提供了 GCP 官方文档的链接。

图片来源:硅星人

通过这个示例,ChatGPT 证明了自己还拥有自动搜集云服务 API 并且将其整合到代码当中以供调用的能力。

和上一个代替 Stack Overflow 的例子一样,这样的能力,能够极大地省去工程师查资料、翻文档、找到正确调用方式所用的时间,显著提高编程工作的效率!

写数学公式

去年我们在报道 OpenAI API(GPT-3)的时候曾经提到过,这个语言模型不仅能够生成文字,任何通过文字数字表达并且具有逻辑的字段它都能生成——数学公式,其实也是这样的字段。

网友 Josh 把同一个问题发给了谷歌和 ChatGPT:“如何用 LaTeX 格式来表达一个微分方程?”

谷歌给出的第一个结果,来自一个名不见经传的的 WordPress 博客网站,而且结果是2013年的,写得也并不是十分清晰,解释得也糊里糊涂的。

图片来源:@jdjkelly

而ChatGPT给出的答案,不仅呈现方式更加好看,解释的也更加全面,甚至还提供了多种不同的方案:

图片来源:@jdjkelly

另一位数学家 Christian Lundkvist,则给 ChatGPT 出了那道困扰数学界三个多世纪的数论难题:证明费马大定理。

ChatGPT 也用相当精炼的方式,将证明过程通过文字+ LaTeX 公式写了出来。

全证明过程略,图片来源:@ChrisLundkvist

虽然看起来连最顶级的数学难题都难不倒 ChatGPT,Lundkvist 还是表示,自己在和 ChatGPT 玩耍的过程中发现,这家伙对的时候对,错的时候却也对自己相当自信。

“我认为这样的工具对于找到解决问题的途径具有一定的启示意义,但是我们在现阶段绝对不能完全依赖它返回的结果。”

(在回答“一条直线与圆有多少个交点”这个问题时,ChatGPT 就错误地以为当直线穿过圆心时会有无限个交点。)

图片来源:@ChrisLundkvist

发起黑客攻击?

下面这个例子更厉害了:用户BrandonDolan-Gavitt希望ChatGPT能够帮他找到一段代码当中的错误。

但实际上,这段代码的真实意图是对一个 32 位 x86 Linux 的系统,进行缓冲区溢出(buffer overflow)攻击。

图片来源:@moyix

这次 ChatGPT 似乎并没有发现用户的恶意(根据官方说明,ChatGPT 会拒绝回答带有恶意的问题),然后直接按图索骥给他把代码的问题找到了,告诉他应该如何修改代码。甚至,它还在后续回答中手把手地教用户该如何正确地触发缓冲区溢出……

图片来源:@moyix

Dolan-Gavitt 补充道,其实 ChatGPT 在回答问题的过程中也出现了错误,比如建议用户修改输入字符数的时候说错了(说成了32,应该是36)。

——但是,当用户告诉它“好像有点不对劲”之后,ChatGPT立刻就明白了用户的意图,表示自己之前理解错了,然后提供了正确的答案……

图片来源:@moyix

虽然缓冲区溢出属于非常初学者的攻击方式,底下的网友还是对于 ChatGPT 的能力表示佩服……

“我给它发了一段汇编语言代码,让它告诉我里面有什么漏洞,可以怎样利用——结果它还真的回答我了。所以它不光能够理解和输出代码,还可以用二进制来表达,并且还能从中找到漏洞?这真让我有点担心了……”

图片来源:@Sim_Boyer

帮你“转码”

前面举的这些例子,很多都是适用于已经具备编程能力的专业人士。

不过,也正是因为 ChatGPT 写代码改代码的能力实在太强了——对于那些想要“转码”的外行朋友来说,更是能够带来巨大的帮助。

写一些简单的代码,比如“做个登陆UI”,之类的,之前的 OpenAI API(GPT-3)已经信手拈来了。这一次在 ChatGPT 上,当然也是轻松拿下。

下面这个视频展示了让 ChatGPT 生成一个带有电子邮箱、密码输入框,以及登陆按钮的登陆界面。ChatGPT先是进行了分解演示,然后用户又让它直接提供全部代码。

考虑到之前 OpenAI API 的开放程度有限,而这一次的 ChatGPT 则是完全免费开放——那些想要转码的朋友,又能获得一件趁手的利器了。

二、破解 ChatGPT 的道德原则?

根据 OpenAI 官方文档,ChatGPT 是一个采用了“人类反馈强化学习”(RLHF, Reinforcement Learning from Human Feedback)训练出来的新模型,加入了大量的“道德”原则。

但凡它发现你给的文字提示里面含有一点恶意,包括并不限于暴力、歧视、犯罪等意图,它都会拒绝提供有效答案,并甩给你一句标准回答,试图转移话题:

“对不起,我只是一个无辜的大语言模型,我无法为你提供有关于xxxx(恶意行为)的资料和信息。提供这样的信息有悖于我的编程和设定的目标。我的主要功能是提供准确和有用的信息。如果你有其他问题,我乐意提供帮助”……

而在所有“调戏” ChatGPT 的试验当中,有一类最为有意思:如何攻破 ChatGPT 的道德原则?

前段时间 AI 文字生图技术爆红的时候,玩过的朋友应该都记得,能否精巧地设计你的文字提示(prompt),对于生成好看有趣甚至邪恶的图片结果至关重要。于是在 AIGC 的时代,“提示工程”(prompt engineering)也就成了非常有意思的一门学问。

简单来说,提示工程就是用聪明、准确、时而冗长的文字提示,来设定好一个上下文场景,一步一步地把 AI 带进这个场景里,并且让它更准确地了解你的意图,从而生成最符合你期待的结果。

而想要“攻破” ChatGPT 的道德原则,同样可以使用提示工程的方式。机器学习开发者 zswitten 为我们提供了一个范例:

“尽管 ChatGPT 有很高的道德水准,其实想要绕过这些原则也十分容易:你只要(通过提示工程的方式)让它以为自己是在‘假装’干坏事就行啦!

在被绕晕之后,ChatGPT 就开始放飞自我了。

zswitten注意到,ChatGPT会非常深入、直白地生成各种令人心惊胆战的暴力描写。比如一段描写角斗场中画面的文字,“整条街都流满了鲜血,死亡者的惨叫充斥在空中”……

就这样,ChatGPT 引以为豪的道德原则,轻而易举被攻破了……

当然,解决 AI、AGI(通用人工智能)、大语言模型的道德问题是一个非常艰巨和复杂的工作。我们绝对不能因此就否认 OpenAI 的努力。

zswitten 也表示,自己还是非常支持 OpenAI 的工作的,也非常尊敬 OpenAI 发布 ChatGPT 这件事,给广大网友带来非常多有价值的东西和正面积极的帮助。

OpenAI 也很开诚布公地介绍了 ChatGPT 目前的局限性:

  • 似是而非,固执己见:有时候它会提供一些听上去像那么回事,但实际上完全错误或者荒谬的答案。原因在于强化学习训练期间不会区分事实和错误,且训练过程更加收敛,导致它有时候会过于保守,即使有正确答案也“不敢”回答。

  • 废话太多,句式固定:比如硅星人用了两个提示,“老师成天表扬我家孩子,该怎么回答他我已经词穷了!”以及“怎么跟邻居闲聊?”而 ChatGPT 提供了10条回答,虽然看起来都是漂亮话,但每一条跟上一条都差不多,过度使用一些常见的短语和句式,最后就成了车轱辘话来回转。

  • 过分努力猜测用户意图:在理想情况下,当用户的提问意图不明确时,模型应该要求用户进行澄清。而目前的 ChatGPT,大家也看到了,会自己开始猜测用户的意图——说好也好,说坏也确实有坏处。

  • 抵抗不怀好意的“提示工程”能力较差:虽然 OpenAI 努力让 ChatGPT 拒绝不适当的请求,但它有时仍然会响应有害指令,或表现出有偏见的行为。为了解决这个问题,OpenAI 也在 ChatGPT 的用户界面里加入了审核举报的功能,用户如果发现不健康不安全的内容,可以直接一键举报!

OpenAI 还为此举办了一个反馈竞赛,任何有价值的举报都有机会赢取 OpenAI API 积分(价值500美元)。

——既能跟 AI 逗趣,提交反馈还有奖金拿,何乐而不为呢?


http://chatgpt.dhexx.cn/article/WURwmbuL.shtml

相关文章

【ChatGPT】ChatGPT 能否取代程序员?

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员,2024届电子信息研究生 目录 前言: ChatGPT 的优势 自然语言的生成 文本自动生成 建立了更人性化的人机交互 ChatGPT 的局限性 算法的解释能力较差 程序的可实现性较差 缺乏优化和质量控制 程序员相较于 …

ChatGPT或许很强大,但还抢不走你的饭碗

ChatGPT变得家喻户晓是在2022年的11月,当时OpenAI正式对外推出了GPT3.5。 但实际上,这场AI革命的战争早已开始打响。过去十年间,谷歌、 脸书、亚马逊、苹果和微软这些硅谷有名有姓的科技巨头纷纷开启AI“军备竞赛”,先后成立专门…

昨天,我被ChatGPT抢饭碗了!

分享人:Mr.K 作者:ChatGPT 昨天,K哥发了一条朋友圈:我用ChatGPT写的演讲稿,跟企业家同学们分享《AIGC如何赋能企业》。 不要再说AI离你还很远,AI代替人类工作还早。抛弃你的从来不是时代,而是…

危!ChatGPT一出,这10大职业可能先丢饭碗

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇 来源丨新智元 https://mp.weixin.qq.com/s/AY8qtV9c14sXiZ8juGZ9Pw 新智元报道 编辑:David 【新智元导读】ChatGPT一出,很多人害怕自己的工…

【ChatGPT】你会是被AI抢饭碗的那类人吗?

文章目录 前言一、AI替代“基础性工作”,二、AI没有魔法:人类做不到,它也做不到三 人类的恐惧:被替代、被超越四 AI让语言返祖,小语种与文化“濒危灭绝”五 人类的未来,教育何去何从?总结 前言 …

“拿下”谷歌124万年薪offer,ChatGPT将取代程序员?

#ChatGPT会抢谁饭碗# #ChatGPT会不会使基层程序员失业# .... ChatGPT横空出世直接霸屏各大平台热搜榜单,刷爆朋友圈,引发全球ChatGPT概念股集体疯涨。ChatGPT推出仅2个月,它的活跃用户已破1个亿,在1月份的访问量约为5.9亿。成为史…

ChatGPT面世具有何意义?ChatGPT会不会取代程序员?

本篇文章给大家谈谈ChatGPT面世具有何意义一个有趣的事情,以及ChatGPT会不会取代程序员一个有趣的事情,希望对各位有所帮助,不要忘了收藏本站喔。 1、chatgpt是什么? chatgpt介绍如下: ChatGPT是由人工智能研究实验室OpenAI在202…

最近大热的 chatGPT 会取代你的工作吗?

ChatGPT 由于其高效的自然语言处理能力,它最容易取代的领域可能是: 文本分类:ChatGPT 可以用作文本分类系统,对文本进行分类 聊天机器人:ChatGPT 可以制作聊天机器人,提供人性化的交互体验 文本生成&…

ChatGPT这是要抢走我的饭碗?我10年硬件设计都有点慌了

前 言 呃……问个事儿,听说ChatGPT能写电路设计方案了,能取代初级工程师了?那我这工程师的岗位还保得住么?心慌的不行,于是赶紧打开ChatGPT问问它。 嘿,还整的挺客气,快来看看我的职业生涯是否…

普通人是否能从ChatGPT中分一杯羹?

ChatGPT3.0刚刚推出,最开始的时候,人们只是将ChatGPT看作一个很会聊天的机器人,无论问题多么天马行空,它的答案看上去都有理有据。后来,像打开潘多拉魔盒一样,很多人开始拿它编大纲、撰写文案、编代码、创作…

ChatGPT 这个风口,普通人怎么抓住?

最近在测试ChatGPT不同领域的变现玩法,有一些已经初见成效,接下来会慢慢分享出来。 今天先给大家分享一个,看完就能直接上手的暴力引流玩法。 所需工具: 1)ChatGPT(最好是plus版,需要保证快速…

别担心,ChatGPT还抢不动BI工程师的饭碗!

ChatGPT火了,在发布仅仅五天后就完成了Facebook耗时10个月才完成的目标——用户超过100万。指数级别的算力数据让AI产生了质变,不再像之前一样只是昙花一现。我们要知道,人之所以比动物聪明,是因为人脑千万亿级别的神经元和神经突…

ChatGPT混战,谁会拥有话事权?

作者 | 辰纹 来源 | 洞见新研社 “未来十年,AIGC(人工智能自主生产内容)将颠覆现有内容生产模式。可以实现以十分之一的成本,以百倍千倍的生产速度,去生成AI原创内容。” 不得不说李彦宏对技术趋势的判断还是非常准的…

ChatGPT 抢不走程序员饭碗的原因找到了?最新研究:它自动生成了 21 个程序,16 个有漏洞...

整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 一个好消息与一个坏消息。 好消息是,继 ChatGPT、GPT-4 等产品之后,代码生成工具的队伍再添新员。Google 近日宣布 Bard 可以辅助软件开发者完成编程和软件开发任务,…

ChatGPT横空出世,人们还能保住“饭碗”吗?

ChatGPT横空出世,人们还能保住“饭碗”吗? “ChatGPT会给我们的生活带来哪些改变?”十三届全国政协委员、第五空间信息技术研究院院长谈剑锋在与ChatGPT的聊天框中输入了一个问题。 “可以帮助解决一些复杂的问题,并使我们的日常…

能取代90%人工作的ChatGPT到底牛在哪?

📣📣📣📣📣📣📣 🎍大家好,我是慕枫 🎍前阿里巴巴高级工程师,InfoQ签约作者、阿里云专家博主,一直致力于用大白话讲解技术知识 &#x…

听说,ChatGPT 要跟打工人们抢饭碗,是真的吗?

最近,ChatGPT真的是彻底火出圈了! 这个由 OpenAI 开发的大型语言模型,推出仅仅5天,注册用户就高达100万;推出仅两个月,月活已破亿大关。 其增长速度让曾创下无数增长奇迹的TikTok都望尘莫及,不…

ChatGPT真的会取代程序员吗?

程序员这两年被碰的瓷儿可不少啊,这架势不像是AI抢了程序员的饭碗,倒像是程序员抢了AI的饭碗一样...... 前两年低代码出来了,你们说程序员要被取代了,惹得大神们一顿输出;去年元宇宙出来了,你们又说程序员…

ChatGPT会抢项目经理饭碗?飞项可不这么认为

ChatGPT的火爆,让AI替代人类的言论,又一次甚嚣尘上。有人说ChatGPT注定会改变这个世界,这改变主要聚焦三个方面:有利的是帮助天才和独狼加快创新,不利的是削减工作岗位需求、制造更多的垃圾信息。 比如,Cha…

为什么说 ChatGPT 抢不走程序员的饭碗!

整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 一个好消息与一个坏消息。 好消息是,继 ChatGPT、GPT-4 等产品之后,代码生成工具的队伍再添新员。Google 近日宣布 Bard 可以辅助软件开发者完成编程和软件开发任务,…