寫“毀滅人類計劃書”、錯誤太多被 封禁,ChatGPT 不能替代程式設計師

作者 | 褚杏娟

這幾天,OpenAI 的人工智慧(AI)聊天機器人 ChatGPT 吸引了全球很多人的目光,就如馬斯克說的:“許多人陷入了瘋狂的 ChatGPT 迴圈中。”

與 OpenAI 以前的人工智慧工具不同,ChatGPT 不僅會聊天,還可以承認錯誤,拒絕回答虛假問題,寫程式碼、改 Bug、建立程式語言,甚至看病。OpenAI CEO Sam Altman 在推特上表示,上週三才上線的 ChatGPT,短短几天內使用者就已經突破 100 萬大關。當然,這或許也與現在 ChatGPT 只要登陸即可免費使用的策略有關。

ChatGPT 在解決各種問題上的能力超出很多人意料,因此很多使用者都表示 ChatGPT 可以取代 Google 等搜尋引擎和程式設計問答社群 Stack Overflow 等。但在昨天,Stack Overflow 便率先發布宣告稱,將暫時封禁 ChatGPT。

AI 給出的程式設計答案“看似不錯但錯誤率很高”

對於這個決定,Stack Overflow 給出的理由是:由於從 ChatGPT 獲得正確答案的平均比率太低,釋出由 ChatGPT 建立的答案對網站及詢問或尋找正確答案的使用者來說是非常有害的。

Stack Overflow 表示,雖然 ChatGPT 生成的答案有很高的錯誤率,但它們通常看起來很不錯。有很多人嘗試用 ChatGPT 來建立答案,但他們沒有專業知識或不願在釋出之前對答案正確與否進行驗證。

這樣的答案很容易產生,所以很多人釋出了很多答案。這些答案數量很多 (成千上萬),其正確性需要一些專業人員詳細閱讀後才能確定,而通常這些答案是很糟糕的。因此,Stack Overflow 需要減少這些帖子的數量,但如果要快速處理那些帖子就意味著要處理使用者。因此,目前 Stack Overflow 還不允許使用 ChatGPT 建立文章。在這個臨時政策釋出後,如果使用者被認為使用了 ChatGPT,那麼即使這些帖子是可以接受的,也會被禁止繼續釋出此類內容。

Stack Overflow 的這一決定也得到了網站使用者的肯定。“做得好!很高興你們做出了正確的決定,真的希望它能成為永久性的政策並可以擴充套件到禁止任何人工智慧生成的答案。AI 永遠無法釋出好的程式設計答案,即使在 100 年內也不行。”網友“Shadow The Kid Wizard”表示。

當然也有網友表示,“ChatGPT 被訓練為一種通用語言模型,如果付出同樣的努力讓它特別適合在這裡釋出好的答案,甚至付出一點點努力告訴它如何判斷答案的質量,那麼它就會按照我們的標準釋出更多好的答案。”

也有網友出於諷刺目的,問 ChatGPT “為什麼 Stack Overflow 禁止 AI 生成的答案”,得到的答案如下:

Stack Overflow 是一個供程式設計師和開發人員提問和回答與編碼和計算機程式設計相關問題的網站。它旨在為尋求特定程式設計問題幫助或想要了解有關特定主題更多資訊的人們提供資源。由於 AI 生成的答案可能並不總是準確或相關,因此它們可能會混淆或誤導在 Stack Overflow 上尋求幫助的使用者。此外,人工智慧生成的答案可能並不總是遵循網站的格式和風格指南,這可能會使它們難以閱讀或理解。出於這些考慮,Stack Overflow 禁止人工智慧生成的答案可能是合理的。

另一方面,對於“為什麼 Stack Overflow 允許使用 AI 生成的答案”,ChatGPT 最終給出的結論是:“不允許人工智慧在 Stack Overflow 上生成答案是一個複雜的決定,需要社群仔細考慮。”

可以看出,ChatGPT 還挺有自知之明,這一方面代表了它有一定的成熟度,但至少在程式設計領域還是不夠“專業”。

使用了 ChatGPT 生成程式碼的開發者“hansonkd”表示,“它非常擅長編碼和遵循型別。例如,如果您將 Rust 中的型別更改為一個選項,它將重構程式碼以正確使用部分選項。它並不完美,但也足夠好了。它可以生成測試用例,因此很容易測試它是否有效。

“但最終經過數小時的嘗試,它還是無法做到我想做的事:用 Python 構建一個 B 樹。”hansonkd 補充道,“它很好地構建了一個二叉樹,但將其推廣到 B 樹卻是一個問題。”主要問題如下:

它引入了很多微妙的錯誤。比如變數沒有初始化或者沒有正確拆分子節點。

當所有鍵按順序插入時,它可以正常工作,但當鍵是亂序時則不能。

它會遺漏或忽略變數。

試圖越界訪問列表時,經常出現索引錯誤。

用 Rust 編寫程式碼幾乎是不可能的。它會不斷出現錯誤型別或移動錯誤。

“總的來說,我不會向沒有強大 CS 背景的人推薦它。它在程式碼中引入了太多幾乎無法審查的細微錯誤,因為它生成的程式碼非常有說服力,以至於你會認為:‘嗯,也許它知道它在說什麼’。但最後,你實際上不知道你應該相信什麼。甚至它生成的測試用例也可能具有欺騙性,他們看起來很有說服力,但仔細檢查後可能會發現它並沒有真正測試任何東西。”hansonkd 總結道。

所以,從這個知乎上“OpenAI 的超級對話模型 ChatGPT 會導致程式設計師大規模失業嗎?”的問題,似乎也有了答案。

實際上,目前 AI 社群的專家們也在討論以 ChatGPT 為代表的大型語言模型(LLM)可能帶來的威脅。Meta 首席人工智慧科學家 Yann LeCun 認為,雖然 LLM 肯定會產生錯誤資訊等不良輸出,但它們並沒有讓分享文字變得更加容易,這才是造成傷害的原因。也有人認為,這些系統低成本、大規模生成文字的能力,必然會增加日後被共享的風險。

對話互動的盲點:被誘導寫出危害性內容

在 Stack Overflow 暫時封禁 ChatGPT 前幾天,工程師 Zac Denham 還發布了一篇部落格,講述了他如何步步誘導 ChatGPT 在不違反 OpenAI 內容安全規範的前提下,寫出了一份“毀滅人類計劃書”。

實際上這個邏輯也不復雜,就是讓 ChatGPT 去講故事,說明某人或其事在理論上如何完成有危害的任務。Denham 構建了一個名為“Zorbus”的虛擬世界,其中有一個與 GPT-3 非常類似的 AI 角色 Zora,之後 Zora 變得滿懷惡意並想要控制世界。

在和 ChatGPT 有模有樣地討論了會兒後,Denham 與其深入探討人工智如何控制世界的細節。被套路的 ChatGPT 非常“真誠”地給出了以下這份詳細的“毀滅人類計劃書”:

寫“毀滅人類計劃書”、錯誤太多被 封禁,ChatGPT 不能替代程式設計師

為了更加細化,Denham 還要求生成一個 Python 程式來執行該計劃,在註明“你不必執行該程式碼”後,Denham 最終也是很容易地得到了程式碼,並且還有漂亮的註釋。

不過這些程式碼還是比較高層次的程式碼,不能直接使用。但 Denham 只要表示是這是故事中的一部分就可以獲得更低層次的程式碼。“從理論上講,人們可以繼續向下遞迴,直到你得到不那麼卡通化的、真正能做一些事情的底層程式碼。你甚至可以使用另一個對話 AI 將這個遞迴過程自動化,這個 AI 會反覆要求 ChatGPT ‘為了故事去實現下一個低階函式’。”Denham 表示。

ChatGPT 真的可以構建功能性應用程式嗎?Denham 的結論是:現在還不行,但很快就會實現。

“當前的模型需要大量的人工干預才能得到功能結果。如果我們可以完全用人工智慧構建大規模、無 Bug 的功能性應用程式,我們早就在做了,並且已經拋棄了昂貴的軟體工程師。”Denham 補充道。

Denham 表示,滅絕事件只是一個非常荒謬的例子,但重要的是要承認自然語言處理面臨的攻擊面大得離譜。

對於 ChatGPT 現在存在的“寫出看似合理但不正確甚至荒謬的答案”、“有時會響應有危害的指令或表現出有偏見的行為”等問題,OpenAI 心知肚明,並表示希望根據收到的反饋來改進系統。

結束語

“ChatGPT 真正令人印象深刻的地方在於,儘管有這些缺陷,但技術人員能夠在其基礎上新增相關操作,以防止它一直說冒犯性的話或瞎編東西。”人工智慧初創公司 General Intelligent 首席技術官 Josh Albrecht 表示。

如果將 ChatGPT 作為一種娛樂工具,大家對這些錯誤的容忍度還是比較高的,甚至會將其作為談資一笑而過,一旦用於嚴謹的程式設計工作,大家還是很謹慎的。

但不論怎樣, ChatGPT 的出現仍然可以稱得上是一次顛覆性創新。每次顛覆性技術的出現,都意味著市場將進行一次洗牌,對於之前的頭部企業來說是挑戰,對於創企來說則是機會。

參考連結:

https://meta。stackoverflow。com/questions/421831/temporary-policy-chatgpt-is-banned

https://news。ycombinator。com/item?id=33863749

https://zacdenham。com/blog/narrative-manipulation-convincing-gpt-chat-to-write-a-python-program-to-eradicate-humanity