14
14 / 50

多模态与工具链

⏱️ 40分钟

Multimodal 不是“这个模型支持图片,所以系统就支持多模态”。AI Engineer 需要为每一种输入定义 contract、处理链、证据位置、人工复核和评估方法。

先拆 Modality,再选工具

输入典型处理必须保留主要失败
ImageVision、OCR、region cropsource、resolution、region小字、遮挡、布局误读
PDF / Slidesparser + OCR fallbackpage、heading、table lineage阅读顺序、表格丢失
AudioSTT + diarizationtimestamp、speaker、language噪声、口音、说话人混淆
Videotranscript + sampled framestimestamp、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

不要只测清晰样本。至少覆盖:

  1. 正常、低分辨率、旋转、遮挡和小字;
  2. 空文件、错误格式、加密或超限文件;
  3. 中文、英文、数字、表格和手写边界;
  4. OCR 与原图冲突;
  5. 合成 PII、越权输入和日志泄露;
  6. 应该 abstain 或进入人工复核的案例。

报告 field accuracy、source-pointer accuracy、abstention、review rate、latency 与 cost。视频还要记录 frame sampling 策略,音频要记录 speaker/timestamp 错误。

常见失败

失败为什么发生处理
输出无法定位来源extraction 丢失 metadatapage/region/timestamp 随字段传递
模型猜出看不清的文字Prompt 没定义 abstentionnull + review_required
长视频成本突然升高无 sampling 与预算transcript first + bounded frames
表格字段错位parser 丢布局原页复核 + schema/domain validation
Tool 越权读取文件没有 data/permission contractallowlist + 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 是常态。