您現在的位置是:首頁 > 網路遊戲首頁網路遊戲
AI 生成的程式碼可信嗎?編寫的程式碼有 Bug 嗎?
- 2022-05-18
魔法無效化編寫成程式碼是怎樣的
「來源: |AI科技大本營 ID:rgznai100」
編譯 | 禾木木
即使是幫助開發人員編寫軟體的工具也會產生類似的bug。
目前,大部分的軟體開發人員會讓 AI 幫助開發者們編寫程式碼,但是開發人員發現 AI 會像程式設計師的程式碼一樣還是存有 bug。
去年 6 月,提供託管和程式碼協作工具的微軟子公司 GitHub 釋出了一個測試版的程式,該程式使用人工智慧來幫助程式設計師。開始輸入命令、資料庫查詢或對 API 的請求,Copilot 的程式將猜測您的意圖並編寫其餘部分。
註冊測試 Copilot 的生物技術公司的資料科學家Alex Naka 表示,該程式非常有用,並且改變了他的工作方式。“它讓我花更少的時間跳轉到瀏覽器來查詢 API 文件或 Stack Overflow 上的示例,”他說。“感覺有點像我的工作已經從程式碼生成器轉變為程式碼鑑別器。”
但是 Naka 發現錯誤會以不同的方式滲透到他的程式碼中。“有時我在接受其中一項建議時會遺漏某種微妙的錯誤,”他說。“而且很難追蹤到這一點,也許是因為它所犯的錯誤似乎與我所犯的錯誤不同。”
AI 生成的程式碼錯誤可能更高
AI 生成錯誤程式碼的風險可能高得驚人。紐約大學的研究人員最近分析了 Copilot 生成的程式碼,發現對於某些安全性至關重要的任務,該程式碼大約有 40% 的時間包含安全漏洞。
參與分析的紐約大學教授 Brendan Dolan-Gavitt 說,這個數字“比我預期的要高一點”。“但 Copilot 的訓練方式實際上並不是為了編寫正確的程式碼——它只是根據給定的提示生成那種文字。”
儘管存在這些缺陷,Copilot 和類似的人工智慧工具可能預示著軟體開發人員編寫程式碼的方式將發生翻天覆地的變化。人們越來越有興趣使用人工智慧來幫助自動化更平凡的工作。但 Copilot 也強調了當今人工智慧技術的一些缺陷。
AI 編碼工具
在分析 Copilot 外掛可用的程式碼時,Dolan-Gavitt 發現它包含一個受限短語列表。這些顯然是為了防止系統脫口而出冒犯性資訊或複製其他人編寫的知名程式碼。
GitHub 研究副總裁兼 Copilot 開發人員之一 Oege de Moor 表示,安全性從一開始就是一個問題。他表示,紐約大學研究人員引用的有缺陷程式碼的百分比僅與更可能存在安全缺陷的程式碼子集相關。
De Moor 發明了 CodeQL,這是紐約大學研究人員使用的一種工具,可以自動識別程式碼中的錯誤。他說 GitHub 建議開發人員將 Copilot 與 CodeQL 一起使用,以確保他們的工作安全。
GitHub 程式建立在 OpenAI 開發的人工智慧模型之上,OpenAI 是一家在機器學習領域從事前沿工作的著名人工智慧公司。該模型稱為 Codex,由一個大型人工神經網路組成,經過訓練可以預測文字和計算機程式碼中的下一個字元。該演算法提取了儲存在 GitHub 上的數十億行程式碼用來學習如何編寫程式碼,但並非全部都是完美的。
OpenAI 在 Codex 之上構建了自己的 AI 編碼工具,可以執行一些令人驚歎的編碼技巧。它可以將型別化指令(例如“建立 1 到 100 之間的隨機變數陣列,然後返回其中最大的一個”)轉換為多種程式語言的工作程式碼。
同一個 OpenAI 程式的另一個版本,稱為 GPT-3,可以在給定的主題上生成連貫的文字,但它也可以從網路上學到有攻擊性或有偏見的語言。
Copilot 和 Codex 已經讓一些開發人員懷疑 AI 是否可以將它們自動化。事實上,正如 Naka 的經驗所示,開發人員需要相當的技能才能使用該程式,因為他們經常必須審查或調整其建議。
結 語
紐約大學參與 Copilot 程式碼分析的博士後研究員 Hammond Pearce 表示,該程式有時會產生有問題的程式碼,因為它不能完全理解一段程式碼想要做什麼。“漏洞通常是由於缺乏開發人員需要了解的上下文造成的,”他說。
一些開發人員擔心人工智慧已經養成了壞習慣。曾嘗試使用 AI 生成程式碼但尚未嘗試使用 Copilot 的軟體開發人員 Maxim Khailo 表示“作為一個行業,我們一直在努力擺脫複製貼上解決方案,現在 Copilot 已經建立了一個增壓版本。”
Khailo 說駭客可能會干擾像 Copilot 這樣的程式。“如果我是個壞人,我會做的就是在 GitHub 上建立易受攻擊的程式碼專案,透過在黑市上購買 GitHub 明星來人為地提高它們的知名度,並希望它成為下一輪訓練的語料庫的一部分。”
GitHub 和 OpenAI 都表示,相反,他們的 AI 編碼工具只會變得不那麼容易出錯。OpenAI 表示它會手動和使用自動化工具來審查專案和編碼。
GitHub 的 De Moor 表示,最近對 Copilot 的更新應該降低了安全漏洞的頻率。但他補充說,他的團隊正在探索其他提高 Copilot 輸出的方法。一種是刪除底層 AI 模型從中學習的不良示例。另一種可能是使用強化學習,在遊戲和其他領域產生了一些令人印象深刻的結果的人工智慧技術,來自動發現不良輸出,包括以前看不見的例子。“正在發生巨大的改進,”他說。“幾乎無法想象一年後它會是什麼樣子。”
參考連結:
https://www。wired。com/story/ai-write-code-like-humans-bugs/
本文由AI科技大本營翻譯,轉載請註明出處。
往
期
回
顧
資訊
AI被當做炒作工具?
資訊
Gartner 釋出人工智慧技術曲線
資訊
機器人越像人越好?被盯著會怎樣?
資訊
AI不可以作為專利認證發明人
分享
點收藏
點點贊