独立指南——与 IBM 及 Docling 项目无隶属关系。 所有命令均在 Docling 2.143.1 上验证。
  1. 首页
  2. VLM 与 Granite-Docling
VLM 流水线

Docling 的 VLM 流水线与 Granite-Docling 详解

VLM 流水线不再串联多个专用模型,而是让一个视觉语言模型直接读取每页图像并写出结构。Docling 2.143.1 内置 22 个预设,从 IBM 的 2.58 亿参数 Granite-Docling 到 270 亿参数的通用模型。

已在 Docling 上验证 2.143.1更新于 2026年10月27日9 分钟阅读
要点速览
  • 用 --pipeline vlm 开启;默认预设为 granite_docling(IBM Granite-Docling-258M,Apache-2.0)。
  • 安装 pip install "docling[vlm]"。强烈建议使用 GPU 或 Apple Silicon。
  • 22 个预设涵盖 DocTags 模型、输出 Markdown 的 VLM 和版面解析模型;部分需要 --trust-remote-code。
  • 原生数字 PDF 和追求速度时用标准流水线;遇到公式、特殊版面、图表或标准流水线效果不佳时再试 VLM。

标准流水线与 VLM 流水线#

--pipeline standard解析docling-parse版面heron表格TableFormerOCR(按需)autoDoclingDocument--pipeline vlm --vlm-model granite_docling页面渲染图像一个视觉语言模型直接读取整页DocTags → layout, text, tables, code, formulasDoclingDocument
输出类型相同、引擎不同:VLM 流水线用一个生成式模型取代了多个专用模型。
标准流水线VLM 流水线
方式解析器 + 版面模型 + TableFormer + OCR每页图像交给一个视觉语言模型
使用 PDF 自带文本是——原生数字 PDF 的字符完全准确否——模型读取渲染后的页面
CPU 速度我们的测试中每页 2.3 秒(关闭 OCR)我们测试中 Granite-Docling 处理 2 页节选耗时 310 秒(含模型加载)——请准备 GPU 或 Apple Silicon
优势快、文字忠实、每个元素都有边界框公式、代码、图表、特殊版面;只需部署一个模型
风险复杂表格可能合并行(见我们的表格测试)生成式错误:漏字或重复,长页面尤甚

运行#

bash命令行
pip install "docling[vlm]"
docling convert report.pdf --pipeline vlm                       # 默认预设:granite_docling
docling convert report.pdf --pipeline vlm --vlm-model smoldocling
docling convert report.pdf --pipeline vlm --to html_split_page --show-layout
pythonPython
from docling.datamodel.base_models import InputFormat
from docling.datamodel.pipeline_options import VlmConvertOptions, VlmPipelineOptions
from docling.document_converter import DocumentConverter, PdfFormatOption
from docling.pipeline.vlm_pipeline import VlmPipeline

opts = VlmPipelineOptions()
opts.vlm_options = VlmConvertOptions.from_preset("granite_docling")

converter = DocumentConverter(format_options={
    InputFormat.PDF: PdfFormatOption(pipeline_cls=VlmPipeline, pipeline_options=opts)
})
doc = converter.convert("report.pdf").document
print(doc.export_to_markdown())

VlmConvertOptions.list_presets() 返回每个预设及其模型和说明;CLI 处理 --vlm-model 时调用的正是 from_preset()。

Granite-Docling-258M 简介#

  • 开发者:IBM Research · 许可证:Apache 2.0 · 发布:2025 年 9 月 17 日。
  • 架构:Idefics3 设计,视觉编码器为 siglip2-base-patch16-512,语言模型为 Granite 165M。
  • 输出:DocTags——描述版面、文字、表格、代码、公式和图表的紧凑标记,可映射为 DoclingDocument。
  • 语言:英语;日语、阿拉伯语和中文标注为实验性。
  • 提示词:整页用 “Convert this page to docling.”;单个元素用简短指令,如 “Convert chart to table.”。
Granite-Docling-258M 与前代模型对比IBM 在模型卡中公布的分数(越高越好;OCRBench 已缩放到 0–1)。
SmolDocling-256M-previewGranite-Docling-258M
00.250.50.751Layout F10.86Layout recall0.88Layout precision0.92MMStar0.3OCRBench ÷ 10000.5

来源: ibm-granite/granite-docling-258M model card

查看数据表
Granite-Docling evals
SmolDocling-256M-previewGranite-Docling-258M
Layout F10.850.86
Layout recall0.840.88
Layout precision0.90.92
MMStar0.170.3
OCRBench ÷ 10000.3380.5

全部 22 个预设#

读取自 Docling 2.143.1 中的 VlmConvertOptions.list_presets()。标为“远程代码”的预设必须加 --trust-remote-code 才能运行——请先审阅模型代码。

各 VLM 预设的模型规模参数量(十亿),取自 Docling 2.143.1 各预设的描述。未注明规模的预设未列出。
0102030smoldocling0.26Bgranite_docling0.26Bfalcon_ocr0.30Bnemotron_parse_v3_50.60Bnemotron_parse_v20.90Bglm_ocr0.90Blightonocr1.00Bmineru2_pro1.20Bgranite_vision2.00Bdeepseek_ocr3.00Bqwen3.00Bnanonets_ocr23.00Bdots_ocr3.00Bdots_mocr3.00Bunlimited_ocr3.34Bchandra_ocr25.30Bpixtral12.00Bgemma_12b12.00Bgemma_27b27.00B

读取自 VlmConvertOptions.list_presets()。

查看数据表
各 VLM 预设的模型规模
十亿参数
smoldocling0.26B
granite_docling0.26B
falcon_ocr0.30B
nemotron_parse_v3_50.60B
nemotron_parse_v20.90B
glm_ocr0.90B
lightonocr1.00B
mineru2_pro1.20B
granite_vision2.00B
deepseek_ocr3.00B
qwen3.00B
nanonets_ocr23.00B
dots_ocr3.00B
dots_mocr3.00B
unlimited_ocr3.34B
chandra_ocr25.30B
pixtral12.00B
gemma_12b12.00B
gemma_27b27.00B
--vlm-model模型大小输出备注
granite_doclingibm-granite/granite-docling-258M258MDocTags默认 · 有 MLX 版本
smoldoclingdocling-project/SmolDocling-256M-preview256MDocTags前代模型 · 有 MLX 版本
falcon_ocrtiiuae/Falcon-OCR0.3BMarkdown远程代码 · MLX
glm_ocrzai-org/GLM-OCR0.9BMarkdownMLX
lightonocrlightonai/LightOnOCR-2-1B1BMarkdownMLX
mineru2_proopendatalab/MinerU2.5-Pro-2604-1.2B1.2BMinerU 两步法Transformers、MLX、API
granite_visionibm-granite/granite-vision-3.3-2b2BMarkdownTransformers、vLLM、Ollama、LM Studio
deepseek_ocrdeepseek-ocr:3b3BMarkdown仅通过 Ollama 或 LM Studio
qwenQwen/Qwen2.5-VL-3B-Instruct3BMarkdownMLX
nanonets_ocr2nanonets/Nanonets-OCR2-3B3BMarkdownMLX
dots_ocrrednote-hilab/dots.ocr3B带边界框的 JSON远程代码
dots_mocrrednote-hilab/dots.mocr3B带边界框的 JSON远程代码;Transformers 下需 flash-attn
unlimited_ocrbaidu/Unlimited-OCR3.34B MoE带边界框的 Markdown
chandra_ocr2datalab-to/chandra-ocr-25.3B带边界框的 HTML远程代码 · MLX
pixtralmistral-community/pixtral-12b12BMarkdownMLX
gemma_12bgoogle/gemma-3-12b-it12BMarkdown仅 MLX
gemma_27bgoogle/gemma-3-27b-it27BMarkdown仅 MLX
phi4microsoft/Phi-4-multimodal-instruct—Markdown远程代码 · Transformers、vLLM
got_ocrstepfun-ai/GOT-OCR-2.0-hf—MarkdownTransformers
dolphinByteDance/Dolphin—Markdown
nemotron_parse_v2nvidia/NVIDIA-Nemotron-Parse-2.0—Nemotron Parse远程代码 · Transformers、MLX、vLLM
nemotron_parse_v3_5nvidia/Nemotron-3.5-Parse—Nemotron ParseTransformers、API

“仅 MLX”等备注来自每个预设支持的推理引擎列表。各模型许可证不同——商用前请查看模型卡。

如何在标准流水线和 VLM 之间选择#

  1. 先用标准流水线。它是默认选项是有原因的:快,原生数字 PDF 的文字准确,每个元素都有来源信息。
  2. 目视检查结果。--to html_split_page --show-layout 会把每页原图和 Docling 提取的内容并排显示。
  3. 对失败的页面试用 Granite-Docling。配合 --page-range 先测几页,再决定是否投入 GPU 时间。
  4. 用你自己的文档比较。公开分数是别人文档上的平均值;你自己的十份文档更有参考价值。

图片描述与图表提取#

不必启用完整的 VLM 流水线也能用上视觉模型。标准流水线可以只对图片调用一个小型 VLM:

bash
docling convert report.pdf --enrich-picture-description          # 为插图生成说明
docling convert report.pdf --enrich-chart-extraction             # 柱状图/饼图/折线图 → 表格
docling convert report.pdf --enrich-chart-extraction --chart-extraction-preset granite_vision_v4

2.143.1 中的图表提取预设:granite_vision_v3_3、granite_vision_v4(默认)和 granite_vision_v4_mlx。默认预设对应 IBM Granite-Vision-4.1-4B(ibm-granite/granite-vision-4.1-4b),granite_vision_v3_3 对应一个 2B 的图表转 CSV 模型——请准备 GPU 或 Apple Silicon。我们核对了这些预设名称(2.143.1),但没有在 CPU 测试机上实际运行图表提取。

常见问题

Granite-Docling 是什么?

Granite-Docling-258M 是 IBM Research 于 2025 年 9 月 17 日以 Apache 2.0 发布的小型视觉语言模型。它把页面图像转换为 DocTags 标记,再由 Docling 转成 DoclingDocument。它基于 Idefics3 架构,使用 SigLIP2 视觉编码器和 Granite 165M 语言模型。

如何在 Docling 中使用 Granite-Docling?

安装 docling[vlm],运行 docling convert file.pdf --pipeline vlm --vlm-model granite_docling。在 Python 中设置 VlmPipelineOptions().vlm_options = VlmConvertOptions.from_preset('granite_docling'),并以 VlmPipeline 作为流水线类。

VLM 流水线比标准流水线更好吗?

不一定。标准流水线更快,对原生数字 PDF 效果很好。VLM 在复杂版面、公式和代码上可能更好,单一模型也更易部署,但没有 GPU 时慢得多,还可能出现幻觉或重复文字。

SmolDocling 被什么取代了?

Granite-Docling-258M 是 SmolDocling-256M-preview 的继任者,也是默认的 VLM 预设。smoldocling 预设仍然可用。

能在 Mac 上运行 VLM 流水线吗?

可以。大多数 DocTags 预设和部分 Markdown 预设有 MLX 版本,Docling 会在 Apple Silicon 上自动使用,例如 ibm-granite/granite-docling-258M-mlx。

资料来源