142、Few-shot 与上下文学习:示例选择策略、顺序效应、负面示例的价值
142、Few-shot 与上下文学习:示例选择策略、顺序效应、负面示例的价值一个让我熬夜到凌晨三点的Bug去年秋天,我在做一个智能客服意图识别模块。模型用的是GPT-3.5,Few-shot prompt写得自认为很完美——每个意图给了3个正面示例,格式工整,标签清晰。上线第一天,准确率92%,我美滋滋地准备下班。结果第二天凌晨,监控告警响了。用户说“我要退款”,模型返回了“投诉”意图。我翻看日志,发现类似“退款”“退货”“取消订单”这类请求,模型总是莫名其妙地偏向“投诉”。更诡异的是,同样的prompt,换个示例顺序,准确率能差15个百分点。那晚我盯着屏幕,把示例顺序调了又调,终于发现:我把“投诉”类示例放在了最前面,而“退款”类示例排在最后。模型对开头的示例产生了“锚定效应”,对结尾的示例产生了“近因效应”。中间那些示例?模型几乎没怎么关注。这就是上下文学习中“顺序效应”的典型表现。从那以后,我花了整整两周时间,系统研究了Few-shot的示例选择策略。今天这篇笔记,就是那次踩坑后的沉淀。示例选择:不是越多越好,是越“像”越好很多人以为Few-shot就是随便扔几个例子进去。大错特错。示例选择的核心原则只有一条:让示例与待预测样本在语义空间上尽可能接近。基于嵌入的检索策略别手动选示例,用向量检索。我现在的标准做法是: