Instructions to use NexaAI/OmniVLM-968M with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- llama-cpp-python
How to use NexaAI/OmniVLM-968M with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="NexaAI/OmniVLM-968M", filename="Nano-Vlm-Processor-494M-F16.gguf", )
llm.create_chat_completion( messages = "No input example has been defined for this model task." )
- Notebooks
- Google Colab
- Kaggle
- Local Apps
- llama.cpp
How to use NexaAI/OmniVLM-968M with llama.cpp:
Install from brew
brew install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama-server -hf NexaAI/OmniVLM-968M:F16 # Run inference directly in the terminal: llama-cli -hf NexaAI/OmniVLM-968M:F16
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama-server -hf NexaAI/OmniVLM-968M:F16 # Run inference directly in the terminal: llama-cli -hf NexaAI/OmniVLM-968M: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 NexaAI/OmniVLM-968M:F16 # Run inference directly in the terminal: ./llama-cli -hf NexaAI/OmniVLM-968M: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 NexaAI/OmniVLM-968M:F16 # Run inference directly in the terminal: ./build/bin/llama-cli -hf NexaAI/OmniVLM-968M:F16
Use Docker
docker model run hf.co/NexaAI/OmniVLM-968M:F16
- LM Studio
- Jan
- Ollama
How to use NexaAI/OmniVLM-968M with Ollama:
ollama run hf.co/NexaAI/OmniVLM-968M:F16
- Unsloth Studio new
How to use NexaAI/OmniVLM-968M with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for NexaAI/OmniVLM-968M to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for NexaAI/OmniVLM-968M to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for NexaAI/OmniVLM-968M to start chatting
- Pi new
How to use NexaAI/OmniVLM-968M with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama-server -hf NexaAI/OmniVLM-968M:F16
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "NexaAI/OmniVLM-968M:F16" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use NexaAI/OmniVLM-968M with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama-server -hf NexaAI/OmniVLM-968M:F16
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default NexaAI/OmniVLM-968M:F16
Run Hermes
hermes
- Docker Model Runner
How to use NexaAI/OmniVLM-968M with Docker Model Runner:
docker model run hf.co/NexaAI/OmniVLM-968M:F16
- Lemonade
How to use NexaAI/OmniVLM-968M with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull NexaAI/OmniVLM-968M:F16
Run and chat with the model
lemonade run user.OmniVLM-968M-F16
List all available models
lemonade list
How do you encode an image in only 81 tokens?
How do you encode an image in only 81 tokens?
The trick is inside the projector part, we use reshape mechanism to convert 729 image tokens into 81 tokens.
i saw from your blog post, that you do [batch, 729, hidden_size] -> [batch, 81, hidden_size9] to image features. Is that done before projection, so that later projection layer is [hidden_size9, hidden_size] to get to LLM embedding tomain?
Yes, that is right.
i saw from your blog post, that you do [batch, 729, hidden_size] -> [batch, 81, hidden_size9] to image features. Is that done before projection, so that later projection layer is [hidden_size9, hidden_size] to get to LLM embedding tomain?
Yes, that is right
Is that specifically because of the nature of QWEN2 LLM, or do you think such strategy will work with other LLM? Maybe you had experiments?