一个知识库问答助手回答「合同续签需要哪些材料」,答案看起来顺滑,却没有给出处。业务同事追问:它是从哪份制度里推出来的?如果制度更新了,它会不会还按旧版本回答?这时问题已经不在“答得像不像”,而在“能不能被核对”。可解释性要解决的,正是这种核对需求。
很多产品把解释做成结果页下方的一行说明:命中某个规则,或列出几个关键词。这个做法有用,但常常不够。解释的对象不是抽象的用户,而是具体的人:客服要知道该不该把答案转给客户,开发要知道该改检索还是改提示词,审核人员要知道该放过还是转人工。不同人需要的不是同一张图,而是不同粒度的证据。
解释给谁看,决定解释长什么样
面向业务人员的解释,应该能用他们熟悉的材料验证。比如引用哪段制度、命中哪个条件、在什么版本下有效。面向开发人员的解释,则要能定位到环节:是召回没找到,还是排序把不相关段落推到了前面,还是生成阶段补了没有依据的内容。把这些混成一句“模型认为”,听起来省事,实际上把责任推回给了黑箱。
所以谈可解释性,不能只问“模型能不能解释”,还要问“解释要交给谁完成下一步动作”。如果解释不能帮助对方做判断,它更像装饰。
时机比形式更关键
解释出现在结果之后,往往已经晚了。内容审核系统把一条普通评论标成需复核,如果只告诉运营“风险较高”,运营只能凭经验猜。有用的做法,是在给出判断的同时说明触发条件、置信程度和可申诉路径。这样解释不是事后追认,而是决策过程的一部分。
这带来一个不太讨喜的结论:解释需要被设计成接口,而不是一次性文档。模型版本变了,检索库换了,阈值调整了,解释的上下文也会变。团队若只在上线前写一份说明,过几周就可能对不上。解释要跟着运行记录走,至少留下判断依据、版本信息和人工复核结果,方便回看。
别把解释当成万能钥匙
解释也有边界。模型内部有大量交互关系,完全还原既困难,也未必对业务有帮助。有些解释只能说明相关性,不能直接当作因果。对这类情况,谨慎表述比强行给出确定答案更负责。与其画一张让人误以为看懂的图,不如明确哪些结论有证据,哪些只是辅助信号。
我更愿意把可解释性看作一种工作习惯:在系统给出判断时,顺手留下可核对的线索;在人员接手时,能顺着线索找到原因;在系统更新时,解释也跟着更新。它不保证每个决策都正确,但能让错误更早被发现,让讨论从“信不信”转向“查什么”。这大概不是一张漂亮的热力图能替代的。