Disclaimer: The team releasing BLIP-2 did not write a model card for this model so this model card has been written by the Hugging Face team.
Model description
BLIP-2 consists of 3 models: a CLIP-like image encoder, a Querying Transformer (Q-Former) and a large language model.
The authors initialize the weights of the image encoder and large language model from pre-trained checkpoints and keep them frozen
while training the Querying Transformer, which is a BERT-like Transformer encoder that maps a set of "query tokens" to query embeddings,
which bridge the gap between the embedding space of the image encoder and the large language model.
The goal for the model is simply to predict the next text token, giving the query embeddings and the previous text.
This allows the model to be used for tasks like:
image captioning
visual question answering (VQA)
chat-like conversations by feeding the image and the previous conversation as prompt to the model
Direct Use and Downstream Use
You can use the raw model for conditional text generation given an image and optional text. See the
model hub
to look for
fine-tuned versions on a task that interests you.
Bias, Risks, Limitations, and Ethical Considerations
BLIP2-FlanT5 uses off-the-shelf Flan-T5 as the language model. It inherits the same risks and limitations from
Flan-T5
:
Language models, including Flan-T5, can potentially be used for language generation in a harmful way, according to Rae et al. (2021). Flan-T5 should not be used directly in any application, without a prior assessment of safety and fairness concerns specific to the application.
BLIP2 is fine-tuned on image-text datasets (e.g.
LAION
) collected from the internet. As a result the model itself is potentially vulnerable to generating equivalently inappropriate content or replicating inherent biases in the underlying data.
BLIP2 has not been tested in real world applications. It should not be directly deployed in any applications. Researchers should first carefully assess the safety and fairness of the model in relation to the specific context they’re being deployed within.
How to use
For code examples, we refer to the
documentation
, or refer to the snippets below depending on your usecase:
Running the model on CPU
Click to expand
import requests
from PIL import Image
from transformers import BlipProcessor, Blip2ForConditionalGeneration
processor = BlipProcessor.from_pretrained("Salesforce/blip2-flan-t5-xxl")
model = Blip2ForConditionalGeneration.from_pretrained("Salesforce/blip2-flan-t5-xxl")
img_url = 'https://storage.googleapis.com/sfr-vision-language-research/BLIP/demo.jpg'
raw_image = Image.open(requests.get(img_url, stream=True).raw).convert('RGB')
question = "how many dogs are in the picture?"
inputs = processor(raw_image, question, return_tensors="pt")
out = model.generate(**inputs)
print(processor.decode(out[0], skip_special_tokens=True))
Running the model on GPU
In full precision
Click to expand
# pip install accelerateimport requests
from PIL import Image
from transformers import Blip2Processor, Blip2ForConditionalGeneration
processor = Blip2Processor.from_pretrained("Salesforce/blip2-flan-t5-xxl")
model = Blip2ForConditionalGeneration.from_pretrained("Salesforce/blip2-flan-t5-xxl", device_map="auto")
img_url = 'https://storage.googleapis.com/sfr-vision-language-research/BLIP/demo.jpg'
raw_image = Image.open(requests.get(img_url, stream=True).raw).convert('RGB')
question = "how many dogs are in the picture?"
inputs = processor(raw_image, question, return_tensors="pt").to("cuda")
out = model.generate(**inputs)
print(processor.decode(out[0], skip_special_tokens=True))
In half precision (
float16
)
Click to expand
# pip install accelerateimport torch
import requests
from PIL import Image
from transformers import Blip2Processor, Blip2ForConditionalGeneration
processor = Blip2Processor.from_pretrained("Salesforce/blip2-flan-t5-xxl")
model = Blip2ForConditionalGeneration.from_pretrained("Salesforce/blip2-flan-t5-xxl", torch_dtype=torch.float16, device_map="auto")
img_url = 'https://storage.googleapis.com/sfr-vision-language-research/BLIP/demo.jpg'
raw_image = Image.open(requests.get(img_url, stream=True).raw).convert('RGB')
question = "how many dogs are in the picture?"
inputs = processor(raw_image, question, return_tensors="pt").to("cuda", torch.float16)
out = model.generate(**inputs)
print(processor.decode(out[0], skip_special_tokens=True))
In 8-bit precision (
int8
)
Click to expand
# pip install accelerate bitsandbytesimport torch
import requests
from PIL import Image
from transformers import Blip2Processor, Blip2ForConditionalGeneration
processor = Blip2Processor.from_pretrained("Salesforce/blip2-flan-t5-xxl")
model = Blip2ForConditionalGeneration.from_pretrained("Salesforce/blip2-flan-t5-xxl", load_in_8bit=True, device_map="auto")
img_url = 'https://storage.googleapis.com/sfr-vision-language-research/BLIP/demo.jpg'
raw_image = Image.open(requests.get(img_url, stream=True).raw).convert('RGB')
question = "how many dogs are in the picture?"
inputs = processor(raw_image, question, return_tensors="pt").to("cuda", torch.float16)
out = model.generate(**inputs)
print(processor.decode(out[0], skip_special_tokens=True))
Runs of Salesforce blip2-flan-t5-xxl on huggingface.co
5.0K
Total runs
0
24-hour runs
56
3-day runs
18
7-day runs
-3.2K
30-day runs
More Information About blip2-flan-t5-xxl huggingface.co Model
blip2-flan-t5-xxl huggingface.co is an AI model on huggingface.co that provides blip2-flan-t5-xxl's model effect (), which can be used instantly with this Salesforce blip2-flan-t5-xxl model. huggingface.co supports a free trial of the blip2-flan-t5-xxl model, and also provides paid use of the blip2-flan-t5-xxl. Support call blip2-flan-t5-xxl model through api, including Node.js, Python, http.
blip2-flan-t5-xxl huggingface.co is an online trial and call api platform, which integrates blip2-flan-t5-xxl's modeling effects, including api services, and provides a free online trial of blip2-flan-t5-xxl, you can try blip2-flan-t5-xxl online for free by clicking the link below.
Salesforce blip2-flan-t5-xxl online free url in huggingface.co:
blip2-flan-t5-xxl is an open source model from GitHub that offers a free installation service, and any user can find blip2-flan-t5-xxl on GitHub to install. At the same time, huggingface.co provides the effect of blip2-flan-t5-xxl install, users can directly use blip2-flan-t5-xxl installed effect in huggingface.co for debugging and trial. It also supports api for free installation.