Eagle2.5 8B
Eagle 2.5は、長いコンテキストのマルチモーダル学習向けに設計された最先端のビジュアル言語モデル(VLM)で、最大512フレームのビデオシーケンスと高解像度画像の処理をサポートします。
ダウンロード数 2,626
リリース時間 : 4/12/2025
モデル概要
Eagle 2.5は、長いビデオの理解と高解像度画像の理解に関する課題を解決し、汎用的なフレームワークを提供し、複数のベンチマークテストで優れた性能を発揮します。
モデル特徴
長いコンテキストの処理能力
最大512フレームのビデオシーケンスと高解像度画像の処理をサポートし、現在のほとんどのVLMが短いコンテキストのタスクに焦点を当てている限界を解消します。
情報優先サンプリング
画像領域保持(IAP)と自動ダウンサンプリング(ADS)によってビジュアルとテキストの入力を最適化し、情報を失うことなくコンテキストの長さを最大限に活用します。
漸進的混合事後学習
学習過程で徐々にコンテキストの長さを32Kから128Kに拡張し、モデルが異なる入力サイズを処理する能力を強化します。
多様性駆動のデータ構成
オープンソースデータと独自に策定したEagle-Video-110Kデータセットを組み合わせて、豊富で多様な学習サンプルを提供します。
効率最適化
GPUメモリの最適化、分散コンテキスト並列、ビデオデコードの高速化、推論の高速化などの技術により、モデルの計算効率と推論速度を大幅に向上させます。
モデル能力
長いビデオの理解
高解像度画像の理解
マルチモーダル学習
テキスト生成
画像分析
ビデオ分析
使用事例
ビデオ理解
長いビデオの内容分析
最大512フレームのビデオ内容を分析し、重要な情報とストーリーラインを抽出します。
複数のビデオベンチマークテストでSOTAレベルに達します。
ビデオ質問応答
ビデオ内容に基づいて関連する質問に回答します。
Video-MMEで512入力フレームを使用すると、72.4%の正解率を達成します。
画像理解
高解像度画像分析
高解像度画像を処理し、細かい詳細を抽出します。
複数の画像ベンチマークテストで優れた性能を発揮し、Qwen2.5-VLと同等の性能を示します。
文書理解
複数ページの文書内容を解析し、重要な情報を抽出します。
DocVQAテストで94.1%の正解率を達成します。
🚀 Eagle 2.5
Eagle 2.5は、長文脈のマルチモーダル学習向けに設計された最先端の画像・テキスト変換モデルです。既存の多くのモデルが短文脈タスクに焦点を当てている中、Eagle 2.5は長いビデオ理解や高解像度の画像理解といった課題に取り組み、これらのタスクに対する包括的なフレームワークを提供します。
🚀 クイックスタート
まずは必要なライブラリをインストールします。
pip install transformers==4.51.0
✨ 主な機能
🚀 幅広いタスクでの高い性能
- 10の長ビデオベンチマークのうち6つでSOTA(最先端技術)を達成。
- 5つのビデオタスクのうち3つでGPT - 4o(0806)を上回る。
- 6つのビデオタスクのうち4つでGemini 1.5 Proを上回る。
- 複数の重要なデータセットでQwen2.5 - VL - 72Bと同等またはそれ以上の性能を発揮。
- 512入力フレームのVideo - MMEで72.4%の精度を達成。
- 画像理解能力にも強みがあり、Eagle 2に比べて一貫した改善が見られ、Qwen2.5 - VLと同等の性能を示す。
🎯 主要な革新点
- 情報優先サンプリング
- 画像領域保存(IAP):画像のタイリングを最適化して、元の画像領域とアスペクト比の大部分を保持し、細かい詳細を維持します。
- 自動劣化サンプリング(ADS):視覚とテキストの入力を動的にバランスさせ、コンテキスト長の制約内で視覚コンテンツを最大化しながら、テキストを完全に保持します。
- 漸進的混合事後学習:学習中に徐々にコンテキスト長を増やし、モデルがさまざまな入力サイズを処理する能力を向上させ、静的サンプリングに比べて情報密度を高めます。
- 多様性駆動型データレシピ:オープンソースデータ(人間によるアノテーション付きおよび合成データ)と独自に作成したEagle - Video - 110Kデータセットを組み合わせ、多様性駆動型戦略を通じて収集され、ストーリーレベルとクリップレベルの両方のQAペアでアノテーション付けされています。
⚡ 効率性とフレームワークの最適化
- GPUメモリ最適化
- Tritonベースの融合演算子を統合し、PyTorchのMLP、RMSNorm、RoPEの実装を置き換えます。
- 融合線形層と交差エントロピー損失を使用してGPUメモリを削減し(中間ロジットの保存を削除)、隠れ状態をCPUにオフロードします。
- 分散コンテキスト並列化
- Ulyssesに基づく2層の通信グループを採用し、USPに基づくRing/Context Parallelismを構築します。
- すべての集約KVを使用したZigZag Llama3スタイルのコンテキスト並列化を実装し、通信遅延を削減します。
- ビデオデコードの高速化:高速なビデオメタデータ解析による最適化された疎なビデオフレームサンプリングを行い、長いビデオのデコードを改善し、メモリ消費を削減します。
- 推論の高速化:vLLMデプロイメントをサポートし、メモリを削減して推論を高速化します。
📦 インストール
必要なライブラリをインストールするには、以下のコマンドを実行します。
pip install transformers==4.51.0
💻 使用例
基本的な使用法
単一画像の場合
from PIL import Image
import requests
from transformers import AutoProcessor, AutoModel
import torch
model = AutoModel.from_pretrained("nvidia/Eagle-2.5-8B",trust_remote_code=True, torch_dtype=torch.bfloat16)
processor = AutoProcessor.from_pretrained("nvidia/Eagle-2.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)
ストリーム生成の場合
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/Eagle-2.5-8B",trust_remote_code=True, attn_implementation='flash_attention_2', torch_dtype=torch.bfloat16)
tokenizer = AutoTokenizer.from_pretrained("nvidia/Eagle-2.5-8B", trust_remote_code=True, use_fast=True)
processor = AutoProcessor.from_pretrained("nvidia/Eagle-2.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)
複数画像の場合
from PIL import Image
import requests
from transformers import AutoProcessor, AutoModel
import torch
model = AutoModel.from_pretrained("nvidia/Eagle-2.5-8B",trust_remote_code=True, torch_dtype=torch.bfloat16)
processor = AutoProcessor.from_pretrained("nvidia/Eagle-2.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)
単一ビデオの場合
from PIL import Image
import requests
from transformers import AutoProcessor, AutoModel
import torch
model = AutoModel.from_pretrained("nvidia/Eagle-2.5-8B",trust_remote_code=True, torch_dtype=torch.bfloat16)
processor = AutoProcessor.from_pretrained("nvidia/Eagle-2.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)
複数ビデオの場合
from PIL import Image
import requests
from transformers import AutoProcessor, AutoModel
import torch
model = AutoModel.from_pretrained("nvidia/Eagle-2.5-8B",trust_remote_code=True, torch_dtype=torch.bfloat16)
processor = AutoProcessor.from_pretrained("nvidia/Eagle-2.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)
バッチ推論の場合
from PIL import Image
import requests
from transformers import AutoProcessor, AutoModel
import torch
model = AutoModel.from_pretrained("nvidia/Eagle-2.5-8B",trust_remote_code=True, torch_dtype=torch.bfloat16)
processor = AutoProcessor.from_pretrained("nvidia/Eagle-2.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)
📚 ドキュメント
モデル詳細
属性 | 详情 |
---|---|
モデルタイプ | 長文脈の画像・テキスト変換モデル |
アーキテクチャ | ビジョンエンコーダ: Siglip2 - So400m - Patch16 - 512;言語モデル: Qwen2.5 - 7B - Instruct;マルチモーダルベースアーキテクチャ: タイリングベースのビジョン入力を持つLLaVA |
サポートされる入力 | 長いビデオシーケンス(最大512フレーム)、高解像度画像(最大4K HD入力サイズ)、複数ページのドキュメント、長いテキスト |
学習戦略 | 32Kから128Kのコンテキスト長に拡張する漸進的混合事後学習、最適な視覚とテキスト情報の保持のための情報優先サンプリング |
学習データ | オープンソースのビデオとドキュメントデータセット、Eagle - Video - 110K(二重レベルのアノテーション付きの110Kの長いビデオ) |
公開されたモデル
モデル | 日付 | ダウンロードリンク | 注意事項 |
---|---|---|---|
Eagle2.5 - 8B | 2025.04.16 | HF link | 長いビデオ(512フレーム)、高解像度サポート |
ビデオベンチマーク
ベンチマーク | GPT - 4o | Gemini - 1.5 Pro | InternVL2.5 - 8B | Qwen2.5 - VL - 8B | Eagle2.5 - 8B |
---|---|---|---|---|---|
MVBenchtest | - | - | 72.0 | 69.6 | 74.8 |
Perception_testval | - | - | - | 70.5 | 82.0 |
EgoSchemafullset | - | 72.2 | - | 65.0 | 72.2 |
MMB - Video | 1.63 | 1.30 | 1.68 | 1.79 | 1.94 |
MLVUval | - | - | 68.9 | 70.2 | 77.6 |
LVBenchval | 66.7 | 64.0 | 60.0 | 56.0 | 66.4 |
Video - MMEw/o subtitle | 71.9 | 75.0 | 64.2 | 65.1 | 72.4 |
Video - MMEw subtitle | 77.2 | 81.3 | 66.9 | 71.6 | 75.7 |
CG - BenchClue | 58.6 | 50.9 | - | 44.5 | 55.8 |
CG - BenchLong | 44.9 | 37.8 | - | 35.5 | 46.6 |
CG - BenchmIoU | 5.73 | 3.85 | - | 2.48 | 13.4 |
HourVideoDev | - | 37.2 | - | - | 44.5 |
HourVideoTest | - | 37.4 | - | - | 41.8 |
Charade - STAmIoU | 35.7 | - | - | 43.6 | 65.9 |
HD - EPIC | - | 37.6 | - | - | 42.9 |
HRVideoBench | - | - | - | - | 68.5 |
EgoPlanval | - | - | - | - | 45.3 |
エンボディベンチマーク
ベンチマーク | GPT - 4o | Gemini - 1.5 Pro | InternVL2.5 - 8B | Qwen2.5 - VL - 8B | Eagle2.5 - 8B |
---|---|---|---|---|---|
OpenEQA | - | - | - | - | 63.5 |
ERQA | 47.0 | 41.8 | - | - | 38.3 |
EgoPlanval | - | - | - | - | 45.3 |
画像ベンチマーク
ベンチマーク | GPT - 4o | Gemini - 1.5 Pro | InternVL2.5 - 8B | Qwen2.5 - VL - 8B | Eagle2.5 - 8B |
---|---|---|---|---|---|
DocVQAtest | 92.8 | 93.1 | 93.0 | 95.7 | 94.1 |
ChartQAtest | 85.7 | 87.2 | 84.8 | 87.3 | 87.5 |
InfoVQAtest | 79.2 | 81.0 | 77.6 | 82.6 | 80.4 |
TextVQAval | 77.4 | 78.8 | 79.1 | 84.9 | 83.7 |
OCRBenchtest | 736 | 754 | 822 | 864 | 869 |
MMstartest | 64.7 | 59.1 | 62.8 | 63.9 | 66.2 |
RWQAtest | 75.4 | 67.5 | 70.1 | 68.5 | 76.7 |
AI2Dtest | 84.6 | 79.1 | 84.5 | 83.9 | 84.5 |
MMMUval | 69.1 | 62.2 | 56.0 | 58.6 | 55.8 |
MMBench_V11test | 83.1 | 74.6 | 83.2 | 82.6 | 81.7 |
MMVetGPT - 4 - Turbo | 69.1 | 64.0 | 62.8 | 67.1 | 62.9 |
HallBenchavg | 55.0 | 45.6 | 50.1 | 52.9 | 54.7 |
MathVistatestmini | 63.8 | 63.9 | 64.4 | 68.2 | 67.8 |
平均スコア | 74.9 | 71.7 | 73.1 | 75.6 | 75.6 |
すべての数値はEagle 2.5の技術レポートの表2と表3から直接抽出されています。
Eagle 2.5 - 8Bは、長文脈のビデオと画像のベンチマークで、はるかに大きなモデルの性能と同等またはそれを上回っています。
📄 ライセンス
このモデルはnsclv1
ライセンスの下で提供されています。
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アーキテクチャに基づく中国語抽出型QAモデルで、与えられたテキストから回答を抽出するタスクに適しています。
質問応答システム 中国語
R
uer
2,694
98