隨著最近發布的 ChatGPT,人工智慧再次嗡嗡作響,ChatGPT 是一種自然語言聊天機械人,人們用它來寫電子郵件、詩歌、歌詞和大學**。 早期採用者甚至用它來編寫 python **,以及對 shellcode 進行逆向工程並用 c 重寫。 ChatGPT給那些渴望人工智慧實際應用的人帶來了希望,但它也引出了乙個問題:它會取代作家和開發人員嗎,就像機械人和計算機將取代一些收銀員、流水線工人,也許在未來會取代計程車司機一樣。
很難說未來人工智慧文字建立能力會變得多麼複雜,因為該技術將吸收越來越多的寫作示例。 但我認為它在程式設計中非常有限。 如果有的話,它最終可能只是開發人員工具包中的另乙個工具,用於處理不需要軟體工程師提供的批判性思維技能的任務。
ChatGPT 給很多人留下了深刻的印象,因為它在模擬人類對話方面做得很好,而且聽起來知識淵博。 它由流行的文字到影象 AI 引擎 Dall-E 的建立者 OpenAI 開發,由乙個大型語言模型提供支援,該模型已根據從網際網絡(包括儲存庫)抓取的大量文字進行訓練。 它使用演算法來分析文字,而人類則微調系統的訓練,以聽起來像人類寫的完整句子回答使用者問題。
但 ChatGPT 也有缺陷,同樣的侷限性阻礙了它用於編寫內容,也導致它在建立時不可靠。 因為它是基於資料,而不是人類智慧型,所以它的句子聽起來很連貫,但沒有提供關鍵的、明智的回應。 它還重新利用了仇恨言論等冒犯性內容。 答案可能聽起來很合理,但可能非常不準確。 例如,當被問及 1,000 和 1,062 這兩個數字中哪個更大時,ChatGPT 會自信地給出乙個有理有據的答案:1,000 更大。
OpenAI 提供了乙個使用 ChatGPT 來幫助除錯的示例。 響應是基於前面的 ** 生成的,並且缺乏複製基於人工的 QA 的能力,這意味著它可能會生成錯誤和錯誤。 OpenAI 承認,ChatGPT“有時會寫出聽起來合理但不正確或毫無意義的答案”。 這就是為什麼它不應該直接用於任何程式的製作。
缺乏可靠性給開發者社群帶來了問題。 Stack Overflow 是程式設計師用來編寫和故障排除的問答,暫時禁止使用,稱 ChatGPT 生成的響應量如此之大,以至於無法跟上質量控制,這是由 ChatGPT 完成的。 人類。 “總的來說,由於從 ChatGPT 獲得正確答案的平均比率非常低,因此發布由 ChatGPT 建立的答案可能對 ** 和提出或找到正確答案的使用者非常有害。 ”
撇開編碼錯誤不談,由於 ChatGPT 與所有機器學習工具一樣,是在適合其結果的資料(在這種情況下是文字性質)上訓練的,因此它缺乏理解人類計算環境以進行良好程式設計的能力。 軟體工程師需要了解他們正在建立的軟體的預期目的以及使用它的人。 好的軟體不能通過用內省的**拼湊程式來構建。
例如,ChatGPT 無法理解簡單需求中的歧義。 雖然很明顯,如果乙個球只是向上反彈,另乙個球反彈然後再次反彈,第二個球會移動得更遠,但 ChatGPT 很難處理這種細微差別;如果要從開發人員手中接管這些系統,則需要這種細微差別。
它在基本數學方面也遇到了麻煩,例如當它被要求確定哪個更大並在負數和正數之間提供選擇時。 ChatGPT 自信地告訴我們正確的空間總和,但無法理解 -5 小於 4。 想象一下,您的恆溫器失控了,因為加熱從 40 攝氏度而不是 -5 攝氏度開始,因為 AI 程式已經對其進行了編碼!
預訓練的人工智慧**生成也引發了一些有關智財權的法律問題;目前,無法區分限制性許可證或開放許可證。 如果 AI 從受版權保護的儲存庫中借用預先編寫的行,這可能會使人們面臨許可合規性的風險。 這個問題已經引發了針對另一款基於 OpenAI 的產品 GitHub Copilot 的集體訴訟。
我們需要人類來創造人們所依賴的軟體,但這並不是說人工智慧在軟體開發中沒有一席之地。 與安全運營中心使用自動化進行掃瞄、監控和基本事件響應的方式相同,AI 可以用作處理較低級別任務的程式設計工具。
在某種程度上,這已經發生了。 GitHub Copilot 允許開發人員使用 ChatGPT 來改進**、新增測試和查詢錯誤。 Amazon 提供 CodeWhisperer,這是一款機器語言驅動的工具,旨在幫助開發人員在整合環境中使用自然語言注釋和生成的建議來提高生產力。 有人建立了乙個用於 ChatGPT 的 Visual Studio 擴充套件。
一家公司正在為開發人員測試人工智慧。 與谷歌共享母公司的Deepmind今年早些時候發布了自己的生成工具AlphaCode。 本月早些時候,DeepMind在《科學》雜誌上發表了對CodeForces平台競賽的模擬評估結果,題為“機器學習系統可以可程式設計”。 除了標題語法之外,AlphaCode 還通過解決“需要結合批判性思維、邏輯、演算法、編碼和自然語言理解的問題”在參與者中排名前 54%。 “這種編碼平台的開發可以對程式設計師的生產力產生巨大影響,”摘要說。 它甚至可能通過將人類工作轉移到制定問題來改變程式設計文化,機器學習......負責構建和執行。
機器學習系統每天都在變得越來越先進;然而,他們無法像人腦一樣思考。 40 多年的人工智慧研究一直如此。 雖然這些系統可以識別模式並提高簡單任務的生產力,但它們可能並不總是像人類那樣高效**。 在我們讓計算機大規模生成**之前,我們可能應該看到像 Alphacode 這樣的系統在 CodeForces 等平台上排名前 75% 的參與者,儘管我擔心這對這樣的系統來說可能太多了。 同時,機器學習可以幫助解決未來的簡單程式設計問題,讓未來的開發人員能夠思考更複雜的問題。
目前,ChatGPT 並沒有顛覆任何技術領域,尤其是軟體工程。 對機械人將取代程式設計師的擔憂被誇大了。 總會有一些任務可以由具有人類認知能力的開發人員完成,而機器永遠無法完成。