☰
揭秘Nemotron-Parse-2.0-8bit的坐标Token体系:<x_><y_><class_>输出格式完全解析
2026/10/22 1:50:40 网站建设 项目流程

【免费下载链接】Nemotron-Parse-2.0-8bit

项目地址:https://ai.gitcode.com/hf_mirrors/mlx-community/Nemotron-Parse-2.0-8bit
点击查看免费下载

Nemotron-Parse-2.0-8bit 是 NVIDIA Nemotron Parse 2.0 文档解析模型的 8-bit MLX 量化版,一个 903M 参数的视觉编码器-解码器 OCR 模型,专为 Apple Silicon 推理优化。它的核心能力在于:只需输入一张文档图片,就能输出带坐标 Token(<x_>、<y_>、<class_>)的结构化解析结果——不仅识别文字,还告诉你每段文字"在哪、是什么"。本文带你完整拆解这套坐标 Token 体系与输出格式。

一分钟认识 Nemotron-Parse-2.0-8bit

这个模型由 C-RADIO 视觉编码器 + mBART 风格解码器构成,采用image-to-text only模式:提示文本只决定"任务",真正驱动转录的是图片本身。模型只量化了语言解码端(8-bit / group 64),视觉编码器保持 bf16,磁盘占用约 1.6 GB,OCR 字段准确率高达0.9474(与 bf16 原版持平)。详见项目说明:README.md。

坐标Token体系:三大Token家族

与普通 OCR 只吐文字不同,该模型在基础 BPE 词表之外新增了22000 多个特殊 Token(完整词表约 72000 个),核心就是三大家族(可查 tokenizer.json):

Token 家族数量含义
<x_0.0107>1024 个归一化横坐标,范围 0.0 ~ 0.999
<y_0.243>1280 个归一化纵坐标,范围 0.0 ~ 0.999
<class_Table>15 个对象类别标签

坐标是归一化浮点数,以独立 Token 形式直接生成(而非逐字符拼出),这保证了坐标 100% 合法、精度固定,是"坐标 Token 体系"最关键的设计。

15 种对象类别一览

<class_>Token 覆盖文档解析的全部常见对象类型:

Text、Title、Section-header、List-item、Table、Formula、Code、Chart、Picture、Caption、Footnote、TOC、Bibliography、Page-header、Page-footer

一条完整的输出模板

模型对文档中每一个对象,都按固定范式输出——起点坐标 → 内容 → 终点坐标 → 类别:

<x_起点x><y_起点y> 对象内容 <x_终点x><y_终点y> <class_类别>

来看 golden_outputs.json 中一段真实的黄金输出(省略了任务前缀):

<x_0.0107><y_0.243>\begin{tabular}{ccccc}\n\end{tabular}<x_0.2285><y_0.2836><class_Table></s>

解读:在归一化坐标 (0.0107, 0.243) 到 (0.2285, 0.2836) 的区域内,发现了一个Table对象,内容为 LaTeX 表格。一个对象结束(</s>前的<class_...>)后,立即开始下一个对象,如此循环直到整页解析完毕。

💡 内容部分遵循任务前缀的指定格式:默认是 Markdown 文本 + LaTeX 表格,<output_markdown>就是它的开关。

任务提示词:如何激活这套格式

所有推理脚本(run_transformers_inference.py、vllm_example.py)都使用同一个任务提示词:

</s><s><predict_bbox><predict_classes><output_markdown><predict_no_text_in_pic>

各开关 Token 的含义:

提示 Token作用
<predict_bbox>启用边界框(坐标)预测
<predict_classes>启用类别预测
<output_markdown>内容以 Markdown / LaTeX 输出
<predict_no_text_in_pic>图片(Figure)内不转写文字

生成参数方面,generation_config.json 使用贪心解码(do_sample: false)+repetition_penalty: 1.1,保证输出确定、可复现——这也是坐标 Token 方案对推理结果稳定性的重要保障。

解析输出:从原始文本到像素坐标

拿到模型输出后,postprocessing.py 提供三步解析工具链:

1️⃣ 正则抽取—extract_classes_bboxes()用一条正则匹配所有对象,返回classes / bboxes / texts三个平行列表:

<x_(数字)><y_(数字)>内容<x_(数字)><y_(数字)><class_(类别)>

2️⃣ 坐标还原—transform_bbox_to_original()把归一化坐标换算回原图像素坐标。它完整复刻了预处理逻辑:图片先缩放到最长边 2048×1664 以内、再居中填充到 1664×2048 画布,因此反算时必须扣除居中 padding(见 preprocessor_config.json 的尺寸配置)。

3️⃣ 内容后处理—postprocess_text()按类别格式化内容:Table的 LaTeX 可转成 HTML / Markdown / JSON / CSV,Text可选 Markdown 或纯文本,还可以一键清空Picture区域内的文字。

最终效果可参考 example_with_processor.py:解析完所有对象后,用 PIL 在原图上画出红色边界框,直观验证"文本 + 位置 + 类别"三元组。

进阶:Logits 处理器与 vLLM 部署

对于更严格的场景,项目内置了两个 Logits 处理器(hf_logits_processor.py):

  • TableInsertionLogitsProcessor:检测到"起点坐标对"后,强制插入\begin{tabular},确保表格对象以正确的 LaTeX 结构开头;
  • RepetitionStopProcessor:用 n-gram 滑动窗口检测连续重复(幻觉复读),一旦触发就强制模型输出<x_...>Token 关闭当前对象,避免& \死循环。

vLLM 部署时只需在请求中带上repetition_penalty: 1.1、top_k: 1与skip_special_tokens: false(保留坐标 Token),即可批量解析整目录图片,见 vllm_example.py 和 logitsprocs/nemotron_parse_vllm_logitprocs.py。

总结

Nemotron-Parse-2.0-8bit 的坐标 Token 体系可以归纳为一句话:

归一化坐标 Token 保证合法性,固定输出模板保证可解析性,任务提示词保证可配置性。

核心概念要点
输出模板<x_><y_>内容<x_><y_><class_>
坐标 Token1024 个 x + 1280 个 y,归一化 0~1
类别 Token15 种文档对象类别
解析工具postprocessing.py 三步走
部署参考run_transformers_inference.py、vllm_example.py

理解了这套体系,你就能把"图片 → 带坐标的结构化文档"这条完整链路在自己的项目里跑起来,复现测试则可直接参考 test_golden.py。

【免费下载链接】Nemotron-Parse-2.0-8bit

项目地址:https://ai.gitcode.com/hf_mirrors/mlx-community/Nemotron-Parse-2.0-8bit
点击查看免费下载
上一篇:DREAM3D:材料科学3D微结构分析的完整解决方案
下一篇:FanControl终极指南:Windows风扇控制完整解决方案

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询