前途科技前途科技
  • 洞察
  • 服务
  • 关于
  • AI 资讯
    • 快讯
    • 产品
    • 技术
    • 商业
    • 政策
    • 初创
  • 洞察
  • 资源中心
    • 深度研究
      • AI 前沿
      • 案例研究
      • AI 知识库
    • 行业报告
      • 白皮书
      • 行业报告
      • 研究报告
      • 技术分享
      • 专题报告
    • 精选案例
      • 金融行业
      • 医疗行业
      • 教育行业
      • 零售行业
      • 制造行业
  • 服务
  • 关于
联系我们

289k页文档自监督编码器:从零训练JEPA全复盘

技术2026年8月6日· 18 分钟阅读0 阅读

银行收到40万页无标签扫描件,且不能出内网。作者用289k页文档从零训练JEPA编码器,冻结后用每类几十个标签即可分类,还附带异常检测能力。文章复盘了架构、预处理、消融实验和踩过的坑,少标签场景下表现超过42M页预训练模型。

问题:四万页扫描件,没有标签,不能出网

银行接入一个企业客户,一夜间多出四万页扫描件。每个页面是发票、报表、身份文件还是合同,没人标注。标注不能外包,因为看得懂财务文件的人不多,所以现实预算是每类几百个例子,不是几万个。

第二个限制:页面不能离开银行内网,调用云端视觉API不可行。

监督学习出局。剩下的路是:无标签学文档结构,冻结编码器,在小向量上接轻量分类器。

作者原本的想法:文档有布局,掩码应该隐藏整个语义区域,让模型推断“这里有签名块”。这个想法在消融中排第四,最终用的是反块掩码。

这不是新架构,是实证研究。组件来自I-JEPA和CAPI,没有用于生产。

数据与坑

两个数据集:

  • RVL-CDIP:22万页,美国烟草诉讼披露文件,16类。
  • DocLayNet:6.9万页,现代数字文档。

共28.9万页无标签。RVL-CDIP的标签只用于评估。

两个坑:

  1. 解码失败的图像会让datasets streaming迭代器直接关闭生成器,丢掉整个流。要用decode=False手动解码。
  2. Parquet文件按类别排序,shuffle buffer太小会只拿到前几个类。用2万样本窗口才发现问题。

作者承认:RVL-CDIP不是银行数据,占语料76%,模型可能学到的是90年代传真退化特征。

预处理

离线阶段(每页一次):解码 → 灰度 → 可选块检测 → cv2.resize到256×256(INTER_AREA)→ 存uint8 memmap。

  • 灰度化:in_chans=1,扫描件没有有用颜色。
  • INTER_AREA避免文字混叠成摩尔纹。
  • 存uint8:28.9万页256×256,float32要19GB,bytes只要4.7GB。

在线阶段(每个样本每epoch):uint8 → float32 → [-1,1],唯一变换是scale和shift。没有数据增强,唯一的随机性是每次重新生成掩码。

块检测:白干了

块检测是唯一需要额外预处理的方案:Otsu二值化、膨胀、轮廓、按垂直中心分header/footer/body。

检测在原生分辨率跑,结果归一化到[0,1],写入boxes.jsonl。

但消融发现,最终模型用的是inverse_block_roll掩码,从不看这些box。检测器跑完全部28.9万页,DataLoader每次加载——为一个没人用的列。复刻的话跳过这一步。

架构:标准I-JEPA,改两处

DocViT:ViT-B(768维,12层),输入256×256灰度patch=16。

  • 固定2D正余弦位置编码,可插值改分辨率。
  • 没有CLS token,因为损失只接触patch位置。

最难的是变长掩码批处理。布局掩码每页可见patch数不同,需要padding索引到PAD_IDX=-1,gather前clamp到0,再用key padding mask让注意力忽略。三步缺一会破坏整个前提。

目标编码器用EMA更新,0.996→1.0余弦。预测器故意做窄:192维,4层,避免它直接学走文档统计。

损失是预测和layer-normed目标的MSE。LayerNorm防止模型缩小目标幅度来降损失。

初始化:torchvision的ImageNet ViT-B/16,通道平均,位置插值。

掩码策略

四种:

  • layout_zones:作者自己的,用boxes,按区域加权,上限35%页面。
  • random_multiblock:I-JEPA基线。
  • inverse_block_roll:来自CAPI,一个连续块可见35%,其余目标,循环移位避免边缘偏差。
  • inverse_block_roll_m30:控制组,CAPI形状但基线覆盖率。

控制组很关键:inverse_block_roll和基线同时差在形状和覆盖率,不控制就无法归因。

训练与防崩塌

训练:ViT-B 86M参数,40 epoch,batch 96,AdamW,LR 5e-5按batch缩放,3 epoch warmup,cosine,EMA cosine。掩码inverse_block_roll 65%,单张RTX 4090,7.7分钟/epoch,约5小时。

防崩塌三个指标:emb_std、RankMe、cosine kNN probe。三个都要,因为作者见过emb_std正常而RankMe滑了十个epoch。RankMe要非中心化计算。

消融

四策略×3种子,ViT-S on 100k页。分解因素:

  • 掩码覆盖率:+0.091,7.6个标准误,显著。
  • 掩码几何:−0.008,0.6个标准误,噪声。

结论范围:只在30%覆盖率处成立。layout_zones没在65%覆盖率测试,这是网格的洞。

layout_zones输是因为平均只覆盖13%,任务太容易。17%页面检测器返回无结果,抽样器悄悄退回随机块。作者训练了好几个月“两种策略的混合”。

单种子时,效果符号是反的。

误诊:不是过拟合,是预任务饱和

第一个ViT-B在epoch 15达到峰值0.617,然后掉到0.578。最自然的解释是过拟合。换了新掩码重跑,退化消失。真正的问题是预任务饱和:13%掩码下模型早就解决任务,剩余epoch只是压缩已有知识。

太容易的预任务不会响亮失败,反而像过拟合,让你把修复用在错误的东西上。

结果

协议:编码器冻结,只训练线性分类器(约1.2万参数)。k=每类标签数,k=5共80个标签,机会水平6.3%。

  • vs ImageNet ViT-B:同架构同参数量,k=5时0.583 vs 0.362,差距全来自文档预训练。
  • vs DiT-base:42M页预训练但通常微调,冻结协议下每个k都输,k=50时差8.3标准误。但这是“冻结表征信号”的比较,不是“部署哪个模型”。

少标签对比(同测试集同16类):

  • 160标签:Donut微调44.2%,本模型冻结61.0±2.4%,+16.8点是13.5标准误。
  • 800标签:Donut 71.4%,Mistral-7B+OCR 72.8%,本模型冻结70.0±2.3%,−1.4点是1.2标准误,无法区分。

优势在低标签端。

异常检测:一半能用

两个问题,一个有解一个无解:

  • “这是否是我认识的文档类型?”——距离参考集,有效。
  • “已知类型但布局损坏?”——预测器误差,几乎随机。

实现:每页新颖性1−max cosine对比参考目录;批次漂移用MMD²+排列检验。控制检验AUC 0.500,p=0.69。新文档类型MMD² 0.267,领域变化0.658。

手写页面新颖性高,原因不是模型没看过手写。预训练语料有9535张手写页。但目录里没有手写,最近邻是表格(横线纸、相似墨水密度)。向目录加20页手写,分数下降4.8倍,无需重训练。

最伤的:memo、budget、letter、invoice四个最像银行的类型,新颖性检测最差。信号弱在银行最需要强的地方。

布局损坏检测完全不行:合成delete/move/shuffle,整体AUROC 0.61,move只有0.52(随机)。用预测器误差做新颖性会反,AUROC 0.256。

项目弱点

  • 评估集1600页,不是官方40000页。
  • 大模型n=1,无法放标准误。
  • 71%不是路由系统,是分诊助手。
  • 没有OCR,模型不看文本。
  • 一种语言一种文字。
  • 消融网格有洞。
  • 没上生产。

工程与成本

六边形架构,Airflow驱动。三个DAG:onboarding(每客户一次)、inference(每天)、arrival(每10分钟)。

模式:不能运行的阶段应该跳过,而不是失败。

成本(作者实测):

  • 训练:约5小时,单卡RTX 4090。
  • 服务:92ms/页,4 CPU线程。
  • 内存:可进2GB容器。
  • 制品:692MB,推理只需326MB。

CPU延迟四线程饱和,值得测而不是猜。

复盘

一个8600万参数编码器,单GPU五小时,80个标签分类胜过42M页预训练模型。诚实边界:1600评估页、单次运行、无OCR、非银行数据。

三个习惯最好:

  1. 加配置项分离混淆因素。
  2. 在相信前跑多个seed。
  3. 结果不合常理时隔离单一变量。

作者说:“我最初的假设输了。基于这个失败行动,产生了图表里的模型。这个交易我随时做。”

注:所有数字都在官方RVL-CDIP测试集上用冻结编码器测量,来自脚本而非一次性notebook。

标签:自监督学习文档分类少样本学习

想了解 AI 如何助力您的企业?

免费获取企业 AI 成熟度诊断报告,发现转型机会

置顶文章

会打字,就能"拍"电影:ScriptTask 开放限量内测
置顶

会打字,就能"拍"电影:ScriptTask 开放限量内测

//

24小时热榜

TOP1

289k页文档自监督编码器:从零训练JEPA全复盘

多阶段检索:一次 API 调用,融合稠密+稀疏+过滤
前途科技前途科技
服务关于快讯技术商业报告
前途科技微信公众号

微信公众号

扫码关注

Copyright © 2026 AccessPath.com, 前途国际科技咨询(北京)有限公司,版权所有。|京ICP备17045010号-1|京公网安备 11010502033860号|隐私政策|服务条款
TOP2

多阶段检索:一次 API 调用,融合稠密+稀疏+过滤

3

给编码代理装上“监工”:可靠循环工程实践

2小时前
4

机器能续写故事,证据跟得上吗?

2小时前
机器能续写故事,证据跟得上吗?
5

基础模型的崛起:语言只是第一块试验田

2小时前
基础模型的崛起:语言只是第一块试验田
6

AI教AI:训练监督链正在被改写

2小时前
AI教AI:训练监督链正在被改写
7

Medium Day 2026:AI时代的写作复兴指南

2小时前
Medium Day 2026:AI时代的写作复兴指南
8

为什么软件行业需要“编排者”?

2小时前
为什么软件行业需要“编排者”?
热门标签
大模型AgentRAG微调私有化部署Prompt EngineeringChatGPTClaudeDeepSeek智能客服知识管理内容生成代码辅助数据分析金融零售制造医疗教育AI 战略数字化转型ROI 分析OpenAIAnthropicGoogle

关注公众号

前途科技微信公众号

扫码关注,获取最新 AI 资讯

免费获取 AI 落地指南

3 步完成企业诊断,获取专属转型建议

已有 200+ 企业完成诊断