/ Модель

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

Контекст
1 024 токена
Параметры
262 млн
Лицензия
OpenRAIL
Архитектура
ofa · dense
Опубликована
23 янв 2023

promptcap-coco-vqa

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

PromptCap генерирует подписи к изображениям, направленные текстовой инструкцией или вопросом, и может служить визуальным компонентом систем VQA.

20скачиваний за 30 дней15лайковвеса обновлены11 дек 2023

Бенчмарки

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

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

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

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

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

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

PromptCap — модель генерации подписей к изображениям, представленная авторами статьи PromptCap: Prompt-Guided Task-Aware Image Captioning, принятой на ICCV 2023. Модель построена на архитектуре OFA и содержит 262,2 млн параметров. Она принимает изображение и текстовую инструкцию, которая может задавать вопрос пользователя или просить общее описание сцены, и генерирует подпись, ориентированную на запрос. Также поддерживается использование OCR-входов.

Модель предназначена для генерации подписей и как визуальный компонент в системах визуальных вопросов и ответов: её подпись можно передать отдельной языковой модели, например GPT-3 или UnifiedQA, для подготовки ответа. В README заявлены 150 CIDEr на COCO и высокие результаты на OK-VQA и A-OKVQA при совместном использовании с GPT-3. Репозиторий содержит веса PyTorch; лицензия — OpenRAIL.

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

  • создание общего описания изображения
  • генерация подписи по вопросу о содержимом изображения
  • подготовка описания изображения для языковой модели в системе VQA
  • ответы на вопросы об изображении в связке с UnifiedQA или другой текстовой QA-моделью
  • использование OCR-входа при разборе изображений

Ограничения

Для получения ответов на вопросы модель используют в связке с отдельной языковой QA-моделью; сама PromptCap генерирует текстовые описания изображений. Заявленные результаты на OK-VQA и A-OKVQA относятся к связке с GPT-3.

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

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

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

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

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

Открыть на Hugging Face

This is the repo for the paper PromptCap: Prompt-Guided Task-Aware Image Captioning. This paper is accepted to ICCV 2023 as PromptCap: Prompt-Guided Image Captioning for VQA with GPT-3.

We introduce PromptCap, a captioning model that can be controlled by natural language instruction. The instruction may contain a question that the user is interested in. For example, "what is the boy putting on?". PromptCap also supports generic caption, using the question "what does the image describe?"

PromptCap can serve as a light-weight visual plug-in (much faster than BLIP-2) for LLM like GPT-3, ChatGPT, and other foundation models like Segment Anything and DINO. It achieves SOTA performance on COCO captioning (150 CIDEr). When paired with GPT-3, and conditioned on user question, PromptCap get SOTA performance on knowledge-based VQA tasks (60.4% on OK-VQA and 59.6% on A-OKVQA)

QuickStart

Installation

pip install promptcap

Two pipelines are included. One is for image captioning, and the other is for visual question answering.

Captioning Pipeline

Please follow the prompt format, which will give the best performance.

Generate a prompt-guided caption by following:

import torch
from promptcap import PromptCap

model = PromptCap("tifa-benchmark/promptcap-coco-vqa")  # also support OFA checkpoints. e.g. "OFA-Sys/ofa-large"

if torch.cuda.is_available():
  model.cuda()

prompt = "please describe this image according to the given question: what piece of clothing is this boy putting on?"
image = "glove_boy.jpeg"

print(model.caption(prompt, image))

To try generic captioning, just use "what does the image describe?"

prompt = "what does the image describe?"
image = "glove_boy.jpeg"

print(model.caption(prompt, image))

PromptCap also support taking OCR inputs:

prompt = "please describe this image according to the given question: what year was this taken?"
image = "dvds.jpg"
ocr = "yip AE Mht juor 02/14/2012"

print(model.caption(prompt, image, ocr))

Visual Question Answering Pipeline

Different from typical VQA models, which are doing classification on VQAv2, PromptCap is open-domain and can be paired with arbitrary text-QA models. Here we provide a pipeline for combining PromptCap with UnifiedQA.

import torch
from promptcap import PromptCap_VQA

# QA model support all UnifiedQA variants. e.g. "allenai/unifiedqa-v2-t5-large-1251000"
vqa_model = PromptCap_VQA(promptcap_model="tifa-benchmark/promptcap-coco-vqa", qa_model="allenai/unifiedqa-t5-base")

if torch.cuda.is_available():
  vqa_model.cuda()

question = "what piece of clothing is this boy putting on?"
image = "glove_boy.jpeg"

print(vqa_model.vqa(question, image))

Similarly, PromptCap supports OCR inputs

question = "what year was this taken?"
image = "dvds.jpg"
ocr = "yip AE Mht juor 02/14/2012"

print(vqa_model.vqa(question, image, ocr=ocr))

Because of the flexibility of Unifiedqa, PromptCap also supports multiple-choice VQA

question = "what piece of clothing is this boy putting on?"
image = "glove_boy.jpeg"
choices = ["gloves", "socks", "shoes", "coats"]
print(vqa_model.vqa_multiple_choice(question, image, choices))

Bibtex

@article{hu2022promptcap,
  title={PromptCap: Prompt-Guided Task-Aware Image Captioning},
  author={Hu, Yushi and Hua, Hang and Yang, Zhengyuan and Shi, Weijia and Smith, Noah A and Luo, Jiebo},
  journal={arXiv preprint arXiv:2211.09699},
  year={2022}
}

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

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

GPU в ailist

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

Нельзя запустить

Архитектура ofa неизвестна transformers в образе рантайма.

Класс архитектуры
OFAModel
Ревизия весов
de7d203

0 моделей