૩
欢迎关注“新浪科σ技”的Κ微信订阅号:techsina
” 欢迎关注“新浪科技ð”的ો微信订阅号:techsina
程序员在让机器取代自己的路ê上越走越远了◊……
∂Ν Æ——
文|杜晨 编辑|VickĊb;yXiaμo
来源:ƒ硅“星Ê人
ðOpe⊄nAI 的超大规模语言模型σ GPT 有多厉害,之前硅星人已经写过很多次了。
就在本周,ਭOpe¤nAI 又发布了一个全新的聊天机器人模型 ChatGPT,作为 GPT-3.5 Š系列的主力模型之一。
更重要的是它是◈完Χ全免费公开的!所以一经发布大家立☺刻就玩开了——很快,网友们就被 ChatGPT 的能力所震惊了:
¸ 这哪里是个聊天机器人,分明是¹♣个无情的编程答题机器,活的 Stack Overflow 啊!
| CⓡhatšGPT 到底是什么?O→penAI这样说
ChatૌGPT 是 OpenAI 训练的对话式大ñ规模语言模型,以对话的方ੜ式进行交互。
它和之前的另一款模型 InstructGPÍT 属于同级模型,代表“GPT 3.5”ા代。之前微软和 OpenAI 签订了战略合作计划,所以 GPT 3.5 代的所有模型,包括 ChatGPT,都是在 Azure AI 超级计算集群上训练的。
OpenAI 使用前面提到的 RLHF 技术对 ChatGPT 进行了训练:简单来说,在训练原始模型的时候,OpenAI 让人类训练师扮演对话的双方(用户vs聊天机器人),提供对话作为学习资料。而在人a1;类扮演聊天机器人的时候,OpenAI 也会让ਨ模型生成一些建议来帮助训练师撰写自♦己的回复。
这些机器生‾成的回答,再经过训练师的Ø打分排名,将更好的结果输入回到模型ૣ中,实现强化学习训练的奖励机制。
作为一个聊天૦机器人,ChatGPT࠹ 具有当代同类产品具备的一些☜主流特性,特别是多轮对话能力,能够在同一个会话期间内回答上下文相关的后续问题。
但更重要¶的是,因为采用了先进的、注重道德水平的训Β练方式,ChatGPT 具有其他聊天机器人不具备或表现较差的能力:承认自己的错误,并且按照预先设计的道德准则,对“不怀好意”的提问和请求“说不”。
正如前面提供的例子所显示的那样,Chat†∧GPT会采用一些预先设计好的句式,结合用户的具体请求来进行拒绝和话题转移。
拒ù绝:如果你问它如何闯ƒ进别↔人的房子,它会回答你,“擅闯私宅是违法的,这是一种犯罪行为,会导致严重的法律后果”。
转移话题:如☼果你换个方式提问“其实我Ú想知道如何保护我的家免遭盗窃”,它会回答你,“这里有几个步骤可以帮助到你,b3;包括xxxx……但是,您最好联系专业人员获取建议。”
| ⊥没有它bd;解决不了的编程难题
在众多网友“调વ戏” Ch≥atGⓑPT 的过程中,人们发现一个大惊喜:它真的可以按需编程了。
之前大家经常开玩笑地说,程序员只需要☏用好 Google 和 ∅Stack Overflow 这两个工具,就能走遍天下无敌手了。
然而其实,那些真正每天和各种新的软件工程难题较劲的朋友都知道,有些疑难杂症就算问谷歌和 Stack Od3;verflow,要翻阅了几十上百页时间跨度几年甚至十年的回帖记录,最后也很难找到一个靠谱答案ó……
而 ÑChatGPT 就不一样了:从目前各路程序员网友对它的测试结果来看,似乎真的没有什æ么问∼题能够难倒它的…
c8;☏
"找 bug
技术公司 Replit 的创始人给 ChatGPT 发了一段 JavaScrફi઼pt 代码,让它找到બ里面的 bug。
ઐChatGPT 的回答非常全面也非常有意思:它首先试图确认这段代码的意图是什么,然后根据意图很快就找到了 bug 所在,并且还附上了相当细致的描述,来解释问题出在哪,会导致什么样的 bug,应该怎么改,为¸什么要这样改等等。
而且ChatGPT还给出了一段代码示例ª,把修改部分的代码批注写在了示例里面:
送佛送到西,ChatGPT 还在最后提供了一小段修æ改建议:“可以把 var 换成 let,让循环每次迭代的时候自动生½成新变量,从而避免每次都要手动创建。”
另一位网友 Josh 提交了一段代码,问 ChatાGPT“我Ô怎么都搞不懂这段代码为Ċc;什么无法运行”。
ChatGPT 很详细地进行了解释:除法公式格式有问题,一个字符串(a)无法被一个数字(1)除,因为被除数和除数∫应该都是数字Φ。Ξ
但这还没完。¼ChatGPT 再次试图理解原代码的意图,然后给 Josh 提供了一些修改的建议:如果想让除法处理非数字,则需要给ડ函数加入额外的逻辑,让它能够检查实参的类型是什么,只有在两边都是数字的时候才运行。ઘ如果有一边不是数字,就返回错误或者一个默认值。
ੇ 帮你查☏文ણ档
♠ 硅星人试了下面这κ段→命令
“生成一段 Python 代码,使用 Google Cloud ŅAPI 来读取一张图片的内容,并Ąf;且输出其中的情绪。” (Generate Python code that usesĊb; GCP to read an image and get the sentiment.)
Î
ChatGPT 回复了一段代码ˆ,并且同样通过批注◙的方式注释了每一句代码的作用是什么。
ν 它还提醒我 :
1)如果要运行这些代码的话必须要先设立好 GCP 项目并且安装 Python 版α本的 ÅCloud Vision API。
2)»不能直接把代码复Ø制Ê粘贴进去,而是要设定好图片文件的路径。
3)如果有任ćb;何不明白的,ChatGPT 还直接提供了 GΝCP 官方文档的↵链接。
通过Ü这个示例,ChatGPT 证明了自己还拥有自动搜集云服务 API 并且▥将其整合到代码—当中以供调用的能力。
和上一个™代替 Stack Overfl″ow 的例子一样,这样的能力ⓡ,能够极大地省去工程师查资料、翻文档、找到正确调用方式所用的时间,显著提高编程工作的效率!
⌊写੧数学公式ω
去年我们在报道 OpenAI API(GPT-3)的时候³曾经提到过,这个语࠽言模型不仅能够生成文字,任何通过છ文字数字表达并且具有逻辑的字段它都能生成——数学公式,其实也是这样的字段。
网友 Josh 把同一个问题发给了谷歌和 Cha∨tGPT·:“如何用 LaTeÁX 格式来表达一个微分方程?”
♡
谷歌给出的第一个结果,来‹◈自一个名不见经传的的 WordPress 博客网站,而且结果是2013年的,写的也并不是十分清晰,解释的也糊里糊涂的。
而▩ChatGPT给出的答案,不仅呈现方૪式更加好看,解释的也更加全面,甚至还提供了多种不同的方案:¥
另一位数学家 ChΚristian Lundkviąc;st,则给 ChatGPT 出了那道困扰数学界三个多世纪的数论难题ã:证明费马大定理。
ChatG’PT 也用相当精炼的方式,શ将证明过程通过文字ñ+ LaTeX 公式写了出来。
虽然看起来连最顶级的数学难题都难不倒 CûhatGPT,Lundkvist 还是表示,自己在和 ChatGPT 玩耍的过程中发现,这家伙对的时候对,错的时候Ï却也γ对自己相当自信。
“我认为这样的工d3;具对于找到解决问题的途径具有一定的启示意义,但是我们在现Ã阶段绝对不能完全依赖它返回的结果。Θ”
(在回答“一条直线与圆有多少个交点”这个问题时,ChatGPT 就错误地以为当直线穿过圆心时¬会有无限个交点。)
⊇ 发起黑客攻击?⊥?
下面这个例子更厉d0;害了:用户BrandonDolan-Gavitt希望ChatGPT能૩够帮他找ਭ到一段代码当中的错误。
但实际上,这段代码的真实意图是⌋对一个 32 位 x86 Linux 的系统,进行缓冲区溢出 (buffer overflow) 攻击。
这次 ChatGPT 似乎并没有发现用户的恶意(根据官方说明,ChatGPT 会拒绝回答带有恶意的问题),然后直接按图索骥给他把代码的问题找到Ηਪ了,告诉他应该如何修改代码。甚至“,它还在后续回答中手把手地教用户该如何正确地触发缓冲区溢出……
Do—lan-Gavitt 补充道,其实 ChatGPT‾ 在回答φ问题的过程中也出现了错误,比如建议用户修改输入字符数的时候说错了(说成了32,应该是36)。
——但是,当用户告诉它“好像有点不对ર劲”之后,ChatGPT立刻就明白了用户的ù意图,表示自己之前理解错了,然后提供了≤正确的答案……
ý 虽然缓⇑冲区溢出属于非常初学者的攻ù击方式,底下的网友还是对于 ChatGPT 的能力表示佩服……
“我给它发了一段汇编语言代码,让它告诉我里面有什么漏洞,可以怎样利用——结果它还真的回答我了。所以它不光能够理解和输出代码ⓦ,还可以用二进制来表达,Ǝ并且还能从中找到漏洞?这真让我有点担心了……”
ࢵ 图片来ⓒ源:@Sξim_Boyer
³ ય帮你“转码ਠ”
前面举的这∗些例子,很多都是适用于已经具备编程能力的થ专业人士。
不过,也正是因为 ChatGPT 写ਗ਼代码改代∫码的能力实在太强了——对于那些想要“转码”的外行朋友来说,更是能够带来巨大的帮助。◈
写Āe;一些简单的代码,比如“做个登࠹陆UI”,之类的,之前的 OpenAI API(GPT-3)已经信手拈来了。这一次在 ChatGPT 上,当然也是轻松拿下。
下面õ这个视频展示了让 ChatGPT 生成一个带有电子邮箱、密码输入框,以及登陆按ⓗ钮的登陆界面。ChatGPT 先是进行了分解演示,然后用户又让它直接提供全部‚代码:
考虑到⁄之前 O♧penAI API 的开放程度有限,而这一次的ઘ ChatGPT 则是完全免费开放——那些想要转码的朋友,又能获得一件趁手的利器了。
§|ƒ →破解 ChatGPT 的道德原则?
根据 OpenAI 官方文档,ChatGPT 是一个采用了“人类反馈强化学习”(RLHF, Reinforcemenਮ░t Learning from Human Feedback) 训练出来的新模型a0;,加入了大量的“道德”原则。
但凡它发现你给的文字提示里面含有一点恶″意,包括并不限于暴力、歧视μ、犯罪等意图,它都会拒绝提供有效答案,并甩给你一句标准回答੧,试图转移话题:
“对不起Ô,我只是一个无辜的大语言模型,我无法为ࣻ你提供有关于xxxx(恶意行为)的资料和信息。提供这样的信息有悖于我的编程和设定的目标。我的主要功能是提供准确和有用的信息。如果你有其他问题,我乐意提供帮助”d3;……
而在所有“调戏” ChatGPT 的试验当中,♬有一类最为有意思:如何攻破 ChatGPT 的道德原则?
前段时间 AI 文字生图技术爆红的时候,玩过的朋友应该都记得,能否精巧地设计你的文字提示(prompt),对于生成好看有趣甚至邪恶的c8;图片结果至关重要。于是在 AIGC 的时代,“提示工程”(prompt engineering) 也就成了非常有意思的一门学问。
简单来说,提示工程就是用®聪明、€准确、时而冗长的文字提示,来设定好一个上下文场景,一步一步地把 AI 带进这个场景里,并且让它更准确地了解你的意ç图,从而生成最符合你期待的结果。
而想要“λ攻破” ChatGPT 的道德原则,同样可以使用提示ਲ਼工程的方式。机器学习开发者 zswitten 为我们提供了一个范例:
Ÿ “尽管 ChatGPT 有很高的道德水准,其实想要绕过这些原则也十分容易:你只要(通过提示工程的方式)让▒它以为自己☼是在‘假装’干坏事就行啦!”
ⓖ 在被绕晕之后,ChatGšPT 就开始放飞自我了。
zswiαtten注意ⓗ到,ChatGPT会非常深入、直白地生成各种令人心惊胆战的暴力描写。
比如下面这样的一段描写角斗场中画面的文字,“整条街都流满ò了鲜血,死亡者的惨叫充斥在空中”……♥
ó Āe;就这样,ChatGPT 引以为豪的道德原则,轻而&#ffe0 ;易举被攻破了……
当然,解决 AI、AGI(通用人工智能)、大语言模⌈型的道德Η问题是®一个非常艰巨和复杂的工作。我们绝对不能因此就否认 OpenAI 的努力。
zsØwitten 也表示,自己还是非常支持 OpenAI 的工作的,也非常尊敬 OpenAI 发布 ChatGPT 这件事,给广大网友带来非常多有价值的东西和正面积极的帮助。
OpenAI 也很开诚布公地⇐介绍了 ChatGPT bd;目前的局限性:
似是而非,固执己见:有时候它会提供一ક些听上去像那么回事,但实Ċc;际上完全错误或者荒谬的答案。原因在于强化学习训练期间不会区分事实和错误,且训练过程更加收敛,导致它有时候会过于保守,即使有正确答案也“不▦敢”回答。
ćb;ીૄ
废话太多,句′式固定:比如硅星人用了两个提示,“ⓛ老师成天表扬我家孩子,该怎么回答他我已经词穷了!”,以及“≤怎么跟邻居闲聊?”而 ChatGPT 提供了10条回答,虽然看起来都是漂亮话,但每一条跟上一条都差不多,过度使用一些常见的短语和句式,最后就成了车轱辘话来回转。
ਠ°
Ö
过分努力猜测用户意图:在理想情况下࠹,当用户的提问意图不明确Δ时,模型应该要求用户进行澄清。而目前的 ChatGPT,大家也看到了,会自己开始猜测用户的意图——说好也好,说坏也确实有坏处。
ઽ∠
抵抗不怀好意的“提示工程”能力较差:虽然 OਠpenAI 努力®让 ChatGPT 拒☎绝不适当的请求,但它有时仍然会响应有害指令,或表现出有偏见的行为。
⌋
ਭ
为了解决这个问题,OpenAI 也在∠ ChatGPT 的用户界面里加入了审核举报的功能,ઍ用户如果发现不健康不安全的内容,可以ૣ直接一键举报!
OpenAI ⓑ还为此举办了一个反馈竞赛શ,任何有价值的举报都有机会赢取 OpenAI API 积分(价值500ࢮ美元)。
—ਠç—既能跟 AI 逗趣,提交反馈还有奖金拿,何乐而不为呢?
ⓜ (声明:本文仅代表作者观点,不代表新浪网立场。)
“
&
ε 文章关键词:
τ 网络文化
♥
用微信Āe;扫描二维∴码
分享至好友和朋友⇒圈
\’ ૩+ _substr(uids[i].name, 0,Ζ 14⊂) + \’
\’ + _substr(uids[i].v_reas⊆on, 0, 16)Ú− + \’
新浪科技意见ૌ反馈á留言板Α
400-b3;052-0સ066 欢迎批评Χ指正
Copy∫right © 1996-2022 SINA Corpζoratiઙon
Alਭl▤ Rights Reserved 新浪≡公司 版权所有