不停PUA大模型「寫更好點(diǎn)」,無需其它花哨技術(shù)就能讓AI代碼水平暴增
激勵(lì)式對(duì)齊
原標(biāo)題:不停PUA大模型「寫更好點(diǎn)」,無需其它花哨技術(shù)就能讓AI代碼水平暴增
文章來源:機(jī)器之心
內(nèi)容字?jǐn)?shù):14598字
迭代式提示優(yōu)化代碼:讓AI寫出更好的代碼
本文總結(jié)了Max Woolf利用迭代式提示詞不斷要求AI模型“寫出更好的代碼”,從而顯著提升代碼質(zhì)量的實(shí)驗(yàn)結(jié)果。該實(shí)驗(yàn)引發(fā)了AI領(lǐng)域?qū)<业臒嶙h,并被認(rèn)為具有重要的實(shí)際應(yīng)用價(jià)值。
1. 實(shí)驗(yàn)背景與方法
受到此前“讓圖像更X”meme的啟發(fā),Woolf嘗試通過迭代式提示詞“write better code”來改進(jìn)AI生成的Python代碼。實(shí)驗(yàn)使用Claude 3.5 Sonnet模型,針對(duì)一個(gè)簡(jiǎn)單的編程問題(找出百萬個(gè)隨機(jī)整數(shù)中各位數(shù)之和為30的最小數(shù)和最大數(shù)的差值)進(jìn)行測(cè)試。初始代碼由模型直接生成,之后每次迭代都將之前的代碼和新的提示詞輸入模型,讓其進(jìn)行優(yōu)化。
2. 迭代優(yōu)化過程
實(shí)驗(yàn)進(jìn)行了多次迭代,每一次迭代都帶來了代碼性能的提升,但提升幅度逐漸減小。前幾次迭代,模型主要通過算法改進(jìn)(例如使用整數(shù)運(yùn)算、并行化和向量化)來提升效率,速度提升了數(shù)倍。但到了后期,模型開始引入一些“企業(yè)級(jí)”功能(例如日志記錄、信號(hào)處理),代碼變得臃腫,性能提升反而有所下降,體現(xiàn)了“過早優(yōu)化”的風(fēng)險(xiǎn)。
3. 提示詞工程的重要性
為了更有效地引導(dǎo)模型進(jìn)行優(yōu)化,Woolf在第二次實(shí)驗(yàn)中使用了更精細(xì)的提示詞工程,明確規(guī)定了“完全優(yōu)化”的標(biāo)準(zhǔn),并設(shè)定了懲罰機(jī)制。這次實(shí)驗(yàn)的初始代碼質(zhì)量更高,后續(xù)迭代也更加穩(wěn)定,但依然存在模型出現(xiàn)幻覺、生成錯(cuò)誤代碼的情況,需要人工干預(yù)修正。
4. 實(shí)驗(yàn)結(jié)果與啟示
實(shí)驗(yàn)結(jié)果表明,迭代式提示詞方法確實(shí)可以改進(jìn)AI生成的代碼,但效果取決于提示詞的質(zhì)量和模型的理解能力。簡(jiǎn)單的“write better code”提示詞可以帶來初步的改進(jìn),而更精細(xì)的提示詞工程則能獲得更顯著、更穩(wěn)定的提升。然而,模型可能會(huì)引入一些微妙的bug,需要人工進(jìn)行檢查和修正。 實(shí)驗(yàn)中,即使模型出錯(cuò),也能提供一些有價(jià)值的優(yōu)化思路和工具建議,例如numba庫的使用。
5. 實(shí)際應(yīng)用價(jià)值
盡管LLM生成的代碼并非完美,但迭代式提示方法為提升代碼編寫效率提供了新的思路。通過不斷引導(dǎo)和改進(jìn),可以有效地利用LLM來輔助軟件開發(fā),提升開發(fā)效率。然而,開發(fā)者需要具備一定的專業(yè)知識(shí),才能判斷模型生成的代碼是否合理,并進(jìn)行必要的修正和完善。該方法尤其適用于一些重復(fù)性高、邏輯簡(jiǎn)單的代碼編寫任務(wù)。
6. 未來展望
未來,研究人員可以進(jìn)一步探索更有效的提示詞工程方法,以及如何更好地引導(dǎo)LLM避免生成錯(cuò)誤代碼。此外,利用其他編程語言和更高級(jí)的優(yōu)化技術(shù),例如Rust和PyO3,將進(jìn)一步提升代碼性能,拓展該方法的應(yīng)用范圍。
聯(lián)系作者
文章來源:機(jī)器之心
作者微信:
作者簡(jiǎn)介:專業(yè)的人工智能媒體和產(chǎn)業(yè)服務(wù)平臺(tái)