How to use from
llama.cpp
Install from brew
brew install llama.cpp
# Start a local OpenAI-compatible server with a web UI:
llama-server -hf ThomasSimonini/Moondream2-streaming:F16
# Run inference directly in the terminal:
llama-cli -hf ThomasSimonini/Moondream2-streaming:F16
Install from WinGet (Windows)
winget install llama.cpp
# Start a local OpenAI-compatible server with a web UI:
llama-server -hf ThomasSimonini/Moondream2-streaming:F16
# Run inference directly in the terminal:
llama-cli -hf ThomasSimonini/Moondream2-streaming:F16
Use pre-built binary
# Download pre-built binary from:
# https://github.com/ggerganov/llama.cpp/releases
# Start a local OpenAI-compatible server with a web UI:
./llama-server -hf ThomasSimonini/Moondream2-streaming:F16
# Run inference directly in the terminal:
./llama-cli -hf ThomasSimonini/Moondream2-streaming:F16
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
cmake -B build
cmake --build build -j --target llama-server llama-cli
# Start a local OpenAI-compatible server with a web UI:
./build/bin/llama-server -hf ThomasSimonini/Moondream2-streaming:F16
# Run inference directly in the terminal:
./build/bin/llama-cli -hf ThomasSimonini/Moondream2-streaming:F16
Use Docker
docker model run hf.co/ThomasSimonini/Moondream2-streaming:F16
Quick Links

moondream2 is a small vision language model designed to run efficiently on edge devices. Check out the GitHub repository for details, or try it out on the Hugging Face Space!

Benchmarks

Release VQAv2 GQA TextVQA DocVQA TallyQA
(simple/full)
POPE
(rand/pop/adv)
2024-07-23 (latest) 79.4 64.9 60.2 61.9 82.0 / 76.8 91.3 / 89.7 / 86.9
2024-05-20 79.4 63.1 57.2 30.5 82.1 / 76.6 91.5 / 89.6 / 86.2
2024-05-08 79.0 62.7 53.1 30.5 81.6 / 76.1 90.6 / 88.3 / 85.0
2024-04-02 77.7 61.7 49.7 24.3 80.1 / 74.2 -
2024-03-13 76.8 60.6 46.4 22.2 79.6 / 73.3 -
2024-03-06 75.4 59.8 43.1 20.9 79.5 / 73.2 -
2024-03-04 74.2 58.5 36.4 - - -

Usage

pip install transformers einops
from transformers import AutoModelForCausalLM, AutoTokenizer
from PIL import Image

model_id = "vikhyatk/moondream2"
revision = "2024-07-23"
model = AutoModelForCausalLM.from_pretrained(
    model_id, trust_remote_code=True, revision=revision
)
tokenizer = AutoTokenizer.from_pretrained(model_id, revision=revision)

image = Image.open('<IMAGE_PATH>')
enc_image = model.encode_image(image)
print(model.answer_question(enc_image, "Describe this image.", tokenizer))

The model is updated regularly, so we recommend pinning the model version to a specific release as shown above.

Downloads last month
499
GGUF
Model size
1B params
Architecture
phi2
Hardware compatibility
Log In to add your hardware

16-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support