跳到正文
腾讯混元模型发布·· 7 小时前精选AI 评分66

腾讯优图发布 5B 多模态解析模型 Youtu-Parsing-Omni

tencent/Youtu-Parsing-Omni

AI 导读

腾讯优图实验室发布 5B 参数的多模态解析模型 Youtu-Parsing-Omni,用单一 Youtu-Omni-Encoder 处理文档页、自然图像、图表、流程图、几何图、音频和音视频输入,按任务提示词输出统一的 OmniSchema JSON。

推荐理由

5B 参数统一编码器覆盖文档、图像、音视频七类解析任务,并给出 vLLM 插件与评测代码,可据此判断轻量多模态解析的落地成本。

正文 · AI 翻译

新闻

简介

Youtu-Parsing-Omni 是一个紧凑型(5B)全模态解析模型。给定单一输入——文档页面、自然图像、图表/流程图、几何图形、音频片段或音视频视频——它生成一个结构化 JSON 封装,同时涵盖感知(布局元素、文本、表格、公式、边界框、时间戳、ASR、OCR、声学事件、相机运动)和认知(字幕、叙述、报告)。输出族由任务提示选择(示例中的 --task,prompts/youtu_parsing_omni.json 的键)。

输入 --task modality / subtype 关键内容
文档页面 document image / document 带 bbox 的布局元素、文本 / LaTeX / OTSL 表格 / Markdown 图表 / Mermaid 流程图、阅读顺序
自然图像 natural_image image / natural_image 带 bbox 的实体和文本、标签、字幕、全局描述
图表 graphics_chart image / document 一个 chart 元素:Markdown 表格、注释、字幕
流程图 graphics_flowchart image / document 一个 flowchart 元素:Mermaid、字幕
几何图形 graphics_geometric image / document 一个 geometric 元素:点、线、弧、形状、几何关系和测量
音频 audio audio / – 带时间戳的人声 / 非人声片段、说话人、ASR、音色 / 场景字幕、声学事件
自然视频 natural_video video / natural_video 带视觉元素、动作、交互、相机运动、音轨的时间片段
文本密集视频 textrich_video video / text_rich_video 带 OCR + ASR 的片段以及整个视频的 Markdown structured_report

亮点(详见技术报告):

  • 统一模式 – 一个 JSON 封装覆盖七个解析族,由任务提示驱动。
  • 全模态编码器 – 在单一模型中支持图像、音频和交错的音视频视频输入(帧 + 音轨)。
  • 小尺寸下的强劲结果 – 在 OmniDocBench v1.6 上达到最先进水平(96.96 Overall),在 OmniParsingBench 上是最佳开放权重模型(75.08 Avg.,仅次于 Gemini-3-Pro),在化学结构(ChemOCR)和乐谱(PDMX-Synth)识别上与专用模型相当(结果)。
  • 易于部署 – 包含 vLLM 插件、固定的服务设置、任务提示和推理示例。

方法

一个编码器处理所有模态

Two-tower omni-modal parser vs. Youtu-Parsing-Omni

现有的全模态解析器 (a) 使用两个分别预训练的塔来编码像素和音频,其流首先在语言模型内部汇合。Youtu-Parsing-Omni (b) 用一个单一的Youtu-Omni-Encoder 替换两个塔,该编码器从预训练的文本语言模型初始化以增强文本阅读。薄的模态特定主干将像素和 log-mel 帧映射为 token;一个共享的双向 Transformer 在一种 (t, h, w) 位置编码下对任意打包混合的图像、音频块和视频进行上下文化;然后模态特定的合并器和投影器将 token 连同文本提示一起馈送到 Youtu-LLM 解码器,后者输出 OmniSchema JSON。只有主干和合并器 / 投影器头依赖于模态,因此几乎所有感知参数都是共享的。

感知内部的音视频融合

Fusion windows and unified temporal positional encoding

视频的帧和音频块按时间顺序打包。(a) 非融合层为每一帧和每个音频块分配各自的注意力窗口,而少数融合层在每个音频到帧的边界处开启新窗口,因此一帧能关注到同一时刻的声音。(b) 视觉 token 从帧索引取 t,从 patch 网格取 (h, w);音频 token 用 t 从其时间偏移取 h = w = 0,因此两种模态共享同一时间坐标系。跨模态对齐因而在编码器内部计算,而非由解码器重建。

所有任务共用一套 schema:OmniSchema 感知的 On-Policy 蒸馏(OSAD)

OmniSchema-Aware On-Policy Distillation

全部十项解析任务共用 OmniSchema,因此在 SFT 和 schema 路由的 RLVR 之后,一个单一的自演化后训练流程 OSAD 在各任务上应用相同的基于 token 角色的目标。学生模型采样自己的解析结果;通过准入闸门(JSON 有效性、schema 符合性、框语法、重复检查)的 rollout 由模型的一个冻结副本评分,该副本还能看到参考解析。由于每个输出都遵循 OmniSchema,每个 token 被识别为内容(Jensen–Shannon 散度)或结构(更高温度下的前向 KL),外加一个全 token JS 项。在每个轮次边界,学生的 LoRA 适配器被合并,学生成为下一个教师,因此解析器及其监督共同演化,无需手工设计的奖励或单独训练的教师。

模型库

模型 参数 下载
Youtu-Parsing-Omni 5B 🤗HF Mirror | 🤖ModelScope

结果

OmniDocBench v1.6

模型 参数 总体 ↑ 文本编辑 ↓ 公式 CDM ↑ 表格 TEDS ↑ 表格 TEDS-S ↑ 阅读顺序编辑 ↓
Youtu-Parsing-Omni 5B 96.96 0.0271 96.80 96.79 98.20 0.1104
TeleOCR 1.2B 96.91 0.0267 96.59 96.82 98.18 0.1184
OvisOCR2 0.8B 96.47 0.0265 97.49 94.58 96.98 0.1120
PaddleOCR-VL-1.6 0.9B 96.34 0.0326 97.53 94.76 97.10 0.1278
MinerU2.5-Pro 1.2B 95.75 0.0360 97.45 93.42 95.92 0.1200
GLM-OCR 0.9B 95.22 0.0440 97.18 92.83 95.39 0.1330
HunyuanOCR-1.5 1B 94.74 0.0390 94.50 93.67 94.71 0.1290
Qianfan-OCR 4B 93.90 0.0400 95.08 90.53 93.31 0.1300
Youtu-Parsing 2.5B 93.74 0.0440 93.63 92.02 95.00 0.1160
Ovis2.6-30B-A3B 30B-A3B 93.70 0.0350 95.17 89.44 92.40 0.1350
Logics-Parsing-v2 4B 93.33 0.0410 95.65 88.42 91.98 0.1370
FireRed-OCR 2B 93.26 0.0370 95.44 88.04 91.06 0.1310
Gemini-3-Pro – 92.91 0.0640 95.99 89.15 92.96 0.1650
dots.ocr 3B 90.77 0.0480 89.95 87.18 90.58 0.1380
OpenDoc-0.1B 0.1B 90.67 0.0490 93.02 83.88 87.45 0.1400
DeepSeek-OCR 2 3B 90.25 0.0500 91.84 83.89 87.75 0.1440
Qwen3-VL-235B 235B-A22B 89.78 0.0630 92.55 83.07 86.75 0.1660
Dolphin-v2 3B 89.50 0.0690 91.01 84.40 87.44 0.1500
OCRVerse 4B 88.60 0.0630 89.61 82.44 86.27 0.1630
MonkeyOCR-pro-3B 3B 88.57 0.0740 88.74 84.35 88.62 0.1890
GPT-5.2 – 86.59 0.1140 88.21 82.95 87.93 0.1930

OmniParsingBench

模型 图表 几何 自然图像 音频 自然视频 富文本视频 平均
Gemini-3-Pro 92.79 85.43 69.73 76.74 74.82 76.80 77.44
Youtu-Parsing-Omni 95.02 74.33 62.84 78.08 74.18 75.62 75.08
Logics-Parsing-Omni 94.65 76.34 67.53 75.58 67.34 65.36 72.26
Qwen3-Omni-30B-A3B 87.07 58.60 59.35 75.23 65.19 59.59 66.44
Qwen3.5-397B-A17B 93.51 72.16 63.87 – – – –
GPT-5.4 90.92 81.16 60.50 – – – –

ChemOCR 与 PDMX-Synth

ChemOCR

模型 参数 类别 平均相似度 ↑ [email protected] ↑
DeepSeek-OCR 2 3B 通用解析 MLLM 74.9 49.6
Youtu-Parsing-Omni 5B 统一解析 MLLM 74.6 54.2
ChemDFM-X 13B 化学 MLLM 70.9 36.5
GPT-4o – 专有通用 MLLM 36.8 3.4
Qwen2.5-VL-7B 7B 开源通用 MLLM 25.5 0.4
InternVL2.5-4B 4B 开源通用 MLLM 4.4 0.0

PDMX-Synth

模型 类别 CER ↓ SER ↓ LER ↓
Youtu-Parsing-Omni 统一解析 MLLM 22.73 26.73 33.20
LEGATO 专用 OMR 模型 23.30 25.80 31.70
GPT-5.6 专有通用 MLLM 45.02 54.74 87.52
Gemini-3-Pro 专有通用 MLLM 54.26 68.10 82.33
Logics-Parsing-Omni 通用解析 MLLM 72.44 81.93 81.34
GOT-OCR2.0 通用解析 MLLM 93.98 98.54 97.76

快速开始

1. 安装

git clone https://github.com/TencentCloudADP/youtu-parsing.git
cd youtu-parsing/youtu_parsing_omni

# choose one mode per Python environment (Python >= 3.10, CUDA GPUs for inference)
bash scripts/setup_env.sh                 # vLLM serving + plugin (transformers==5.2.0)
bash scripts/setup_env.sh --transformers  # Transformers inference (transformers==5.10.2)
  • vLLM 服务和 Transformers 推理固定使用不同的 transformers 版本 (5.2.0 和 5.10.2);请将它们安装到各自独立的 Python 环境中。 peft 不得安装在服务环境中(脚本会将其移除)。
  • 音频/视频输入需要 ffmpeg 可用。

手动安装

# serving (vllm==0.19.0, transformers==5.2.0)
pip install -r requirements/vllm.txt
pip install transformers==5.2.0   # overrides vllm's transformers<5 pin
pip uninstall -y peft
pip install --no-deps ./vllm-plugin-vita-omni
# Transformers inference (separate env, transformers==5.10.2)
pip install -r requirements/transformers.txt

2. 使用 vLLM 提供服务

MODEL=tencent/Youtu-Parsing-Omni DATA_ROOT=/path/to/media GPU=0 bash scripts/vllm.sh

这会在 http://127.0.0.1:8000/v1 上启动一个 OpenAI 兼容服务器(提供的模型名称为 Youtu-Parsing-Omni),使用 vllm-plugin-vita-omni 模型 实现以及所报告结果的运行时设置。

变量 默认值 含义
MODEL 必填 HF Mirror 模型 id(tencent/Youtu-Parsing-Omni)或本地检查点目录
DATA_ROOT 必填 服务器可从中读取本地媒体的唯一目录(--allowed-local-media-path)
GPU 0 服务器运行的 GPU(CUDA_VISIBLE_DEVICES)
PORT 8000 服务器端口
  • 引擎设置:--max-model-len 65536 --max-num-batched-tokens 65536 --max-num-seqs 1、 --gpu-memory-utilization 0.70、--limit-mm-per-prompt '{"image": 8, "video": 4, "audio": 8}'、 --seed 1234、bfloat16;其余均使用 vLLM 默认值。
  • 服务器仅监听 127.0.0.1 并在前台运行(日志输出到终端); Ctrl-C 可将其停止。vLLM 的内部端口为 30000(可通过 VLLM_PORT 覆盖)。
  • 该脚本还会导出插件读取的媒体 token 预算 (YOUTU_VITA_*,见 vllm-plugin-vita-omni)。
  • MODEL 会原样传给 vllm serve:tencent/Youtu-Parsing-Omni 从 HF Mirror Hub 下载(缓存在 HF_HOME 中);本地检查点目录同样可用。

3. 解析文件

媒体文件必须位于 DATA_ROOT 之下。

python examples/infer_vllm.py --task document           --media /path/to/media/page.png
python examples/infer_vllm.py --task natural_image      --media /path/to/media/photo.jpg
python examples/infer_vllm.py --task graphics_chart     --media /path/to/media/chart.png
python examples/infer_vllm.py --task graphics_flowchart --media /path/to/media/flowchart.png
python examples/infer_vllm.py --task graphics_geometric --media /path/to/media/geometry.png
python examples/infer_vllm.py --task audio              --media /path/to/media/speech.wav
python examples/infer_vllm.py --task natural_video      --media /path/to/media/clip.mp4
python examples/infer_vllm.py --task textrich_video     --media /path/to/media/lecture.mp4

使用 --api-base 可指向另一台服务器。任务提示词列在 prompts/youtu_parsing_omni.json 中。 请求必须将媒体放在文本之前,并启用模型自带的 聊天模板的解析模式 (chat_template_kwargs = {"enable_thinking": false, "enable_parsing": true}), 该模式会直接渲染媒体 token 后接提示词,不带角色标记。 与所报告的结果一致,解码采用贪心策略,在 <|image_pad|> / <|end_of_text|> 处停止 (stop_token_ids,通过服务器的 /tokenize 端点查找)并保留特殊 token, 这些 token 携带坐标。

原始 OpenAI API 请求

import requests
from openai import OpenAI

# token ids of <|image_pad|> and <|end_of_text|>
stop_token_ids = sorted(requests.post("http://127.0.0.1:8000/tokenize", timeout=60, json={
    "model": "Youtu-Parsing-Omni", "prompt": "<|image_pad|><|end_of_text|>",
    "add_special_tokens": False}).json()["tokens"])

client = OpenAI(base_url="http://127.0.0.1:8000/v1", api_key="EMPTY")
prompt = "Please perform end-to-end document parsing on the provided image. ..."  # see prompts json
response = client.chat.completions.create(
    model="Youtu-Parsing-Omni",
    messages=[{"role": "user", "content": [
        {"type": "image_url", "image_url": {"url": "file:///path/to/media/page.png"}},
        {"type": "text", "text": prompt},
    ]}],
    temperature=0.0,
    max_tokens=32768,
    extra_body={
        "chat_template_kwargs": {"enable_thinking": False, "enable_parsing": True},
        "skip_special_tokens": False,
        "min_tokens": 16,
        "stop_token_ids": stop_token_ids,
    },
)
print(response.choices[0].message.content)

音频文件以 audio_url 发送。对于视频,在 --allowed-local-media-path 之下发送一个 file:// video_url,并将 "mm_processor_kwargs": {"nframes": 64, "use_audio_in_video": true, "use_vision_in_video": true} 添加到 extra_body;随后插件会将音轨与帧一起解码 (见 视频请求)。

Transformers

Transformers 推理需要 transformers==5.10.2 (bash scripts/setup_env.sh --transformers,在与 vLLM 独立的环境中)。 最小示例见 examples/infer_transformers.py:

MODEL=tencent/Youtu-Parsing-Omni

python examples/infer_transformers.py --model $MODEL --task document           --media /path/to/media/page.png
python examples/infer_transformers.py --model $MODEL --task natural_image      --media /path/to/media/photo.jpg
python examples/infer_transformers.py --model $MODEL --task graphics_chart     --media /path/to/media/chart.png
python examples/infer_transformers.py --model $MODEL --task graphics_flowchart --media /path/to/media/flowchart.png
python examples/infer_transformers.py --model $MODEL --task graphics_geometric --media /path/to/media/geometry.png
python examples/infer_transformers.py --model $MODEL --task audio              --media /path/to/media/speech.wav
python examples/infer_transformers.py --model $MODEL --task natural_video      --media /path/to/media/clip.mp4
python examples/infer_transformers.py --model $MODEL --task textrich_video     --media /path/to/media/lecture.mp4

--task 接受与 examples/infer_vllm.py 相同的值,并从 prompts/youtu_parsing_omni.json 中选择提示词;此处媒体路径不 限于 DATA_ROOT。Hub id 会下载到 --download-dir (默认 ~/.cache/youtu-parsing-omni)。模型使用 trust_remote_code=True 加载,该参数会执行检查点附带的 Python 代码;当 --model 是 HF Mirror Hub id 时,请用 --revision <commit-hash> 固定一个经过审查的提交。 所报告的结果是使用 vLLM(scripts/vllm.sh)生成的。

输出格式

模型以一个围栏 ```json 块作答。坐标使用 相对于 0–1000 网格的专用 token 编码,例如 "bbox": "<box><x_85><y_275><x_1000><y_1000></box>"(左上角 x/y,右下角 x/y); 时间戳使用 HH:MM:SS。每个任务的顶层 modality / subtype 对列在 简介 中;图像任务返回 elements(文档类输出还会返回 reading_order), 音频和视频任务返回时间 segments,每个输出 都有一个 global_description。

{
  "modality": "image",
  "subtype": "natural_image",
  "elements": [
    {"id": "e_000", "category": "entity", "bbox": "<box><x_350><y_465><x_590><y_715></box>",
     "tag": "snake bookmark", "content": {"text": "", "caption": "A silver snake-shaped bookmark ..."}}
  ],
  "global_description": {"caption": "...", "narrative": "...", "scene": "..."}
}

OmniDocBench 评估

推理在 vLLM 环境中运行;评分通过 Docker 使用官方 OmniDocBench 评估器 (ghcr.io/zeng-weijun/omnidocbench-eval:repro-ubuntu2204)。

MODEL=tencent/Youtu-Parsing-Omni OMNIDOCBENCH=/path/to/OmniDocBench \
OUTPUT_DIR=outputs/omnidocbench_$(date +%Y%m%d_%H%M%S) bash scripts/eval_omnidocbench.sh
  • OMNIDOCBENCH:包含 images/ 和 OmniDocBench.json 的数据集目录。
  • GPUS:要使用的 GPU(默认:所有可见 GPU),每个 GPU 一个 vLLM 服务器。
  • 要恢复运行,请使用现有的 OUTPUT_DIR 路径重新运行(不要使用新的时间戳)。
  • 输出:预测结果在 <OUTPUT_DIR>/predictions/ 中,最终报告在 <OUTPUT_DIR>/results.md 中, 日志在 <OUTPUT_DIR>/logs/ 中。

## Citation

If you find Youtu-Parsing-Omni useful in your research or applications, please consider citing our work:

```bibtex
@article{youtu-parsing-omni,
  title   = {Youtu-Parsing-Omni: One Encoder, One Schema, Every Modality},
  author={Tencent Youtu Lab},
  journal = {arXiv preprint arXiv:[TBD]},
  year    = {2026}
}

@article{youtu-parsing,
  title={Youtu-Parsing: Perception, Structuring and Recognition via High-Parallelism Decoding},
  author={Tencent Youtu Lab},
  year={2026},
  eprint={2601.20430},
  archivePrefix={arXiv},
  primaryClass={cs.CV},
  url={https://arxiv.org/abs/2601.20430},
}

@article{youtu-vl,
  title={Youtu-VL: Unleashing Visual Potential via Unified Vision-Language Supervision},
  author={Tencent Youtu Lab},
  year={2026},
  eprint={2601.19798},
  archivePrefix={arXiv},
  primaryClass={cs.CV},
  url={https://arxiv.org/abs/2601.19798},
}

@article{youtu-llm,
  title={Youtu-LLM: Unlocking the Native Agentic Potential for Lightweight Large Language Models},
  author={Tencent Youtu Lab},
  year={2025},
  eprint={2512.24618},
  archivePrefix={arXiv},
  primaryClass={cs.CL},
  url={https://arxiv.org/abs/2512.24618},
}

致谢

我们感谢以下项目和社区,是它们让 Youtu-Parsing-Omni 成为可能:

来源:腾讯混元模型发布 · hf-mirror.com