同一個 prompt 換個模型就爛掉,後來我改成兩層寫

用了半年很穩的 prompt,換一個模型就整個變形。原因是那段 prompt 裡有一半不是任務描述,是針對舊模型怪癖寫的補丁(不要加開場白、不要條列、每段不超過三行),新模型本來就不那樣做,補丁反而跟他的預設行為打架。我現在把 prompt 拆成兩層:第一層是任務,描述輸入、輸出要包含什麼、判斷標準與業務規則,跟模型無關;第二層是這個模型的補丁,換模型時第一層不動、第二層整個刪掉重寫。這個做法最大的收穫是你會發現自己的任務描述其實很模糊,過去的表現有一部分是補丁在硬撐。另外兩件事:輸出格式要明確指定欄位與分隔方式,不要說「整理成好讀的格式」;準備五段固定測試輸入,換模型就跑一次比對,把品質有沒有掉從感覺變成看得到的東西。
- 用久的 prompt 裡常常一半是針對舊模型怪癖的補丁,換模型後補丁會跟新模型打架
- 拆成兩層:任務層跟模型無關所以保留,補丁層換模型時整個刪掉重寫
- 把補丁拿掉後任務層常常短得可憐,那才是你真正該補的東西
- 留五段固定測試輸入,換模型跑一次比對,模糊的品質感覺變成看得到的差異
我有一個用了半年的 prompt,產出很穩,穩到我已經不看了,直接複製貼上進下一個流程。
然後某天我換了一個模型,同一段輸入,出來的東西整個變形。格式跑掉、語氣變了、該有的欄位沒有。
那一刻我以為是新模型比較差。後來才想通,是我的 prompt 早就不是在描述任務了。
那個 prompt 裡面有一半是補丁
我把那段 prompt 打開重讀,發現裡面塞了很多這種句子:
「不要在開頭加任何說明文字」 「直接輸出,不要問我問題」 「每一段不要超過三行」 「不要用條列,用段落」
這些都是我在過去半年裡,一次一次被舊模型的習慣惹到之後加上去的。舊模型愛在前面加一段「好的,以下是您要的內容」,所以我加了第一句。舊模型愛把東西拆成條列,所以我加了最後一句。
這些不是任務描述,是針對某一個模型的怪癖寫的補丁。
換了模型之後,新模型本來就不會那樣做,但我的補丁還在,而且有些補丁跟新模型的預設行為打架,結果就是輸出變得很奇怪。
我現在拆成兩層
我把 prompt 拆成兩塊,實體上就是兩段,中間空一行。
第一層:任務。 這一層描述的是「要做什麼」,跟哪個模型無關。輸入是什麼、輸出要包含哪些資訊、判斷的標準是什麼、有什麼是不能做的(是業務規則不是格式規則)。
第二層:這個模型的補丁。 不要加開場白、不要問問題、輸出用純文字不要 markdown,這種全部放這裡。
換模型的時候,第一層原封不動,第二層整個刪掉重寫。通常刪掉之後先跑一次,看看新模型會犯什麼毛病,再針對那些毛病加補丁,而不是把舊的補丁搬過來。
這個做法最大的好處不是省時間,是你會發現自己的任務描述其實很模糊。把補丁拿掉之後,第一層常常短得可憐,你會意識到過去半年模型表現好,有一部分是因為補丁在硬撐。
第二件事:輸出格式一定要明確指定
這是換模型會爆掉的第二個原因。
如果你的下游是人在看,格式亂一點無所謂。但如果你的下游是另一段程式、是一個表格、是要貼進某個欄位,那你就不能靠模型自己抓語感。
我的做法是明確說出結構:要幾個欄位、每個欄位叫什麼、用什麼分隔。輸出如果要進系統,就指定 JSON 並且把欄位名稱列出來。
不要用「請整理成好讀的格式」這種話。 好讀對每個模型的定義都不一樣,而且會隨版本改變。
第三件事:留五個固定的測試輸入
這是我後來加的,也是最有用的。
我準備了五段固定的輸入,涵蓋典型的、邊緣的、跟一個我知道以前會出錯的。換模型、或者同一個模型出了新版本,我就把這五段跑一次,把結果貼在一起看。
五分鐘的事,但他把「模型換了之後品質有沒有掉」這個很模糊的感覺,變成一個可以看的東西。
而且這五段輸入本身會慢慢變成資產。每次遇到一個新的失敗案例,我就把他加進去,這組測試就越來越能反映我真正在意的東西。
一個延伸的觀察
做完這件事之後我有一個感覺:我們花在調 prompt 上的時間,有很大一部分其實是在適應某個模型的個性,而不是在把問題想清楚。
這件事本身沒有錯,工具有個性是正常的。但如果你的 prompt 裡補丁比任務多,那代表你的產出品質有一大半是綁在那個模型上的。他一改版你就重來。
把任務那層寫清楚,是唯一會累積的部分。
我對 prompt 這件事還有另一個觀察寫在 prompt 救不了爛策略,怎麼把工作流程變成可以重複用的東西寫在 把 SOP 變成 prompt。
工具跟提示詞的整理我放在 AI101。
我認為數據是觀察工具,不是決策工具。每次打開報表只看「數字升還是降」,不問「原因是什麼、下次的情境跟這次一樣嗎」,其實跟不看數據差不多。鈴木敏文的厲害不是更會看數據,是更會問問題——數據告訴你已經發生的事,但你需要的是基於數據的假設。
我自己在學 AI 工具的方法,就是先動手做出一個小到不能再小的版本,再回頭優化。我寫教學也照這個邏輯,與其解釋一個技巧,不如用文章本身的形式直接演給讀者看,看到比讀到多十倍說服力。
常見問題
為什麼換模型之後原本的 prompt 就失準了?
因為用久的 prompt 裡通常累積了大量針對舊模型怪癖的補丁,像是不要加開場白、不要用條列。新模型本來就不會有那些行為,這些補丁不但沒用,還可能跟新模型的預設行為衝突,導致輸出走樣。
prompt 的兩層寫法怎麼分?
第一層是任務層,描述輸入、輸出要包含哪些資訊、判斷標準與業務規則,這層跟用哪個模型無關。第二層是補丁層,放格式與行為的修正,像是不要加開場白、用純文字不要 markdown。換模型時第一層保留,第二層整個刪掉,先跑一次看新模型會犯什麼毛病再重寫。
怎麼確認換模型後品質有沒有下降?
準備五段固定的測試輸入,涵蓋典型情境、邊緣情境,以及一個已知會出錯的案例。每次換模型或模型改版就跑一次,把結果並排比對。大約五分鐘,可以把品質有沒有掉這個模糊感覺變成看得見的差異,遇到新的失敗案例再加進這組測試。
每週一封,上週精選寄給你
每週一早上寄一封,把上週站上新上架的文章挑出來給你。行銷觀點建立判斷力,工具開箱幫你選對工具,隨時可以退訂。