之前和 OpenAI 的做交流,突然提了一个问题
文字,是信息压缩的最好方式吗?
当时没想太多,直到今天
DeepSeek 开源了 DeepSeek-OCR
用 10 个视觉 token,表达 100 个文本 token
github.com/deepseek-ai/DeepSeek-OCR
我突然意识到:这个问题可能有答案了
具体对比:
• DeepSeek-OCR 用 100 个 token,超过了 GOT-OCR2.0 的 256 个 token
• DeepSeek-OCR 用 800 个 token,超过了 MinerU2.0 的 6000+ token
• 即使压缩到 20 倍,准确率还有 60%
DeepSeek-OCR在不同压缩比下的准确率
为什么重要
现在所有的多模态大模型都面临一个瓶颈:
token 消耗太多了
处理一页 PDF 就要消耗几千个 token
如果你想处理一本书、一份研究报告、一堆财务文档
context window 立刻就爆了
每个 token 都要算钱、消耗显存、拖慢推理速度
DeepSeek-OCR 用数据告诉你
10 倍压缩,几乎无损
信息论视角
对于这个问题
Hacker News 上展开了很大的讨论
是当前 Hacker News 上的最火话题
"为什么这种方法有效?"
"是不是文本 token 太粒状了,没接近理想的熵编码?"
"切换到视觉 token 是不是逃脱了'一次一个词'的限制?"
Hacker News 评论第一条
有个回答说的很有意思
文本 token 本质上是离散的查找表
你有个小整数(token ID)
然后查表得到一个向量
但视觉 token 是连续值向量
没有查找表
直接从图像编码成向量
这意味着什么?
文本 token 的「token 空间」是有限的
通常就 10 万个可能的 token
每个 token 对应一小段 UTF-8 字节
而且大多数分词器不会创建跨越词边界的 token
视觉 token 的「token 空间」要大得多
它是高维浮点数向量,每个维度都可以取很多值
所以视觉 token 能传达更多的 bits per token
这才是压缩的关键
图片
另一个人补充
文本 token 是子词单元
视觉 token 在语义空间
语义空间显然比子词切片压缩得多
免责声明:我不懂