生产环境中的多模态 LLM 输入:视觉、文档以及那些无人预警的失效模式
为 LLM 应用添加视觉能力看起来简单得令人误解。你将文本模型换成多模态模型,在提示词中加入一张图片,演示效果就非常出色。但在推向生产环境后,你会发现有一半的发票金额是错的,PDF 中的表格丢失了结构,而低质量的扫描件会产生言之凿凿的幻觉。调试这种系统的难度超过了你以前面对的任何纯文本系统,因为这些失败是视觉上的,且 LLM 不会告诉你它看不清楚。
本篇文章将介绍当多模态 LLM 输入从原型转向生产环境时,究竟会发生什么问题,以及能够防止这些失败的架构决策。
视觉 Token 不是免费的 —— 且呈二次方增长
生产环境中的第一个惊喜是成本。视觉 token 的定价通 常比文本 token 高 2–5 倍,且消耗的 token 数量随图像分辨率呈二次方增长,而非线性增长。
GPT-4o 的高细节(high-detail)模式运作方式如下:图像被切分为 512×512 像素的块,每个切片耗费 170 token,外加 85 token 的基础开销。一张 1024×1024 的图像会产生 4 个切片 —— 仅一张图片就需 765 token。如果将其扩展到一个每天处理 50,000 份发票的文档流水线,在你还没写下一行提示词之前,这个数字就已经非常可观了。
Claude 的切片预算类似:图像被分解为网格,长边上限为 1568 像素,每个块都会增加 token 计数。供应商建议“使用能满足任务的最低分辨率”,这听起来理所当然,直到你意识到“能满足任务的最低分辨率”需要针对每种文档类型进行实证测试,而不是一个全局设置。
优化路径包括:
- 在发送之前,将图像缩小到供应商的最大限制(Claude 为 1568px,GPT-4o 为 2048px) —— 大多数来自手机摄像头的生产图像分辨率为 4032×3024
- 对于仅需粗略视觉特征的任务(分类、路由),使用供应商特定的低细节(low-detail)模式
- 当对同一份文档进行多次查询时缓存图像 —— 针对图像的提示词缓存(prompt caching)可减少 90% 的重复成本
许多团队忽略了一点:在高分辨率下,视觉编码器的延迟占据了主导地位。当你发送一张 4K 图像时,瓶颈不在于 LLM 的推理 —— 而在于视觉编码器的处理时间,这会显著增加首字响应时间(TTFT)。在这里,延迟和成本是同步增长的。
