/ Модель

Характеристики

Лицензия
Своя лицензия
Базовая модель
Qwen2.5-7B-Instruct
Библиотека
transformers
Опубликована
12 апр 2025

Eagle2.5-8B

Изображение и текст → текст13 профессий

Мультимодальная модель NVIDIA для анализа изображений высокого разрешения, документов и длинных видео до 512 кадров.

17 525скачиваний за 30 дней50лайковвеса обновлены29 ноя 2025

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Eagle 2.5-8B — мультимодальная модель семейства Eagle 2.5 от NVIDIA для анализа изображений, видео и текста. В основе архитектуры — визуальный энкодер SigLIP2-So400m-Patch16-512 и языковая модель Qwen2.5-7B-Instruct, объединённые в мультимодальную архитектуру на базе LLaVA с разбиением изображений на фрагменты. Модель поддерживает изображения высокого разрешения, многостраничные документы, длинный текст и видео до 512 кадров; контекст при обучении постепенно расширяли с 32K до 128K токенов.

Модель предназначена для ответов на вопросы по видео и изображениям, суммаризации видео, локализации событий и понимания документов. В README сообщается о результатах на тестах понимания длинных видео и изображений, включая 72,4% на Video-MME при подаче 512 кадров. Указанная в метаданных лицензия — other; конкретные условия следует сверять с карточкой модели.

Сценарии применения

  • ответы на вопросы по длинным видео
  • суммаризация видео продолжительностью до нескольких часов
  • поиск и локализация событий в видеоклипах
  • ответы на вопросы по изображениям высокого разрешения
  • извлечение и анализ информации из многостраничных документов

Ограничения

README не приводит конкретных ограничений качества. Для работы с длинными видео и изображениями высокого разрешения требуется учитывать значительные вычислительные ресурсы; условия лицензии обозначены как other.

Для каких профессий подходит13

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Eagle 2.5

[📂Homepage] [📂GitHub] [📜Tech Report] [🤗HF Demo]

Introduction

Eagle 2.5 is a family of frontier vision-language models (VLMs) designed for long-context multimodal learning. While most existing VLMs focus on short-context tasks, Eagle 2.5 addresses the challenges of long video comprehension and high-resolution image understanding, providing a generalist framework for both. Eagle 2.5 supports up to 512 video frames and is trained jointly on image + video data.

We also introduce Eagle-Video-110K, a novel dataset with both story-level and clip-level annotations, specifically curated for long video understanding. The dataset contains over 110K annotated samples, including QA, localization, and summarization. The videos range from a few minutes to 3 hours - pushing the limits of long-form visual reasoning.

Eagle 2.5 demonstrates substantial improvements on long-context multimodal benchmarks, offering a robust solution to the limitations of existing VLMs. Notably, Eagle 2.5-8B achieves 72.4% on Video-MME with 512 input frames, matching the results of top-tier commercial models such as GPT-4o and large-scale open-source models like Qwen2.5-VL-72B and InternVL2.5-78B, despite having significantly fewer parameters.

🚀Strong Results Across The Board:

  • SOTA on 6 out of 10 long video benchmarks
  • Outperforms GPT-4o (0806) on 3/5 video tasks
  • Outperforms Gemini 1.5 Pro on 4/6 video tasks
  • Matches or outperforms Qwen2.5-VL-72B on multiple key datasets
  • 72.4% on Video-MME with 512 input frames
  • Strong image understanding with consistent improvement over Eagle 2, matching Qwen2.5-VL.

🎯Key Innovations

  • Information-First Sampling:
    • Image Area Preservation (IAP): Optimizes image tiling to retain most of the original image area and aspect ratio, preserving fine-grained details.
    • Automatic Degrade Sampling (ADS): Dynamically balances visual and textual input, ensuring complete text retention while maximizing visual content within context length constraints.
  • Progressive Mixed Post-Training:
    • Gradually increases context length during training, enhancing the model's ability to process varying input sizes and improving information density over static sampling.
  • Diversity-Driven Data Recipe:
    • Combines open-source data (human-annotated and synthetic) with the self-curated Eagle-Video-110K dataset, collected via a diversity-driven strategy and annotated with both story-level and clip-level QA pairs.

⚡Efficiency & Framework Optimization

  • GPU Memory Optimization:
    • Integrate Triton-based fused operators replacing PyTorch’s MLP, RMSNorm, and RoPE implementations.
    • Reduced GPU memory with fused linear layers + cross-entropy loss (removes intermediate logit storage) and CPU-offloading of hidden states.
  • Distributed Context Parallelism:
    • Adopts a two-layer communication group based on Ulysses and Ring/Context Parallelism building on USP.
    • Implements ZigZag Llama3-style Context Parallelism with all-gather KV to reduce communication latency.
  • Video Decoding Acceleration:
    • Optimized sparse video frame sampling with rapid video metadata parsing, improved long video decoding and reduced memory consumption.
  • Inference Acceleration:
    • Supports vLLM deployment with reduced memory and accelerated inference.

Model Details

  • Model Type: Long-context vision-language model
  • Architecture:
    • Vision encoder: Siglip2-So400m-Patch16-512
    • Language model: Qwen2.5-7B-Instruct
    • Multimodal base architecture: LLaVA with tiling-based vision input
  • Supported Inputs:
    • Long video sequences (up to 512 frames)
    • High-resolution images (up to 4K HD input size)
    • Multi-page documents
    • Long text
  • Training Strategy:
    • Progressive mixed post-training, expanding from 32K to 128K context length
    • Information-first sampling for optimal visual and textual information retention
  • Training Data:
    • Open-source video and document datasets
    • Eagle-Video-110K (110K long videos with dual-level annotation)

Released Models

ModelDateDownload LinkNotes
Eagle2.5-8B2025.04.16HF linkLong video (512 frames), high-res support

Video Benchmarks

BenchmarkGPT-4oGemini-1.5 ProInternVL2.5-8BQwen2.5-VL-8BEagle2.5-8B
MVBenchtest--72.069.674.8
Perception_testval---70.582.0
EgoSchemafullset-72.2-65.072.2
MMB-Video1.631.301.681.791.94
MLVUval--68.970.277.6
LVBenchval66.764.060.056.066.4
Video-MMEw/o subtitle71.975.064.265.172.4
Video-MMEw subtitle77.281.366.971.675.7
CG-BenchClue58.650.9-44.555.8
CG-BenchLong44.937.8-35.546.6
CG-BenchmIoU5.733.85-2.4813.4
HourVideoDev-37.2--44.5
HourVideoTest-37.4--41.8
Charade-STAmIoU35.7--43.665.9
HD-EPIC-37.6--42.9
HRVideoBench----68.5
EgoPlanval----45.3

Embodied Benchmarks

BenchmarkGPT-4oGemini-1.5 ProInternVL2.5-8BQwen2.5-VL-8BEagle2.5-8B
OpenEQA----63.5
ERQA47.041.8--38.3
EgoPlanval----45.3

Image Benchmarks

BenchmarkGPT-4oGemini-1.5 ProInternVL2.5-8BQwen2.5-VL-8BEagle2.5-8B
DocVQAtest92.893.193.095.794.1
ChartQAtest85.787.284.887.387.5
InfoVQAtest79.281.077.682.680.4
TextVQAval77.478.879.184.983.7
OCRBenchtest736754822864869
MMstartest64.759.162.863.966.2
RWQAtest75.467.570.168.576.7
AI2Dtest84.679.184.583.984.5
MMMUval69.162.256.058.655.8
MMBench_V11test83.174.683.282.681.7
MMVetGPT-4-Turbo69.164.062.867.162.9
HallBenchavg55.045.650.152.954.7
MathVistatestmini63.863.964.468.267.8
Avg Score74.971.773.175.675.6

All numbers are directly extracted from Table 2 and Table 3 of the Eagle 2.5 Tech Report.

Eagle 2.5-8B matches or surpasses the performance of much larger models on long-context video and image benchmarks.

Quick Start

pip install transformers==4.55.4

single image

from PIL import Image
import requests
from transformers import AutoProcessor, AutoModel
import torch
model = AutoModel.from_pretrained("nvidia/Eagle2.5-8B",trust_remote_code=True, torch_dtype=torch.bfloat16)
processor = AutoProcessor.from_pretrained("nvidia/Eagle2.5-8B", 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": "Describe this image."},
        ],
    }
]

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)

stream generation

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.5-8B",trust_remote_code=True, attn_implementation='flash_attention_2', torch_dtype=torch.bfloat16)
tokenizer = AutoTokenizer.from_pretrained("nvidia/Eagle2.5-8B", trust_remote_code=True, use_fast=True)
processor = AutoProcessor.from_pretrained("nvidia/Eagle2.5-8B", 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": "Describe this image."},
        ],
    }
]

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)

multiple-images

from PIL import Image
import requests
from transformers import AutoProcessor, AutoModel
import torch
model = AutoModel.from_pretrained("nvidia/Eagle2.5-8B",trust_remote_code=True, torch_dtype=torch.bfloat16)
processor = AutoProcessor.from_pretrained("nvidia/Eagle2.5-8B", 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": "Describe these two images."},
        ],
    }
]

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)

single video


from PIL import Image
import requests
from transformers import AutoProcessor, AutoModel
import torch
model = AutoModel.from_pretrained("nvidia/Eagle2.5-8B",trust_remote_code=True, torch_dtype=torch.bfloat16)
processor = AutoProcessor.from_pretrained("nvidia/Eagle2.5-8B", 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": "Describe this video."},
        ],
    }
]

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)

multieple videos

from PIL import Image
import requests
from transformers import AutoProcessor, AutoModel
import torch
model = AutoModel.from_pretrained("nvidia/Eagle2.5-8B",trust_remote_code=True, torch_dtype=torch.bfloat16)
processor = AutoProcessor.from_pretrained("nvidia/Eagle2.5-8B", 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": "Describe these two videos respectively."},
        ],
    }
]

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)

batch inference

from PIL import Image
import requests
from transformers import AutoProcessor, AutoModel
import torch
model = AutoModel.from_pretrained("nvidia/Eagle2.5-8B",trust_remote_code=True, torch_dtype=torch.bfloat16)
processor = AutoProcessor.from_pretrained("nvidia/Eagle2.5-8B", trust_remote_code=True, use_fast=True)
processor.tokenizer.padding_side = "left"

messages1 = [
    {
        "role": "user",
        "content": [
            {
                "type": "image",
                "image": "https://www.ilankelman.org/stopsigns/australia.jpg",
            },
            {"type": "text", "text": "Describe this image."},
        ],
    }
]

messages2 = [
    {
        "role": "user",
        "content": [
            {
                "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": "Describe this image."},
        ],
    }
]

text_list = [processor.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True
) for messages in [messages1, messages2]]
image_inputs, video_inputs = processor.process_vision_info([messages1, messages2])
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)

Citation

If you use Eagle 2.5 in your research, please cite:

@article{chen2025eagle2.5,
    title={Eagle 2.5: Boosting Long-Context Post-Training for Frontier Vision-Language Models},
    author={Chen, Guo and Li, Zhiqi and Wang, Shihao and Jiang, Jindong and Liu, Yicheng and Lu, Lidong and Huang, De-An and Byeon, Wonmin and Le, Matthieu and Ehrlich, Max and Lu, Tong and Wang, Limin and Catanzaro, Bryan and Kautz, Jan and Tao, Andrew and Yu, Zhiding and Liu, Guilin},
    journal={arXiv:2504.15271},
year={2025}
}

Acknowledgements

  • We thank the contributors and collaborators for their valuable discussions and support, including NVIDIA infrastructure, legal and research teams.
  • InternVL: we built the codebase on top of InternVL. Thanks for the great open-source project.
  • VLMEvalKit: We use vlmeval for evaluation. Many thanks for the wonderful tools.
  • Thanks to Cambrian, LLaVA-One-Vision and more great work for their efforts in organizing open-source data.

License/Terms of Use

  • The code is released under the Apache 2.0 license as found in the LICENSE file.
  • The pretrained model weights are released under the NSCLv1 license, where user may use for academic or non-profit research purposes only.
  • The service is a research preview intended for non-commercial use only, and is subject to the following licenses and terms:
    • Model License of Qwen2.5-7B-Instruct: Apache-2.0
    • Model License of siglip2-so400m-patch16-512: Apache-2.0
    • Models are improved using Qwen.
    • Furthermore, users are reminded to ensure that their use of the dataset and checkpoints is in compliance with all applicable laws and regulations.

Ethical Considerations

NVIDIA believes Trustworthy AI is a shared responsibility and we have established policies and practices to enable development for a wide array of AI applications. When downloaded or used in accordance with our terms of service, developers should work with their internal model team to ensure this model meets requirements for the relevant industry and use case and addresses unforeseen product misuse.

Please report security vulnerabilities or NVIDIA AI Concerns here.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Нельзя запустить

Доступ к модели ограничен автором; у платформы нет доступа к весам.

Ревизия весов
61e4523

0 моделей