一图胜千言:DeepSeek 发布开源视觉语言模型 DeepSeek OCR

2 个月前 语言模型 467

DeepSeek OCR 介绍

DeepSeek OCR 是由中国 AI 公司 DeepSeek AI 于 2025 年 10 月 20 日发布的开源视觉语言模型(VLM),旨在探索“光学上下文压缩”(Contexts Optical Compression)的创新范式。它不是传统的 OCR(光学字符识别)工具,而是将视觉编码视为文本信息的压缩层,帮助大型语言模型(LLM)更高效地处理长文档、图像和多模态数据。 该模型的灵感来源于“一图胜千言”的理念,通过将文本转化为视觉表示,实现显著的令牌(token)减少,同时保持高准确性。

核心创新与架构

DeepSeek OCR 的核心思想是将文本作为图像处理,从而实现高效压缩:

  • 视觉-文本压缩:传统 LLM 处理 1000 字文档可能需要数千个文本令牌,而 DeepSeek OCR 通过视觉编码器将图像压缩为更少的视觉令牌(可减少 7-20 倍),然后解码回文本。测试显示,它能保留 97% 的原始信息。
  • 双阶段架构
    • DeepEncoder:视觉编码器,负责图像处理,包括文档、图表、化学分子和简单几何图形。它基于先进的视觉模型(如 Vary、GOT-OCR2.0 和 PaddleOCR 的灵感),高效提取特征。
    • DeepSeek-3B-MoE:解码器,使用混合专家模型(MoE,激活参数仅 5.7 亿),生成文本输出。整个模型大小约为 6.6 GB,运行速度快、内存占用低。
  • 多功能扩展:除了基本 OCR,它支持解析图表(生成 Markdown 表格和图表)、化学公式、几何图形,甚至自然图像。深解析模式(Deep Parsing Mode)特别适用于金融图表等结构化数据。

该模型在 OmniDocBench 等基准测试中达到了端到端模型的 SOTA(最先进)性能,优于 MinerU 2.0 和 GOT-OCR2.0 等更重的模型,同时视觉令牌使用最少。 它还支持 vLLM(虚拟 LLM 推理引擎),便于批量处理。

优势与应用场景

  • 效率提升:减少计算成本,适合处理长上下文(如聊天历史或长文档)。例如,将旧对话“低分辨率”存储为图像,模拟人类记忆衰减机制。
  • 实用性:在 OCR 之外,它能处理复杂视觉任务,如从图像中提取结构化数据,而非简单文本复制。
  • 开源与易用:模型托管在 Hugging Face(deepseek-ai/DeepSeek-OCR),支持 PyTorch 和 CUDA。GitHub 仓库提供完整代码和示例。
  • 局限性:作为实验性模型,对简单矢量图形解析仍有挑战;输出有时可能出现幻觉(如中文符号混入英文响应)。

如何使用(快速入门)

  1. 安装依赖:克隆 GitHub 仓库(git clone https://github.com/deepseek-ai/DeepSeek-OCR.git),安装 Transformers 和 vLLM。
  2. Python 示例(使用 Hugging Face):

    from transformers import AutoModel, AutoTokenizer
    from PIL import Image
    import torch
    
    model_name = 'deepseek-ai/DeepSeek-OCR'
    tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
    model = AutoModel.from_pretrained(model_name, trust_remote_code=True, torch_dtype=torch.bfloat16).cuda().eval()
    
    # 加载图像
    image = Image.open("your_image.png").convert("RGB")
    
    # 提示(prompt)
    prompt = "<image>\nFree OCR."  # 或其他任务提示,如 "<image>\nParse chart."
    
    inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
    inputs["image"] = image  # 添加图像
    
    with torch.no_grad():
       outputs = model.generate(**inputs, max_new_tokens=512)
    print(tokenizer.decode(outputs[0], skip_special_tokens=True))

    这将从图像中提取并输出文本。

DeepSeek OCR 代表了 OCR 从“文本提取”向“多模态压缩”转型的趋势,对于 AI 研究者和开发者来说,是一个值得关注的开源工具。

相关资讯