Applications - Graduate Job Classification Case Study

畢業生工作分類案例研究

前言

大型語言模型在分類任務中表現亮眼,但成效高度依賴提示設計。透過實際案例研究,我們將探討不同提示策略如何影響模型效能,並整理出能顯著提升準確率與 F1 分數的關鍵做法。


本篇目標


研究重點整理

克拉維等人,2023年發表了一項案例研究,探討了提示工程應用於實際生產系統中的中型文本分類案例。他們以判斷職位是否為適合應屆畢業生的「入門級職位」為任務,評估了一系列提示工程技術,並使用 GPT-3.5 (gpt-3.5-turbo) 報告了研究結果。

這項研究顯示,大型語言模型(LLM)的表現超越了所有其他受測模型,包括極為強大的基準模型 DeBERTa-V3。gpt-3.5-turbo 在所有關鍵指標上也顯著優於舊版的 GPT-3 模型。然而,gpt-3.5-turbo 需要額外的輸出解析,因為它在遵循模板方面的能力似乎不如其他變體。

他們快速工程方法的主要發現是:

  • 對於像這樣不需要專業知識的任務,在所有實驗中,少針CoT提示比Zero-shot提示的表現更差

  • 提示對引出正確推理的影響是巨大的。簡單地要求模型對給定的工作進行分類,就會得到 F1 分數 65.6,而後提示工程模型的 F1 分數是 91.7。

  • 在所有情況下,試圖強制模型堅持使用範本都會降低性能(這種行為在使用 GPT-4 的早期測試中消失,這是在論文之後)。

  • 許多小的修改對效能產生了巨大的影響

  • 下表顯示了測試的完整修改

  • 正確給出指示並重複關鍵點似乎是最大的性能驅動因素。

  • 簡單的事情,比如給模型一個(人類)的名字,並稱其為F1分數增加了0.6分


測試了提示修改

名稱 描述
Baseline(基線) 提供招聘廣告,並詢問他是否適合畢業生
CoT 在查詢之前,舉幾個準分類的具有代表範例
Zero-CoT 要求模型在提供答案之前進行逐步推理
rawinst(原始指令) 提供給 LLM 的最基礎、未經處理的指令或提示
Sysinst(系統指令) 一種特殊的提示,用於設定模型在整個對話或特定任務中的整體行為、角色和限制
bothinst(兩種指令) 與 LLM 互動時,不僅提供了一個持續影響模型行為和角色的「幕後」系統指令,同時也包含了使用者針對特定當前任務提出的「即時」指令。
mock 模擬物件或程式碼,用於模仿真實程式碼的行為
relt 通過重複來強化說明中的關鍵要素
strict 要求模型嚴格遵循給定的模板來回答
loose 只詢問根據給釘模板進行回答
right 要求模型得出正確的結論
info 提供更多資訊,以解決常見的推理失敗
name 給模型指定義一個名稱,我們在對話中用這個名稱來引用它
pos 在查詢模型之前,先提供積極的反饋

各種提示修改對效能的影響

以下表格總結了各提示策略對性能的影響,包括精確度(Precision)、召回率(Recall)、F1 分數及模板遵循度(Template Stickiness,指模型按指定格式回答的頻率):

精確的 招回 F1系列 模板黏性
Baseline 61.2 70.6 65.6 79%
CoT 72.6 85.1 78.4 87%
Zero-CoT 75.5 88.3 81.4 65%
+rawinst 80 92.4 85.8 68%
+sysinst 77.7 90.9 83.8 69%
+bothinst 81.9 93.9 87,5 71%
+bothinst+mock 83.3 95.1 88.8 74%
+bothinst+mock+reit 83.8 95.5 89.3 75%
+bothinst+mock+reit+strict 79.9 93.7 86.3 98%
+bothinst+mock+reit+loose 80.5 94.8 87.1 95%
+bothinst+mock+reit+right 84 95.9 89.6 77%
+bothinst+mock+reit+right+info 84.9 96.5 90.3 77%
+bothinst+mock+reit+right+info+name 85.7 96.8 90.9 79%
+bothinst+mock+reit+right+info+name+pos 86.9 97 91.7 81%

範本黏性是指模型以所需格式回答的頻率。

表格各項修改的意義與效果解析

  1. Baseline:最基本的 prompt,僅請模型判斷職缺是否為畢業者適合職位,F1 僅有 65.6%。
  2. CoT (Chain-of-Thought):加入 few-shot 示例,引導模型思考流程,F1 明顯提升至 78.4,template stickiness 也增加到 87%。
  3. Zero-CoT:Zero-shot 並加入 step-by-step reasoning,引導但不示例;F1 達 81.4,但 stickiness 降到 65%(模型不太遵循預期模板)。
  4. 逐步加入指令性修改
  • rawinst:將角色/任務指令放入 user message → F1 提升至 85.8。
  • sysinst:則放入 system message → F1 達 83.8。
  • bothinst:系統與使用者訊息都提供指令 → F1 進一步到 87.5。
  1. 加強提示清晰度與重複提醒
  • mock:模擬對話情境使模型確認指令 → F1 88.8。
  • reit:重複關鍵指令元素,增強模型抓住重點 → F1 89.3。
  1. 加入模板強制或放寬
  • strict:強制模型完全依模板回應,stickiness 飆到 98%,但 F1 降為 86.3(模板一致性高,但犧牲些許效能)。
  • loose:只要求最終答案符合模板,stickiness 仍高(95%),F1 87.1。
  1. 方向性與資訊補充
  • right:提示模型需要找出「正確結論」,推高 F1 89.6。
  • info:提供更多防止推理失敗的資訊 → F1 90.3。
  1. 人性化名稱與正向回饋
  • name:給模型一個名字稱呼,增加互動化感受 → F1 提升至 90.9。
  • pos:在提問前給予正面回饋提示(如「你做得很好」),F1 最終達到 91.7,Recall 高至 97%,stickiness 則為 81%。

表格總結洞察

  • 累加效益明顯:Baseline 的 F1 65.6 最終累積提升至 91.7,模仿人類提示設計的引導效果非常顯著。
  • 指令清晰度與重複提醒是核心推升因素:如 rawinst、bothinst、mock、reit 等方向性的設計帶來穩定提升。
  • 模板一致性與效能間的折衷:strict 提升模板一致性,但犧牲效能;loose 是更好的折衷方式。
  • 微調人性化元素也有效果:加入名稱與正向回饋讓模型「感覺更被尊重」,也有助提升分類準確度。

References

Graduate Job Classification Case Study


目錄 : Applications - 大型語言模型應用和指南

上一章:Applications - 生成程式碼
下一章:Applications - 提示功能