Bunny is a family of lightweight but powerful multimodal models. It offers multiple plug-and-play vision encoders, like EVA-CLIP, SigLIP and language backbones, including Llama-3-8B, Phi-1.5, StableLM-2, Qwen1.5, MiniCPM and Phi-2. To compensate for the decrease in model size, we construct more informative training data by curated selection from a broader data source. Remarkably, our Bunny-v1.0-3B model built upon SigLIP and Phi-2 outperforms the state-of-the-art MLLMs, not only in comparison with models of similar size but also against larger MLLM frameworks (7B), and even achieves performance on par with 13B models.
The model is pretrained on LAION-2M and finetuned on Bunny-695K.
More details about this model can be found in
GitHub
.
Quickstart
Here we show a code snippet to show you how to use the model with transformers.
Before running the snippet, you need to install the following dependencies:
pip install torch transformers accelerate pillow
If the CUDA memory is enough, it would be faster to execute this snippet by setting
CUDA_VISIBLE_DEVICES=0
.
Users especially those in Chinese mainland may want to refer to a HuggingFace
mirror site
.
import torch
import transformers
from transformers import AutoModelForCausalLM, AutoTokenizer
from PIL import Image
import warnings
# disable some warnings
transformers.logging.set_verbosity_error()
transformers.logging.disable_progress_bar()
warnings.filterwarnings('ignore')
# set device
device = 'cuda'# or cpu
torch.set_default_device(device)
# create model
model = AutoModelForCausalLM.from_pretrained(
'BAAI/Bunny-v1_0-3B',
torch_dtype=torch.float16, # float32 for cpu
device_map='auto',
trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained(
'BAAI/Bunny-v1_0-3B',
trust_remote_code=True)
# text prompt
prompt = 'Why is the image funny?'
text = f"A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions. USER: <image>\n{prompt} ASSISTANT:"
text_chunks = [tokenizer(chunk).input_ids for chunk in text.split('<image>')]
input_ids = torch.tensor(text_chunks[0] + [-200] + text_chunks[1], dtype=torch.long).unsqueeze(0).to(device)
# image, sample images can be found in images folder
image = Image.open('example_2.png')
image_tensor = model.process_images([image], model.config).to(dtype=model.dtype, device=device)
# generate
output_ids = model.generate(
input_ids,
images=image_tensor,
max_new_tokens=100,
use_cache=True
repetition_penalty=1.0# increase this to avoid chattering
)[0]
print(tokenizer.decode(output_ids[input_ids.shape[1]:], skip_special_tokens=True).strip())
License
This project utilizes certain datasets and checkpoints that are subject to their respective original licenses. Users must comply with all terms and conditions of these original licenses.
The content of this project itself is licensed under the Apache license 2.0.
Runs of BAAI Bunny-v1_0-3B on huggingface.co
2.0K
Total runs
-33
24-hour runs
-78
3-day runs
133
7-day runs
-188
30-day runs
More Information About Bunny-v1_0-3B huggingface.co Model
Bunny-v1_0-3B huggingface.co is an AI model on huggingface.co that provides Bunny-v1_0-3B's model effect (), which can be used instantly with this BAAI Bunny-v1_0-3B model. huggingface.co supports a free trial of the Bunny-v1_0-3B model, and also provides paid use of the Bunny-v1_0-3B. Support call Bunny-v1_0-3B model through api, including Node.js, Python, http.
Bunny-v1_0-3B huggingface.co is an online trial and call api platform, which integrates Bunny-v1_0-3B's modeling effects, including api services, and provides a free online trial of Bunny-v1_0-3B, you can try Bunny-v1_0-3B online for free by clicking the link below.
BAAI Bunny-v1_0-3B online free url in huggingface.co:
Bunny-v1_0-3B is an open source model from GitHub that offers a free installation service, and any user can find Bunny-v1_0-3B on GitHub to install. At the same time, huggingface.co provides the effect of Bunny-v1_0-3B install, users can directly use Bunny-v1_0-3B installed effect in huggingface.co for debugging and trial. It also supports api for free installation.