
1. 为什么手写批注识别是检验多模态大模型的试金石拿到 OpenAI 正式发布 GPT-6 Astra 的消息时我第一反应不是去看演示视频里的花哨能力而是把硬盘里攒了快一年的那套手写批注测试集翻了出来。这套测试集是我在校对流程自动化项目里一点点攒下的真实稿件——合同、论文、宣传册、课程讲义都有每一页都被真人用红笔、蓝笔或铅笔改得密密麻麻。我等一个真正能把看懂批注做好的多模态模型已经等很久了。Fable 5.1 是同期另一家实验室放出的旗舰多模态模型在不少通用视觉问答榜单上和 GPT-6 Astra 咬得很紧。但我一直觉得通用榜上的分数说明不了太多问题——那些题目测来测去大多是图片里画了什么而真正生产环境需要的是图片里的修改意图是什么、改完之后的成稿应该长什么样。这次我用同一套手写批注语料把两个模型硬碰硬拉出来对比结果比我预想得还要悬殊在识别 handwritten corrections手写批注并把修改正确落到原文这件事上GPT-6 Astra 几乎是全面压制 Fable 5.1。先解释一下什么叫手写批注识别。它不只是识别纸上写了什么字而是要理解一整套编辑语言把某个词划掉表示删除在两个字中间画个 ^ 再写上内容表示插入把一段文字圈起来、在旁边写新词表示替换用箭头把两处文字连起来表示调换顺序在页边空白处写一段话表示补充意见在某些数字下画个问号表示存疑。这些符号和文字组合在一起构成一份完整的修改指令集。模型要做的事情是看完一整页图像之后输出一份已经把所有修改应用完毕的干净成稿。1.1 批注识别离我们的工作其实很近很多人觉得手写批注识别是个冷门场景实际上它出现在大量日常工作里出版社和媒体的校对环节稿件通常以纸质或 PDF 形式在外编手中流转改完再人工把修改录入电子稿学术期刊的同行评审审稿人直接在 PDF 上手写意见编辑部要一份份整理律所的合同审核法务改稿后需要生成干净的最终版企业内部各种审批单据手写修改意见和印刷表格混在一起。任何一个环节如果模型能读得懂批注校对录入这个岗位就能从逐条人工核对变成AI 走一遍加上人工抽查节省的时间非常可观。我之所以一直把批注识别当作多模态模型的试金石是因为它把难度拉到了足够高视觉层面需要看清潦草的连笔、被涂改覆盖的字、密集版面里的细小符号语言层面需要理解把结论改成否定式数据有问题这类语义操作空间层面还需要精确判断一条批注到底作用在哪个词、哪一行上。通用 benchmark 分数接近的两个模型在这个任务上会瞬间拉开身位。1.2 读懂编辑意图是两层能力的叠加批注识别可以拆成两个层次。第一层是文字识别激光扫描或者手机翻拍之后把印刷体和手写体都转成计算机能处理的文本。这一层靠 OCR 技术就能完成个七八成。第二层才是真正的难点——编辑语义理解划掉的线到底覆盖了哪些字那个 ^ 是插在确认和后执行之间还是插在确认前面页边那句这句话结论反了指代的是上面第二段还是第三段画问号究竟是对数据来源存疑还是提醒自己回头再看一眼第二层能力要求模型同时处理视觉符号、版面位置和语言语境缺了任何一环都会出错。两个模型在第一层的差距其实没有那么大单看印刷体识别谁都很强但一旦进入第二层需要把批注符号翻译成修改指令的时候结果就完全不同了。这也是这次测试最有价值的地方——它把两个模型在深层语义理解上的真实差距暴露得干干净净。2. 评测设计1500 份测试稿和一套逐条打分的方法对比测试最忌讳的就是凭感觉下结论尤其是这种涉及主观判断的内容理解任务。为了保证结果可信、可复现我在语料构成、批注分类、评分口径和模型接入方式上都做了严格控制这里把设计思路说清楚。2.1 测试语料的构成与来源测试集一共 1500 份页面其中 1200 份来自真实业务稿300 份是人工标注控制的合成用例。真实稿件的来源是我过去一年参与过的三个校对自动化项目覆盖合同、学术论文、教材和营销物料扫描分辨率统一按 300dpi 处理主要格式是 JPG 和 PDF。合成用例则特意覆盖了真实稿件里相对少见的极端情况批注密度极高的一页、箭头交叉的复杂调序、手写笔迹和印刷体重叠、双色批注叠加等。两种语料缺一不可。真实稿件保证生态效度——模型面对的是现实中真正会出现的脏活累活合成用例则保证每个批注类型都有足够样本量。我见过不少评测只用了某一种语料结果要么是真实场景太杂导致分项统计失真要么是合成用例太干净导致测试结果虚高。这次测试我按批注类型做了分层抽样确保六类批注各自都有 200 条以上有效样本。2.2 六类批注划分与评分口径批注类型我划分成六类删除、替换、插入、调序、边栏批注、疑问标记。评分采用两级口径——批注级和成稿级。批注级的标准是每一条批注是否被正确理解和执行方便定位模型在哪类操作上犯错成稿级的标准是最终输出文本与标准成稿的字级一致率更接近实际使用时的观感。两套口径一起算主考核以批注级准确率为准成稿级作为辅助验证。批注类型常见形式判定要点删除文字上划横线目标文字在成稿中完全消失替换旧词划掉旁边写新词新词落到正确位置旧词不残留插入两字之间画 ^ 并写内容插入位置必须准确调序两组文字间画交换箭头顺序正确互换边栏批注页边空白处的大段说明语义正确对应到目标段落疑问标记问号、波浪线、下划线输出中保留存疑信号而非当成确定修改批注级评分的判定挺苛刻例如替换类只要成稿里新旧词同时出现或者新词位置错了这一条就算失败。正是这种严格口径让后面两个模型的分差看起来特别触目。2.3 接入方式与参数控制两个模型都通过官方 API 接入输入原始页面图像不预裁剪、不做任何 OCR 预处理直接要求模型输出修改后的完整成稿文本。统一提示词模板为这是一份带手写修改的文档页面请理解所有修改意图并输出修改后的完整文本不要解释过程。采样温度设 0最大输出 token 512其他参数全部默认。为什么不提前把批注区域裁剪出来再喂给模型因为在真实业务里用户是不可能给模型裁好图的模型必须具备在整张页面里自动定位批注、并对应到正确正文位置的能力。如果预裁剪等于提前替模型完成了最难的版面关系判断测试就失去了意义。每个样本跑两遍取较好的结果主要为了排除偶发的采样波动保证成绩反映的是模型能力而非运气。3. 对打结果94.2% 对 76.8%差距全部集中在关系推理上测试跑完数据比预想的更干脆。GPT-6 Astra 的批注级总准确率是 94.2%成稿级字级一致率是 91.7%Fable 5.1 的批注级总准确率只有 76.8%成稿级只有 71.3%。这个差距不是均匀分布的有些批注类型两个模型咬得很近有些则是断崖式的差距。3.1 总分与分项明细先看分项数据我用同样的语料和口径分别统计了六类批注的准确率批注类型GPT-6 AstraFable 5.1差距删除96.8%81.2%15.6替换93.5%72.4%21.1插入94.1%70.6%23.5调序88.9%58.3%30.6边栏批注92.0%63.5%28.5疑问标记85.7%47.2%38.5规律非常明显越是依赖版面空间关系和语义推理的批注类型Fable 5.1 掉得越狠。删除这种靠纯粹视觉就能判断的操作两个模型的差距相对最小疑问标记这种几乎完全靠语义上下文推断的内容差距拉到了近 40 个百分点。这个分配模式本身就是很有价值的信息。3.2 删除与替换最常见的批注最常见的翻车删除在六类批注里最简单划线覆盖到的文字删掉即可但就是这件事Fable 5.1 也只做到 81.2%。它的典型错误有两种一种是手写划线划过重叠字时把没被划掉的字一起误删了另一种是删正文内容时把旁边追加的旁注文字也连带删掉。反过来有些划线比较轻的它又识别不出来错误地保留原文。替换类的差距进一步拉大。替换批注的形式是划掉旧词在旁边写新词模型需要判断哪个是待删的旧信息哪个是要用的新信息。Fable 5.1 在旧词和新词位置靠近的时候经常把新词当作追加内容直接拼在旧词后面成稿里新旧词同时出现。比如原文我们将在下周完成项目验收工作旁边标注下周改为本月底前Fable 5.1 有几次输出成了我们将在下周本月底前完成项目验收工作——划掉的旧词没删旁注的新词又没接对位置。GPT-6 Astra 则基本都能输出我们将在本月底前完成项目验收工作。这个例子最能说明两个模型对哪些是指令、哪些是正文的判别能力差异。3.3 插入与调序Fable 5.1 的次序感很弱插入批注用 ^ 符号标记插入点难点在于 ^ 的位置在紧凑版面上非常微妙。两个词之间、三个词之间、甚至同一个词的不同音节之间的插入点光靠眼睛有时都容易看错。GPT-6 Astra 对插入点的判断相当精准94.1% 的准确率说明它能够把视觉上那个细微的符号位置映射到正确的文本位置。Fable 5.1 则经常在窄行距 PDF 上错位把本应插在确认和后执行之间的内容插到确认之前。调序类差距最扎眼88.9% 对 58.3%。调序批注通常画一个弯曲箭头把两组词连起来表示二者互换。这种批注几乎没有固定的符号标准全靠箭头的空间指向来理解。从失败案例看Fable 5.1 的一个常见错误是把交换理解成了连接比如数据采集与分析被箭头标注互换它输出的却是数据采集与分析原样不动或者把两段文字强行拼成一段。这说明它对带方向性的空间符号编码非常薄弱。3.4 边栏批注与疑问标记理解未说出口的话才是分水岭边栏批注是六类批注里语义最重的一类页边写一句话对应到正文里一大段内容。比如这里结论反了要改成否定式这一段的案例过时了换最新的数据模型得先定位这里是哪一句再执行改成否定式这种语义操作。Fable 5.1 在这一项上只有 63.5%错误模式有两种一是把页边批注的文字原封不动当正文抄进成稿二是把批注对应到错误的段落。GPT-6 Astra 的 92% 说明它在指代消解和语义改写上确实有一套。疑问标记是最有戏剧性的一项。原文里划个问号或者在某句话下面画波浪线并不代表要修改而是提醒这里需要人工复核。Fable 5.1 在这一项只有 47.2%大量输出把数据来源有问题当成确定的修改指令处理或者直接把疑问文字吞掉输出时变成肯定句。而 GPT-6 Astra 会把这类信号保留为存疑提示。别小看这个能力在校对生产流程里待确认信息被误判成已确认信息会造成下游一连串麻烦这个功能上的差距比准确率数字本身更致命。4. 从翻车案例反推 Fable 5.1 的三个技术短板看完数据我又把所有失败案例从头到尾过了一遍。Fable 5.1 的错误不是零散的而是呈现出明显的模式。从这些模式反推它的技术方案上有三个短板基本可以坐实。4.1 管道式架构把误差放大了三倍Fable 5.1 的很多行为表现非常像OCR 文字识别 → 版面分析 → 语言模型后处理的管道式设计。现在不少多模态模型为了省训练成本仍然采用这种组装方案。管道式架构的问题在于误差会逐级累积文字识别环节只要把手写字母认错后面所有语义判断都跟着错版面分析把批注位置定错插入和替换操作就会错位。我翻了一些 Fable 5.1 的错误案例确实出现了手写数字 5 被识别成 3导致替换内容完全错误这类典型的 OCR 错误传导。相比之下GPT-6 Astra 的错误很少出现在单字识别上更多是在极复杂版面下的语义拿捏这很能说明两者的架构差异。4.2 只看到字却看不到关系第二个短板体现在空间关系上。失败的调序案例里Fable 5.1 经常把互换箭头当成连接线失败的插入案例里它把握不准 ^ 到底插在哪个词之间失败的边栏批注案例里它把页边文字对应到错误段落。这些错误指向同一个根源它的视觉编码对字与字之间、符号与文字之间的几何关系不敏感。批注识别的本质其实是一场空间推理——目标文字在哪里、修改符号覆盖了哪些区域、新内容要落到哪个坐标这些信息必须被视觉编码精确保留。如果模型只编码了有没有字、字是什么而丢失了字在哪里、字和字之间是什么方位关系哪怕单字识别全对组合起来也会闹出张冠李戴的笑话。4.3 缺少对编辑意图的分层推理第三个短板也是最难补的Fable 5.1 像是把批注识别当成识别 翻译在做——把图像里的所有文字识别出来再翻译成一段通顺的文本但它缺少一个意图层来判断这一笔是删除还是保留这个问号是让人复核还是只是划了条重点线这段旁注是要落到文中还是仅作参考这些判断需要模型同时利用视觉符号、词汇语义和文档语境做联合推理。GPT-6 Astra 在疑问标记和边栏批注上的表现说明它在训练阶段就大量接触了图像 修改指令 成稿结果这类三元组数据所以对意图的建模更直接。这部分属于我从行为反推的推测不是官方文档的结论但从错误模式的分布来看这个推断和实测数据是自洽的。5. GPT-6 Astra 赢在架构从行为反推它的训练与设计作为一个吃这碗饭的人我更关心的是为什么它能赢。虽然 OpenAI 没有公开 GPT-6 Astra 的完整技术细节但从 API 的实际行为、错误模式和响应特点上能反推出不少设计思路。5.1 原生多模态融合不搞流水线GPT-6 Astra 对整页图像的处理方式明显不同于图像分块识别 文本后处理的路线。从响应速度和输出质量看它对图像信息的编码和语言推理是在同一个表征空间里完成的视觉特征可以直接影响词元生成语言推理也可以反过来对视觉特征进行再聚焦。这种方式在处理批注时特别有用模型先看到那里有条线语言模块判断可能是删除记号然后视觉模块再回头确认这条线确实覆盖了那个词整个过程是迭代推进的而不是像管道式架构那样一次定生死。5.2 高分辨率视觉编码与局部注意力批注识别对细节极其敏感一个 ^ 的位置偏差几个像素插入点就完全不同。GPT-6 Astra 在紧凑版面、密集批注下依然保持高准确率一个重要原因应该是它支持高分辨率视觉输入并且视觉编码层具备局部注意力机制能够对批注符号周围的细小区域做精细建模。这很像人眼的视觉策略先快速扫一遍全页把版面结构记在脑中然后聚焦到修改符号附近仔细看。模型内部其实也是这么干的先粗粒度理解全页再对重点区域精读只不过这个过程发生得非常快。5.3 训练目标里纳入了编辑语义从结果反推GPT-6 Astra 的训练数据里大概率包含大量带批注文档 → 干净成稿的样本。模型被直接训练去预测修改后的结果而不只是预测图像里的文字内容。这个训练目标非常关键等于强制模型理解一套编辑规则看到划线就学习删除这个语义看到圈注就学习替换看到箭头就学习顺序变化。如果训练目标只是普通的图文配对模型学到的是图像里有哪些字而不是这些字被修改之后应该变成什么。这两种知识在实际任务中的差距正好就是这次测试里两个模型 17 个百分点的差距。6. 落地经验批注识别真正变成生产力之前要解决的几件事数据测完了横向对比也做完了读者的下一个问题一定是这套能力到底能不能直接用到生产里我在项目里实际试跑了一段时间把可以复用的经验写出来。6.1 最小可用工作流一个能快速上手的流程是扫描件或手机翻拍件按 300dpi 以上导入整页喂给模型要求输出成稿文本和修改摘要。修改摘要建议单独输出列出第几段第几行做了什么修改这能大幅压缩人工复核的时间。我实际跑下来的体会是除非遇到明显的版式异常否则不要先把 PDF 拆成单页分别处理——整页输入能保留批注和正文之间的空间上下文准确率明显更高。输出格式上建议同时要求模型保留未修改部分的原文防止它在处理过程中顺手做了不必要的润色给后续比对制造麻烦。6.2 提示词里值得注意的几个细节提示词的影响远比想象中大。我对比了几套写法有几个要点是实测有效的一是明确要求遇到无法理解的批注在输出中标记 [待人工确认]不要强行猜测二是对法律、技术类文档在提示词里附上领域术语表能明显减少同音字替换错误三是如果页面有多处批注要求先逐条列出修改说明再输出最终成稿这比直接要成稿文本更容易定位问题。采样温度务必设 0批注识别是确定性任务不是创意任务任何随机性都会引入本可避免的错误。6.3 边界在哪里仍然需要人工兜底的情况即使强如 GPT-6 Astra测试里仍有接近 6% 的批注级错误集中在这几类多人用不同颜色批注叠加导致指令互相矛盾、批注笔迹覆盖了印刷体导致原文无法辨认、极度潦草的连笔手写、以及见上页第三段这种跨页引用批注。这些场景目前没有模型敢保证零错误。生产使用时必须留人工兜底我的做法是把模型输出的成稿当高完成度初稿用 Word 审阅模式生成修订记录让校对人员重点复核疑问标记、边栏批注和数字类替换这三类高风险位置其余内容直接采信整体效率比纯人工提升得非常明显。最后说点个人体会。我做了几年文档自动化相关的工作识别手写批注一直是被客户当成AI 总该能做吧、实际上却让无数方案栽跟头的需求。这次测试最让我感慨的不是孰强孰弱而是这个场景终于从演示能用走到了生产可用的门口。GPT-6 Astra 在疑问标记上的表现尤其让我这种天天跟校对稿打交道的人安心——它至少知道自己什么时候不确定。如果你也在做类似的批注处理需求建议一定拿自己业务里的真实稿子跑一遍测试别只信别人的评测报告。不同领域的批注习惯差异很大模型落不落地最后还是你自己的稿子说了算。