範例排序指的是:在 few-shot prompting(少樣本提示)裡附上多個範例時,這些範例被放進提示的先後順序,會實際影響 Claude 從中學到什麼、模仿哪些特徵。這不是「有沒有給範例」或「給幾個範例」的問題——這兩件事屬於 few-shot prompting 本身要處理的範疇;範例排序處理的是更細一層的問題:同一組範例,換一個排列順序,輸出結果可能不一樣。多數人在準備少樣本提示時,只在意有沒有涵蓋到需要的情境,很少意識到「先放哪個、後放哪個」本身也是一個會影響結果的變數。
這件事會被需要,是因為模型在處理一連串範例時,並非把每個範例當成完全對等、無差別的參考資料,最後出現的內容往往帶有更強的權重——這跟人在讀一長串範例時的傾向類似,最近讀到的東西記得最清楚,也最容易被當成「這是重點」。如果你手上的範例裡,前面幾個是常規情況、最後一個剛好是特殊情況(例如例外處理、格式差異最大的那個),Claude 很可能把那個特例的特徵當成整體規則的核心,過度套用到不該套用的地方。這個效應在範例之間差異愈大時愈明顯,範例彼此愈相似時影響愈小,這也是為什麼同一組範例、換個順序測試,有時候會得到肉眼可見不同的輸出。
實務上有三個具體做法。第一,把最具代表性、最能反映「一般情況該怎麼處理」的範例放在最前面,讓 Claude 先建立起主要規則的印象,特例或邊界情況放在中間,不要放最後。第二,如果範例裡確實需要包含一個特例(例如格式差異較大的邊界案例),刻意在該範例後面再補一個回歸主流格式的範例,避免特例是提示裡最後看到的內容。第三,範例之間如果差異很大、彼此不容易被視為同一類,先測試不同排列組合,觀察輸出穩不穩定——如果調換順序後輸出有明顯差異,代表這組範例本身可能不夠一致,這時候該檢討的往往不是排序本身,是範例的選擇是不是涵蓋了太多不同類型的情境,硬要用同一組範例覆蓋。
對你來說,範例排序真正的價值在於:當少樣本提示的輸出「莫名其妙偏向某個範例的風格」而你想不通為什麼,排序往往是被忽略的答案——多數人第一時間會懷疑是不是範例本身選錯了,卻沒想到問題可能只是順序不對,把最後一個範例換到中間,問題可能就解決了,不需要重新找範例。真正該建立的習慣是:準備少樣本提示時,把「哪個範例放最前面、哪個放最後面」當成跟「選哪些範例」同等重要的決定,而不是選完範例之後隨手貼上去的順序。要留意的風險是:範例差異愈小,排序的影響愈不明顯,這時候花時間反覆調整順序未必划算,值得投入排序優化的通常是範例彼此差異較大、或其中包含明顯特例的情況。
OpenAI 研究團隊在 2020 年發表的 GPT-3 論文《Language Models are Few-Shot Learners》裡已經觀察到,少樣本提示的效果會隨提示裡範例的呈現方式而波動;此後多篇針對 in-context learning(情境內學習)的後續研究進一步證實,範例的排列順序是造成同一組範例、不同測試結果出現變異的因素之一,這類「順序敏感性」的討論後來成為提示工程領域檢討提示穩定性時的常見切入點。
優點是不需要換範例、只調整順序就能修正輸出偏離的問題,成本極低,通常幾秒鐘就能調整測試;缺點是效果不穩定,範例之間差異愈小,排序帶來的改善愈不明顯,花時間反覆調整順序有時候不如直接檢討範例本身的選擇是不是有問題。