🚀 在我们的新课程中掌握 Prompt 工程和构建 AI Agents!使用 PROMPTING20 享受八折优惠 ➜ 立即报名
毕业生职位分类案例研究

毕业生职位分类案例研究

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

该研究表明,LLMs 的表现优于所有其他测试的模型,包括 DeBERTa-V3 这一非常强大的基线模型。gpt-3.5-turbo 在所有关键指标上也明显优于旧的 GPT-3 变体,但它需要额外的输出解析,因为它遵循模板的能力似乎不如其他变体。

他们的 Prompt 工程方法的关键发现是

  • 对于这类不需要专业知识的任务,Few-shot CoT prompting 在所有实验中的表现都逊于 Zero-shot prompting。
  • Prompt 对引发正确推理的影响巨大。简单地要求模型对给定职位进行分类,其 F1 得分为 65.6,而经过 Prompt 工程优化的模型则达到了 91.7 的 F1 得分。
  • 试图强制模型遵循特定模板会降低所有情况下的性能(在 GPT-4 的早期测试中这种行为消失了,这些测试晚于该论文)。
  • 许多微小的修改对性能产生显著影响。
    • 下表显示了所有测试的修改。
    • 正确给出指令并重复关键点似乎是最大的性能驱动因素。
    • 像给模型一个(人类)名字并在对话中以此称呼它这样简单的事情,就能将 F1 得分提高 0.6 分。

测试的 Prompt 修改

缩写名称描述
基线提供职位招聘信息,询问是否适合应届毕业生。
CoT在查询前给出一些准确分类的示例。
Zero-CoT要求模型在给出答案前进行逐步推理。
rawinst通过添加到用户消息中,给出关于其角色和任务的指令。
sysinst作为系统消息,给出关于其角色和任务的指令。
bothinst将指令拆分,角色作为系统消息,任务作为用户消息。
mock通过模拟一段模型确认接收指令的对话,给出任务指令。
reit通过重复加强指令中的关键要素。
strict要求模型严格遵循给定模板回答。
loose要求仅按照给定模板给出最终答案。
right要求模型得出正确结论。
info提供额外信息以解决常见的推理失败。
name给模型起一个名字,以便在对话中称呼它。
pos在查询模型前向其提供积极反馈。

所有 Prompt 修改的性能影响

精确率召回率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+right+info84.996.590.377%
+bothinst+mock+reit+right+info+name85.796.890.979%
+bothinst+mock+reit+right+info+name+pos86.99791.781%

模板遵循度指的是模型按照期望格式回答的频率。