为了回答更详细,在 system 里加了请展开说明并举例,上线三天输出 token 从平均 210 涨到 300,成本上涨 42%,满意度却没有变化。
真正麻烦的地方在于,几个原因的现象几乎一样。展开类指令直接作用在输出长度上,按输出计价;举例会让模型补充虚构案例,后处理还得过滤;没有给长度上限,模型按最详细的方式写;该指令对所有问题生效,简单问题也被拉长。
先按问题类型统计输出 token 分布
python -c "import pandas as pd;print(pd.read_csv('logs.csv').groupby('intent').completion_tokens.mean())"
然后把展开指令改成按意图条件拼接
python -c "print('展开说明' if '为什么' in '为什么会这样' else '')"
补一句长度约束
python -c "print('回答控制在 120 字以内,除非用户要求细节')"
剩下的就是对比改动前后的平均输出与成本
python -c "print(round(300/210-1,2))"
恢复的判定其实很直接。简单问题的平均输出回到 220 token 以内,成本是改动前的 1.05 倍,满意度指标没有下降。
提示词里的语气词几乎都会转化成输出长度,按意图分档比全局加一句更省钱。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。
