多模态与工具链
Multimodal 不是“这个模型支持图片,所以系统就支持多模态”。AI Engineer 需要为每一种输入定义 contract、处理链、证据位置、人工复核和评估方法。
先拆 Modality,再选工具
| 输入 | 典型处理 | 必须保留 | 主要失败 |
|---|---|---|---|
| Image | Vision、OCR、region crop | source、resolution、region | 小字、遮挡、布局误读 |
| PDF / Slides | parser + OCR fallback | page、heading、table lineage | 阅读顺序、表格丢失 |
| Audio | STT + diarization | timestamp、speaker、language | 噪声、口音、说话人混淆 |
| Video | transcript + sampled frames | timestamp、frame policy | 漏掉短事件、成本失控 |
原生多模态模型适合直接理解页面或画面;专用 OCR、parser、STT 更适合需要稳定结构、批处理或精确定位的场景。选择取决于任务证据,不取决于宣传页写了多少种输入。
工程 Pipeline
upload
→ validate type / size / permission
→ extract with parser, OCR or STT
→ normalize
→ attach source / page / region / timestamp
→ model task
→ schema and domain validation
→ human review or automated action
RAG、Tool Calling 和 Agent 是下游架构选择。只有任务需要检索历史知识、调用外部动作或循环决策时才加入,不能与 Multimodal 混成一个概念。
Input 与 Output Contract
type MultimodalInput = {
assetId: string;
mediaType: 'image' | 'document' | 'audio' | 'video';
mimeType: string;
source: string;
dataClass: 'public' | 'internal' | 'sensitive';
permissionScope: string[];
};
type ExtractedField = {
name: string;
value: string | null;
sourcePointer: { page?: number; region?: string; timestampMs?: number };
reviewRequired: boolean;
failureReason?: 'unreadable' | 'missing' | 'conflict' | 'unsupported';
};
模型自报的 confidence 不能当作正确率。真正的信任来自 source pointer、字段级验证和人工复核。
Capability Registry
每个可用组件至少登记:
- provider、exact model ID 或 tool version;
- endpoint、region 与 retention;
- 支持的 modality、格式、大小与页数限制;
- structured output、stream、batch 等能力;
- data class allowlist;
- checked_at、source 与 test status;
- owner、fallback、kill switch 与 retirement 状态。
产品订阅能上传文件,不代表 API、组织权限或部署地区已经开放。未知状态写 unavailable。
Evaluation Set
不要只测清晰样本。至少覆盖:
- 正常、低分辨率、旋转、遮挡和小字;
- 空文件、错误格式、加密或超限文件;
- 中文、英文、数字、表格和手写边界;
- OCR 与原图冲突;
- 合成 PII、越权输入和日志泄露;
- 应该
abstain或进入人工复核的案例。
报告 field accuracy、source-pointer accuracy、abstention、review rate、latency 与 cost。视频还要记录 frame sampling 策略,音频要记录 speaker/timestamp 错误。
常见失败
| 失败 | 为什么发生 | 处理 |
|---|---|---|
| 输出无法定位来源 | extraction 丢失 metadata | page/region/timestamp 随字段传递 |
| 模型猜出看不清的文字 | Prompt 没定义 abstention | null + review_required |
| 长视频成本突然升高 | 无 sampling 与预算 | transcript first + bounded frames |
| 表格字段错位 | parser 丢布局 | 原页复核 + schema/domain validation |
| Tool 越权读取文件 | 没有 data/permission contract | allowlist + audit + fail closed |
练习:设计一个 Voice Documentation Capability
提交以下证据:
- Input Contract:格式、时长、语言、数据等级;
- Pipeline:upload → STT → editable transcript → human confirm;
- Output Schema:text、speaker、timestamp、review state;
- 8 条 eval cases,包括噪声、口音、空音频、PII 和失败回退;
- 一张 failure table,说明何时自动继续、何时人工确认。
自检
- 能解释为什么选择原生多模态或专用 preprocessing。
- 每条结果能回到 page、region、speaker 或 timestamp。
- 不确定结果不会被包装成确定事实。
- Multimodal、RAG、Tool Calling 与 Agent 的边界清楚。
- 成本包含 extraction、storage、model、logging 与 human review。
📚 相关资源
❓ 常见问题
点击问题,查看本章对应的实践答案。
多模态系统应该把所有输入都直接喂给一个大模型吗?
不该。更稳的顺序是先拆 modality、再决定路径。简单图片用 vision LLM;高质量 OCR 应该先 OCR 再交给 text LLM;会议录音先 STT 再做 summary;长视频用 transcript + scene summary,而不是逐帧硬喂。多模态系统真正跑得稳,是因为先做 preprocessing —— 把原始像素 / audio 变成带 metadata 的文本,而不是把 raw 数据扔给模型让它自己整。
做 multimodal RAG 至少要保留哪些 metadata?
最少五件事:filename / source id、page / frame / timestamp、chunk order、extraction method、confidence(如有)。没有这些后面 citation、review、debugging 全部炸 —— 用户看到一段答案问 "这是 PDF 哪一页?",你查不出来就丢失信任。图片 / 视频真正可检索的常常不是原始像素,而是 OCR text、caption、scene summary、timestamped transcript,所以 metadata 是命根子。
多模态系统的真实成本里,最容易被低估的是哪一块?
预处理 + 长尾运维。LLM 调用价只是表面 —— OCR / STT 预处理、大文件存储和传输、更复杂的日志和排障、更高的 eval 和人工 review 成本,加起来通常比模型调用更贵。一个长视频 transcript pipeline 跑一次几毛钱,但每天跑一万个 + 失败重试 + 标注审查,月度成本完全是另一个量级。只预算 LLM token 的团队基本都会超支。
多模态 feature 的 UX 上最容易遗漏的是什么?
告诉用户 "系统看到了什么"。用户上传 PDF / 图 / 录音后,根本不知道你识别出了哪些内容 —— 这种黑盒会直接摧毁信任。最少要给:upload status、file / duration / page limits、extracted summary preview、citation 到 page / timestamp、unsupported input 的明确报错。让用户能验证你看到的和他想的是不是同一件事,是 multimodal UX 的底线。
multimodal feature 的测试为什么不能只用干净样本?
真实世界没有干净样本。eval 必须按 modality 分别测:noisy image / OCR、noisy audio(会议环境通常很差)、long video(成本和延迟会突然爆)、chart / slide understanding(结构最容易看错)、tool-augmented output(一旦接 tool 错误类型立刻翻倍)。只用理想样本测过的多模态系统,上线第一周就会被用户的真实输入暴打 —— 模糊扫描件、地铁里的语音、200 页 PDF 是常态。