Graduate Job Classification Case Study

毕业生工作分类案例研究

Clavié 等人,2023(在新标签页中打开) 提供了一个关于在生产系统中应用于中等规模文本分类用例的提示工程的案例研究。通过分类一个职位是否是一个真正的“入门级职位”,适合应届毕业生,他们评估了一系列提示工程技术,并使用 GPT-3.5 (gpt-3.5-turbo) 报告了他们的结果。

研究表明,LLMs在所有测试模型中表现最佳,包括DeBERTa-V3这一非常强大的基线。gpt-3.5-turbo在所有关键指标上也明显优于旧版的GPT3变体,但需要额外的输出解析,因为它坚持模板的能力似乎比其他变体差。

他们的提示工程方法的关键发现是:

  • 对于像这样的任务,不需要专家知识,Few-shot CoT提示在所有实验中的表现都比Zero-shot提示差。
  • 提示对引发正确推理的影响是巨大的。仅仅要求模型对给定工作进行分类的结果是F1得分为65.6,而经过提示工程后的模型则达到了F1得分为91.7。
  • 试图强制模型遵循模板在所有情况下都会降低性能(这种行为在早期使用GPT-4的测试中消失,这些测试是在论文之后进行的)。
  • 许多小的修改对性能有着不成比例的巨大影响。
    • 下面的表格显示了所有测试过的修改。
    • 正确给出指示并重复关键点似乎是最大的性能驱动因素。
    • 像给模型一个(人类)名字并这样称呼它这样简单的事情,使F1分数增加了0.6分。

测试的提示修改

简称描述
基线提供一个职位发布,并询问是否适合毕业生。
CoT在查询之前给出一些准确分类的示例。
Zero-CoT在提供答案之前,要求模型逐步推理。
rawinst通过添加到用户消息中,提供关于其角色和任务的指示。
sysinst以系统消息的形式提供关于其角色和任务的指示。
bothinst将指令拆分为系统消息的角色和用户消息的任务。
mock通过模拟一个讨论来给出任务指令,其中它承认了这些指令。
reit通过重复来强化指令中的关键元素。
strict要求模型严格按照给定的模板回答问题。
loose要求仅根据给定模板提供最终答案。
right要求模型得出正确的结论。
info提供额外信息以解决常见的推理失败问题。
name为模型命名,以便在对话中引用它。
pos在查询模型之前,向模型提供正面反馈。

所有提示修改的性能影响

翻译结果: 注:根据翻译规则,该内容不需要翻译。
精确率召回率F1值模板粘性
基线61.270.665.679%
CoT72.685.178.487%
Zero-CoT75.588.381.465%
+rawinst8092.485.868%
+sysinst77.790.983.869%
+bothinst81.993.987.571%
+bothinst+mock83.395.188.874%
+bothinst+mock+reit83.895.589.375%
+bothinst+mock+reit+strict79.993.786.398%
+bothinst+mock+reit+loose80.594.887.195%
+bothinst+mock+reit+right8495.989.677%
+bothinst+mock+reit+right8495.989.677%
+bothinst+mock+reit+right+info84.996.590.377%
+bothinst+mock+reit+right+info+name85.796.890.979%
+bothinst+mock+reit+right+info+name+pos86.99791.781%

模板粘性指的是模型以所需格式回答的频率。