在美國Copilot就像教育界的 ChatGPT,正在顛覆整個軟體開發行業

2023-12-08     DeepTech深科技

原標題:在美國Copilot就像教育界的 ChatGPT,正在顛覆整個軟體開發行業

2023 年春天,諾亞·吉夫特(Noah Gift)在美國北卡羅來納州杜克大學教授編碼課程兩周後,他告訴學生們扔掉他給的課程材料。

學生們將不再學習最流行的入門級程式語言之一 Python,而是學習 Rust,一種更新、更強大、更難學習的語言。

(來源:AI 生成)

吉夫特是一名擁有 25 年經驗的軟體開發人員,他自己剛剛學會了 Rust。但他相信,他的學生們也會很快適應這個突然的改變。

這是因為他們每人都有一個特殊的新助手:一個名為 Copilot 的人工智慧工具,這是一種建立在 OpenAI 最新大語言模型 GPT-3.5 和 GPT-4 之上的計算機代碼自動補全和輔助工具。

Copilot 由 GitHub 公司開發。該工具會監測你的每一次按鍵,預測你想要實現什麼,並不斷提供接下來有可能出現的代碼片段供你使用。

在微軟工作的朋友告訴了吉夫特 Copilot 的存在,他立刻看到了它的潛力。

他說:「如果沒有 Copilot,我不可能像現在這樣快速地學會 Rust。這就像我身邊有一個超級智能助理,當我試圖提升自我時,他可以回答我的問題。很明顯,我們應該在課堂上開始使用它。」

吉夫特並不孤單。如果你問一屋子計算機科學專業的學生或程式設計師是否用過 Copilot,許多人都會舉手。本文採訪的所有人都說他們自己使用了 Copilot,甚至那些指出該工具存在問題的人也是如此。

就像教育領域的 ChatGPT 一樣,Copilot 正在顛覆整個軟體開發行業,為人們提供新的方式來完成舊任務。Copilot 是微軟 Visual Studio 里的付費插件,但它並不是程式設計師唯一可用的工具。

2023 年 8 月,Meta 發布了一個名為 Code Llama 的免費代碼生成模型,該模型基於 Meta 的 Llama 2 大模型,對標 GPT-4 的產物。

同月,圖像生成模型 Stable Diffusion 背後的公司 Stability AI 發布了 StableCode。當然,還有 ChatGPT,OpenAI 從一開始就將其定位為一種聊天機器人,可以幫助編寫和調試代碼。

Meta Code Llama 團隊負責人加百列·辛納耶夫(Gabriel Synnaeve)表示:「這是機器學習模型第一次對很多人真正有用。它不是華而不實的東西,而是真的很有用。」

隨著微軟和谷歌即將在全球數十億人使用的辦公軟體中引入類似的生成式模型(微軟已經開始在 office 365 中使用 Copilot 作為品牌名稱),值得一問的是,這些工具到底為程式設計師做了什麼。

它們是如何改變一份已有幾十年歷史的工作的基礎的?它們會幫助程式設計師創造更多更好的軟體嗎?還是會讓他們陷入智慧財產權和版權的法律糾紛?

啟動代碼

從表面上看,編寫代碼需要在文本文件中鍵入某些程式語言的語句和指令。然後,它被編譯成計算機可以執行的機器代碼。

在實踐中,程式設計師也會花很多時間在網上搜索,尋找常見問題的解決方法,或者瀏覽在線論壇,尋找更快的算法編寫方法。許多寫好的現有代碼塊會被重新調整用途,新軟體通常就這樣拼接、組合在一起。

但 GitHub 的 CEO 托馬斯·多姆克(Thomas Dohmke)表示,查找資料需要時間,讓程式設計師無法迅速將思想轉化為代碼:「你打開了很多網頁,你正在計劃度假,也許你正在閱讀新聞。

最後你複製了所需的代碼,回到你寫的那裡,但已經過去了 20 分鐘,你已經不在狀態了。」

Copilot 和其他類似程序(有時稱為代碼助手)背後的關鍵思想是,將程式設計師需要的信息放在他們正在編寫的代碼旁邊。

該工具可以追蹤程式設計師正在處理的文件中的代碼和注釋,以及它連結到的或在同一項目中編輯過的其他文件,並將所有這些文本作為提示發送到 Copilot 背後的大型語言模型中。

GitHub 與 OpenAI 共同開發了 Copilot 所用的模型 Codex。這是一個對代碼進行了微調的大型語言模型。Copilot 可以預測程式設計師試圖做什麼,並給出代碼建議。

這種代碼和 Codex 之間的「交流」每秒發生多次,提示會隨著程式設計師的鍵入而更新。在任何時候,程式設計師都可以通過點擊 tab 鍵接受 Copilot 的建議,或者忽略它繼續輸入。

按鈕似乎經常被點擊。GitHub 和諮詢公司 Keystone Strategy 在 2023 年 6 月發布的一項針對近 100 萬 Copilot 用戶的研究發現,根據 GitHub 的用戶數據,程式設計師平均接受了約 30% 的建議。

多姆克說:「在過去的一年裡,Copilot 提出了超過 10 億行的代碼,並獲得了開發人員的同意。現在,在計算機內部運行的是隨機生成的代碼。」

Copilot 改變了編碼的基本技能。與 ChatGPT 或 Stable Diffusion 等生成式工具一樣,該工具的輸出通常並不完全符合要求,但可能很接近。

加拿大蒙特婁理工學院的研究員阿爾哈萬·莫拉迪·達赫爾(Arghavan Moradi Dakhel)主要研究機器學習工具在軟體開發中的使用,他說:「也許它給出的東西是正確的,也許不是,但那是一個好的開始。

編程變得「提示化」。這項工作不再是從零開始編寫代碼,而是調整不太完美的代碼,並推動一個大型語言模型來產生更符合需求的東西。

但 Copilot 還沒有廣泛普及。包括蘋果在內的一些公司要求員工不要使用它,以免將 IP 和其他私密數據泄露給競爭對手。

Merly是一家使用人工智慧分析大型軟體項目代碼的初創公司,其 CEO 賈斯汀·戈特施利希(Justin Gottschlich)認為,這一點將永遠是一個硬傷:「如果我是谷歌或英特爾,我的 IP 是我的原始碼,那麼我永遠不會使用 Copilot。」

他補充說:「我為什麼不把我所有的商業秘密也發給你呢?這就像下雨要打傘一樣明顯。」

多姆克意識到這對關鍵客戶來說是一個障礙,並表示該公司正在開發一種企業可以在內部運行的 Copilot 版本,這樣代碼就不會發送到微軟的伺服器上。

Copilot 也可能被程式設計師視作訴訟對象,他們對自己的代碼在未經他們同意的情況下被用來訓練其背後的模型感到不滿。微軟已向潛在可能提起訴訟的用戶提供賠償。但法律問題需要數年時間才能在法庭上解決。

多姆克非常樂觀,他相信利大於弊:「我們將適應美國、英國或歐洲立法者告訴我們的任何事情。但在保護權利和隱私,以及我們人類向前邁出一步之間,存在著一種折衷的平衡。」

這確實像是從 CEO 口中說出的話。但這是一個新的、未知的領域。如果不出意外的話,GitHub 正在領導一項大膽的實驗,該實驗可能為更廣泛的人工智慧專業助手鋪平道路。

第一個跡象是,他們把用來面試的編程題交給了編程工具:「這是一些代碼,你要完成它。」GitHub 將這些代碼交給了 Copilot 工具的早期版本,並讓它在每個測試上嘗試 150 次。

150 次嘗試之後,他們發現該工具可以解決 92% 的問題。他們再次嘗試了從 GitHub 在線平台上提取的 50000 個問題,該工具解決了其中的一半以上。多姆克說:「這給了我們信心,我們可以創造出 Copilot。」

2023 年,一個由 GitHub 和微軟研究人員組成的團隊,在一項小規模研究中測試了 Copilot 對程式設計師的影響。

他們要求 95 個人構建一個網絡伺服器,並允許一半的人使用 Copilot。最終,使用 Copilot 的程式設計師完成任務的速度平均快了55%。

一個強大的人工智慧取代了谷歌搜索,我們看到了真實的效果,但它能改變遊戲規則嗎?人們的意見並不同意。

Keystone Strategy 聯合創始人、哈佛商學院教授馬可·伊安西蒂(Marco Iansiti)表示:「我認為,這就像你旁邊坐著一位經驗豐富的開發人員,他在那裡不斷地給你建議。以前你必須自己查,現在建議自動就發來了。」

但是,多年來一直致力於自動代碼生成的戈特施利希對此不太感冒。「坦率地說,代碼助手無法實現更大規模的東西。」他說道。他指的是基於大型語言模型的代碼工具,如 Copilot。

「他們主要受人類程式設計師所能做的事情的約束。在現階段,他們不太可能做出超出人類程式設計師所做的事情。」

戈特施利希聲稱,Merly 的技術可以發現代碼中的錯誤並自行修復(但他沒有說明這是如何工作的)。而且他正在考慮更大的問題。

他認為人工智慧有一天會接管龐大而複雜的代碼庫的管理,指導人類工程師如何維護它。但他認為大型語言模型不適合這項工作。

即便如此,對數百萬人一直在做的任務施加微小的改變,這些改變也會很快累積起來。

例如,伊安西蒂提出了一個誇張的想法:他認為,到 2030 年,Copilot 及其類似工具的影響可能會為全球經濟增加 1.5 萬億美元。

他說:「這更多的是一個粗略的估計,不是真正的學術估計,但也可能比這大得多。

有太多的東西取決於軟體。如果你對軟體開發的真正運作方式有所了解,它將對經濟產生無限的影響。」

對於伊安西蒂來說,這不僅僅是讓現有開發人員生成更多的代碼。他認為,這些工具將增加對程式設計師的需求,因為公司可以用更少的錢獲得更多的代碼。

同時,由於這些工具降低了進入門檻,將有更多的程式設計師出現。他說:「我們將看到誰能為軟體開發做出貢獻。」

或者,正如 GitHub 的高級研究總監伊丹·加齊特(Idan Gazit)所說:想像一下,如果任何拿起吉他的人都能立即演奏一首簡單的曲子,那就會有更多的吉他手和更多的音樂。

正如吉夫特發現的那樣,許多人都認為 Copilot 讓學習編程變得更容易。

他說:「Rust 以其艱澀而聞名。但我對學生們的表現和他們構建的項目感到驚喜,它們是多麼的複雜和有用。」

吉夫特說,他們能夠構建包含聊天機器人的完整網頁應用程式。

然而,並不是所有人都對吉夫特的教學大綱變化感到滿意。他說,他的一名助教告訴新生不要使用 Copilot,因為它是一根拐杖,會阻止他們正常學習。

吉夫特承認 Copilot 就像輔助輪,你可能不願離開它。但他認為這不是問題:「我們想實現什麼?我們正在努力構建複雜的系統。」他認為,要做到這一點,程式設計師應該使用任何可用的工具。

誠然,在計算的歷史上,程式設計師在自己和計算機可以運行的機器代碼之間依賴越來越多的軟體層。它們已經從穿孔卡片和彙編語言,發展到相對易於讀寫的 Python 等程式語言。

多姆克說:「當我在 80 年代和 90 年代開始編碼時,你仍然需要知道 CPU 是如何工作的。現在,當你編寫網頁應用程式時,你幾乎從不考慮 CPU 或網頁伺服器。」

再加上一大堆的 bug 捕獲和代碼測試工具,程式設計師已經習慣了大量的自動化支持。從很多方面來說,Copilot 和其他工具只是最新一波進展。

吉夫特說:「我使用 Python 25 年了,因為它是為了讓人類可讀而創造的。在我看來,這已經不重要了。」

但他指出,Copilot 並不是一個免費通行證。「Copilot 反映了你的能力。」他說,「它讓每個人都有了一點提升,但如果你是一個糟糕的程式設計師,你仍然會有弱點。」

要做的工作

想要評估這些工具的真正影響,一個大問題是,大多數數據仍然稀缺。GitHub 的研究表明,程式設計師接受了 30% 的建議,但尚不清楚程式設計師為什麼接受這些建議而拒絕其他建議。

同一項研究還表明,經驗不足的程式設計師接受了更多的建議,而且隨著他們逐漸習慣該工具,程式設計師接受了越來越多的建議。但同樣,原因也不清楚。

伊安西蒂說:「我們需要更深入地理解這意味著什麼。要真正了解編碼過程本身是如何發展的,還有很多工作要做,而這一切都有待確定。」

大多數對 Copilot 等工具的獨立研究,都集中在它們所建議的代碼的正確性上。像所有大型語言模型一樣,這些工具可能會產生無意義的結果。

對於代碼來說,其是否有意義可能很難判斷,尤其是對於經驗不足的用戶來說,他們似乎也是最依賴 Copilot 的群體。

在過去的幾年裡,幾個研究小組發現,Copilot 會在代碼里留下漏洞或安全缺陷。GitHub 則一直忙於提高 Copilot 建議的準確性。

它聲稱,該工具的最新版本會通過第二個模型運行代碼。該模型經過訓練,可以在向用戶提出建議之前過濾掉常見的安全漏洞。

達赫爾說,但是除了 bug,還有其他質量問題。她和她的同事發現,Copilot 可能會建議過於複雜或不符合最佳實踐的代碼,這是一個問題,因為複雜或不清楚的代碼對其他人來說更難閱讀、檢查和擴展。

問題是,模型只能和它們的訓練數據一樣好。Copilot 的模型是在有著 15 年歷史的、GitHub 在線存儲庫中提取的大量代碼庫上進行訓練的。

這些代碼不僅包含錯誤,還包含編寫代碼時未知的安全缺陷。

達赫爾說,再加上缺乏經驗的程式設計師會比有經驗的程式設計師更多地使用該工具,因此從長遠來看,它或許會為軟體開發團隊帶來更多的工作。資深程式設計師可能不得不花更多的時間仔細檢查新手編寫的代碼。

達赫爾現在希望更全面地研究資深和非資深程式設計師之間的差距。在 Copilot 發布之前,她和她的同事們正在使用機器學習通過代碼來檢測程式設計師的水平。

但 Copilot 把她的數據搞砸了,因為現在很難判斷代碼是由資深程式設計師編寫的,還是由經驗不足的程式設計師在人工智慧的幫助下編寫的。

現在,在體驗過 Copilot 之後,她計劃用自己的方法來研究它能帶來什麼樣的提升。

她說:「我很想知道,使用這種工具的初級開發人員是否會被預測為資深開發人員,或者是否仍然可以檢測到他們是初級開發人員。這可能是衡量這些工具給人們帶來多大提升的一種方式。」

我們可能不需要等待太久就能看到結果。軟體開發是記錄最充分、評估最全面的商業活動之一。

如果 Copilot 有效,它就會被使用。如果沒有效果,就不會有人用它。與此同時,這些工具正在變得越來越好。

然而值得注意的是,編程只是軟體開發整體工作的一小部分。它還涉及到管理複雜項目的多個部分,包括設計代碼、測試和部署。

Copilot 和之前的許多程序一樣,可以更快地完成部分工作,但它不會完全重塑它。

辛納耶夫說:「程式設計師會一直存在。他們會得到很多幫助,但最終重要的是要了解哪些問題需要解決,要真正做好這件事,並將其轉化為程序,這才是程式設計師真正的工作。」

作者簡介:威爾·道格拉斯·海文(Will Douglas Heaven)是《麻省理工科技評論》人工智慧欄目的高級編輯,他在這裡報道新的研究、新興趨勢及其背後的人。此前,他是英國廣播公司(BBC)科技與地緣政治網站 Future Now 的創始編輯,也是 New Scientist 雜誌的首席技術編輯。他擁有英國倫敦帝國理工學院計算機科學博士學位,深諳與機器人合作的體驗。

支持:Ren

文章來源: https://twgreatdaily.com/zh-hk/3384a0e2827a944627c79e8161955e82.html