alt.freeweights.text / Bunny-v1_0-2B-zh
From: BAAI <huggingface.co/BAAI>Newsgroups: alt.freeweights.textSubject:

Bunny-v1_0-2B-zh

Date: 2026-11-15Commit: 2beae54Signed: 2DC28CC7B26A283B ✓

Text generation model with 2.2B parameters. Safetensors weights, 4.49 GB in all. Published by BAAI under Apache-2.0.

2.2B params4.49GBBunny-v1_0-2B-zhsafetensorspermissive
FactsParams2.2BSize4.49 GBFormatssafetensorsTasktext generationLicenseApache-2.0From sourcepermissive
$ fw get BAAI/Bunny-v1_0-2B-zh
# manifest sha256 e598c68ebdd8… · 4.49 GB · 17 files
$ fw verify ./Bunny-v1_0-2B-zh BAAI/Bunny-v1_0-2B-zh
From sourceHosted (signed)BAAI/Bunny-v1_0-2B-zhLast check: 2026-11-15 04:02 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Works with

Overview

Size
4.49 GB
Weights
4.48 GB (safetensors)
Parameters
2.2B
Formats
safetensors
Task
text generation
License
Apache-2.0 (permissive)
Files
17, each with a sha256
Publisher
BAAI
Added
2026-11-15
Section
alt.freeweights.text
Lineage

Original release from the publisher.

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 04:02 UTCpassed

Model card

From the publisher at commit 2beae54. Shown as plain text with links; images open at the publisher.

Model Card#

Image: Logo

📖 Technical report | 🏠 Code | 🐰 Demo

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.

Bunny-v1.0-2B-zh employs Qwen1.5-1.8B as the language model and SigLIP as the vision encoder. The model focuses on Chinese and achieves 59.5 on MMBench-CN test split.

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-2B-zh',
    torch_dtype=torch.float16, # float32 for cpu
    device_map='auto',
    trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained(
    'BAAI/Bunny-v1_0-2B-zh',
    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.

Files

17 files · 4.49 GBWeights 4.48 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 17 files with their sha256
FileSizesha256
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
README.md3.64 KB70d45b3450fcad0815ae68e28041d48b0a54461509161c7dfba941439ee807b9
added_tokens.json80 B6a475432c61f8d6154d10d28c37671a36e5717daf3d15002a988968fee54a500
config.json1.24 KB0f30f9d5384bab69884f35169a3dec1f937f9d69ee122b4c28021b7d7b3bebd0
configuration_bunny_qwen2.py8.87 KB8e781765eace1f840a4b3d68e5440581751c69c936b49554cd679025ed2408a4
generation_config.json117 B1d6d8dbeba3f540d4f3fcde84a2e20c1f4b215d10670c9547afbb37b5f59e103
icon.png812 KB3e291453e6d163cd244bbffa176aa07a13ee38a260d0a004d5e153b119cd18bb
images/example_1.png245 KB58c5c9898c5359bcf53797711e3d954c8ef529e141cb012ffc433376933839e7
images/example_2.png74.6 KBd25e79a65b225aedffdc864cfa037f2384d146e4e87a101af25ebe930660eee1
merges.txt1.67 MB455e0caaa06abffc663e9282dfe71dde07fd1991eaf24146bf08793c4dba4497
model.safetensors4.48 GB5bf0aafe50961311a26e46ab70bb1d6973e863e80158f18bc05759833755c55b
modeling_bunny_qwen2.py103 KBdd45d9d2801dfc0c4040b5bf66060026533ffdf28029b9509fa6ce541dc3b85f
special_tokens_map.json370 Bdaf48284de8f4779b1dbf20963a68180002fba2a34a5da72292380c5d9fb6af2
tokenization_bunny_qwen2.py14.3 KBa7d54fec106382d64a3e0cf0e16da8c4847020fdcce6f14d0d2ca9670421a5e9
tokenization_bunny_qwen2_fast.py5.66 KB0a3861e349af0a52973c50829df0d781c509f1304b2df1193fe45ba4d2dcf2cc
tokenizer_config.json1.19 KBf719879c16effa4d68e2d7b1eb2d209477cd4856b91bed2c1c654a7df55424e8
vocab.json3.38 MB87a257b04b17642a0688c98cd1df89c398bda4fee532d6f88b38a659ecb4ac8d
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
2beae54b51 pinned now2026-11-15 04:02 UTC17 files · 4.49 GB

Use it

$ fw get BAAI/Bunny-v1_0-2B-zh
# manifest sha256 e598c68ebdd8… · 4.49 GB · 17 files
$ fw verify ./Bunny-v1_0-2B-zh BAAI/Bunny-v1_0-2B-zh
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/BAAI/Bunny-v1_0-2B-zh.json --dir ./Bunny-v1_0-2B-zh $ python3 fw.py verify ./Bunny-v1_0-2B-zh ./BAAI__Bunny-v1_0-2B-zh.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download BAAI/Bunny-v1_0-2B-zh --revision 2beae54b51f537ff8aa22bd30a39cabaca4c41d4 --local-dir ./Bunny-v1_0-2B-zh
transformersLoad the weights in Python.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from transformers import AutoModelForCausalLM, AutoTokenizer tok = AutoTokenizer.from_pretrained("BAAI/Bunny-v1_0-2B-zh", revision="2beae54b51f537ff8aa22bd30a39cabaca4c41d4") model = AutoModelForCausalLM.from_pretrained("BAAI/Bunny-v1_0-2B-zh", revision="2beae54b51f537ff8aa22bd30a39cabaca4c41d4", device_map="auto")
vLLMServe an OpenAI-compatible API.
$ HF_ENDPOINT=https://freeweights.allternit.com vllm serve BAAI/Bunny-v1_0-2B-zh --revision 2beae54b51f537ff8aa22bd30a39cabaca4c41d4

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
README.md
Text sha256
70d45b3450fcad0815ae68e28041d48b0a54461509161c7dfba941439ee807b9
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: BAAI <huggingface.co/BAAI>Newsgroups: alt.freeweights.textSubject: Bunny-v1_0-2B-zhDate: 2026-11-15Commit: 2beae54Signed: 2DC28CC7B26A283B ✓
Upstream
BAAI/Bunny-v1_0-2B-zh
Pinned commit
2beae54b51f537ff8aa22bd30a39cabaca4c41d4
Manifest
Bunny-v1_0-2B-zh.json · .minisig
Manifest sha256
e598c68ebdd824b48a04c134abac3587ccf51d0ad09b340cdb6123f828243f5c
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 04:02 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/BAAI/Bunny-v1_0-2B-zh.json $ curl -O https://freeweights.allternit.com/manifests/BAAI/Bunny-v1_0-2B-zh.json.minisig $ minisign -Vm Bunny-v1_0-2B-zh.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

No related models in this catalog.Nothing here lists this model as its parent, and it names no parent.
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download BAAI/Bunny-v1_0-2B-zh
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. Bunny-v1_0-2B-zh.json. Provenance. Takedown history: none.
From: laion <huggingface.co/laion>Subject: a2-rl-e2egit_large-50-32B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-large-15-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-v2-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_pymethods2test-large-80-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_unitsyn-python-large-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_mix_h2_language_proportional-65-8B