从一次深夜调试说起
上周排查一个智能客服的异常回复,问题出在模型对“用户想重置密码但忘了注册邮箱”这类场景的处理上。直接问模型“怎么办”,它大概率会丢出一段通用流程,比如“请检查垃圾邮件”或“联系管理员”——这显然没解决核心矛盾。后来我在提示词里塞了两个类似场景的正确处理例子,再问新问题,模型突然就开窍了,给出了分步骤的验证建议。这就是少样本学习(Few-Shot Learning)在实际工程中的一次朴素应用。
少样本学习:给模型“打个样”
少样本学习本质上是在提示词中提供少量示例(通常3-5个),让模型通过类比来理解任务格式和逻辑。它不更新模型权重,而是利用模型已有的知识进行上下文学习。
举个例子,我们要让模型把自然语言转换成数据库查询语句:
零样本(直接问):
用户:找出上个月销售额超过10万的商品 模型:SELECT * FROM products WHERE sales > 100000 AND date >= '2023-10-01'——这里模型可能混淆字段名或日期逻辑。
少样本(给例子):
示例1: 用户:查询所有未付款订单 SQL:SELECT order_id FROM orders WHERE status = 'unpaid' 示例2: 用户:统计昨天的新用户数量 SQL:SELECT COUNT(*) FROM users WHERE signup_date = CURDATE() - INT