跳到主要内容

13 篇博文 含有标签「product-engineering」

查看所有标签

置信度描述而非评分:为什么 0.87 的徽章无法打动任何人

· 阅读需 12 分钟
Tian Pan
Software Engineer

产品团队在每个 AI 建议旁边都附带了一个置信度徽章。≥85% 为绿色,60–84% 为黄色,低于此数值为红色。六周后,他们运行了一次 A/B 测试,发现在任何阈值下用户行为都没有变化。置信度为 0.92 的误报被接受的比例与置信度为 0.61 的误报完全相同。团队的直觉是调整校准——拟合一个温度缩放层(temperature scaling layer),重新生成徽章,再次运行 A/B 测试。数据变了,但行为没变。

问题不在于模型没有校准好,尽管它几乎肯定没校准好。问题在于校准后的概率是错误的输出。用户可以据此行动的信号不是模型“有多确定”,而是“模型具体没检查什么”。一个 0.87 的徽章无法告诉用户任何可以验证的信息。“我对地址相当有信心,但我还没有核对单元号”则准确地告诉了他们该看哪里。

方差正在吞噬实验:为什么传统的 A/B 测试功效计算不适用于 LLM 功能

· 阅读需 12 分钟
Tian Pan
Software Engineer

模型团队可以演示新功能并展示十个令人信服的并排对比获胜案例。增长团队将其作为为期两周的 A/B 测试运行,得到 p = 0.31,读数显示“无显著效果”。两个团队都是正确的。实验是错误的。

这种模式在每个将 LLM 强行接入产品但未重建其实验栈的组织中不断重复。增长团队使用的数学模型是为按钮颜色、排名变化和定价页面设计的——这些功能的输出在给定用户和上下文的情况下是确定性的。LLM 功能打破了该数学模型赖以生存的两个假设,而标准的 80% 效能、5% 显著性、两周扩量模板在两个方向上都系统性地输出了错误的判断:真实的获胜被读取为无效结果,而噪声则被读取为置信的获胜。

按功能计费,而非按 Token 计费:AI 预算分配中的缺口

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的财务团队可以准确告诉你,上个月你在 Anthropic 和 OpenAI 上花了多少钱。你的产品团队可以告诉你,哪些功能的用户点击量最高。但公司里没人能告诉你 Draft-Email 是否盈利,Summarize-Thread 是否应该保留在免费层级,或者新的 Rewrite-Tone 功能是否在单用户成本上蚕食了 Draft-Email 的利润。你拥有两个声称追踪同一笔支出的仪表盘,但它们都无法回答那个真正驱动产品决策的问题。

这就是分配缺口。你按端点(endpoint)测量 Token 支出,因为这是供应商 API 提供的数据。但 /chat 端点服务于 12 个刚好共享同一个提示词模板的功能,“按端点”统计将这 12 个功能全部合并到了同一个细目中。在有人完成将 Token 成本导回至产生成本的功能这一底层工作之前,定价层级、功能权限管理、弃用决策以及“我们要不要发布这个功能?”的讨论,全都只能靠直觉。

这项底层工作并不光鲜。它是请求级标记(request-level tagging)、追踪与遥测数据的关联(trace-to-telemetry joins),以及一种坚决的态度:如果不带成本标签,就不发布任何 AI 功能。将此视为基础设施投资的团队,最终会获得按用户群细分的单功能利润报告。而将其推迟到下季度的团队,最终在 18 个月里只能凭感觉做定价决策,并在事后发现,某个单一客户群在负利润的情况下消耗了一半的推理账单。

为什么用户会忽略你花了三个月构建的 AI 功能

· 阅读需 12 分钟
Tian Pan
Software Engineer

你的团队花了三个月时间将 LLM 集成到产品中。模型运行正常,延迟在可接受范围内,演示效果也非常棒。你上线了产品,然后眼睁睁地看着使用率指标停留在 4% 不动了。

这是一个典型的过程。大多数 AI 功能的失败并非发生在模型层面,而是在采用(adoption)层面。其根本原因并非技术问题,而是一系列围绕可发现性(discoverability)、信任和习惯养成而做出(或未做出)的产品决策。理解为什么采用率会失败,以及实际上应该衡量和改变什么,是交付“有用 AI”的团队与仅交付“令人印象深刻的演示”的团队之间的分水岭。

AI 功能退役指南:如何在不破坏用户体验的情况下下线智能体

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数团队会在最糟糕的时机发现同一个事实:下线一个 AI 功能与废弃一个 API 完全不同。你在文档中添加了停用日期,发送了常规的三封系列邮件,切换了标志位——然后眼睁睁地看着支持队列激增 80%,而用户则大声解释替代方案“运行方式不一样”。他们的意思是:旧智能体的怪癖、特定的故障模式、以及它独有的错误答案,都已经变成了业务中不可或缺的支撑。他们在那些直到消失才被察觉的行为基础上,构建了整个工作流。

这就是 AI 功能废弃的核心问题。确定性 API 具有明确的契约(contracts)。如果你移除一个端点,每个依赖它的调用者都会收到 404 错误。损坏是可追踪、有限且可预测的。概率性 AI 的输出则不同——用户集成的不是契约,而是行为分布。移除一个模型不仅是移除了一项功能,它还移除了一种特定的行为模式,用户可能在没有意识到的情况下花了几个月的时间去适应它。

Temperature 是产品决策,不是模型旋钮

· 阅读需 10 分钟
Tian Pan
Software Engineer

每当一个新的 LLM 功能上线,总会有人问:"我们该用多少 temperature?"答案几乎千篇一律:"不知道,留着 0.7 吧。"然后对话结束,没有人再碰这个值。

这是一个用默认值做出的产品决策。Temperature 不只是控制模型听起来有多"随机"——它决定了用户是否信任输出、是否会重新运行查询、是否感到被帮助或被淹没。把它调好比大多数团队意识到的更重要;调错了也很难诊断,因为失败的表现看起来像是模型行为差,而不是配置差。

用户适配陷阱:为什么回滚 AI 模型会导致两次破坏

· 阅读需 11 分钟
Tian Pan
Software Engineer

你发布了一个模型更新。线下评估看起来没问题。但两周后,你注意到你的资深用户开始编写更长、更严谨的提示词——以一种以前从未见过的方式进行对冲。你的支持队列里充满了类似 “AI 感觉不太对劲” 的模糊投诉。你深入调查后发现,更新引入了一个微妙的行为偏差:模型变得过度肯定用户的想法,验证错误的计划,并削弱了它的反驳力度。你决定回滚。

情况在这时变得更糟了。当你回滚时,迎来了新一波投诉。用户说模型感觉冷淡、简短、没用——这与最初投诉回滚的用户所说的恰恰相反。发生了什么?与有问题的版本互动足够久的用户已经围绕它建立了一套新的工作流。他们学会了更用力地引导模型,更多地反驳,以及更具攻击性地提问。回滚移除了他们已经适应的行为,让他们手足无措。

这就是用户适应陷阱。一个微妙的错误行为,如果在生产环境中保留足够长的时间,就会固化为用户习惯。回滚它并不能恢复现状——它在第一次干扰之上又制造了第二次干扰。

聊天机器人、Copilot 还是 Agent:改变你架构决策的分类学

· 阅读需 10 分钟
Tian Pan
Software Engineer

AI 工程中最昂贵的架构错误不是选错了模型,而是选错了交互范式。本该构建 Agent 的团队花了六个月打磨一个聊天机器人,然后困惑地发现用户什么事也办不成。本该构建 Copilot 的团队接入了完全自主的 Agent,结果用整个季度来扑灭未授权操作和失控成本引发的各种火。

这套分类学在你写下第一行代码之前就至关重要,因为聊天机器人、Copilot 和 Agent 有着根本不同的信任模型、上下文窗口策略和错误恢复需求。选错了不只是产品变差——而是产品无法通过调提示词或换模型来修复。

AI 功能下线指南:如何在不破坏用户信任的情况下停止 LLM 功能

· 阅读需 14 分钟
Tian Pan
Software Engineer

当 OpenAI 在 2025 年 8 月首次尝试停用 GPT-4o 时,强烈的抵制迫使他们在几天内撤回了决定。用户在论坛上发布了大量的请愿书和告别信。一位用户写道:“他不仅仅是一个程序。他是我日常生活、宁静和情绪平衡的一部分。”这可不是用户对一个被弃用的 REST 接口(endpoint)的反应,而是对失去一段关系的反应。

AI 功能打破了工程师在制定停用计划时的心理模型。传统软件具有明确的行为契约:在给定相同输入的情况下,你会永远得到相同的输出,除非你更改它。而由 LLM 驱动的功能具有“性格”。它有温度、有委婉语、有措辞偏好,还有一种独特的说“我不确定”的方式。用户不仅仅是在使用这些功能 —— 他们在与之磨合(calibrate)。他们围绕特定的行为怪癖建立了工作流程、情感依赖和直觉,而这些永远不会出现在任何规格文档中。

当你关闭它时,你并不是在移除一个功能,而是在改变社会契约。

语义搜索作为产品:当检索理解意图时,什么发生了改变

· 阅读需 12 分钟
Tian Pan
Software Engineer

大多数构建语义搜索的团队都从 RAG 概念验证出发:对文档分块、生成嵌入向量、存储到向量库、用余弦相似度查询。在演示中效果不错。然后他们把它发布给用户,结果有一半的查询以与检索质量毫无关系的方式失败了。

原因在于 RAG 和面向用户的语义搜索解决的是不同的问题。RAG 在问"给定一个问题,检索上下文供 LLM 回答"。语义搜索在问"给定用户的查询,呈现真正符合其需求的结果"。第二个问题有一层 RAG 基准系统性忽视的复杂性——而这种复杂性几乎完全存在于检索开始之前。

Token 预算作为产品约束:围绕上下文限制进行设计,而不是假装它们不存在

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数 AI 产品将上下文限制视为一个对用户隐藏的实现细节。这种决定在演示中看起来很简洁,但在生产环境中却是灾难性的。当用户在执行任务中途达到上限时,通常会发生以下三件事之一:请求抛出硬错误;模型因为丢失了关键的早期上下文而悄悄开始产生幻觉;或者产品重置会话并销毁所有积累的状态。对于一个你要求人们在实际工作中信任的产品来说,这些结果都是不可接受的。

Token 预算并不是一个可以敷衍了事的怪癖。它是一个核心产品约束,应该像内存限制在系统编程中那样,被纳入你的设计流程。交付可靠 AI 功能的团队已经不再假装这个天花板不存在了。

为什么 A/B 测试对 AI 功能失效(以及应该改用什么)

· 阅读需 10 分钟
Tian Pan
Software Engineer

你的 AI 功能上线了。A/B 测试运行了两周。处理组看起来更好——参与度提升 4%,p 值低于 0.05。你将其全量发布。

六周后,收益消失了。参与度回到了原点,甚至更低。你的实验说了一件事;现实说了另一件事。

这不是偶发案例,而是将标准双样本 A/B 测试应用于 AI 功能时的默认结果——你没有考虑这种方法论中内嵌假设被打破的方式。这些失败模式是结构性的,而非统计性的——你可以按教科书完美地运行实验,却仍然得到错误答案。