🚀 Llama-3-EZO-VLM-1
このモデルは、SakanaAI/Llama-3-EvoVLM-JP-v2 をベースに、追加の事前学習と命令チューニングにより、日本語での使用に最適化されています。Llama-3-8B-Instruct をベースとし、Llama-3 の利用規約に準拠しています。
🚀 クイックスタート
モデルを使用するには、まず必要なライブラリをインストールします。
pip install git+https://github.com/TIGER-AI-Lab/Mantis.git
以下は、モデルを使用して画像に関する質問に回答するPythonコードの例です。
import requests
from PIL import Image
import torch
from mantis.models.conversation import Conversation, SeparatorStyle
from mantis.models.mllava import chat_mllava, LlavaForConditionalGeneration, MLlavaProcessor
from mantis.models.mllava.utils import conv_templates
from transformers import AutoTokenizer
conv_llama_3_elyza = Conversation(
system="<|start_header_id|>system<|end_header_id|>\n\nあなたは誠実で優秀な日本人のアシスタントです。特に指示が無い場合は、常に日本語で回答してください。",
roles=("user", "assistant"),
messages=(),
offset=0,
sep_style=SeparatorStyle.LLAMA_3,
sep="<|eot_id|>",
)
conv_templates["llama_3"] = conv_llama_3_elyza
device = "cuda" if torch.cuda.is_available() else "cpu"
model_id = "HODACHI/Llama-3-EZO-VLM-1"
processor = MLlavaProcessor.from_pretrained("TIGER-Lab/Mantis-8B-siglip-llama3")
processor.tokenizer.pad_token = processor.tokenizer.eos_token
model = LlavaForConditionalGeneration.from_pretrained(model_id, torch_dtype=torch.float16, device_map=device).eval()
generation_kwargs = {
"max_new_tokens": 256,
"num_beams": 1,
"do_sample": False,
"no_repeat_ngram_size": 3,
}
text = "<image>の信号は何色ですか?"
url_list = [
"https://images.unsplash.com/photo-1694831404826-3400c48c188d?q=80&w=2070&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
"https://images.unsplash.com/photo-1693240876439-473af88b4ed7?q=80&w=1974&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
]
images = [
Image.open(requests.get(url_list[0], stream=True).raw).convert("RGB")
]
response, history = chat_mllava(text, images, model, processor, **generation_kwargs)
print(response)
text = "では、<image>の信号は?"
images += [
Image.open(requests.get(url_list[1], stream=True).raw).convert("RGB")
]
response, history = chat_mllava(text, images, model, processor, history=history, **generation_kwargs)
print(response)
✨ 主な機能
- 日本語対応:日本語タスクに特化した事前学習と命令チューニングにより、日本語での性能が向上しています。
- 汎用性:複数のチューニング手法を用いて、様々な言語やドメインでの汎用的なテキスト処理性能を向上させています。
- 画像説明力:画像に関する質問に対して、高精度な回答を生成する能力があります。
📦 インストール
必要なライブラリをインストールするには、以下のコマンドを実行します。
pip install git+https://github.com/TIGER-AI-Lab/Mantis.git
💻 使用例
基本的な使用法
上記のクイックスタートで示したコードが基本的な使用例です。画像に関する質問に対して回答を生成することができます。
高度な使用法
マルチターン会話を行うこともできます。上記のコードの最後の部分では、2回目の質問に対しても回答を生成しています。
📚 ドキュメント
モデルの詳細
モデルデータ
学習データセット
日本語のWikipediaデータとFineWebから良質なデータのみを抽出し、命令データを作成しました。このモデルは日本語に特化していますが、世界中の様々なユースケースに対応できるように設計されています。
データ前処理
プレインストラクトチューニング手法を用いて、模範的な回答を学習させました。これにより、モデルは様々な言語やコンテキストにおいて高品質な応答を理解し生成する能力が向上しています。
実装情報
[事前命令学習]
事前命令学習の詳細
ベンチマーク結果
ElyzaTasks100
ベースモデルから0.7ポイントの大幅な性能向上が見られます。
画像説明力
4つの例すべてにおいて、ベースモデルから認識力と説明力の向上が実現されています。
以下は、GPT4、SakanaAI社のベースモデル、EZOのモデルのそれぞれが同一画像・同一プロンプトに対して生成した出力を、GPT-4oに評価させた結果です。

デモ
モデルのデモは以下のリンクから利用できます。
デモページ
免責事項
このモデルは研究開発のみを目的として提供されるものであり、実験的なプロトタイプとみなされるべきです。商業的な使用やミッションクリティカルな環境への配備を意図したものではありません。本モデルの使用は使用者の責任において行われるものとし、その性能および結果は保証されません。Axcxept株式会社は、直接的、間接的、特別、偶発的、結果的な損害、または本モデルの使用から生じるいかなる損失に対しても、得られた結果に関わらず一切の責任を負いません。利用者は、本モデルの使用に伴うリスクを十分に理解し、自己の判断で使用するものとします。
注意事項
SakanaAI社のモデルを活用させていますが、弊社及び本モデル・本スペースに関して、SakanaAI社との直接的な関係性は一切ありません。ご理解とご協力をお願いいたします。
ハードウェア
このモデルの学習には、A100 × 8の環境で4時間かけて行われました。
謝辞
本ベースモデルを開発してくださったMeta社、カスタマイズを行ったSakanaAI社ならびに各社の当該チームの開発者の方々、また自動評価の手法を提供してくださった多数の方々に感謝と尊敬の意を表します。
私たちについて

📄 ライセンス
このモデルは META LLAMA 3 COMMUNITY LICENSE に基づいて提供されています。