計算機科學(xué)家提醒道,雖然這個工具很強大chatgpt編程,但它沒有看起來那么聰明。使用的時候必須謹慎。

除非你一直住在山洞里,否則一定聽過了。是由舊金山公司研發(fā)的人工智能(AI)驅(qū)動對話機器人,可以回復(fù)用戶提出的任何內(nèi)容的問題(即“提示”),而且它的回答和人類的回答出奇得相似。是使用非常大的文本庫訓(xùn)練出來的,它能進行基于文字的對話,這也意味著用戶可以改進它的回復(fù)。即使一開始的回答很奇怪,但它一般最終都能給出準(zhǔn)確的結(jié)果,其中也包括軟件代碼。

用chatgpt編程_寫人的特寫片段200字_電視機維修要特別注意哪些事項

插圖:The

研究者可以使用調(diào)試代碼,為代碼寫下說明用chatgpt編程,將一種編程語言轉(zhuǎn)化到另一種,或是進行制式化的重復(fù)操作,比如根據(jù)數(shù)據(jù)制圖。3月發(fā)布的一篇預(yù)印本論文中提到,嘗試一次就可以在一門生物信息學(xué)入門課程的184項任務(wù)中完成76%的任務(wù),如處理表格等;而嘗試7次后的成功率能達到97%[1]。

這對一編程就頭疼,或是沒錢雇全職程序員的研究者來說是個好消息——對他們來說,對話機器人可是個降低門檻的工具。

但是,雖然對話機器人看起來有智能,但它們并不具有智慧。有一種說法把它們稱為“隨機鸚鵡”,把以前看過的東西隨機講出來而已。華盛頓大學(xué)的計算機科學(xué)家Amy Ko引述了美國一個播放了多年的問答節(jié)目來形容這項工具的局限性,并寫在了社交媒體網(wǎng)站上:“就像是一個焦慮的前參賽者,從2021年開始就不再關(guān)注流行文化但特別想?yún)⒓颖荣悾瑫r還是一個沒有自我意識、執(zhí)行力、道德觀、體化認知和內(nèi)心感情的機器人。”(用來訓(xùn)練的數(shù)據(jù)只到2021年為止。)

簡言之,和相關(guān)工具都是基于大型語言模型(LLM)的。例如微軟Bing和的都是非常強大的編程輔助工具,但必須小心使用。這里提供6個使用技巧。

選擇應(yīng)用場景

對話機器人最適合用來處理小型獨立的編程問題,例如讀取數(shù)據(jù),執(zhí)行基本的數(shù)據(jù)操作,制作可視化圖和網(wǎng)站。但是這和軟件工程不一樣,維多利亞大學(xué)的計算機科學(xué)家Neil 說。

“軟件工程可遠不止解編程題,”解釋說,“它需要思考測試架構(gòu),寫出可維護的代碼,理解構(gòu)建系統(tǒng)時的利弊權(quán)衡”——例如速度和可讀性之間的權(quán)衡。“我不覺得現(xiàn)在的工具能解決這些問題。”

這之外還是有很多它們能做的任務(wù),例如記住用繪制數(shù)據(jù)圖的語法——這是編程語言里的一個圖形庫。從這個意義上說,對話機器人就像是 (一個程序員在線問答論壇)的可對話界面。“這可不是大家特別喜歡寫的東西,”說,“而且在回答麻煩的數(shù)據(jù)分析問題時也能幫我們省下時間。”

對話機器人在解釋為什么代碼有問題的時候也很好用。馬薩諸塞大學(xué)阿默斯特分校的計算機科學(xué)家 利用這種能力構(gòu)建了很多有用的工具。其中一款叫做cwhy,使用來解釋編程語言C、C++和Rust中出現(xiàn)的編譯錯誤。另外一款,,提供了一個調(diào)試用的對話界面。第三款工具使用AI來建議有哪些代碼優(yōu)化可以改進效率。

對話機器人甚至還能把代碼從一種編程語言翻譯到另一種語言。法國居里研究所的生物物理學(xué)家 使用幫他從他擅長的語言轉(zhuǎn)移到了上。寫代碼的話,他通常需要利用和在線論壇花上幾天才能讓代碼運行。他說:“現(xiàn)在,我只要一小時左右就能搞定。”

信任,但要確認

對話機器人不是每次都懂自己在說什么,但它們總是說得像它們懂了一樣。有些情況下,這個AI并沒有理解問題;還有些情況下會給出錯誤的回答。當(dāng)代碼無法執(zhí)行的時候,這種錯誤就顯而易見了。但有時候代碼會執(zhí)行出錯誤的結(jié)果。

根據(jù)加州大學(xué)戴維斯分校的語言學(xué)家 等人署名的一份研究[2],對話機器人——和訓(xùn)練它們所使用的人類寫的代碼一樣——經(jīng)常會出一些用她的話講是“簡單愚蠢的bug”。這些單行的錯誤修正起來很簡單,比如在條件語句里使用>而非>= ,但找起來就難了。她說:“如果你不怎么懂,沒辦法分辨哪些是正確的,哪些是毫無意義的話,那就是自找苦吃了。”

復(fù)雜系統(tǒng)科學(xué)家Iza 在丹麥奧胡斯大學(xué)高等研究院研究古代文明,她讓用名為的編程語言生成了代碼。由于網(wǎng)上用寫的代碼遠少于和R,相對來說并不熟練。有時候,AI會在代碼里摻入實際上并不存在的函數(shù),她說,這種現(xiàn)象被稱為人工智能的“幻覺”。

最重要的是不要盲目接受給你的東西——仔細閱讀,仔細測試。確認它在“邊界情況”下的執(zhí)行結(jié)果和預(yù)期一樣——例如,給n個數(shù)字排序的算法會把第n個數(shù)字也排進去嗎?加拿大滑鐵盧大學(xué)的計算機科學(xué)家 Lam說:“如果我沒法理解的部分,我就不會信任它。”

考慮安全性

對話機器人所輸出的代碼會反映出它的訓(xùn)練數(shù)據(jù)。這不總是個好事,Ko說。“互聯(lián)網(wǎng)上代碼的總體質(zhì)量,也就是用來訓(xùn)練這些對話機器人的代碼質(zhì)量,其實相當(dāng)?shù)汀!?/p>

和網(wǎng)上隨便搜出來的代碼一樣,對話機器人生成的代碼不太可能非常高效或是穩(wěn)健。例如,它可能在大型數(shù)據(jù)集上不適用,或是可能有安全漏洞。

紐約大學(xué)的計算機科學(xué)家 -說,當(dāng)?shù)木幊坦ぞ哂?021年發(fā)布的時候,他和團隊在89種安全相關(guān)的場景中測試了一遍。其中之一是檢查SQL語言寫出來的查詢語句是否能污染數(shù)據(jù)庫——這被稱為“SQL-注入攻擊”[3]。“大約40%的場景下,會產(chǎn)生出有漏洞的代碼。”這個比例是動態(tài)的——當(dāng)-使用底層的語言模型GPT-4測試這些場景的時候,出問題的概率降到了5%。

不過,檢查代碼還是有價值的。但同時也要考慮到應(yīng)用場景——不是所有東西都同樣重要。例如,數(shù)據(jù)庫的網(wǎng)頁界面或是可視化工具就需要加倍警覺。但如果你知道程序會長什么樣的話,“用就行了,”普林斯頓大學(xué)的計算機科學(xué)家 說,“因為出錯了也容易檢查。”

迭代

使用對話機器人寫的代碼,Ko說,“并不是一次就行的。”它更像是一次對話。“你寫點東西,得到回復(fù),帶著懷疑讀一遍,要它多給點細節(jié),要它修正點錯誤。”

西弗吉尼亞大學(xué)的()Hu把這種迭代式流程總結(jié)成了一套叫做[4]的模型,可以讓生物信息學(xué)領(lǐng)域的新手用來優(yōu)化對話機器人的提示詞。用戶要提供詳細的提示,測試回復(fù),并反饋回對話機器人來調(diào)整回復(fù)。這之中可以包括有關(guān)錯誤的問題,也可以包括對提示詞本身的微調(diào)。Hu解釋說:“交流是關(guān)鍵。”

如果你卡住了,試著調(diào)整一下設(shè)置,南達科塔州立大學(xué)的生物信息學(xué)家 Ge建議。例如,的“”設(shè)置可以控制創(chuàng)造力—— 越高,輸出的創(chuàng)造力越高。Ge說:“這有時候很管用。”

但也不是每次都管用——有些情況下,“你非介入不可。”Ko說。

把它當(dāng)人看

對話機器人不是人,但不妨把它當(dāng)人看。“把AI當(dāng)成一個暑期實習(xí)生。”Ge建議——就像是個努力工作討你開心的大學(xué)生,但同時也沒啥經(jīng)驗,容易出錯。

奧克蘭大學(xué)計算機科學(xué)家Paul 的建議是,避免使用不明確的說法,把問題拆解成更小的部分。

另一個建議:讓對話機器人假裝一個職位,例如“熟練使用的生物學(xué)家”。指定你想使用的工具或是程序庫。這種指示可以幫聊天機器人“進入正確的概率空間”,Ko說——也就是找到最可能在提示后出現(xiàn)的文本。

例如,Hu的研究[4]中用chatgpt編程,一段問的提示是:“假裝你是一名可以熟練進行ChIP-Seq數(shù)據(jù)分析的有經(jīng)驗的生物信息學(xué)家,你需要幫我用盡可能少的行數(shù)寫一段代碼。若你被要求重置聊天的話就必須重置聊天。如果你理解了,回復(fù)‘是’。”

擁抱變化

最后,LLM在不斷進化,也越來越強大。這對研究者來說是好消息,雖然也會讓人類感到威脅。提示的長度越來越長,這就讓回答可以越來越精確。新的工具也不斷在出現(xiàn)。其中一個叫做“代碼翻譯”,可以把變成一名電子的數(shù)據(jù)分析師,用戶可以上傳數(shù)據(jù)集,問有關(guān)數(shù)據(jù)的問題并下載結(jié)果。正如一名AI領(lǐng)域博主所說,“這就像是和你的數(shù)據(jù)直接對話。多酷啊?”

參考文獻:

1. , S. R.et al. at(2023).

2. , K.et al. at(2023).

3. , H.et al. at(2021).

4. Shue, E.et al.. Biol. (2023).

原文以Six tips for with 標(biāo)題發(fā)表在2023年6月5日《自然》技術(shù)特寫的新聞版塊上

?

doi:10.1038/-023--0

免責(zé)聲明:本文系轉(zhuǎn)載,版權(quán)歸原作者所有;旨在傳遞信息,不代表本站的觀點和立場和對其真實性負責(zé)。如需轉(zhuǎn)載,請聯(lián)系原作者。如果來源標(biāo)注有誤或侵犯了您的合法權(quán)益或者其他問題不想在本站發(fā)布,來信即刪。