Eagle2是NVIDIA推出的高性能视觉语言模型家族,专注于通过数据策略和训练方案提升开源视觉语言模型的性能。Eagle2-2B是该系列中的轻量级模型,在保持强劲性能的同时实现卓越效率和速度。
下载量 667
发布时间 : 1/10/2025
模型介绍
内容详情
替代品
模型简介
Eagle2-2B是一个融合视觉和语言能力的多模态模型,能够处理图像、文本和视频输入,执行多种视觉语言任务。
模型特点
高效轻量
在2B参数规模下实现卓越的性能和速度平衡
多模态处理
支持图像、文本和视频输入的综合处理能力
长上下文支持
支持长达16K tokens的上下文长度
高性能基准
在多个视觉语言基准测试中表现优异
模型能力
图像理解与描述
视觉问答
文档理解
图表分析
视频内容理解
多模态推理
使用案例
文档处理
文档问答
从扫描文档或PDF中提取信息并回答问题
在DocVQA测试集上达到88.0分
视觉问答
图像内容问答
回答关于图像内容的复杂问题
在TextVQA验证集上达到79.1分
教育辅助
图表理解
解释和分析各种图表数据
在ChartQA测试集上达到82.0分
license: cc-by-nc-4.0 pipeline_tag: 图像文本到文本 library_name: transformers base_model:
- google/paligemma-3b-mix-448
- Qwen/Qwen2.5-1.5B-Instruct
- google/siglip-so400m-patch14-384 base_model_relation: 融合模型 language:
- 多语言 tags:
- eagle
- 视觉语言模型
Eagle-2
[📂 GitHub] [📜 Eagle2技术报告] [🤗 HF演示]
最新动态:
- 我们将模型架构升级为
eagle_2_5_vl
以支持generate
生成功能
简介
我们非常兴奋地发布最新Eagle2系列视觉语言模型。开源视觉语言模型(VLMs)在缩小与专有模型差距方面取得了重大进展,但关键的数据策略和实施细节往往缺失,限制了可复现性和创新。本项目从数据中心的视角聚焦VLM后训练阶段,分享从零构建有效数据策略的洞见。通过将这些策略与稳健的训练方案和模型设计相结合,我们推出了Eagle2——一个高性能VLM家族。这项工作旨在赋能开源社区,通过透明流程开发具有竞争力的VLMs。
本代码库开源了Eagle2-2B——一个在保持强劲性能的同时,实现卓越效率和速度的轻量级模型。
模型库
我们提供以下模型:
模型名称 | 大语言模型 | 视觉模块 | 最大长度 | HF链接 |
---|---|---|---|---|
Eagle2-1B | Qwen2.5-0.5B-Instruct | Siglip | 16K | 🤗链接 |
Eagle2-2B | Qwen2.5-1.5B-Instruct | Siglip | 16K | 🤗链接 |
Eagle2-9B | Qwen2.5-7B-Instruct | Siglip+ConvNext | 16K | 🤗链接 |
基准测试结果
基准测试 | InternVL2-2B | InternVL2.5-2B | InternVL2-4B | Qwen2-VL-2B | Eagle2-2B |
---|---|---|---|---|---|
DocVQA测试集 | 86.9 | 88.7 | 89.2 | 90.1 | 88.0 |
ChartQA测试集 | 76.2 | 79.2 | 81.5 | 73.0 | 82.0 |
InfoVQA测试集 | 58.9 | 60.9 | 67.0 | 65.5 | 65.8 |
TextVQA验证集 | 73.4 | 74.3 | 74.4 | 79.7 | 79.1 |
OCRBench | 784 | 804 | 788 | 809 | 818 |
MME总分 | 1876.8 | 2138.2 | 2059.8 | 1872.0 | 2109.8 |
RealWorldQA | 57.3 | 60.1 | 60.7 | 62.6 | 63.1 |
AI2D测试集 | 74.1 | 74.9 | 74.7 | 78.9 | 79.3 |
MMMU验证集 | 36.3 | 43.6 | 47.9 | 41.1 | 43.1 |
MMVetGPT-4-Turbo | 39.5 | 60.8 | 51.0 | 49.5 | 53.8 |
HallBench平均分 | 37.9 | 42.6 | 41.9 | 41.7 | 45.8 |
MathVista测试精简版 | 46.3 | 51.3 | 58.6 | 43.0 | 54.7 |
MMstar | 50.1 | 53.7 | 54.3 | 48.0 | 56.4 |
快速开始
我们提供推理脚本帮助您快速使用模型。支持多种输入类型:
- 纯文本输入
- 单张图片输入
- 多张图片输入
- 视频输入
安装依赖
pip install transformers
pip install flash-attn
单张图片
from PIL import Image
import requests
from transformers import AutoProcessor, AutoModel
import torch
model = AutoModel.from_pretrained("nvidia/Eagle2-1B",trust_remote_code=True, torch_dtype=torch.bfloat16)
processor = AutoProcessor.from_pretrained("nvidia/Eagle2-1B", trust_remote_code=True, use_fast=True)
processor.tokenizer.padding_side = "left"
messages = [
{
"role": "user",
"content": [
{
"type": "image",
"image": "https://www.ilankelman.org/stopsigns/australia.jpg",
},
{"type": "text", "text": "描述这张图片。"},
],
}
]
text_list = [processor.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)]
image_inputs, video_inputs = processor.process_vision_info(messages)
inputs = processor(text = text_list, images=image_inputs, videos=video_inputs, return_tensors="pt", padding=True)
inputs = inputs.to("cuda")
model = model.to("cuda")
generated_ids = model.generate(**inputs, max_new_tokens=1024)
output_text = processor.batch_decode(
generated_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False
)
print(output_text)
流式生成
from PIL import Image
import requests
from transformers import AutoProcessor, AutoModel, AutoTokenizer
import torch
from transformers import TextIteratorStreamer
import threading
model = AutoModel.from_pretrained("nvidia/Eagle2-1B",trust_remote_code=True, attn_implementation='flash_attention_2', torch_dtype=torch.bfloat16)
tokenizer = AutoTokenizer.from_pretrained("nvidia/Eagle2-1B", trust_remote_code=True, use_fast=True)
processor = AutoProcessor.from_pretrained("nvidia/Eagle2-1B", trust_remote_code=True, use_fast=True)
processor.tokenizer.padding_side = "left"
messages = [
{
"role": "user",
"content": [
{
"type": "image",
"image": "https://www.ilankelman.org/stopsigns/australia.jpg",
},
{"type": "text", "text": "描述这张图片。"},
],
}
]
text_list = [processor.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)]
image_inputs, video_inputs = processor.process_vision_info(messages)
inputs = processor(text = text_list, images=image_inputs, videos=video_inputs, return_tensors="pt", padding=True)
inputs = inputs.to("cuda")
model = model.to("cuda")
streamer = TextIteratorStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
generation_kwargs = dict(
**inputs,
streamer=streamer,
max_new_tokens=1024,
do_sample=True,
top_p=0.95,
temperature=0.8
)
thread = threading.Thread(target=model.generate, kwargs=generation_kwargs)
thread.start()
for new_text in streamer:
print(new_text, end="", flush=True)
多张图片
from PIL import Image
import requests
from transformers import AutoProcessor, AutoModel
import torch
model = AutoModel.from_pretrained("nvidia/Eagle2-1B",trust_remote_code=True, torch_dtype=torch.bfloat16)
processor = AutoProcessor.from_pretrained("nvidia/Eagle2-1B", trust_remote_code=True, use_fast=True)
processor.tokenizer.padding_side = "left"
messages = [
{
"role": "user",
"content": [
{
"type": "image",
"image": "https://www.ilankelman.org/stopsigns/australia.jpg",
},
{
"type": "image",
"image": "https://www.nvidia.com/content/dam/en-zz/Solutions/about-nvidia/logo-and-brand/01-nvidia-logo-vert-500x200-2c50-d@2x.png",
},
{"type": "text", "text": "分别描述这两张图片。"},
],
}
]
text_list = [processor.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)]
image_inputs, video_inputs = processor.process_vision_info(messages)
inputs = processor(text = text_list, images=image_inputs, videos=video_inputs, return_tensors="pt", padding=True)
inputs = inputs.to("cuda")
model = model.to("cuda")
generated_ids = model.generate(**inputs, max_new_tokens=1024)
output_text = processor.batch_decode(
generated_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False
)
print(output_text)
单个视频
from PIL import Image
import requests
from transformers import AutoProcessor, AutoModel
import torch
model = AutoModel.from_pretrained("nvidia/Eagle2-1B",trust_remote_code=True, torch_dtype=torch.bfloat16)
processor = AutoProcessor.from_pretrained("nvidia/Eagle2-1B", trust_remote_code=True, use_fast=True)
processor.tokenizer.padding_side = "left"
messages = [
{
"role": "user",
"content": [
{
"type": "video",
"video": "../Eagle2-8B/space_woaudio.mp4",
},
{"type": "text", "text": "描述这个视频。"},
],
}
]
text_list = [processor.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)]
image_inputs, video_inputs, video_kwargs = processor.process_vision_info(messages, return_video_kwargs=True)
inputs = processor(text = text_list, images=image_inputs, videos=video_inputs, return_tensors="pt", padding=True, videos_kwargs=video_kwargs)
inputs = inputs.to("cuda")
model = model.to("cuda")
generated_ids = model.generate(**inputs, max_new_tokens=1024)
output_text = processor.batch_decode(
generated_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False
)
print(output_text)
多个视频
from PIL import Image
import requests
from transformers import AutoProcessor, AutoModel
import torch
model = AutoModel.from_pretrained("nvidia/Eagle2-1B",trust_remote_code=True, torch_dtype=torch.bfloat16)
processor = AutoProcessor.from_pretrained("nvidia/Eagle2-1B", trust_remote_code=True, use_fast=True)
processor.tokenizer.padding_side = "left"
messages = [
{
"role": "user",
"content": [
{
"type": "video",
"video": "../Eagle2-8B/space_woaudio.mp4",
"nframes": 10,
},
{
"type": "video",
"video": "../Eagle2-8B/video_ocr.mp4",
"nframes": 10,
},
{"type": "text", "text": "分别描述这两个视频。"},
],
}
]
text_list = [processor.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)]
image_inputs, video_inputs, video_kwargs = processor.process_vision_info(messages, return_video_kwargs=True)
inputs = processor(text = text_list, images=image_inputs, videos=video_inputs, return_tensors
Clip Vit Large Patch14 336
基于Vision Transformer架构的大规模视觉语言预训练模型,支持图像与文本的跨模态理解
文本生成图像
Transformers

C
openai
5.9M
241
Fashion Clip
MIT
FashionCLIP是基于CLIP开发的视觉语言模型,专门针对时尚领域进行微调,能够生成通用产品表征。
文本生成图像
Transformers

英语
F
patrickjohncyh
3.8M
222
Gemma 3 1b It
Gemma 3是Google推出的轻量级先进开放模型系列,基于与Gemini模型相同的研究和技术构建。
文本生成图像
Transformers

G
google
2.1M
347
Blip Vqa Base
Bsd-3-clause
BLIP是一个统一的视觉语言预训练框架,擅长视觉问答任务,通过语言-图像联合训练实现多模态理解与生成能力
文本生成图像
Transformers

B
Salesforce
1.9M
154
CLIP ViT H 14 Laion2b S32b B79k
MIT
基于OpenCLIP框架在LAION-2B英文数据集上训练的视觉-语言模型,支持零样本图像分类和跨模态检索任务
文本生成图像
Safetensors
C
laion
1.8M
368
CLIP ViT B 32 Laion2b S34b B79k
MIT
基于OpenCLIP框架在LAION-2B英语子集上训练的视觉-语言模型,支持零样本图像分类和跨模态检索
文本生成图像
Safetensors
C
laion
1.1M
112
Pickscore V1
PickScore v1 是一个针对文本生成图像的评分函数,可用于预测人类偏好、评估模型性能和图像排序等任务。
文本生成图像
Transformers

P
yuvalkirstain
1.1M
44
Owlv2 Base Patch16 Ensemble
Apache-2.0
OWLv2是一种零样本文本条件目标检测模型,可通过文本查询在图像中定位对象。
文本生成图像
Transformers

O
google
932.80k
99
Llama 3.2 11B Vision Instruct
Llama 3.2 是 Meta 发布的多语言多模态大型语言模型,支持图像文本到文本的转换任务,具备强大的跨模态理解能力。
文本生成图像
Transformers

支持多种语言
L
meta-llama
784.19k
1,424
Owlvit Base Patch32
Apache-2.0
OWL-ViT是一个零样本文本条件目标检测模型,可以通过文本查询搜索图像中的对象,无需特定类别的训练数据。
文本生成图像
Transformers

O
google
764.95k
129
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers

支持多种语言
L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers

英语
C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统
中文
R
uer
2,694
98
AIbase是一个专注于MCP服务的平台,为AI开发者提供高质量的模型上下文协议服务,助力AI应用开发。
简体中文