LightOnOCR3解码输出：去掉输入token前缀，避免把提示和图像占位当识别正文

素材身份：作者原创输入/可编辑参考。目标工具未在本轮执行。
先打开 index.html；input.csv 是原始字段，reference.csv 是验收基准，negative.csv 是故意构造的坏样例。
actual-results.csv 保留未测状态，实际执行后再填写。

前置条件：
LightOnOCR-3采用本地或自有授权服务；4B/0.8B为Qwen3.5架构，1B架构不同，显存还受图片与上下文影响，不承诺某张卡必定够用。
使用官方仓库锁定的兼容依赖；当前仓库说明vLLM0.30.0与Transformers5.16.1，模型卡的旧最低版本不能替代锁文件。
模型Apache2.0；仅空prompt或grounding是文档支持输入，原生PDF与检查无需付费，模型识别未执行。

操作步骤：
1. 准备一张极简原稿
页面只写三项领料记录，排除复杂布局干扰。
先保存图像摘要，后续长度检查不以换图产生差异。

2. 建立处理器输入
使用匹配模型的processor.apply_chat_template产生input_ids。
记录shape末维长度，不手写一个固定prompt长度。

3. 执行生成并保留ID
保存生成后的完整token序列元数据。
不把它直接全部decode为最终OCR文件。

4. 切出生成尾段
使用output_ids[0,inputs["input_ids"].shape[1]:]取得新增token。
批处理时逐样本考虑实际长度与padding，不能把别人的长度直接套用。

5. 对照完整与切片解码
只在调试文件显示两种结果，检查聊天模板前缀是否进入正文。
正式OCR只采用正确切片的结果，并保留special token处理设置。

6. 检测下游污染
让解析器拒绝正文开头出现作者构造的role/template标记。
该检查只是异常信号，不替代原文校对。

7. 交付解码证据
保存输入长度、输出长度、切片表达式和实际文本。
作者伪token样本只用于测试索引，不作为真实模型运行指标。

验收：
切片起点来自实际input_ids长度。
正式正文不含输入聊天模板前缀。
token长度仅记录真实运行值。

官方资料：
https://huggingface.co/lightonai/LightOnOCR-3-4B

图片身份：assets/ 为内置image_gen生成的原创练习输入缩略版，原始文件保留在网站图片来源地址。可编辑SVG为作者原生排版。
