GPT-4 的出現,令許多程式設計師直呼「解放雙手」,但隨著功能需求的逐漸增多,它的編碼能力似乎沒那麼強了。
原文連結:https://klaviyo.tech/gpt-4-from-strong-pair-coder-to-annoying-pair-coder-6e2d202d8bc0
未經授權,禁止轉載!
作者 | Eric Silberstein
譯者 | 彎月 責編 | 鄭麗媛
兩週前,我讓 GPT-4 從頭編寫一款應用程序。由於這段經歷感覺良好,當時我認為 GPT-4 是非常強大的程式設計夥伴。然而,上週末我讓 GPT-4 擴展這款應用程序,卻有了完全不同的體驗。
因此,我想通過本文記錄整個過程,並分享一些心得和技巧。
我的這款應用程序主要是為了幫助使用者學習音程:
▶ 如想嘗試這款應用,可前往:https://ericsilberstein.github.io/gpt4-interval-trainer/interval-trainer.html
▶ 如想查看源程式碼,可前往:https://github.com/ericsilberstein/gpt4-interval-trainer
我詢問了 GPT-4 關於如何擴展這款應用程序的想法。
我提問:接下來,我們應該添加哪些功能?
GPT-4 回答:
下面是你可以考慮添加到音程聽力訓練應用功能的一些想法:
1. 自定義音程範圍:允許使用者選擇練習的音程,而不只是練習八度以下的所有音程。
2. 上行、下行以及和聲音程:添加分別練習上行、下行以及和聲音程或混合模式的選項。
3. 旋律練習:添加生成具有多個音程的短旋律練習功能,供使用者辨別。
4. 和弦識別:擴展應用,添加和弦識別練習,允許使用者練習通過聽力判斷和弦。
5. 一段時間內的進度跟蹤:實現一個功能,允許使用者保存自己的進度,並記錄一段時間內的進步程度。
6. 計時練習:添加計時模式,允許使用者挑戰在規定時間內識別儘可能多的音程。
7. 排行榜和社交功能:創建一個排行榜,鼓勵使用者之間的友好比拼,允許他們在社交媒體上分享進度。
8. 自定義音訊設置:允許使用者選擇不同樂器或音訊播放的聲音設置。
9. 移動應用:開發移動應用,方便使用者隨時隨地練習聽力。
10. 集成音樂理論課程:提供額外的教學內容,或集成已有的音樂理論課程,幫助使用者更好地理解音程的理論知識。
以上是可以考慮的一些想法。你可以根據該應用的規劃隨意選擇,另外你也可以大膽地提出能夠改善使用者體驗和功能的其他意見。
這些想法都很不錯。最終我選擇採納第 6 條建議。
我提問:我們來試試看第 6 個吧,你可以添加這個功能嗎?
GPT-4 回答:
當然可以。下面,我們為你的音程聽力訓練應用添加計時功能。添加這個功能後,使用者就可以在規定時間內識別儘可能多的音程。下面,我將提供實現這個功能的程式碼片段。
首先,更新 HTML,添加計時控制:
接下來,更新 JavaScript,處理計時邏輯:
看到了嗎?有經驗的人應該一眼就能看出這段程式碼中存在兩個問題:
▶ 首先,它想讓我在
▶ 其次,它想讓我更新函數 handleIntervalButtonClick(),但實際上這個函數也不存在。
無效技巧 1:闡明需求
這不是什麼大問題,我之前也遇到過類似的問題,只需要進一步闡明需求。
然而,與之前不同的是,僅僅闡明需求還不夠。GPT-4 像一個糟糕的工程師,沒有搞清楚整體狀況,就根據我的反饋做出了反應,更可怕的是,它還開始隨意修改一些不需要改動的程式碼。
下面舉個例子。我指出了一個問題,它開始嘗試解決,但它的 handleIntervalButtonClick() 引用了一個不存在的變數(isAnswering)和一個不存在的函數(playRandomInterval):
無效技巧 2:提醒程式碼
後來,我嘗試了不同的技巧,「提醒」它一些程式碼。
可是這並沒有用。而且很奇怪的是,它似乎知道程式碼前後要保持一致,但並沒有理解我希望它完成的功能(添加計時功能)。
無效技巧 3:要求它倒退一步
來回折騰了很多遍,它仍未能生成可以運行的程式碼,這感覺就好像我在帶實習生一樣,最後我只好要求它倒退一步。
這次終於可以了。給出的反饋是正確的,前面對話中澄清的問題也得到了解決。然後,我再次提醒它一些程式碼,希望它能正確理解需求,並編寫出正確的程式碼。
可惜失敗了,它生成的程式碼和前面一樣都是錯的。
無效技巧 4:開啟一個新的聊天會話
接下來,我嘗試開了一個新的聊天會話。因為我認為,當前的這段聊天太長了,涉及太多上下文,如果它能專注於需求和當前程式碼,也許就可以解決問題。
我使用了與兩週前一模一樣的提示,但額外提供了功能、需求和源程式碼檔案。
不過,情況似乎並沒有改善。我反覆嘗試了很多遍,始終沒能得到可以正常運行的程式碼。
無效技巧 5:要求它加倍小心
我要求它加倍小心,集中注意力解決它生成的程式碼中的一個問題:start() 調用 startTimer(),startTimer() 調用 start(),但依然沒有用。
無效技巧 6:人為介入,重構程式碼
在我看來,GPT-4 似乎不「理解」 start() 函數。按照最初它編寫程式碼的方式,start() 將在使用者開始練習以及使用者點選「下一個音程」時調用——但它在告訴我如何添加計時功能時,卻假設 start() 只會被調用一次。如果人類程式設計師不仔細閱讀程式碼,可能也會做出這樣的假設。
所以,我嘗試手動重構,可能起一個更好的名字,它就會明白了。
我將 start() 分解成了兩個函數:start() 和一個新函數 nextInterval()。GPT-4 似乎很「喜歡」這個名字,因為在之前的反覆中它就調用了這個函數。為了儘可能避免混淆,我開啟了一個新的聊天會話,並提供了需求和新程式碼。
但依然沒有任何效果。我反覆嘗試了幾次,它甚至生成了一個新版本,卻莫名地將 JavaScript 移到了 HTML 中。
我放棄了:如果對方是一個人類,我會認為這個人頭腦不清醒、粗心大意、心不在焉、能力不足,或者四者兼而有之!
初次建立這個項目時,我與 GPT-4 的互動體驗與現在截然不同。是不是因為該模型可以「思考」的程式碼量很有限,而我已經觸及上限了?不過至少對人類而言,計時功能與添加其他功能(示例歌曲、統計資料)一樣簡單,甚至更簡單,所以我感覺應該是程式碼量的問題。
有用的技巧:要求它給函數寫文件
經過這件事後,我經常在想:如果程式碼中的函數非常清晰且文件齊全,GPT-4 是否能勝任更高級別的抽象工作,而不需要「思考」每個函數的程式碼?如果有明確的文件說明,它是不是就不會在意那麼多細節了?因為人類就是這樣,我們大腦能夠承受的複雜度是有限的,我們也是通過這種方式構建大型系統的。
於是,我做了一些測試,要求它為程式碼生成文件。
它給了我如下帶有文件說明的函數:
我將這些函數的文件複製到了源檔案中,並在新的聊天中重複了之前的操作,不過 ChatGPT 抱怨我的請求太長,所以我刪除了 CSS 檔案。
這次它終於成功地生成了程式碼!雖然使用者界面需要完善,但基本要素齊全:你可以選擇是否啟用計時模式,你可以指定秒數,它會顯示一個倒計時,還會在倒計時結束時強制停止練習,並告訴你一共答對了多少道題。
最後一次,ChatGPT 終於生成了可以正常運行的程式碼,但原因是什麼呢?是因為文件,還是因為沒有了 CSS,它需要處理的程式碼量減少了?為了弄清楚,我進行了一些實驗,最後發現似乎僅刪除 CSS 是不夠的。
我們需要反覆嘗試,才能學會如何與這個外星人(ChatGPT)一起工作。我想知道其他人是否也遇到過這類問題,以及它們如何打破這些限制的。
相關文章
CNNVD通報Oracle多個安全漏洞
近日,CNNVD通報Oracle多個安全漏洞,其中Oracle產品本身漏洞60個,影響到Oracle產品的其他廠商漏洞247個。包括Orac...
GPT-4 真的「變懶」了!偷學人類「年後再說」,隔壁 Gemini 都要趕上了
整理 | 鄭麗媛 上週,Google在重磅官宣「迄今為止功能最強大、最通用的 Gemini 模型」時,曾自信宣佈:在大型語言模型(LLM)研...
ChatGPT 資料集之謎
ChatGPT這把火越燒越旺。國內很多大廠相繼聲稱要做中文版ChatGPT,還公佈了上線時間表,不少科技圈已功成名就的大佬也按捺不住,攜巨資...
用 100 行程式碼揭開 LLM 集成工具 LangChain 的神秘之處!
整理 | 王子彧 責編 | 夢依丹 LangChain 是一個強大的程序框架,它允許使用者圍繞大型語言模型快速構建應用程序和管道。它直接與 ...
史上最強模型 GPT-4 上線:一張手繪草圖能生一個網站、60 秒搞定一個遊戲開發!
整理 | 蘇宓 平地一聲雷,GPT-4 重磅來襲。 3 月 14 日,OpenAI 正式上線新一代人工智慧大模型 GPT-4,它是一個大型多...
用 GPT-4 在駭客大賽上「炸場」:不完全會 Linux、Perl,似乎也沒有關係了!
作者 | Micah Lee 編譯 | 蘇宓 GPT-4,有人說「好用」,當把一段雜亂的文字內容分享給它時,它會自動調優,輸出一段合理、邏輯...
萬字長文解釋 ChatGPT 在做什麼,以及為什麼它能發揮作用?
【CSDN 編者按】ChatGPT 是由 OpenAI 開發的頂尖 AI 模型,旨在基於人們輸入的內容生成類似的人類語言,憑藉其強大的語言理...
微軟 154 頁研究論文刷屏,對 GPT-4 最全測試曝光,稱其初次叩開 AGI 的大門!
整理 | 蘇宓 2019 年,微軟用 10 億美元砸進 OpenAI,兩者展開為期數年的合作。 當時兩家對外公開的合作內容包括,微軟和 Op...
GPT-4 被曝「變蠢」!為了降本,OpenAI 偷偷搞「小動作」?
整理 | 鄭麗媛 「你們有沒有覺得,最近 GPT-4 的質量有所下降?」 早在今年 5 月中旬開始,就有 GPT-4 使用者在 OpenAI...
重磅,GPT-4 API 全面開放使用!
整理 | 屠敏 遙想今年 3 月剛推出GPT-4的 OpenAI 僅邀請了部分提交申請的開發者參與測試。眼瞅 OpenAI 聯合創始人 Gr...
被騙了?GPT-4 其實沒有推理能力?!
整理 | 屠敏 今年三月,OpenAI 重磅發佈了 GPT-4 大模型,帶來了比 ChatGPT 背後 GPT-3.5 更強的推理、計算、邏...
我使用 ChatGPT 審計程式碼發現了 200 多個安全漏洞( GPT-4 與 GPT-3 對比報告)
作者 | 安全女巫 責編 | 王子彧 前面使用 GPT-4 對部分程式碼進行漏洞審計,後面使用 GPT-3 對 git 儲存庫進行對比。最終...
OpenAI 總裁:GPT-4 有不完美,高階版本正在測試!
3月15日,繼 ChatGPT 展現了驚人的實力之後,OpenAI 又扔下了一顆核彈:備受期待的史上最強人工智慧大模型GPT-4 發佈了。 ...
山寨 GPT 太瘋狂,OpenAI 發出「警告」:別用它來命名,正加速申請 GPT 商標
整理 | 屠敏 近半年來,隨著 OpenAI 推出 ChatGPT、GPT-4,徹底點燃 AI 賽道,也讓 GPT 系列產品層出不窮,如Au...
價格最高降75%、API函數調用上線、上下文長度提高4倍,OpenAI凌晨再給ChatGPT、GPT-4加碼!
整理 | 屠敏 就在今天凌晨,OpenAI 馬不停蹄地又雙叒叕更新啦! 這一次,不僅重磅升級了 ChatGPT 背後的 GPT-3.5-tu...