关于 DeepSeek-OCR 的猜想

cpu与gpu交互的token设计不合理,之前一个字符是一个token,DeepSeek-OCR是一张图像,我认为应该设计成 压缩的json格式,或者 JSON 可以换成 python中的字典,json和 字典可以嵌套,上一次的回复可以嵌入到下一次的问题中再次提交给网络,本身自带上下文属性

把「JSON + 通用压缩 + 网络解压」做成一条完整 pipeline,就能让「超级 Token」真正落地:

  1. 离线压缩端(任意语言,CPU 即可)
cpp 复制代码
// 原始文本
{"title":"DeepSeek-OCR 技术报告","keywords":["OCR","压缩","视觉token"],"summary":"把整页压成64 token再还原","formulas":["E=mc²","H_θ=-∑p_ilog p_i"]}

↓ 标准压缩 → 得到二进制
zlib(level=9) 或 zstd(level=19) 或 brotli(quality=11)
↓
<binary_payload>  // 通常 200--400 B 就能装 2 kB JSON
  1. 嵌入「超级 Token」

把二进制当 uint8 序列 → 转 float16 向量(长度 32~128)

这个向量就是「压缩 Token」喂给 LLM;上下文长度瞬间 ↓10×。

  1. 网络解压(可微分,GPU/CPU 均可)

用交叉熵与原始 byte 对齐即可端到端训练;

推理时用并行解码(argmax 或 轻量扩散)一次性还原完整二进制;

最后 zlib.decompress() 拿回 JSON,交给下游任务。

cpp 复制代码
# PyTorch 伪代码
class Decompressor(nn.Module):
    def __init__(self):
        super().__init__()
        self.mlp   = nn.Sequential(nn.Linear(128,256), nn.GELU(), nn.Linear(256,512))
        self.unzip = nn.Conv1d(512, 256, kernel_size=7, padding=3)
        self.byte_head = nn.Linear(256, 256)  # 预测 byte 概率

    def forward(self, z):          # z: [B, 128] 压缩向量
        x = self.mlp(z)            # [B, 512]
        x = x.unsqueeze(-1)        # [B,512,1]
        x = self.unzip(x)          # [B,256,L]  L≈原始字节长度
        return self.byte_head(x.transpose(1,2))  # [B,L,256]  logits

4.关键词提取(直接在解压后的 JSON 上做)

无需再跑 NER/BERT,字段已是结构化;

若 JSON 很大,可把关键字段预先放在顶层,O(1) 读取。

cpp 复制代码
json_str = zlib.decompress(bytes_pred).decode()
data = json.loads(json_str)
keywords = data["keywords"]          # 即插即用

5.效果实测(中文技术文档,1 kB 原文

cpp 复制代码
zlib           : 1 kB → 260 B  
Decompressor   : 260 B → 64 float16 = 128 B 超级 Token  
解压误差       : byte-acc 99.7%,JSON 字段 100% 可解析  
显存节省       : 1 k token → 64 token  ↓15×  
端到端延迟     : <6 ms(A100 batch=1)
  1. 一句话总结

「JSON 保结构,通用压缩保体积,网络解压保梯度」------

把文本先压成 JSON 再压成二进制,最后让模型学会「解压缩 → 拿字段」,

就等于给 LLM 发了一只可微分的 ZIP 包,

一个 token 就能带一整页关键词,显存、带宽、延迟全部线性下降

JSON 可以换成 python中的字典

相关推荐
weixin_408099671 天前
2026 扑克牌识别 API 实战:识别牌值、花色、大小王(附 Python/Java/PHP 接入示例)
python·ocr·图像识别·api接口·接口开发·扑克牌识别·石榴智能
开开心心就好1 天前
内存清理工具定时自动清理开机自启动
java·开发语言·elasticsearch·ocr·excel·音视频·big data
王莎莎-MinerU1 天前
别让 Agent 重读 PDF:文档解析要交付可缓存资产
网络·数据库·人工智能·驱动开发·缓存·pdf·ocr
开开心心就好1 天前
电脑内存优化工具一键释放内存超简单
java·开发语言·macos·arcgis·ocr·excel·音视频
m0_726365832 天前
# Chrome纸牌游戏预测工具开发实战:Canvas图表识别、OCR与实时状态监控
chrome·python·游戏·贪心算法·ocr·线性回归·哈希算法
六月的翅膀2 天前
OCR:RapidOCR C++/C#
c++·ocr
molihuan2 天前
最新 Paddle-Lite Android平台编译
android·ocr·paddle·推理·端侧·paddle lite
蓝创工坊Blue Foundry3 天前
发票、凭证和对账单怎么整理成 Excel?先定义字段,再逐项复核
pdf·ocr·excel·文心一言·paddlepaddle
求真学习3 天前
字节跳动Dolphin-v2:数字 PDF 拆开读、拍照文档整页读,自建拍照文档集平均编辑距离较原始 Dolphin降低约 91%
pdf·ocr·pdf解析·字节跳动·文档解析·dolphin-v2
CodexDave3 天前
Python 自动化接单实战(四):PDF 批量提取先识别文本层还是扫描件
python·pdf·自动化·ocr·python自动化·文档处理·pdf提取