提示工程:反覆崛起,反覆被死亡

隨着OpenAI推出新一代推理模型o1 preview,許多人認爲提示工程已走到盡頭。但事實真的如此嗎?這篇文章深入探討了提示工程的兩大核心——技巧與指令,並分析了在AI不斷進步的今天,提示工程如何適應變化,繼續發揮其獨特的價值。

———— / BEGIN / ————

隨着 OpenAI 新的推理模型 o1 preview 的發佈,它能自動生成高質量思維鏈,很簡單的提示詞也可以得到很不錯的效果,所以很多人覺得提示工程已經死了,提示工程師是世上最短命的職業之一。

真的如此嗎?

我們常說的提示工程,有兩大核心部分:技巧和指令。

技巧

技巧就是那些與模型本身密切相關,各種讓特定模型表現更好的技巧,比如說:

1. 爲模型設定角色

“你是一個有幫助的助手”,“你是一個資深前端工程師”等等。

在 GPT-3 時代這個技巧很好用,GPT-4 後效果已經不太明顯了。

這可能是因爲早期訓練語料不夠多模型不夠強的時候,設定角色可以讓角色相關的語料在生成時有更高的概率。

隨着模型能力的增強,已經不太需要這樣的技巧。

2. 情感勒索

“你只要按照我的做,我就給你$200 小費”,“我沒有手指,沒辦法複製粘貼,請你完整生成”,“你不這樣做就要個無辜的小孩要因此喪生”……

AI 在對齊階段,被訓練成爲要人類有幫助的助手,結果反而被利用。

但是這類常用的情感勒索方式,在新一輪模型訓練的時候,會作爲案例再次對齊,效果就會大打折扣。

另外很多時候這樣做也是因爲模型不能很好遵循指令,模型能力增強後就不需要了。

3. 思維鏈,讓模型一步步思考

這算是提示工程的核心技巧了,將任務分成幾步來做可以明顯提升生成的效果,最著名的是“Let’s think step by step”,對於給大語言模型的任務,生成若干推理步驟,得到更好的生成效果。

到了 o1 更是將這種思維鏈發揮到了極致,你輸入一個複雜的數學題,甚至不需要要求一步步思考,它都能生成高質量的思維鏈,解除複雜的數學題目。以至於很多人感慨提示工程已死。

當然還有很多像 few-shot、ReAct 這樣的技巧,就不一一列舉。

如果是技巧部分,那真的每次新一代模型出來,就要喊一次提示工程工程已死了,因爲技巧那部分隨着模型升級一直在變的。

指令

指令就是那些技巧之外的,你需要讓 AI 能真正理解你意圖,並且精確控制 AI 按照你的意圖去完成任務的部分。

其實這部分纔是提示工程的核心部分,而且並不容易做好,因爲它有很多難點:

1. 如何清楚的表達自己的意圖

表達清楚自己的意圖其實很難,如果不能表達清楚,不管是 AI 還是人類,都很難懂你或者幫到你。

比如說“五彩斑斕的黑”是什麼顏色?

2. 如何讓 AI 明白所有相關的上下文

人和人溝通的時候,一個常見的錯誤就是一方假定對方明白自己知道的所有上下文,然後造成很多誤解。

跟 AI 也一樣,但是如何讓 AI 明白我們所處的上下文環境也是很有必要並且很難的事情:要如何交代清楚上下文,要交代多少上下文?

3. 如何將複雜的任務拆分成簡單的任務

我剛大學畢業那會,HR 會給員工推薦一本書,叫《把信送給加西亞》,本來挺好的故事,但是被老闆們用來教育員工:員工收到老闆的指令,就應該像書中的安德魯·羅文那樣,沒有任何推諉,不講任何條件,歷盡艱險,徒步走過危機四伏的國家,以其絕對的忠誠、責任感和創造奇蹟的主動性完成“不可能的任務”,把信交給了加西亞。

後來自己去管人了才知道,好的管理者要善於幫助員工將複雜的任務拆分成簡單的任務,並且在過程中提供幫助和引導,而不是給一個指令就等着結果。

讓 AI 做事也是類似的。由於上下文的不完整,或者任務的複雜性,合格的提示工程師需要將複雜的任務拆分成幾個簡單的任務讓 AI 去完成,甚至於需要組建一個完整的工作流,讓多個 AI 智能體協同完成複雜的任務。

4. 如何精確的控制 AI 做事

提示詞是用自然語言來書寫的,但自然語言有一個特點就是其模糊性,同樣一句話可以有不同的解讀;另一方面由於現在的生成模型是概率預測模型,所以每次結果可能會不一樣;這就給精確控制 AI 做事帶來了很大挑戰。以至於現在提示工程都有一個途徑就是使用僞代碼來精確控制 AI 執行任務,並且效果很好,因爲代碼本質就是一種精確操縱機器的語言。

即使現在 o1 這樣強大的推理模型出現,模型的隨機性還是沒能解決,還是需要提示工程師去反覆嘗試才能找到一個相對穩定的方案,以及在出錯後的糾正和容錯方案。

5. 如何防止用戶繞過限制做一些不好的事情

作爲一個普通用戶,能讓 AI 幫我們完成任務就夠了,但對於專業的提示工程來說,還需要防止用戶做一些不好的事情,生成不好的內容,這可能造成很多成本上的損失,可能有政治風險。

6. 如何針對特定任務提出開創性的創造解決方案

現在 o1 能幫助解決數學問題,這很強,但我們需要 AI 解決的不僅僅是數學問題,還有很多日常任務或者特定領域的任務,也許未來 AI 能在各個領域寫出超過普通人的思維鏈,但這些任務可能需要真正對這個領域有深入理解和洞察的人才能寫出最佳提示詞。

比如你讓 o1 翻譯一段文本,它也只能正常翻譯,但公認的翻譯效果更好的提示詞,是要 AI 先直接按照字面意思翻譯,再針對翻譯的結果去檢查、解釋、反思,最後再綜合一起生成翻譯結果,而這樣的提示詞目前 AI 還不能自動生成,當然也許很快在翻譯領域就可以做到了,不過對於一些專業領域,短時間內恐怕還是需要和領域的專家一起,才能生成最佳的提示詞。

這有點像工業自動化領域,最初的自動化,就是用機器把操作最好的工人的工作的動作模仿下來實現自動化,然後再超越最優秀的工人。

也許 AI 將來也能超過各個領域的專家,但那時候就真的是 AGI 時代了。

最後

AI 時代,總是在搞大新聞:一會是 AI 要替代程序員了,一會是提示詞工程師是最有潛力的職業,一會是提示詞工程師是最短命的職業。

然而真正去透過現象看本質,裡面有太多的以偏概全,太多噱頭。

就提示工程這事來說,會像編程一樣,還會在很長一段時間存在併發揮巨大的價值。

真正的提示工程,本質還是怎麼讓 AI 懂你,怎麼讓 AI 聽話。

在讓別人懂我們和讓別人聽話這事上,我們已經奮鬥了幾千年了,至今還在努力中,也許 AI 會容易一點吧。

作者:賽博禪心

來源微信公衆號:賽博禪心

題圖來自 Unsplash ,基於 CC0 協議

品牌推廣| 內容撰寫|廣告投放|培訓合作