程序員的未來屬於「偽代碼」!Nature專欄:用ChatGPT加速科研編程的三種姿勢

2023年05月11日05:36:12 科技 6139

程序員的未來屬於「偽代碼」!Nature專欄:用ChatGPT加速科研編程的三種姿勢 - 天天要聞

  新智元報道  

編輯:lrs

【新智元導讀】chatgpt讓科研編程不再難!

基於生成式人工智慧工具,比如chatgpt、bard等聊天機器人的出現,以及如何將ai工具用於學術研究引發了巨大的爭議,但與此同時,ai生成的代碼用於科學研究的價值被忽視了。

與chatgpt生成文本導致的剽竊問題相比,用ai抄代碼顯然爭議更小,開放科學甚至鼓勵「代碼共享」和「代碼重用」,溯源起來也很方便,比如python里用到「import」導入依賴包就算引用。

最近nature上發表了一篇評論文章,作者團隊討論了chatgpt在科學編程領域的三個潛在能力,包括頭腦風暴、分解複雜任務、以及處理簡單但耗時的任務。

程序員的未來屬於「偽代碼」!Nature專欄:用ChatGPT加速科研編程的三種姿勢 - 天天要聞

文章鏈接:https://www.nature.com/articles/s41559-023-02063-3

研究人員通過使用chatgpt將自然語言翻譯成計算機可讀代碼,探索了使用生成式ai來增強科學編碼的能力和局限性。

實驗中的例子主要探索了可能與生態學、進化及其他領域相關的通用任務,研究人員發現,使用chatgpt可以完成80%-90%的代碼編寫任務。

如果任務被分解成小的、可管理的代碼塊,並帶有精確的提示作為查詢,chatgpt可以生成非常有用的代碼。

值得注意的是,用google的bard進行同樣的實驗通常會得到類似的結果,但代碼中的錯誤更多,所以這篇文章主要使用chatgpt進行實驗。

第一作者cory merow是一位定量生態學家,主要研究方向是建立機制模型來預測人口和社區對環境變化的反應。即使是最好的數據集在預測全球變化反應方面也是不完善的,所以需要開發一些工具來結合數據源和探索數據集,以深入了解生物系統可能發生的變化。

chatgpt助力科學編碼

chatgpt以回歸模型gpt-3為基礎,在海量的網頁、書籍等文本上進行擬合訓練,不需要搜索即可生成文本。

所以chatgpt更擅長內插(interpolating,即預測與訓練數據相似的文本),而不擅長外推(extrapolating,即預測與訓練樣本不同的新文本)。

訓練集的龐大規模是一個優勢,意味著gpt-3已經看到了大量的語言模式,使其能夠內插並增加生成對人類有用回復的可能性。

不過對代碼生成任務來說,gpt-3並不知道如何編程,只是知道代碼看起來像什麼樣,以及哪些詞最可能出現在下一個位置,其工作原理類似於自動補全,基於概率模型預測下一個代碼塊(chunk),塊通常比詞(word)要小,也可以叫做token

生成正確token的概率基於所有token的概率乘積,即增加預測token的數量或降低選中token的確定性會增加任務的難度,從而降低獲得正確token的概率。

因此,想要增加正確token的概率,需要縮短生成任務的長度,或是提供更具體的指令。

最後,研究人員提醒,chatgpt生成的文本有些看起來像代碼,但可能無法執行,所以在編碼過程中需要仔細觀察調試。

頭腦風暴工具

chatgpt可以很好地檢索多個數據源,例如在生態領域可以同時獲取植物性狀、物種分布區域和氣象數據。

雖然chatgpt提供的數據有些是不正確的,但通過其提供的鏈接可以很快地校正這些錯誤。

不過chatgpt並不能寫爬蟲從網站上下載數據,可能是因為r語言的包和底層應用程序介面(如r訪問資料庫的協議)更新過快,畢竟chatgpt的訓練數據是在2021年構建的。

chatgpt可以在遇到特定問題時提出各種統計技術,在後續的提問中可以生成更多基於用戶假設的指導意見,並提供一份初始代碼。

不過綜合(synthesis)過程只適用於提出並交流想法,仍然需要通過傳統的數據源(如論文等)進行事實核查。

需要注意的是,一些網站聲稱chatgpt有能力對書籍寫摘要,不過從研究人員的測試結果來看,這種摘要綜合的結果完全不對,可能是因為測試用的書籍沒有在gpt-3訓練集中出現。

更難的任務需要更多的debug

chatgpt非常擅長生成模板代碼,在特定指令下提供一份包含少量函數的短腳本代碼。

比如下面的例子中,研究人員要求chatgpt將四個常用函數的輸入和輸出串一起。並提供一個將此函數用於模擬數據的示例代碼。

可以看到chatgpt生成的結果幾乎是完美的,調試代碼只花了幾分鐘,不過需要在提示中非常具體地說明query,包括提供命名和用到的函數。

程序員的未來屬於「偽代碼」!Nature專欄:用ChatGPT加速科研編程的三種姿勢 - 天天要聞

研究人員發現,成功的關鍵在於:

1、將複雜任務分解成多個子任務,每個子任務最好只需要少數幾個步驟即可完成,畢竟chatgpt生成的代碼是基於概率文本預測模型的結果。

2、chatgpt在使用已經存在的函數時表現最佳,因為這時只涉及內插而非外推。

例如,使用正則表達式(regex)從文本中提取信息的代碼對於許多開發人員來說是非常困難的,不過因為已經有正則網站提供了大量在線示例,並可能出現在chatgpt示例中,所以chatgpt寫正則的性能還是不錯的。

3、學術界對chatgpt最大的批評之一是其信息來源缺乏透明度。

對於代碼生成任務,通過指定「命名空間」(namespace),即在使用函數時顯式調用包名可以實現一定程度的透明性。

不過chatgpt可能會直接複製個人的公開代碼而沒有引用出來,並且研究人員仍然有責任驗證正確的代碼歸屬人。

同時,如果要求生成更長的腳本會暴露出一些chatgpt的缺陷,例如偽造函數名或參數等,這也是stackoverflow禁用chatgpt生成代碼的原因。

但如果用戶提供了一組明確的執行步驟,chatgpt仍然可以生成一個有用的工作流模板,定義步驟之間的輸入和輸出之間的連接,這可能是用gpt-3外推生成新代碼的最有用的途徑。

目前chatgpt還不能將偽代碼(用簡單語言描述的演算法步驟) 轉換為完美的計算機可執行代碼,但這可能離現實並不遙遠。

chatgpt對於初學者、不熟悉的編程語言來說特別有幫助,因為初學者只會寫一些較短的腳本,調試更方便。

chatgpt更擅長非創造性任務

chatgpt最擅長解決的是耗時的公式化任務,可用於調試、檢測和解釋代碼中的錯誤。

chatgpt在編寫函數文檔時也非常有效,例如使用roxygen 2的內聯文檔語法,在標識出所有參數及類上非常高效,不過卻很少解釋如何使用函數。

一個關鍵的限制是chatgpt的生成被限制在大約500個單詞,只能專註於較小代碼塊的生成,同時還可以生成單元測試以自動化確認代碼功能。

chatgpt給出的大多數建議在定義測試的結構和檢查預期的對象類方面是很有幫助的。

最後,chatgpt在對代碼進行重新格式化以遵循標準化(例如google)代碼樣式方面非常有效。

未來屬於偽代碼

chatgpt和其他人工智慧驅動的自然語言處理工具已經準備好將開發人員的簡單任務進行自動化,例如編寫短函數,語法調試,注釋和格式化,而擴展複雜性取決於用戶的調試意願(以及他們的熟練程度)。

研究人員總結了chatgpt在代碼生成上的功能,可以簡化科學領域的代碼編寫過程,不過人工檢查仍然是必要的,可運行的代碼並不一定意味著代碼能夠執行預期的任務,因此單元測試或非正式的互動式測試仍然至關重要。

在解決方案可能由人類開發,並由chhatgpt簡單複製生成的情況下,確保正確的代碼歸屬人至關重要。

目前已經有聊天機器人開始自動提供指向其來源的鏈接(例如,微軟的必應),儘管這一步還處於起步階段。

與傳統方法相比,chatgpt提供了一種學習編碼技能的替代方法,通過將偽代碼直接轉換為代碼,可以緩解編寫初始任務的障礙。

研究人員懷疑未來的進展將使用chatgpt這樣的工具來自動調試編寫的代碼,根據遇到的錯誤迭代地生成、運行和提出新代碼,在實驗過程中,研究人員發現糾正代碼的能力有限,只有在非常具體的指令針對小代碼塊時才會偶爾成功,調試過程的效率遠低於人工調試。

研究人員猜想,隨著技術的進步(比如最近發布的gpt-4模型 ,據稱比gpt-3模型大10倍),自動化調試將會得到改進。

未來即將到來,現在是開發人員學習提示工程技能以利用新興ai工具的時候了,研究人員預計,使用人工智慧生成的代碼將成為軟體開發各個方面越來越有價值的技能,這些技能是科學發現和理解的基礎。

參考資料:

程序員的未來屬於「偽代碼」!Nature專欄:用ChatGPT加速科研編程的三種姿勢 - 天天要聞

科技分類資訊推薦

【硬體編年史】內存的前世今生,跨越時代的存儲之旅 - 天天要聞

【硬體編年史】內存的前世今生,跨越時代的存儲之旅

寫在開頭想像一下,如果你的大腦只能保留幾秒鐘前的記憶,那麼日常生活將變得極其困難。你將無法完成連貫的對話,無法記住剛剛學到的知識,甚至無法記住回家的路。這樣的生活無疑是混亂且充滿挑戰的。幸運的是,人類的大腦擁有卓越的記憶功能,能夠存儲和回憶大量的信息,這對我們的日常生活和工作至關重要。計算機同樣依賴...
SpaceX發布了新開發的艙外活動服 - 天天要聞

SpaceX發布了新開發的艙外活動服

Credit:SpaceX今天,SpaceX發布了新開發的艙外活動(EVA)服,這是目前載人航天任務中艙內活動(IVA)服的演變。這套艙外活動服採用了新材料和製造工藝,在加壓的情況下提供了更強的靈活性,同時在非加壓的情況下保證了舒適性。3D 列印頭盔配備了新的護目鏡,可減少 EVA 期間的眩光,此外還配備了新的平視顯示器 (HUD) 和攝...
工程學又可以造新機甲了!這個機甲帥爆了還可以掛拍賣行出售 - 天天要聞

工程學又可以造新機甲了!這個機甲帥爆了還可以掛拍賣行出售

工程學在地心之戰中可以製作的新坐騎,該坐騎可以在拍賣行購買和出售,並可供非工程專業使用。友情提醒:因為微信公眾號平台改變了規則,請在閱讀後點擊「在看」並加星標,這樣才能在下一次推送時及時收到本號文章。- 更多內容,點擊上方 -關注「魔獸世界研究所」公眾號關注魔獸世界研究所,在後台回復抽獎二字,可參與魔獸...
華為Q1業績創近四年最佳 凈賺196億!Mate 60等機型賣爆 助力終端業務 - 天天要聞

華為Q1業績創近四年最佳 凈賺196億!Mate 60等機型賣爆 助力終端業務

快科技5月4日消息,華為公布的一季度報顯示,公司實現營收約1784.51億元,同比增長36.66%;歸母凈利潤196.49億元,同比增長564.04%。在研發商華為繼續不放鬆,一季度研發費用為415.88億元,同比增長13.81%。這份成績單可謂「亮眼」,為2021年以來最佳,而這無疑得益於華為手機業務的反彈趨勢。市場研究機構Canalys報告稱,...
小米的生態鏈為什麼很厲害:博主給老爸買電視替換索尼  結果剎不住車 - 天天要聞

小米的生態鏈為什麼很厲害:博主給老爸買電視替換索尼 結果剎不住車

快科技5月4日,小米的生態鏈為什麼很厲害?有博主發微博分享了自己的親身經歷,給老爸買電視替換索尼,結果剎不住車。「我春節時候給老爸買了台75英寸的小米電視,把他用了多年的那台索尼給換了下來。這個五一回家的時候,發現他又買了台小米空調,因為他已經習慣了用小愛同學語音來控制電視,還有空調,估計以後陸陸續續家...
蘋果發布會前瞻:新iPad是重頭戲 還有Apple Pencil 3 - 天天要聞

蘋果發布會前瞻:新iPad是重頭戲 還有Apple Pencil 3

【CNMO科技】不久前,蘋果官宣,將於下周二(5月7日)舉行今年的第一場發布會,本次發布會的主題為「放飛吧」,重點將放在iPad上。iPad Pro和iPad Air將迎來更新,蘋果還計劃更新其一些iPad的配件。  在發布會召開的前夕,CNMO科技綜合國內外相關信息,帶來了一篇有關此次發布會產品的前瞻,讓我們一起來看看,有哪些新產...
TCL發布全新微信遙控器:電視從未如此順滑 - 天天要聞

TCL發布全新微信遙控器:電視從未如此順滑

快科技5月4日消息,TCL推出了全新微信遙控器,超全快捷鍵+三大遙控模式,滿足用戶的各種需求。一鍵直達遙控器界面頂部新增「一鍵直達」快捷鍵區域。涵蓋了電視常用功能。這裡重點介紹幾個快捷鍵:1、語音開機:點擊快捷鍵,電視會出現語音開機設置頁面,開啟「遠場語音」和「遠場語音開機」。之後只需要說「小T開機」就能打...
累計輔導電商創業者超1000個,看這位90後創業導師如何一路「打怪升級」| 新青年·新職業 - 天天要聞

累計輔導電商創業者超1000個,看這位90後創業導師如何一路「打怪升級」| 新青年·新職業

大河報·豫視頻記者 張瞧 開欄的話:新青年,新活力,新職業。隨著社會的發展,一大批內容多元、模式新穎的新職業不斷湧現,而一大批青年人更是在新職業中嶄露頭角,譜寫新時代的青春之歌。他們是伴隨新技術、新消費而湧現出的一批年輕從業者,創新活力無限,光芒四射;他們往往也是認準某一不曾被大多數人關注的門類,持續...
不玩套路,只搞真誠,紅旗HS3用價值演繹豪華 - 天天要聞

不玩套路,只搞真誠,紅旗HS3用價值演繹豪華

早在2023年年底,網路上就有不少關於2024年汽車價格走向的討論,當時不少人認為車企基本已經卷到頭了,再卷就徹底亂了;但也有人認為眼下市場格局未定,當然得接著卷,卷死一個是一個!