[算法学习] 理解DeepSeek-OCR的真实意图
[算法学习] 理解DeepSeek-OCR的真实意图
[算法学习] 理解DeepSeek OCR的真实意图 [算法学习] 理解DeepSeek OCR的真实意图 Modified November 6, 2025 298 347 这个是我拼接+翻译了一条的图片,尺寸惊人 MoE解码器(DeepSeek3B MoE) 3B参数的混合专家模型,激活参数只有570M(6个路由专家+2个共享专家)。用来从高密度信息的视觉Token中解码,重新输出为可读文本,实现文本重建。 解码器的公式为: f dec :R n×d latent →R N×d text ; X ^ =f dec (Z)where n≤N N代表等效的原始文本 Token 数量(或 Ground truth 字符数), n = 输出vision token的数量,(比如 64、100、256、400等), = 每个视觉 token 的维度(通常为 1024 或者与 CLIP/LLM 对齐) 就是解码器 表示重建的文本,即OCR的输出。 实话说,和Encoder相比,这个Decoder没怎么认真做的样子…平平无奇 3. 计算原理 输入图像 → 被 DeepEncoder 处理 这个在代码仓里是一个叫MlpProjector的模块: 先通过 SAM based 窗口注意力提取局部细节(高分辨率,token 多); 再通过 16× 卷积压缩器将 token 数量大幅减少(比如 4096 → 256); 最后送入 CLIP based 全局注意力模块,输出 n 个高质量 vision tokens(用 Z 表示)。 Z 作为 prompt 的一部分,输入到 DeepSeek 3B MoE 解码器 解码器以 next token prediction 方式自回归生成文本; 它“学会”了从 高度压缩的 2D 视觉表示中恢复原始文本内容; 这本质上是一种 跨模态解压缩(decompression):从“图片”还原“文字”。 压缩比与精度的权衡 当 N/n<10 (即 n≥N/10 ),OCR 精度 97% → 近无损压缩; 当 N/n=20 ,精度仍达 60% → 有损但可用,适用于“记忆遗忘”机制,也就是前面提到的低缩放情景。 用Matplotlib Vibe了一个动画,这样看上去比较直观。从效率上讲,10x的压缩预估会增加20倍的推理速度,而KV缓存的使用开销降低10倍。 No access 5c75474daf398d6b893970ec9cf0f899 00:00 直观感受一下10x压缩是个什么概念(不是实际运行,只是做个参考) 4. 对行业的潜在影响 这篇论文的核心贡献 • 证明10×压缩比下97%精度,20×压缩比下60%精度,为LLM长上下文处理提供实证依据。 • 通过窗口注意力+全局注意力+卷积压缩器,实现高分辨率输入下的低激活与少token。 • 支持多语言(近100种)、复杂文档解析(图表/公式/几何)、通用视觉理解; • 单卡A100 40G可日处理20万页文档,为LLM/VLM生成训练数据。 对未来的意义 • LLM长上下文优化:把光学压缩作为历史对话的预处理手段,从而支持更长的上下文。 • 遗忘机制模拟:渐进式降低历史图像分辨率,模拟人类记忆衰减。长上下文机制下,并不一定在任何场景都需要按照同等的记忆精度来处理,进一步节约计算资源。 • 多模态协同:推动视觉与语言模态在文本处理中的深度融合,未来的Gemini 3可能就是vlm进→vlm出(宋老师说的,其实我不懂hhhh)。 对Diffusion架构模型的影响(不一定对) 当前的文生图模型,其文本编码器(如CLIP)对长文本、复杂逻辑的理解能力有限。你给它一段500字的小说,它可能无法抓住所有关键细节和人物关系,生成的图片会丢失很多信息。 文生图 如果把500字的小说文本给到DS OCR,它可以渲染成一张高度浓缩信息的概念图,包含了人物、场景、关键情节的视觉布局。如果将这张“概念图”作为图像提示,配合简短的文字描述,一起输入给文生图Diffusion模型,那它就不再需要从长文本中解析信息,而是直接“看着”这张内容丰富的概念图来生成最终图像。这极大地提升了模型对复杂、长上下文指令的遵循能力,并可能因为输入信息更结构化而减少生成步骤,给生图加速。 文生文 Diffusion LM等文生文模型同样面临速度慢的问题。其去噪过程是在整个文本序列的“潜在空间”中进行的。之所以我们觉得Diffusion LM很快,是因为生成过程是并行的,而不是像Transformer一样串行。而如果介入OCR的方法,去噪过程同时受视觉token和当前文本token的引导。视觉token提供了全局、压缩的“主题”和“记忆”,而文本token负责生成具体的词句。由于视觉token已经高度浓缩,模型可能不再需要在成百上千步中反复“回忆”整个上下文,从而显著减少达到满意结果所需的去噪步数。(类似hyper prompt的角色) 这个是我拼接+翻译了一条的图片,尺寸惊人 MoE解码器(DeepSeek3B MoE) 3B参数的混合专家模型,激活参数只有570M(6个路由专家+2个共享专家)。用来从高密度信息的视觉Token中解码,重新输出为可读文本,实现文本重建。 解码器的公式为: f dec :R n×d latent →R N×d text ; X ^ =f dec (Z)where n≤N N代表等效的原始文本 Token 数量(或 Ground truth 字符数), n = 输出vision token的数量,(比如 64、100、256、400等), = 每个视觉 token 的维度(通常为 1024 或者与 CLIP/LLM 对齐) 就是解码器 表示重建的文本,即OCR的输出。 实话说,和Encoder相比,这个Decoder没怎么认真做的样子…平平无奇 3. 计算原理 输入图像 → 被 DeepEncoder 处理 这个在代码仓里是一个叫MlpProjector的模块: 先通过 SAM based 窗口注意力提取局部细节(高分辨率,token 多); 再通过 16× 卷积压缩器将 token 数量大幅减少(比如 4096 → 256); 最后送入 CLIP based 全局注意力模块,输出 n 个高质量 vision tokens(用 Z 表示)。 这个在代码仓里是一个叫MlpProjector的模块: 先通过 SAM based 窗口注意力提取局部细节(高分辨率,token 多); 再通过 16× 卷积压缩器将 token 数量大幅减少(比如 4096 → 256); 最后送入 CLIP based 全局注意力模块,输出 n 个高质量 vision tokens(用 Z 表示)。 Z 作为 prompt 的一部分,输入到 DeepSeek 3B MoE 解码器 解码器以 next token prediction 方式自回归生成文本; 它“学会”了从 高度压缩的 2D 视觉表示中恢复原始文本内容; 这本质上是一种 跨模态解压缩(decompression):从“图片”还原“文字”。 解码器以 next token prediction 方式自回归生成文本; 它“学会”了从 高度压缩的 2D 视觉表示中恢复原始文本内容; 这本质上是一种 跨模态解压缩(decompression):从“图片”还原“文字”。 压缩比与精度的权衡 当 N/n<10 (即 n≥N/10 ),OCR 精度 97% → 近无损压缩; 当 N/n=20 ,精度仍达 60% → 有损但可用,适用于“记忆遗忘”机制,也就是前面提到的低缩放情景。 当 N/n<10 (即 n≥N/10 ),OCR 精度 97% → 近无损压缩; 当 N/n=20 ,精度仍达 60% → 有损但可用,适用于“记忆遗忘”机制,也就是前面提到的低缩放情景。 用Matplotlib Vibe了一个动画,这样看上去比较直观。从效率上讲,10x的压缩预估会增加20倍的推理速度,而KV缓存的使用开销降低10倍。 No access 5c75474daf398d6b893970ec9cf0f899 00:00 No access 5c75474daf398d6b893970ec9cf0f899 00:00 直观感受一下10x压缩是个什么概念(不是实际运行,只是做个参考) 4. 对行业的潜在影响 这篇论文的核心贡献 • 证明10×压缩比下97%精度,20×压缩比下60%精度,为LLM长上下文处理提供实证依据。 • 通过窗口注意力+全局注意力+卷积压缩器,实现高分辨率输入下的低激活与少token。 • 支持多语言(近100种)、复杂文档解析(图表/公式/几何)、通用视觉理解; • 单卡A100 40G可日处理20万页文档,为LLM/VLM生成训练数据。 对未来的意义 • LLM长上下文优化:把光学压缩作为历史对话的预处理手段,从而支持更长的上下文。 • 遗忘机制模拟:渐进式降低历史图像分辨率,模拟人类记忆衰减。长上下文机制下,并不一定在任何场景都需要按照同等的记忆精度来处理,进一步节约计算资源。 • 多模态协同:推动视觉与语言模态在文本处理中的深度融合,未来的Gemini 3可能就是vlm进→vlm出(宋老师说的,其实我不懂hhhh)。 对Diffusion架构模型的影响(不一定对) 当前的文生图模型,其文本编码器(如CLIP)对长文本、复杂逻辑的理解能力有限。你给它一段500字的小说,它可能无法抓住所有关键细节和人物关系,生成的图片会丢失很多信息。 文生图 如果把500字的小说文本给到DS OCR,它可以渲染成一张高度浓缩信息的概念图,包含了人物、场景、关键情节的视觉布局。如果将这张“概念图”作为图像提示,配合简短的文字描述,一起输入给文生图Diffusion模型,那它就不再需要从长文本中解析信息,而是直接“看着”这张内容丰富的概念图来生成最终图像。这极大地提升了模型对复杂、长上下文指令的遵循能力,并可能因为输入信息更结构化而减少生成步骤,给生图加速。 文生文 Diffusion LM等文生文模型同样面临速度慢的问题。其去噪过程是在整个文本序列的“潜在空间”中进行的。之所以我们觉得Diffusion LM很快,是因为生成过程是并行的,而不是像Transformer一样串行。而如果介入OCR的方法,去噪过程同时受视觉token和当前文本token的引导。视觉token提供了全局、压缩的“主题”和“记忆”,而文本token负责生成具体的词句。由于视觉token已经高度浓缩,模型可能不再需要在成百上千步中反复“回忆”整个上下文,从而显著减少达到满意结果所需的去噪步数。(类似hyper prompt的角色) 👥 今天几乎所有的自媒体都在说Deepseek OCR...忍不住还是去看了下论文。不吹不黑的角度,确实是个高效的解决方案,这个概念也不是很新了,但是强在效率上,DS通过自己的Encoder设计,让视觉token的承载能力比过往的OCR要高很多,确实是工程卷王。 今天几乎所有的自媒体都在说Deepseek OCR...忍不住还是去看了下论文。不吹不黑的角度,确实是个高效的解决方案,这个概念也不是很新了,但是强在效率上,DS通过自己的Encoder设计,让视觉token的承载能力比过往的OCR要高很多,确实是工程卷王。 http://github.com/deepseek ai/DeepSeek OCR 1. 理解Deepseek OCR Deepseek OCR看名字,确实是OCR,Optical Character Recognition 光学字符识别,但并不是用来做多模态的,而是通过光学压缩(Optical Compression)的技术,高效处理上下文,尤其是长上下文,为解决LLM处理长文本时遇到的计算瓶颈提供了全新的解决思路(虽然网传Google也是走这个路子的,但是人家把这个开源了)。 传统LLM long context的挑战 LLM处理长文本时面临计算复杂度随序列长度二次增长的问题,导致内存和算力消耗巨大。文本token是一维的数据,在处理文本token时,序列越长,计算的复杂度越高,整体呈2次增长的趋势。(当然这个针对transformer,diffusion不在讨论范围内,但diffusion的文生文仍然面临很大的瓶颈) 光学压缩(Optical Compression)的灵感 单张图像可包含大量文本信息(比如文档页面,包含文字,图片,表格,图表等,还可以图文混排),但所需的视觉token数量远少于等效文本。因为视觉token是二维token,承载的信息密度要高于文本token。 2. Deepseek OCR的核心技术 这个模型很小,单卡就可以跑,主要包含了两个部分: DeepEncoder(视觉编码器) 用来支持高分辨率输入、低激活内存、少视觉token、多分辨率适配。 DeepEncoder的创新架构包含了几个方面: A. 双路径串联 局部路径:SAM base(80M)通过窗口注意力处理高分辨率图像。在这一步,模型的目标是不丢失任何局部细节。SAM base的窗口注意力机制非常适合这个任务,它只在局部区域内计算,因此计算效率高,激活内存小。它能精确识别出边缘、纹理、小字符、笔画等所有底层视觉信息。 16倍压缩器:组件是一个2层的卷积模块,将采集到的初级token进行融合和降采样。这是整个压缩过程的关键。它不是简单地丢弃信息,而是学习如何将相邻的、相关的局部信息聚合成一个更高级、更抽象的特征。每个卷积层的核大小为3,步长为2,填充为1。简单来讲就是每次卷积的操作,特征图的宽和高就会减半,一共执行2次,这样空间维度的尺寸就减少了4倍,但每个token包含的信息密度增加了4倍。假设有4096个初级token,那么就会产出 4096 /16 = 256个高维视觉token。 全局路径:CLIP large(300M)通过密集全局注意力提取语义知识。 B. 多分辨率支持 原生模式(Tiny/Small/Base/Large):分辨率512×512–1280×1280,输出64–400 token。 模式 图像分辨率 视觉Token数 适用场景 Tiny 512×512 64 极简文本、短段落、幻灯片标题 Small 640×640 100 通用文档、书籍、报告(最佳性价比) Base 1024×1024 256 复杂布局、多栏、包含表格的文档 Large 1280×1280 400 高密度学术论文、工程图纸 模式 模式 图像分辨率 图像分辨率 视觉Token数 视觉Token数 适用场景 适用场景 Tiny Tiny 512×512 512×512 64 64 极简文本、短段落、幻灯片标题 极简文本、短段落、幻灯片标题 Small Small 640×640 640×640 100 100 通用文档、书籍、报告(最佳性价比) 通用文档、书籍、报告(最佳性价比) Base Base 1024×1024 1024×1024 256 256 复杂布局、多栏、包含表格的文档 复杂布局、多栏、包含表格的文档 Large Large 1280×1280 1280×1280 400 400 高密度学术论文、工程图纸 高密度学术论文、工程图纸 动态模式(Gundam):拼接局部视图(640×640)与全局视图(1024×1024),支持超高清文档(比如图文混排的报纸)。 这个我联想到之前有个很有意思的网站https://calculatingempires.net/,用图片+文字记录人类1500年技术的发展史。然后我干了件很蠢的事情,想把这个网站扒下来,翻译成中文做成墙纸的,但是因为精度太高,最后扒了4万多张512 512的图片,PS都跑炸了,最后印刷公司说没办法打... 这个网站设计的很好的地方就是,它把这么多信息的东西设计成不同缩放比例下,做成了不同的图片拆分方式,保留了不同尺寸下有效信息,是不是和Deepseek OCR的思路挺像的?