转录层的谎言:为何你的多模态管道会在下游产生幻觉
你的ASR系统返回了"the patient takes metaformin twice daily"。正确的词应该是metformin。转录看起来很干净——没有[INAUDIBLE]标记,没有错误标志。那个词的置信度是0.73。你的管道丢弃了这个数字,将干净的文本传给了LLM。LLM将其视为真实情况,围绕一种不存在的药物进行推理。
这就是转录层的谎言:一种隐性假设,认为中间文本表示——无论是由语音识别、OCR还是解析文档的视觉模型产生的——都足够可靠,可以不加保留地向下游传递。事实并非如此。但几乎每个生产管道都将其视为可信来源。
问题不在于ASR和OCR不准确。而在于它们对哪些部分不准确撒了谎。这些系统会为每个词、每个字段、每个token返回置信度分数。而标准工程模式是立即丢弃这些分数。
你正在丢弃的置信度信号
每个主要的ASR提供商都会为其输出附加逐词置信度分数。Whisper为每个token生成对数概率分数,通过对这些值求平均得出词级置信度。AWS Transcribe和Google Speech-to-Text都在0到1的范围内暴露词级置信度。OCR也是如此:Azure Document Intelligence将置信度分数精确到单个字段级别。Google Cloud Document AI也是如此。
但如果你按照大多数团队的方式构建管道,这些都无济于事:
音频 → ASR → 转录字符串 → LLM提示
转录字符串不记得哪些词是可信的,哪些是猜测。"metaformin"上的0.73被剥离了。LLM看到的是平铺文本,无从知晓中间某个词不可靠。它按照给定的输入进行推理。
OCR管道以略有不同的方式犯下这个错误。文档级置信度分数通常会被呈现——"此页面以92%的置信度提取"——但这个数字掩盖了所有真正有趣的信息。一份整体准确率92%的表单,可能有三个关键字段的提取置信度仅为0.40。文档级汇总数字用一个令人安心的数字掩盖了字段级别的失败。
微软在其Document Intelligence平台上的研究对此直言不讳:文档AI系统会无声地失败。下游使用者在没有任何信号的情况下对错误数据采取行动。
