載入中

在升級模型之前先反覆優化提示

第 3 課10 分鐘
載入中

在升級模型之前先反覆優化提示

當模型的得分低於您的準確度下限時,請先閱讀其失敗案例並修正提示,然後再為更大的模型付費。接著重新執行同樣的測試案例。這使 Meridian 測試的三個 Claude 模型中最便宜的一個,從 84% 提升到 100%。

此影片中的示範錄製於 2026 年 8 月。它運行在 Claude Haiku 4.5、Claude Sonnet 5 和 Claude Opus 5 上。在較新的模型上結果可能會有所不同。每堂課的示範都是獨立的評估執行,因此其分數和成本不會與其他課程中的相符。

較低的評估分數表示模型答錯了太多案例,但無法說明應歸咎於模型還是您的提示。

請先檢查提示,因為更換成更大的模型會提高您在換模型之後所發送的每一個請求的價格。修改提示只需幾分鐘,而且您可以立即測試變更。

Meridian 是一家虛構的工程顧問公司,它有一個提示,會從每份月度專案報告中提取三個欄位:專案 ID、進度狀態,以及首要風險。它的評估包含 50 個測試案例,每個案例都是一份報告搭配其預期答案。

Claude Sonnet 5 和 Claude Opus 5 全部 50 題都答對了。Claude Haiku 4.5 是這三個模型中成本最低的,但它只答對了 84%,低於 Meridian 在使用某個模型之前所要求的 90% 準確度下限。

在 Meridian 花更多錢購買更大的模型之前,它先完成了五個步驟:

  1. 閱讀失敗案例,找出它們的共通點。
  2. 針對無依據的答案選擇修正方案。
  3. 將變更寫入提示中。
  4. 在全部三個模型上重新執行全部 50 個案例。
  5. 檢查每一欄,然後再決定是否升級。

閱讀失敗案例,找出它們的共通點

依照每個案例的報告類型,以及答錯的欄位,對失敗案例進行分類。 分數只會計算失敗次數,卻無法解釋原因。閱讀失敗內容能讓您看出出了什麼問題以及原因,而這正是判斷該歸咎於模型還是提示的方法。

Meridian 的 50 個案例中,有 30 個是典型報告、10 個涵蓋多個專案,還有 10 個是缺少風險段落的案例,也就是報告中沒有風險區段。下表顯示了 Haiku 4.5 使用舊提示(Meridian 最初使用的提示)的表現。

報告類型案例數失敗數答錯的欄位
典型303schedule_status
多專案100
缺少風險105top_risk

Haiku 4.5 使用舊提示時,在 50 個案例中答錯了 8 個。

八個失敗案例中有五個是缺少風險的案例,全部都出在 top_risk 上。每個案例原本都應該回傳 null,但模型每次都寫出一句話,指名某個風險。案例 r045 就是其中之一。

案例 r045
報告對許可證的描述「團隊預期續期不會有任何問題。」
預期答案null
實際回傳的答案「郡許可證續期窗口將於下季開放,若未及時完成可能影響專案的連續性。」

這份許可證只獲得了一則例行註記,而報告本身也說明不預期會有麻煩,但模型卻選它作為首要風險。

舊提示中 top_risk 那一行的結尾寫的是「或 null」,這雖然允許出現 null,卻從未說明何時適用。當失敗案例集中在同一種報告類型和同一個欄位上時,它們通常有共同的原因,而在這裡,問題出在提示遺漏了某些內容。

針對無依據的答案選擇修正方案

從五種讓無依據答案變少的標準方法中挑選您的修正方案。 無依據的答案,也就是文件本身並未支持的答案,也被稱為幻覺。以下前三種方法是讓幻覺變少的基本步驟。

  1. 讓模型可以說「我不知道」。 告訴模型當文件中沒有答案時該回傳什麼,對 Meridian 而言就是 null。
  2. 先引用再回答。 讓模型先找出支持其答案的句子,然後再根據那句話作答。
  3. 回頭引用文件。 在模型作答之後,讓它為每個論述找出一句支持的引文,並撤回任何它無法支持的論述。接著,人員就可以檢查每一個剩下的論述。
  4. 加入驗證環節。 發送第二個請求,其任務是檢查第一個請求所給出的答案。
  5. 限制外部知識。 告訴模型只能根據文件作答,並略去它在訓練中學到的內容。

Meridian 採用前兩種方法,因為第一種正好填補了步驟 1 所發現的缺口。第二種方法則讓每個答案都對應到報告中的一句話。這兩種方法都只需要在 Meridian 已有的提示中增加一兩行。

將變更寫入提示中

在提示中說明何時 null 才是正確答案,並要求在答案之前先提供引文。 下方方框中是新提示,也就是 Meridian 兩項變更都完成後的提示。找出負責每項工作的那一行,並附上一則說明變更內容的註記。

載入中

再看一次案例 r045。現在模型必須指出能顯示風險的句子,而報告自己的文字並未顯示任何風險:「團隊預期續期不會有任何問題。」當報告中沒有這樣的句子時,新提示說明了該回傳什麼:<source>none</source>,接著是 null。

您的程式碼也多了一項新工作。由於引文現在會先出現在回應中,整段文字已不再是有效的 JSON,對它執行 json.loads 會失敗。只需解析結尾 </source> 標籤之後的內容。

python
answer = json.loads(text.split("</source>")[-1])

在全部三個模型上重新執行全部 50 個案例

使用新提示重新執行評估,維持相同的 50 個案例與相同的三個模型。

典型多專案缺少風險整體
舊提示90%100%50%84%
新提示100%100%100%100%

Haiku 4.5 在使用舊提示和新提示時答對的案例比例。

五個無依據的答案一個都沒有再出現,Haiku 4.5 現在的得分已超過準確度下限。

在下表中,執行成本是某個模型通過全部 50 個案例一次所花費的價格,而每完成一項任務的成本,則是將該成本除以正確答案的數量。

模型典型多專案缺少風險整體執行成本每完成一項任務的成本
Haiku 4.5100%100%100%100%$0.0468$0.0009
Sonnet 5100%100%100%100%$0.1250$0.0025
Opus 5100%100%100%100%$0.3040$0.0061

在 2026 年 8 月的標準價格下,全部三個模型使用新提示,在 50 個案例中、以 90% 準確度下限為基準的結果。請參閱目前價格。

現在每個模型都超過了下限,因此您應該依每完成一項任務的成本來做選擇,而 Haiku 4.5 的成本最低。

檢查每一欄,然後再決定是否升級

查看兩次執行中的每一欄,而不只是您原本想修正的那一欄。 一項有助於某種案例的變更,可能會破壞另一種案例,因此在每次變更之後都要檢查這一點。

計算無依據的答案數量,以及任何由正確變成錯誤的答案。Meridian 沒有損失任何一個正確答案。

這次那三個在 schedule_status 上失敗的典型案例都通過了,儘管並未有任何變更觸及該欄位那一行。模型對同一個案例,在不同次執行之間可能會給出不同的答案,因此在信任某個分數之前,應將每種設定執行兩次以上。

持續修改提示並重新執行,只要分數仍在變動。當分數停止變動卻仍未達到您的準確度下限時,就表示模型缺乏所需的能力,這時才該升級。

結論

  1. 先閱讀失敗案例,依每個案例的報告類型和答錯的欄位分組。
  2. 透過說明當文件中沒有答案時該回傳什麼、並要求先提供引文,來修正提示中遺漏的部分。
  3. 將同樣的案例重新執行兩次以上,並檢查無依據的答案是否減少,同時確認沒有任何正確答案變成錯誤。
  4. 只有在提示的變更不再使分數移動之後,才升級到更大的模型。