llava-1.5-sarashina2.2-1.7b-instruct Model Card (JA)
以下は llava-1.5-sarashina2.2-1.7b-instruct のモデルカードです。
オリジナルの LLaVA Model Card を参考に作成しています。
英語版のモデルカードはこちら (English version of the model card is here)
モデル詳細
モデルタイプ:
llava-1.5-sarashina2.2-1.7b-instruct は、sbintuitions/sarashina2.2-1b-instruct-v0.1 を視覚言語指示追従データを用いてファインチューニングして作成したオープンソースのチャットボットで、Transformer アーキテクチャに基づく自己回帰型視覚言語モデルです。
- 総パラメータ数: 1,716,099,840(約 1.7B)
- LLM (sbintuitions/sarashina2.2-1b-instruct-v0.1): 1,407,542,528(約 1.4B)
- Projector (2-layer MLP): 5,049,856(約 5M)
- 視覚エンコーダ (openai/clip-vit-large-patch14-336): 303,507,456(約 303M)
モデル作成日:
2025 年 5 月
学習設定:
以下 2 つのデータセットを用い、Projector のみ を学習させました。
注: 元の LLM の性能を維持するため、Stage‑2(Projector と LLM の両方を学習可能にする段階)をスキップ し、Stage‑2 で使用予定だったデータを Stage‑1 に組み込みました。
- Stage‑1
- LLaVA-Pretrain-JA (558K)
- Qwen/Qwen2.5-VL-7B-Instruct で再キャプションしたデータを使用。
- LLaVA-v1.5-Instruct-620K-JA (522K)
- 日本語翻訳による不整合を避けるため、OCR 系データ(ocr_vqa, textvqa)は除外。
- LLaVA-Pretrain-JA (558K)
モデルの使い方
transformers >= 4.35.3
をインストールしてください。
本モデルはマルチプロンプト生成をサポートします。必ず正しいプロンプトテンプレート(USER: xxxASSISTANT:
)を守り、画像を問い合わせる位置に <image>
トークンを挿入してください。
以下は GPU 上で bfloat16
精度で生成を行うサンプルスクリプトです。
import requests
from PIL import Image
import torch
from transformers import AutoProcessor, LlavaForConditionalGeneration
model_id = "turing-motors/llava-1.5-sarashina2.2-1.7b-instruct"
model = LlavaForConditionalGeneration.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
low_cpu_mem_usage=True,
).to("cuda")
processor = AutoProcessor.from_pretrained(model_id, use_fast=True)
# チャット履歴を定義し、apply_chat_template でフォーマット済みプロンプトを作成
# "content" 内の各値は ("text", "image") 型の dict のリスト
conversation = [
{
"role": "user",
"content": [
{"type": "text", "text": "猫は何匹いますか?"},
{"type": "image"},
],
},
]
prompt = processor.apply_chat_template(conversation, add_generation_prompt=True)
image_file = "http://images.cocodataset.org/val2017/000000039769.jpg"
raw_image = Image.open(requests.get(image_file, stream=True).raw)
inputs = processor(images=raw_image, text=prompt, return_tensors='pt').to("cuda")
generated_ids = model.generate(**inputs, max_new_tokens=128, do_sample=False)
generated_texts = processor.batch_decode(
generated_ids,
skip_special_tokens=True,
)
print(generated_texts[0])
# USER:
# 猫は何匹いますか?ASSISTANT: 画像には2匹の猫がいます。
transformers
v4.48 以降では、画像 URL またはローカルパスを会話履歴に直接渡し、チャットテンプレートに処理を任せることも可能です。
テンプレートが画像を読み込み、torch.Tensor
形式で返すので、そのまま model.generate()
に渡せます。
messages = [
{
"role": "user",
"content": [
{"type": "image", "url": "https://www.ilankelman.org/stopsigns/australia.jpg"},
{"type": "text", "text": "画像を非常に短く説明して。"},
],
},
]
inputs = processor.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt"
).to("cuda")
output = model.generate(**inputs, max_new_tokens=128)
generated_texts = processor.batch_decode(
output,
skip_special_tokens=True,
)
print(generated_texts[0])
# USER:
# 画像を非常に短く説明して。ASSISTANT: 画像は、赤い停止標識と、その横にある赤い門を持つ伝統的な中国の門の2つの標識が写っています。
ライセンス
Creative Commons Attribution Non Commercial Share Alike 4.0
OpenAI のポリシー https://openai.com/policies/terms-of-use に従うものとします。
- Downloads last month
- 6
Model tree for turing-motors/llava-1.5-sarashina2.2-1.7b-instruct
Base model
openai/clip-vit-large-patch14-336