⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议。
Skip to content

7.5 实战案例

核心问题: 如何在真实项目中综合应用多模态LLM?每个场景的技术瓶颈在哪里?

在线 Notebook

对应的交互式版本可在 Google Colab 打开,统一使用方式见 第0章说明


案例1:文档理解

需求

从发票、合同、报告等文档图像中提取结构化信息(日期、金额、表格数据等)。

为什么文档理解比一般图像理解难

一般图像理解:
  识别"有一只猫" → 语义粒度,容错高

文档理解:
  识别"金额:¥1,234.56" → 字符级精度,一个数字错了就是错误

三个技术瓶颈:

  1. 分辨率:A4 文档在 224×224 像素下,字体只有 2-3 像素高,基本无法辨认。需要 1024×1024 以上
  2. 版式多样性:不同公司的发票版式完全不同,模型需要理解空间关系("左列是标签,右列是值")
  3. 结构化输出:原始 LLM 输出是自由文本,需要要求输出 JSON 并做后处理

解决方案

文档图像

高分辨率处理(1024×1024+,见 7.3 图像分块方案)

ViT 编码 → 投影层 → LLM

Prompt:"以 JSON 格式提取:日期、金额、供应商名称"

JSON 解析 + 校验(正则/schema 验证)

结构化数据

为什么用 JSON 输出而不是自由文本?

  • 便于下游系统解析(数据库写入、对账流程)
  • 字段缺失可以检测(schema 验证),而自由文本无法知道是否遗漏
  • 可以用 few-shot 示例告诉模型期望的格式

性能分析

下面的数字用于说明高分辨率模型在文档场景中的典型收益方向,具体结果取决于数据集、OCR/预处理、提示词和模型版本。

指标LLaVA-1.5Qwen2.5-VL改进
字段提取准确率65.3%82.1%+16.8%
金额识别准确率58.2%76.5%+18.3%
表格识别准确率52.1%71.3%+19.2%
推理时间150ms200ms-33%

表格识别通常受益最大,因为表格需要同时理解空间布局和文字内容——高分辨率的收益最直接体现在这里。

常见问题

问题根本原因解决方案
数字识别错误(1→7,0→O)分辨率不足提高分辨率,或先用 OCR 提取文字再用 LLM 理解结构
模型输出非 JSON上下文过长导致格式遗忘在 prompt 末尾重复格式要求,或用 constrained decoding
表格边界识别失败无边框表格或扫描倾斜图像预处理(倾斜校正、增强对比度)

案例2:图表分析

需求

从柱状图、折线图、饼图等图表中提取数据趋势,生成分析报告。

为什么图表分析需要视觉推理

数字识别(OCR 能做):
  读取坐标轴标签、数值 → "2020: 120, 2021: 145"

图表分析(需要 LLM 推理):
  理解趋势 → "销售额连续两年增长,但增速从 20% 降至 15%"
  发现异常 → "2023Q2 出现异常下跌,可能与季节性因素相关"
  跨元素关联 → "折线图显示增长趋势,柱状图显示成本也在增加,利润率未必改善"

模型需要同时完成:视觉感知(找到数据点位置)+ 数值理解(读取坐标值)+ 语义推理(解释趋势含义)。这三步都依赖足够的分辨率。

解决方案

图表图像

高分辨率处理

Prompt 设计:
  步骤1:"描述图表类型和坐标轴"(锚定结构)
  步骤2:"列出所有数据点的数值"(提取数据)
  步骤3:"分析趋势并指出异常"(推理)

生成结构化报告

Chain-of-Thought 在图表分析中的价值: 让模型先描述图表结构再分析数据,通常比直接问"分析这个图表"更稳——因为结构描述步骤会迫使模型先定位坐标轴,减少后续推理基于错误数值的风险。

性能分析

指标LLaVA-1.5Qwen2.5-VL改进
数据点识别准确率68.2%85.7%+17.5%
趋势判断准确率72.1%88.3%+16.2%
异常检测准确率61.5%79.2%+17.7%
推理时间180ms220ms-22%

常见问题

问题根本原因解决方案
坐标值读取错误密集刻度在低分辨率下重叠使用图像分块方案(7.3)
趋势判断反向Y 轴方向混淆(部分图表 Y 轴从上到下递减)Prompt 明确要求先确认 Y 轴方向
饼图占比计算错误扇形面积估算本身困难提取颜色图例后用面积比估算,或要求模型给出置信度

案例3:多语言应用

需求

构建支持中/英/日等多语言的图像理解系统。

为什么以 Qwen2.5-VL 为代表的中文多模态模型在中文场景更有优势

多语言能力来自两个层面:

1. 预训练数据分布

  • 大多数开源模型(LLaVA、LLaMA-base)以英文数据为主
  • Qwen 系列预训练数据包含大量中文语料,中文 token 覆盖更完整

2. 视觉-语言对齐的语言依赖性

CLIP 的文本编码器主要在英文数据上训练

对中文文本的编码质量低于英文

中文查询的视觉-文本对齐偏差更大

以 Qwen2.5-VL 为代表的中文多模态模型使用视觉编码器 + 中英双语对齐训练

中文理解质量接近英文水平

为什么小语种可能弱于中文/英文? 视觉文字形态、tokenizer 覆盖率和预训练数据量都会影响多语言图文对齐质量。

解决方案

用户输入(多语言)

图像 + 文本 prompt

多模态模型处理
  ├─ 中文场景:直接使用,中文 tokenizer 友好
  ├─ 英文场景:直接使用
  └─ 小语种场景:在 system prompt 中指定输出语言

多语言输出

实践注意: 不要在 prompt 里混用语言(中文问题+英文指令),会导致模型输出语言不稳定。在 system prompt 明确指定"请用中文回复"。

性能分析

指标中文英文日文平均
理解准确率88.9%87.2%82.1%86.1%
生成质量8.5/108.3/107.8/108.2/10
推理时间200ms210ms220ms210ms

这个示意结果体现了语言数据分布对多模态理解的影响;实际排序需要按具体模型和评测集确认。


代码实验

实战案例演示

图7.5:三个实战案例性能对比示意——文档理解、图表分析、多语言应用在 LLaVA-1.5 与 Qwen2.5-VL 上的关键指标变化。

代码文件: code/ch07_multimodal_llm/case_studies.py
运行方式: python code/ch07_multimodal_llm/case_studies.py


本节小结

  • 文档理解 的核心瓶颈是分辨率(字符级精度)+ 结构化输出(JSON + schema 校验);表格识别通常最受益于高分辨率
  • 图表分析 需要视觉感知 + 数值理解 + 语义推理三步;先描述结构再分析数据,通常比直接分析更稳
  • 多语言应用 的性能差异来自预训练数据分布、tokenizer 覆盖和图文对齐数据质量
  • 三个案例都连接到 7.3 的高分辨率技术:文档和图表都在高分辨率下获得最大收益

返回: 第7章:多模态 LLM

本教程采用 CC BY-NC-SA 4.0 许可协议