CoolFace
Modelpublic

turing-motors/llava-1.5-sarashina2.2-1.7b-instruct

sourceHugging Facecc-by-nc-sa-4.0updated 1y agoView on Hugging Face
0likes9downloads
Model Card

llava-1.5-sarashina2.2-1.7b-instruct Model Card (JA)

image/png

以下は 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 アーキテクチャに基づく自己回帰型視覚言語モデルです。

モデル作成日: 2025 年 5 月

学習設定: 以下 2 つのデータセットを用い、Projector のみ を学習させました。

注: 元の LLM の性能を維持するため、Stage‑2(Projector と LLM の両方を学習可能にする段階)をスキップ し、Stage‑2 で使用予定だったデータを Stage‑1 に組み込みました。
  • —Stage‑1
  • —[LLaVA-Pretrain-JA](https://huggingface.co/datasets/turing-motors/LLaVA-Pretrain-JA) (558K)
  • —Qwen/Qwen2.5-VL-7B-Instruct で再キャプションしたデータを使用。
  • —[LLaVA-v1.5-Instruct-620K-JA](https://huggingface.co/datasets/turing-motors/LLaVA-v1.5-Instruct-620K-JA) (522K)
  • —日本語翻訳による不整合を避けるため、OCR 系データ(ocr_vqa, textvqa)は除外。

モデルの使い方

transformers >= 4.35.3 をインストールしてください。 本モデルはマルチプロンプト生成をサポートします。必ず正しいプロンプトテンプレート(USER: xxxASSISTANT:)を守り、画像を問い合わせる位置に <image> トークンを挿入してください。

以下は GPU 上で bfloat16 精度で生成を行うサンプルスクリプトです。

python
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() に渡せます。

python
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 に従うものとします。