自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何使用ChatGPT編寫更好的代碼

譯文
人工智能
生成代碼是ChatGPT和其他遵循指令運行的大型語言模型(LLM)一個功能強大的應(yīng)用。如果得到正確的提示,大型語言模型(LLM)可以生成程序員可能需要數(shù)小時才能編寫的代碼。

譯者 | 李睿

審校 | 重樓

生成代碼是ChatGPT和其他遵循指令運行的大型語言模型(LLM)一個功能強大的應(yīng)用。如果得到正確的提示,大型語言模型(LLM)可以生成程序員可能需要數(shù)小時才能編寫的代碼。


然而,大型語言模型(LLM)并不能完成程序員的所有工作。他們無法分解復(fù)雜的問題,思考邏輯和結(jié)構(gòu),也無法創(chuàng)建多層次的解決方案。它們一次處理一個指令,預(yù)測可能遵循用戶提示和輸出的下一段代碼。

以下是可以幫助用戶充分利用ChatGPT強大的編碼能力以及避免進(jìn)入陷阱的四個技巧。

如果無法驗證,就不要信任ChatGPT

像ChatGPT這樣的大型語言模型(LLM)的一個突出特征是它們的權(quán)威聲音。它們總是充滿信心地回答,即使他們的答案毫無意義。不可避免,有時ChatGPT采用令人信服但錯誤的答案回答了一些問題。

本文作者表示,他使用ChatGPT的經(jīng)驗法則是,只在他完全理解并可以驗證的主題中使用它。例如不會用它來寫量子物理的解釋,因為他對這個主題了解不夠。但是ChatGPT可以幫助他撰寫一篇關(guān)于機(jī)器學(xué)習(xí)基礎(chǔ)知識的有趣文章,因為可以完全檢查和糾正它的輸出。

同樣,當(dāng)使用ChatGPT生成代碼時,只讓它完成可以完全驗證的任務(wù)。ChatGPT可能編寫無效或更糟的代碼,這些代碼雖然有效但不安全。因為ChatGPT是一個自動化工具,可以完成那些需要花費很長時間編寫或需要多次訪問文檔頁面或在線論壇(如StackOverflow)的繁重工作。例如,可以要求它編寫排序算法,采用Python啟動Web服務(wù)器的代碼,從數(shù)據(jù)庫模式中執(zhí)行SQL查詢,或者在Matplotlib中執(zhí)行數(shù)據(jù)可視化命令。

一次迭代一個代碼塊

大型語言模型(LLM) 往往難以處理需要推理和逐步規(guī)劃的任務(wù)。因此,不要指望ChatGPT能夠成功地編寫完整的程序或復(fù)雜的代碼塊。但是,這并不意味著ChatGPT不能幫助人們完成復(fù)雜的編程任務(wù)。如果給它提供一個簡單的任務(wù)(例如上面提到的任務(wù)),就有可能完成。

用戶可以將任務(wù)分解成更小的步驟,并一次一步地提示ChatGPT。一個成功的方法是從給ChatGPT一個你想要編寫的程序的邏輯的逐步大綱開始。

這有助于大型語言模型(LLM)為更復(fù)雜的任務(wù)做好準(zhǔn)備,然后逐步提示大型語言模型(LLM)。簡而言之,用戶進(jìn)行推理,ChatGPT完成工作。順便說一句,這種從大綱開始并逐步完成的方法在完成其他任務(wù)時也很成功,例如撰寫某些類型的文章。

如果對循序漸進(jìn)的過程沒有清晰的愿景,用戶可以從ChatGPT本身獲得幫助。通過提示大型語言模型(LLM)生成完成任務(wù)的步驟列表來啟動編碼會話。然后根據(jù)需要修改大綱,并開始提示它生成第一步的代碼。

向ChatGPT提供反饋

不能指望ChatGPT每一步都提供干凈、安全、有效的代碼。當(dāng)查看其代碼并將其輸入集成開發(fā)環(huán)境(IDE)時,可以進(jìn)行更正和調(diào)整。當(dāng)這樣做時,最好的做法是將更正后的代碼作為反饋提供給ChatGPT,并在適用的情況下提供解釋。

需要注意的一點是,ChatGPT對場景非常敏感,它的行為可以根據(jù)聊天歷史改變。用戶可以利用這一點,這就是為什么提供反饋和糾正代碼片段非常有幫助的原因。

例如,用戶可以說:“這就是我更改你提供的代碼的方式:[在這里插入修改后的代碼]。試著(插入行為更正)繼續(xù)這樣做?!边@可以幫助引導(dǎo)ChatGPT朝著正確的方向前進(jìn),避免在回答以后的提示時重復(fù)犯錯。(同樣,本文作者在ChatGPT的其他任務(wù)中也成功地使用了這種反饋方法,包括撰寫文章)。

有時可以使用ChatGPT來獲得關(guān)于其自身代碼的反饋。嘗試打開一個單獨的聊天會話,在其中向ChatGPT提供它生成的代碼,并要求它對其進(jìn)行改進(jìn)或更正。有時,它會產(chǎn)生有趣的結(jié)果和新的探索方向。

清理ChatGPT的場景

如果用戶正在處理一個特別大的任務(wù),聊天記錄可能會變得很長,特別是如果使用ChatGPT進(jìn)行了大量的重復(fù)操作。根據(jù)用戶使用的模型,大型語言模型(LLM)可能會耗盡ChatGPT場景的內(nèi)存。ChatGPT的免費版本有4000個令牌的內(nèi)存。(對于語言任務(wù),100個令牌覆蓋大約75個單詞。對于編程來說,它通常要少得多。)

一個成功的技巧是偶爾清理一下ChatGPT的場景。為此,可以采用一個提示啟動一個新的聊天會話,在這個提示中,可以向ChatGPT提供任務(wù)的大綱、到目前為止完成的步驟、到目前為止生成的代碼,以及希望它遵循的一些通用指導(dǎo)原則。然后告訴它繼續(xù)下一步。通過消除以前與大型語言模型(LLM)交互中的混亂,可以提供更清晰的場景,并提高了ChatGPT生成代碼的準(zhǔn)確性。

大型語言模型(LLM)正在改變編程方式

大型語言模型(LLM)輔助編程領(lǐng)域正在迅速發(fā)展。例如,ChatGPT Plus現(xiàn)在有幾個插件可以幫助程序員預(yù)測代碼。其他基于大型語言模型(LLM)的編碼工具(例如GitHub Copilot和Amazon CodeWhisperer)正在幫助程序員顯著提高他們的速度和生產(chǎn)力。檢索增強技術(shù)可以使程序員將大型語言模型(LLM)的行為定制為他們自己的專有代碼庫或庫,這些代碼庫沒有包含在訓(xùn)練數(shù)據(jù)集中。人們?nèi)栽谔剿鞔笮驼Z言模型(LLM)能為程序員做些什么。

原文標(biāo)題:How to write better code with ChatGPT,作者:Ben Dickson

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2021-03-17 08:00:59

JS語言Javascript

2014-04-21 10:14:52

PromisesJavaScript

2021-06-09 10:45:12

JavaScript開發(fā) 編程

2010-02-02 13:59:11

Python編寫

2017-09-07 16:20:39

SQL查詢語句查詢優(yōu)化

2020-05-08 19:52:31

Reactreact.js前端

2010-02-03 09:27:21

編寫Python程序

2020-06-23 07:50:13

Python開發(fā)技術(shù)

2023-06-28 00:05:44

人工智能聊天機(jī)器人ChatGPT

2012-07-11 10:51:37

編程

2020-10-04 13:15:37

代碼技術(shù)開發(fā)

2020-06-23 07:48:18

Python開發(fā)技術(shù)

2015-08-03 10:41:52

大數(shù)據(jù)

2020-08-06 00:25:38

Python代碼開發(fā)

2010-01-22 13:20:27

C++代碼

2021-05-23 15:46:23

React代碼前端

2024-06-24 14:19:48

2022-06-07 09:30:35

JavaScript變量名參數(shù)

2010-01-22 18:06:24

C++代碼

2020-06-15 11:04:38

JavaScript 代碼JavaScript
點贊
收藏

51CTO技術(shù)棧公眾號