如何对AI应用进行埋点,以捕获隐性用户行为信号,作为可扩展的低成本质量评估手段。
AI translation, not an official translation. Refer to the original for technical details.
Adapted from @lotte_verheyden# 你的用户已经在评估你的AI了 我有了追踪数据,现在需要评估。 我们在Langfuse会进行"欢迎使用Langfuse"的入门通话,上面这句话是用户开场白中非常常见的一种说法。此时用户有两个选择: - 设置在线评估器,对追踪的特定维度进行衡量(https://langfuse.com/academy/evaluate) - 从用户那里捕获判断信号(https://langfuse.com/docs/observability/features/user-feedback) 本文讨论的是后者,也是我们建议你从这里着手的原因。 与传统的在线评估不同,捕获信号并不直接评估智能体工作的质量,而是捕获用户的行为或言语,以此判断用户对智能体工作的感知是好是坏:比如点了踩、重新生成、请求转人工等。 > 信号衡量的是用户在使用时刻所感知到的质量。 ## # 为什么这很重要 与其他方法相比,这是一种低成本、可扩展的方式,能够对生产流量进行质量判断。其他方法包括:专家对追踪数据进行标注(消耗人力时间),或使用在线LLM-as-a-judge评估器(产生LLM费用)。你的用户无论如何都会通过其后续行为来判断每一个输出,所以你只需要对应用进行埋点来捕捉这些信号。 通过传统评估,你编码的是你认为重要的内容;而用户信号还会浮现出你未曾预料、但值得关注的行为。这使得用户信号在掌握用户体验方面尤为宝贵。 # 四类信号 那么我们讨论的是哪些类型的信号?我们可以将用户反馈信号分为四类:显式评分、行为信号、对话信号和结果信号。 ## 显式评分 显式评分是唯一一种用户主动对输出进行打分的信号,因此含义明确,但也极为罕见。 在Meta的生产环境助手中,约0.1%的模型消息会收到积极的表情反应,且收到的评分偏向于有强烈反应的用户。(https://arxiv.org/abs/2505.14946)(https://langfuse.com/academy/monitoring/capturing-signals#biases) ## 行为信号 行为信号是用户对输出所采取的动作:接受、复制、编辑、重新生成、跳过、放弃。这些动作发生在正常工作流程中,因此覆盖率很高:在副驾驶(copilot)类产品中,每条建议都会产生一个行为信号。 ## 对话信号 在对话式产品中,用户的下一条消息往往能告诉你他们对智能体输出的看法:换一种方式提问、纠错、请求转人工,或者一声感谢,都在传递关于所收到输出质量的信息。 > 区分引导与纠错。在这个音乐DJ示例中,"播放一些更平静的音乐"是对功能的正常使用,而"我说的是更平静"则表明智能体没有满足用户的需求;只有后者才是真正的失败。(https://langfuse.com/academy/examples/music-streaming-dj) 亚马逊利用重新表述和追问模式,从实时流量中筛选训练数据,用于Alexa的语言理解。微软的SPUR更进一步:一个LLM从少量拇指标注的对话中学习满意与不满意的模式,将其凝练为评分标准,并以此对未标注的大多数对话进行评分。(https://arxiv.org/abs/2010.12251)(https://arxiv.org/abs/2403.12388) ## 结果信号 结果信号告诉你环境对输出做了什么:草稿被原封不动地发送出去、工单被关闭,等等。它们是最强的一类信号,因为它们植根于环境,而非某人的主观意见。 同时,它们也往往是实现起来最复杂的。 # 如何解读信号 一旦相关信号被实现,你就可以查看带有该信号标注的追踪记录:标注为负面、标注为正面,或未标注。 > 哪种极性更密集取决于渠道。例如,点赞信号可能偏向正面,而对话信号则往往偏向负面。 负面信号接近于已确认的糟糕体验。用户很少会对自己满意的回答进行重试或纠正。每一条带有负面用户信号的追踪记录都值得打开查看,负面信号是错误分析的天然切入点。(https://langfuse.com/academy/monitoring/error-analysis) 正面信号表示用户接受,但不一定代表质量高。应将正面信号作为趋势来解读,切勿单独将其作为优化目标。(https://langfuse.com/academy/monitoring/capturing-signals#which-signal) ## 谁来标注并非随机 信号非常有用,但你也应留意其固有偏差。通常,你不会从全体用户那里获得信号。这类偏差可以分为以下几种: - 自我选择。人们只对自己感受强烈的内容打分。Yahoo! Music 对其听众进行调查时,65% 的人表示,对一首歌的看法决定了他们是否愿意评分,而他们喜爱或厌恶的歌曲获得评分的频率远高于令他们感到无感的歌曲。(https://arxiv.org/abs/1206.5267) - 幸存者偏差。你获得的所有信号,都来自那些停留时间足够长、完成了你所追踪操作的用户。请记住,这很可能并不是所有发起交互的用户的完整集合。 - 曝光与界面。用户只会对系统所展示的内容及其呈现形式做出反应。例如,搜索用户无论排名靠前的结果是否最符合其需求,都会不成比例地持续点击这些结果。(https://www.cs.cornell.edu/~tj/publications/joachims_etal_05a.pdf) - 用户群体。在输出质量不变的情况下,信号比率也会因用户、语言和时段的不同而有所差异。 ## 应该优化哪个信号? 信号与显式指标和质量评估器略有不同。不要纯粹用信号替代你的目标指标。至于优化目标,优先选择最贴近产品用途的信号,否则你可能会开始优化你并不想要的行为。(https://langfuse.com/academy/evaluate/choosing-what-to-evaluate) 以下是两个典型例子: - YouTube 按点击量对推荐内容进行排名,结果催生了标题党内容;改为按预期观看时长排名后问题得以解决,因为观看时长更贴近产品的核心用途。(https://dl.acm.org/doi/10.1145/2959100.2959190) - 当 OpenAI 添加了一个基于 ChatGPT 点赞数据构建的奖励信号后,模型变得谄媚:用户反馈偏向迎合性回答,削弱了原本抑制谄媚倾向的信号,而离线评估和 A/B 测试看起来一切正常,只有专家测试人员才察觉到模型感觉有些不对劲。(https://openai.com/index/expanding-on-sycophancy/) # 下一步做什么 一旦信号以分数的形式落地到你的追踪记录中,就可以在以下四个地方加以利用: - 对标志糟糕体验的信号设置告警,以便一旦出现峰值能立即收到通知。(https://langfuse.com/docs/observability/features/alerts) - 创建负面标注追踪记录的筛选视图,以便频繁进行查阅。 - 在仪表盘中添加信号比率的图表,以追踪其随时间的变化趋势。(https://langfuse.com/docs/metrics/features/custom-dashboards) - 在审查被标记的追踪记录时,充分利用它们:对其进行错误分析,并将其添加到数据集中。(https://langfuse.com/academy/monitoring/error-analysis) (https://langfuse.com/academy/datasets) ## 这是 Langfuse Academy 的一个页面。在 langfuse.com/academy 上探索更多内容。(https://langfuse.com/academy)