昆仑弟子_面霸
07-18·后端开发·10年+
面试吊打面试官
面试官:说说skill的token消耗,怎么优化?我:先看输入。很多skill的prompt太啰嗦,把背景、规则、示例全塞进去。其实用户问题里已经带了上下文,没必要重复。面试官:重复?你怎么判断哪些是重复的?我:做prompt分层。把固定规则放系统提示,只加载一次。把动态信息放用户消息,按需拼接。比如查天气的skill,城市和时间是变量,其他模板固定。这样每次调用只传变量面试官:那如果用户问题本身就很模糊呢?比如只说“帮我看看”,你怎么处理?我:加一个轻量级的意图识别前置skill。先用小模型判断用户到底想干嘛,再调用对应的专业skill。小模型token便宜面试官:前置skill会不会增加延迟?我:会,但比大模型瞎猜再重试划算。而且前置skill可以缓存常见意图面试官:除了输入,输出怎么优化?我:限制输出格式。比如查库存,直接让它返回{“stock”: 12},而不是“根据查询,当前库存为12件”。面试官:那如果模型不听话,还是输出长文本呢?我:加后处理。用正则或者json解析器兜底,只提取关键字段。同时把解析失败的case记录下来,反哺prompt优化面试官:听起来你主要靠prompt工程。有没有考虑过模型层面的优化?我:小任务用小模型。比如分类、提取、简单问答,用7b甚至更小的模型就够了。只有复杂推理才上大模型。我们做过ab测试,小模型在特定skill上效果和大模型差不多,但token成本只有十分之一面试官:怎么监控token消耗有没有真的降下来?我:每个skill埋点,记录输入token、输出token、调用次数、成功率。按天看趋势,按skill看分布
发布于 广东
14
5
15
未登录
友善发言
image-upload
评论
加载中