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
9x token reduction
Great work guys!! I wanted to clarify about the token reduction. Let’s say the hidden size of the vision encoder is 1000. After the 9x reduction of the patches, the new hidden size is now 9000. Does this mean the projection layer then projects from 9000 to 2560 (assuming this is the embed size of the language model)?
If this is the case, that’s a steep reduction, did you do anything else to make it work?
Thanks! We especially train the projector longer to accommodate this. And we also do hyperparameters search, 9X reduction is chosen based on experimental result. If you do this more aggressively like 81X reduction, the result becomes much worse. We will disclose more detail in some kind of paper / technical report soon.