跳到主要内容

研究生工作分类案例研究

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,而后提示工程模型实现了 91.7 的 F1 分数。
  • 试图强迫模型坚持模板会降低所有情况下的性能(这种行为在 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+right+info84.996.590.377%
+bothinst+mock+reit+right+info+name85.796.890.979%
+bothinst+mock+reit+right+info+name+pos86.99791.781%

模板粘性指的是模型按照期望的格式回答的频率。