/ Модель

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

Контекст
32 768 токенов
Размер весов
8,5 ГБ
Лицензия
Apache 2.0
Архитектура
llava · dense
Опубликована
13 июн 2024

llava_qwen15-4b-chat_openai-clip-vit-large-patch14-336

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

Мультимодальная чат-модель LLaVA на базе Qwen1.5-4B-Chat и CLIP, которая отвечает текстом на запросы об изображениях.

19скачиваний за 30 дней5лайковвеса обновлены26 сен 2024

Бенчмарки

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

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Изображение → текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

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

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

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

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

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

Модель yuanzhoulvpi/llava_qwen15-4b-chat_openai-clip-vit-large-patch14-336 — мультимодальная чат-модель семейства LLaVA, собранная на основе Qwen1.5-4B-Chat и визуального энкодера openai/clip-vit-large-patch14-336. Разработчик обучал её с использованием LoRA и DeepSpeed ZeRO-2 на наборе LLaVA-CC3M-Pretrain-595K.

Модель принимает изображения вместе с текстовыми запросами и генерирует текстовые ответы. Она предназначена для диалога по изображениям и визуальных вопросов и ответов; в карточке заявлены китайский и английский языки. Репозиторий содержит веса в формате Safetensors и распространяется по лицензии Apache-2.0.

Карточка не приводит оценок качества или подробностей ограничений, поэтому пригодность для конкретных сценариев стоит проверять на собственных данных. Указанный обучающий набор относится к предварительному обучению LLaVA.

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

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

Ограничения

В карточке не приведены количественные оценки качества и подробные ограничения; пригодность для конкретных данных и сценариев следует проверять отдельно.

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

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

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

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

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

Открыть на Hugging Face

cite this model

@misc {yuanz_2024,
	author       = { {yuanz} },
	title        = { llava_qwen15-4b-chat_openai-clip-vit-large-patch14-336 (Revision 5070a27) },
	year         = 2024,
	url          = { https://huggingface.co/yuanzhoulvpi/llava_qwen15-4b-chat_openai-clip-vit-large-patch14-336 },
	doi          = { 10.57967/hf/3146 },
	publisher    = { Hugging Face }
}

从0到1训练一个定制版的llava模型

  1. 基于openai/clip-vit-large-patch14-336 和Qwen1.5-4B-Chat模型,构建一个llava模型
  2. 使用数据liuhaotian/LLaVA-CC3M-Pretrain-595K
  3. 训练方式是deepspeed-zero2、lora进行微调。

关联的github

  1. https://github.com/yuanzhoulvpi2017/zero_nlp/tree/main/train_llava

关联的b站学习视频

  1. 待填充

推理代码


from transformers import LlavaForConditionalGeneration, AutoProcessor
import torch
from PIL import Image

raw_model_name_or_path = "yuanzhoulvpi/llava_qwen15-4b-chat_openai-clip-vit-large-patch14-336"
model = LlavaForConditionalGeneration.from_pretrained(raw_model_name_or_path,device_map="cuda:0", torch_dtype=torch.bfloat16)
processor = AutoProcessor.from_pretrained(raw_model_name_or_path)
model.eval()
print('ok')
testdata = (
'<image>\nRelay a brief, clear account of the picture shown.', # 提问
 'large kitchen island with an overhang and dining space next to it', # 真实答案
 'data/liuhaotian/LLaVA-CC3M-Pretrain-595K/images_dl/GCC_train_001899387.jpg' # 图片路径
) 

def build_model_input(model, processor, testdata:tuple):
    messages = [
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": testdata[0]},
    ]
    prompt = processor.tokenizer.apply_chat_template(
        messages, tokenize=False, add_generation_prompt=True
    )
    # print(prompt)
    # print("*"*20)
    image = Image.open(testdata[2])
    inputs = processor(text=prompt, images=image, return_tensors="pt")
    
    for tk in inputs.keys():
        inputs[tk] = inputs[tk].to(model.device)
    generate_ids = model.generate(**inputs, max_new_tokens=20)
    
    generate_ids = [
        oid[len(iids):] for oid, iids in zip(generate_ids, inputs.input_ids)
    ]

    

    gen_text = processor.batch_decode(generate_ids, skip_special_tokens=False, clean_up_tokenization_spaces=False)[0]
    return gen_text



build_model_input(model, processor, testdata)

# 'the kitchen is a bright yellow with a glass top island and a large window that looks out to the'

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

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

GPU в ailist

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

Можно запустить

Подбираем GPU…

Класс архитектуры
LlavaForConditionalGeneration
Ревизия весов
4514bcd

0 моделей