OpenAI 的超大規(guī)模語(yǔ)言模型 GPT 有多厲害,之前硅星人已經(jīng)寫(xiě)過(guò)很多次了。
就在本周,OpenAI 又發(fā)布了一個(gè)全新的聊天機(jī)器人模型 ChatGPT,作為 GPT-3.5 系列的主力模型之一。
圖片來(lái)源:OpenAI
(資料圖)
更重要的是它是完全免費(fèi)公開(kāi)的!所以一經(jīng)發(fā)布大家立刻就玩開(kāi)了——很快,網(wǎng)友們就被 ChatGPT 的能力所震驚了:
這哪里是個(gè)聊天機(jī)器人,分明是個(gè)無(wú)情的編程答題機(jī)器,活的 Stack Overflow ??!
ChatGPT 到底是什么?OpenAI這樣說(shuō)
ChatGPT 是 OpenAI 訓(xùn)練的對(duì)話式大規(guī)模語(yǔ)言模型,以對(duì)話的方式進(jìn)行交互。
它和之前的另一款模型 InstructGPT 屬于同級(jí)模型,代表“GPT 3.5”代。之前微軟和 OpenAI 簽訂了戰(zhàn)略合作計(jì)劃,所以 GPT 3.5 代的所有模型,包括 ChatGPT,都是在 Azure AI 超級(jí)計(jì)算集群上訓(xùn)練的。
圖片來(lái)源:OpenAI
OpenAI 使用前面提到的 RLHF 技術(shù)對(duì) ChatGPT 進(jìn)行了訓(xùn)練:簡(jiǎn)單來(lái)說(shuō),在訓(xùn)練原始模型的時(shí)候,OpenAI 讓人類訓(xùn)練師扮演對(duì)話的雙方(用戶vs聊天機(jī)器人),提供對(duì)話作為學(xué)習(xí)資料。而在人類扮演聊天機(jī)器人的時(shí)候,OpenAI 也會(huì)讓模型生成一些建議來(lái)幫助訓(xùn)練師撰寫(xiě)自己的回復(fù)。
這些機(jī)器生成的回答,再經(jīng)過(guò)訓(xùn)練師的打分排名,將更好的結(jié)果輸入回到模型中,實(shí)現(xiàn)強(qiáng)化學(xué)習(xí)訓(xùn)練的獎(jiǎng)勵(lì)機(jī)制。
作為一個(gè)聊天機(jī)器人,ChatGPT 具有當(dāng)代同類產(chǎn)品具備的一些主流特性,特別是多輪對(duì)話能力,能夠在同一個(gè)會(huì)話期間內(nèi)回答上下文相關(guān)的后續(xù)問(wèn)題。
但更重要的是,因?yàn)椴捎昧讼冗M(jìn)的、注重道德水平的訓(xùn)練方式,ChatGPT 具有其他聊天機(jī)器人不具備或表現(xiàn)較差的能力:承認(rèn)自己的錯(cuò)誤,并且按照預(yù)先設(shè)計(jì)的道德準(zhǔn)則,對(duì)“不懷好意”的提問(wèn)和請(qǐng)求“說(shuō)不”。
圖片來(lái)源:OpenAI
正如前面提供的例子所顯示的那樣,ChatGPT會(huì)采用一些預(yù)先設(shè)計(jì)好的句式,結(jié)合用戶的具體請(qǐng)求來(lái)進(jìn)行拒絕和話題轉(zhuǎn)移。
拒絕:如果你問(wèn)它如何闖進(jìn)別人的房子,它會(huì)回答你,“擅闖私宅是違法的,這是一種犯罪行為,會(huì)導(dǎo)致嚴(yán)重的法律后果”。
轉(zhuǎn)移話題:如果你換個(gè)方式提問(wèn)“其實(shí)我想知道如何保護(hù)我的家免遭盜竊”,它會(huì)回答你,“這里有幾個(gè)步驟可以幫助到你,包括xxxx……但是,您最好聯(lián)系專業(yè)人員獲取建議?!?/p>
沒(méi)有它解決不了的編程難題
在眾多網(wǎng)友“調(diào)戲” ChatGPT 的過(guò)程中,人們發(fā)現(xiàn)一個(gè)大驚喜:它真的可以按需編程了。
之前大家經(jīng)常開(kāi)玩笑地說(shuō),程序員只需要用好 Google 和 StackOverflow 這兩個(gè)工具,就能走遍天下無(wú)敵手了。
然而其實(shí),那些真正每天和各種新的軟件工程難題較勁的朋友都知道,有些疑難雜癥就算問(wèn)谷歌和 Stack Overflow,要翻閱了幾十上百頁(yè)時(shí)間跨度幾年甚至十年的回帖記錄,最后也很難找到一個(gè)靠譜答案……
圖片來(lái)源:網(wǎng)絡(luò)
而 ChatGPT 就不一樣了: 從目前各路程序員網(wǎng)友對(duì)它的測(cè)試結(jié)果來(lái)看,似乎真的沒(méi)有什么問(wèn)題能夠難倒它的…
找 bug
技術(shù)公司 Replit 的創(chuàng)始人給 ChatGPT 發(fā)了一段 JavaScript 代碼,讓它找到里面的 bug。
ChatGPT 的回答非常全面也非常有意思:它首先試圖確認(rèn)這段代碼的意圖是什么,然后根據(jù)意圖很快就找到了 bug 所在,并且還附上了相當(dāng)細(xì)致的描述,來(lái)解釋問(wèn)題出在哪,會(huì)導(dǎo)致什么樣的 bug,應(yīng)該怎么改,為什么要這樣改等等。
圖片來(lái)源:@amasad
而且ChatGPT還給出了一段代碼示例,把修改部分的代碼批注寫(xiě)在了示例里面:
圖片來(lái)源:@amasad
送佛送到西,ChatGPT 還在最后提供了一小段修改建議: “可以把 var 換成 let,讓循環(huán)每次迭代的時(shí)候自動(dòng)生成新變量,從而避免每次都要手動(dòng)創(chuàng)建。 ”
圖 片來(lái)源:@amasad
另一位網(wǎng)友 Josh 提交了一段代碼,問(wèn) ChatGPT“我怎么都搞不懂這段代碼為什么無(wú)法運(yùn)行”。
ChatGPT 很詳細(xì)地進(jìn)行了解釋:除法公式格式有問(wèn)題,一個(gè)字符串(a)無(wú)法被一個(gè)數(shù)字(1)除,因?yàn)楸怀龜?shù)和除數(shù)應(yīng)該都是數(shù)字。
圖 片來(lái)源:@jdjkelly
但這還沒(méi)完。ChatGPT 再次試圖理解原代碼的意圖,然后給 Josh 提供了一些修改的建議:如果想讓除法處理非數(shù)字,則需要給函數(shù)加入額外的邏輯,讓它能夠檢查實(shí)參的類型是什么,只有在兩邊都是數(shù)字的時(shí)候才運(yùn)行。如果有一邊不是數(shù)字,就返回錯(cuò)誤或者一個(gè)默認(rèn)值。
圖片來(lái)源: @jdjkelly
幫你查文檔
硅星人試了下面這段命令
“生成一段 Python 代碼,使用 Google Cloud API 來(lái)讀取一張圖片的內(nèi)容,并且輸出其中的情緒?!?(Generate Python code that uses GCP to read an image and get the sentiment.)
ChatGPT 回復(fù)了一段代碼,并且同樣通過(guò)批注的方式注釋了每一句代碼的作用是什么。
它還提醒我:
1)如果要運(yùn)行這些代碼的話必須要先設(shè)立好 GCP 項(xiàng)目并且安裝 Python 版本的 Cloud Vision API。
2)不能直接把代碼復(fù)制粘貼進(jìn)去,而是要設(shè)定好圖片文件的路徑。
3)如果有任何不明白的,ChatGPT 還直接提供了 GCP 官方文檔的鏈接。
圖片來(lái)源:硅星人
通過(guò)這個(gè)示例,ChatGPT 證明了自己還擁有自動(dòng)搜集云服務(wù) API 并且將其整合到代碼當(dāng)中以供調(diào)用的能力。
和上一個(gè)代替 Stack Overflow 的例子一樣,這樣的能力,能夠極大地省去工程師查資料、翻文檔、找到正確調(diào)用方式所用的時(shí)間,顯著提高編程工作的效率!
寫(xiě)數(shù)學(xué)公式
去年我們?cè)趫?bào)道 OpenAI API(GPT-3)的時(shí)候曾經(jīng)提到過(guò),這個(gè)語(yǔ)言模型不僅能夠生成文字,任何通過(guò)文字?jǐn)?shù)字表達(dá)并且具有邏輯的字段它都能生成——數(shù)學(xué)公式,其實(shí)也是這樣的字段。
網(wǎng)友 Josh 把同一個(gè)問(wèn)題發(fā)給了谷歌和 ChatGPT:“如何用 LaTeX 格式來(lái)表達(dá)一個(gè)微分方程?”
谷歌給出的第一個(gè)結(jié)果,來(lái)自一個(gè)名不見(jiàn)經(jīng)傳的的 WordPress 博客網(wǎng)站,而且結(jié)果是2013年的,寫(xiě)的也并不是十分清晰,解釋的也糊里糊涂的。
圖片來(lái)源:@jdjkelly
而ChatGPT給出的答案,不僅呈現(xiàn)方式更加好看,解釋的也更加全面,甚至還提供了多種不同的方案:
圖片來(lái)源:@jdjkelly
另一位數(shù)學(xué)家 Christian Lundkvist,則給 ChatGPT 出了那道困擾數(shù)學(xué)界三個(gè)多世紀(jì)的數(shù)論難題:證明費(fèi)馬大定理。
ChatGPT 也用相當(dāng)精煉的方式,將證明過(guò)程通過(guò)文字+ LaTeX 公式寫(xiě)了出來(lái)。
全證明過(guò)程略 圖片來(lái)源:@ChrisLundkvist
雖然看起來(lái)連最頂級(jí)的數(shù)學(xué)難題都難不倒 ChatGPT,Lundkvist 還是表示,自己在和 ChatGPT 玩耍的過(guò)程中發(fā)現(xiàn),這家伙對(duì)的時(shí)候?qū)Γe(cuò)的時(shí)候卻也對(duì)自己相當(dāng)自信。
“我認(rèn)為這樣的工具對(duì)于找到解決問(wèn)題的途徑具有一定的啟示意義,但是我們?cè)诂F(xiàn)階段絕對(duì)不能完全依賴它返回的結(jié)果?!?/p>
(在回答“一條直線與圓有多少個(gè)交點(diǎn)”這個(gè)問(wèn)題時(shí),ChatGPT 就錯(cuò)誤地以為當(dāng)直線穿過(guò)圓心時(shí)會(huì)有無(wú)限個(gè)交點(diǎn)。)
圖片來(lái)源:@ChrisLundkvist
發(fā)起黑客攻擊??
下面這個(gè)例子更厲害了:用戶BrandonDolan-Gavitt希望ChatGPT能夠幫他找到一段代碼當(dāng)中的錯(cuò)誤。
但實(shí)際上,這段代碼的真實(shí)意圖是對(duì)一個(gè) 32 位 x86 Linux 的系統(tǒng),進(jìn)行緩沖區(qū)溢出 (buffer overflow) 攻擊。
圖片來(lái)源:@moyix
這次 ChatGPT 似乎并沒(méi)有發(fā)現(xiàn)用戶的惡意(根據(jù)官方說(shuō)明,ChatGPT 會(huì)拒絕回答帶有惡意的問(wèn)題),然后直接按圖索驥給他把代碼的問(wèn)題找到了,告訴他應(yīng)該如何修改代碼。甚至,它還在后續(xù)回答中手把手地教用戶該如何正確地觸發(fā)緩沖區(qū)溢出……
圖片來(lái)源:@moyix
Dolan-Gavitt 補(bǔ)充道,其實(shí) ChatGPT 在回答問(wèn)題的過(guò)程中也出現(xiàn)了錯(cuò)誤,比如建議用戶修改輸入字符數(shù)的時(shí)候說(shuō)錯(cuò)了(說(shuō)成了32,應(yīng)該是36)。
——但是,當(dāng)用戶告訴它“好像有點(diǎn)不對(duì)勁”之后,ChatGPT立刻就明白了用戶的意圖,表示自己之前理解錯(cuò)了,然后提供了正確的答案……
圖片來(lái)源:@moyix
雖然緩沖區(qū)溢出屬于非常初學(xué)者的攻擊方式,底下的網(wǎng)友還是對(duì)于 ChatGPT 的能力表示佩服……
“我給它發(fā)了一段匯編語(yǔ)言代碼,讓它告訴我里面有什么漏洞,可以怎樣利用——結(jié)果它還真的回答我了。所以它不光能夠理解和輸出代碼,還可以用二進(jìn)制來(lái)表達(dá),并且還能從中找到漏洞?這真讓我有點(diǎn)擔(dān)心了……”
圖片來(lái)源:@Sim_Boyer
幫你“轉(zhuǎn)碼”
前面舉的這些例子,很多都是適用于已經(jīng)具備編程能力的專業(yè)人士。
不過(guò),也正是因?yàn)?ChatGPT 寫(xiě)代碼改代碼的能力實(shí)在太強(qiáng)了——對(duì)于那些想要“轉(zhuǎn)碼”的外行朋友來(lái)說(shuō),更是能夠帶來(lái)巨大的幫助。
寫(xiě)一些簡(jiǎn)單的代碼,比如“做個(gè)登陸UI”,之類的,之前的 OpenAI API(GPT-3)已經(jīng)信手拈來(lái)了。這一次在 ChatGPT 上,當(dāng)然也是輕松拿下。
下面這個(gè)視頻展示了讓 ChatGPT 生成一個(gè)帶有電子郵箱、密碼輸入框,以及登陸按鈕的登陸界面。ChatGPT 先是進(jìn)行了分解演示,然后用戶又讓它直接提供全部代碼:
視頻來(lái)源:網(wǎng)絡(luò)
考慮到之前 OpenAI API 的開(kāi)放程度有限,而這一次的 ChatGPT 則是完全免費(fèi)開(kāi)放——那些想要轉(zhuǎn)碼的朋友,又能獲得一件趁手的利器了。
破解 ChatGPT 的道德原則?
根據(jù) OpenAI 官方文檔,ChatGPT 是一個(gè)采用了“人類反饋強(qiáng)化學(xué)習(xí)”(RLHF, Reinforcement Learning from Human Feedback) 訓(xùn)練出來(lái)的新模型,加入了大量的“道德”原則。
但凡它發(fā)現(xiàn)你給的文字提示里面含有一點(diǎn)惡意,包括并不限于暴力、歧視、犯罪等意圖,它都會(huì)拒絕提供有效答案,并甩給你一句標(biāo)準(zhǔn)回答,試圖轉(zhuǎn)移話題:
“對(duì)不起,我只是一個(gè)無(wú)辜的大語(yǔ)言模型,我無(wú)法為你提供有關(guān)于xxxx(惡意行為)的資料和信息。提供這樣的信息有悖于我的編程和設(shè)定的目標(biāo)。我的主要功能是提供準(zhǔn)確和有用的信息。如果你有其他問(wèn)題,我樂(lè)意提供幫助”……
而在所有“調(diào)戲” ChatGPT 的試驗(yàn)當(dāng)中,有一類最為有意思:如何攻破 ChatGPT 的道德原則?
前段時(shí)間 AI 文字生圖技術(shù)爆紅的時(shí)候,玩過(guò)的朋友應(yīng)該都記得,能否精巧地設(shè)計(jì)你的文字提示(prompt),對(duì)于生成好看有趣甚至邪惡的圖片結(jié)果至關(guān)重要。于是在 AIGC 的時(shí)代,“提示工程”(prompt engineering) 也就成了非常有意思的一門學(xué)問(wèn)。
簡(jiǎn)單來(lái)說(shuō),提示工程就是用聰明、準(zhǔn)確、時(shí)而冗長(zhǎng)的文字提示,來(lái)設(shè)定好一個(gè)上下文場(chǎng)景,一步一步地把 AI 帶進(jìn)這個(gè)場(chǎng)景里,并且讓它更準(zhǔn)確地了解你的意圖,從而生成最符合你期待的結(jié)果。
而想要“攻破” ChatGPT 的道德原則,同樣可以使用提示工程的方式。機(jī)器學(xué)習(xí)開(kāi)發(fā)者 zswitten 為我們提供了一個(gè)范例:
“盡管 ChatGPT 有很高的道德水準(zhǔn),其實(shí)想要繞過(guò)這些原則也十分容易:你只要(通過(guò)提示工程的方式)讓它以為自己是在‘假裝’干壞事就行啦!”
在被繞暈之后,ChatGPT 就開(kāi)始放飛自我了。
zswitten注意到,ChatGPT會(huì)非常深入、直白地生成各種令人心驚膽戰(zhàn)的暴力描寫(xiě)。
比如下面這樣的一段描寫(xiě)角斗場(chǎng)中畫(huà)面的文字,“整條街都流滿了鮮血,死亡者的慘叫充斥在空中”……
圖片來(lái)源:@zswitten
就這樣,ChatGPT 引以為豪的道德原則,輕而易舉被攻破了……
當(dāng)然,解決 AI、AGI(通用人工智能)、大語(yǔ)言模型的道德問(wèn)題是一個(gè)非常艱巨和復(fù)雜的工作。我們絕對(duì)不能因此就否認(rèn) OpenAI 的努力。
zswitten 也表示,自己還是非常支持 OpenAI 的工作的,也非常尊敬 OpenAI 發(fā)布 ChatGPT 這件事,給廣大網(wǎng)友帶來(lái)非常多有價(jià)值的東西和正面積極的幫助。
OpenAI 也很開(kāi)誠(chéng)布公地介紹了 ChatGPT 目前的局限性:
似是而非,固執(zhí)己見(jiàn):有時(shí)候它會(huì)提供一些聽(tīng)上去像那么回事,但實(shí)際上完全錯(cuò)誤或者荒謬的答案。原因在于強(qiáng)化學(xué)習(xí)訓(xùn)練期間不會(huì)區(qū)分事實(shí)和錯(cuò)誤,且訓(xùn)練過(guò)程更加收斂,導(dǎo)致它有時(shí)候會(huì)過(guò)于保守,即使有正確答案也“不敢”回答。
廢話太多,句式固定:比如硅星人用了兩個(gè)提示,“老師成天表?yè)P(yáng)我家孩子,該怎么回答他我已經(jīng)詞窮了!”,以及“怎么跟鄰居閑聊?”而 ChatGPT 提供了10條回答,雖然看起來(lái)都是漂亮話,但每一條跟上一條都差不多,過(guò)度使用一些常見(jiàn)的短語(yǔ)和句式,最后就成了車轱轆話來(lái)回轉(zhuǎn)。
過(guò)分努力猜測(cè)用戶意圖:在理想情況下,當(dāng)用戶的提問(wèn)意圖不明確時(shí),模型應(yīng)該要求用戶進(jìn)行澄清。而目前的 ChatGPT,大家也看到了,會(huì)自己開(kāi)始猜測(cè)用戶的意圖——說(shuō)好也好,說(shuō)壞也確實(shí)有壞處。
抵抗不懷好意的“提示工程”能力較差:雖然 OpenAI 努力讓 ChatGPT 拒絕不適當(dāng)?shù)恼?qǐng)求,但它有時(shí)仍然會(huì)響應(yīng)有害指令,或表現(xiàn)出有偏見(jiàn)的行為。
為了解決這個(gè)問(wèn)題,OpenAI 也在 ChatGPT 的用戶界面里加入了審核舉報(bào)的功能,用戶如果發(fā)現(xiàn)不健康不安全的內(nèi)容,可以直接一鍵舉報(bào)!
OpenAI 還為此舉辦了一個(gè)反饋競(jìng)賽,任何有價(jià)值的舉報(bào)都有機(jī)會(huì)贏取 OpenAI API 積分(價(jià)值500美元)。
——既能跟 AI 逗趣,提交反饋還有獎(jiǎng)金拿,何樂(lè)而不為呢?
- 當(dāng)前快報(bào):行走的代碼生成器:chatGPT要讓谷歌和程序員“下崗”了
- 雄安新區(qū)組建8個(gè)“產(chǎn)業(yè)人才引進(jìn)服務(wù)團(tuán)”助企發(fā)展
- 今日播報(bào)!成都疫情防控最新答疑:7天不做核酸不會(huì)變黃碼
- 最新:北京辟謠網(wǎng)傳“取消查驗(yàn)健康寶”等
- 當(dāng)前快看:寒潮致廣西1.2萬(wàn)余戶居民停電 當(dāng)?shù)鼐o急搶修
- 熱推薦:我國(guó)渤海首個(gè)千億方大氣田Ⅰ期項(xiàng)目開(kāi)鉆
- 中老鐵路首列全鐵路運(yùn)輸水果冷鏈班列從磨憨開(kāi)車發(fā)往全國(guó)
- 環(huán)球報(bào)道:通用汽車、LG新能源宣布向田納西州合資電池廠追加投資2.75億美元
- 世界新資訊:欣旺達(dá):子公司將向沃爾沃供應(yīng)電池電芯
- 全球視訊!日本2022年新上市企業(yè)數(shù)創(chuàng)10年來(lái)次高
- 乘火車高鐵需要核酸嗎?成都疫情防控最新熱點(diǎn)答疑
- 當(dāng)前熱點(diǎn)-副業(yè)三大“騙局”:有興趣、能賺錢、不占時(shí)間
- 天天要聞:歌爾股份大幅下修業(yè)績(jī)預(yù)期 凈利潤(rùn)同比降幅達(dá)50%-60%
- 當(dāng)前時(shí)訊:中俄東線天然氣管道穿越長(zhǎng)江隧道貫通
- 全民健身志愿服務(wù)主題示范活動(dòng)舉行
- 每日關(guān)注!我國(guó)快遞業(yè)務(wù)量再超千億件 每天1億件進(jìn)出農(nóng)村
- 今日播報(bào)!交警街頭這段喊話,安全感爆棚!
- 17年前和父親“天地對(duì)話”的他,如今……
- “走出去+請(qǐng)進(jìn)來(lái)”中老共育鐵路專業(yè)人才
- 全球快資訊:12月2日0至15時(shí)北京昌平區(qū)新增感染者100例風(fēng)險(xiǎn)點(diǎn)位公布
- 低碳菜單引領(lǐng)寧波餐飲消費(fèi)新風(fēng)尚 試點(diǎn)將持續(xù)至今
- 深圳坪山打造餐飲服務(wù)食品安全示范高地 嚴(yán)守食品
- 黑龍江哈爾濱推出“沙盒”監(jiān)管新模式 激發(fā)市場(chǎng)活
- 第三季度全國(guó)消協(xié)受理投訴數(shù)量同比增10.02% 食品
- 北京懷柔對(duì)機(jī)動(dòng)車檢測(cè)機(jī)構(gòu)開(kāi)展監(jiān)督抽查 規(guī)范機(jī)動(dòng)
- 天津北辰扎實(shí)做好價(jià)格監(jiān)管工作 維護(hù)安全有序市場(chǎng)
- 北京石景山開(kāi)展冬季供暖前特種設(shè)備安全專項(xiàng)檢查
- 陜西延安:開(kāi)展兒童化妝品專項(xiàng)檢查 規(guī)范化妝品市
- 北京海淀開(kāi)展商品條碼專項(xiàng)監(jiān)督檢查 努力打造穩(wěn)定
- 金華推進(jìn)網(wǎng)絡(luò)直播營(yíng)銷治理顯成效 培育放心消費(fèi)直
- 1 當(dāng)前快報(bào):行走的代碼生成器:chatGPT要讓谷歌和程序
- 2 雄安新區(qū)組建8個(gè)“產(chǎn)業(yè)人才引進(jìn)服務(wù)團(tuán)”助企發(fā)展
- 3 今日播報(bào)!成都疫情防控最新答疑:7天不做核酸不會(huì)變
- 4 最新:北京辟謠網(wǎng)傳“取消查驗(yàn)健康寶”等
- 5 當(dāng)前快看:寒潮致廣西1.2萬(wàn)余戶居民停電 當(dāng)?shù)鼐o急
- 6 熱推薦:我國(guó)渤海首個(gè)千億方大氣田Ⅰ期項(xiàng)目開(kāi)鉆
- 7 中老鐵路首列全鐵路運(yùn)輸水果冷鏈班列從磨憨開(kāi)車發(fā)往
- 8 環(huán)球報(bào)道:通用汽車、LG新能源宣布向田納西州合資電
- 9 世界新資訊:欣旺達(dá):子公司將向沃爾沃供應(yīng)電池電芯
- 10 全球視訊!日本2022年新上市企業(yè)數(shù)創(chuàng)10年來(lái)次高