综合介绍
DeepSeek-VL2 是一系列高级的 Mixture-of-Experts (MoE) 视觉语言模型,显著提升了其前身 DeepSeek-VL 的性能。该模型在视觉问答、光学字符识别、文档/表格/图表理解和视觉定位等任务中表现出色。DeepSeek-VL2 系列包括三种变体:DeepSeek-VL2-Tiny、DeepSeek-VL2-Small 和 DeepSeek-VL2,分别具有 1.0B、2.8B 和 4.5B 个激活参数。该模型在参数数量相似或更少的情况下,达到了与现有开源密集和 MoE 模型相媲美或更优的性能。
演示:https://huggingface.co/spaces/deepseek-ai/deepseek-vl2-small
功能列表
- 视觉问答:支持复杂的视觉问答任务,提供准确的答案。
- 光学字符识别 (OCR):高效识别图像中的文本内容。
- 文档理解:解析和理解复杂的文档结构和内容。
- 表格理解:识别和处理表格数据,提取有用信息。
- 图表理解:分析和解释图表中的数据和趋势。
- 视觉定位:在图像中准确定位目标对象。
- 多变体支持:提供 Tiny、Small 和标准版三种模型,满足不同需求。
- 高效性能:在保持高性能的同时,减少了激活参数数量。
使用帮助
安装流程
- 确保 Python 版本 >= 3.8。
- 克隆 DeepSeek-VL2 仓库:
git clone https://github.com/deepseek-ai/DeepSeek-VL2.git
- 进入项目目录并安装必要依赖:
cd DeepSeek-VL2
pip install -e .
使用示例
简单推理示例
以下是使用 DeepSeek-VL2 进行简单推理的示例代码:
import torch
from transformers import AutoModelForCausalLM
from deepseek_vl2.models import DeepseekVLV2Processor, DeepseekVLV2ForCausalLM
from deepseek_vl2.utils.io import load_pil_images
# 指定模型路径
model_path = "deepseek-ai/deepseek-vl2-tiny"
vl_chat_processor = DeepseekVLV2Processor.from_pretrained(model_path)
vl_model = DeepseekVLV2ForCausalLM.from_pretrained(model_path)
# 加载图像
images = load_pil_images(["path_to_image.jpg"])
# 推理
inputs = vl_chat_processor(images=images, return_tensors="pt")
outputs = vl_model.generate(**inputs)
print(outputs)
详细功能操作流程
- 视觉问答:
- 加载模型和处理器。
- 输入图像和问题,模型将返回答案。
- 光学字符识别 (OCR):
- 使用
DeepseekVLV2Processor
加载图像。 - 调用模型进行推理,提取图像中的文本。
- 使用
- 文档理解:
- 加载包含文档图像的输入。
- 模型解析文档结构,返回解析结果。
- 表格理解:
- 输入包含表格的图像。
- 模型识别表格结构和内容,提取关键信息。
- 图表理解:
- 加载图表图像。
- 模型分析图表数据,提供解释和趋势分析。
- 视觉定位:
- 输入目标对象的描述和图像。
- 模型在图像中定位目标对象,返回位置坐标。
通过以上步骤,用户可以充分利用 DeepSeek-VL2 的强大功能,完成各种复杂的视觉语言任务。