Image-Text-to-Text
Transformers
Safetensors
qwen3_5_text
qwen3_5
text-generation
conversational
Eval Results
flm
fastflowlm
q4nx
npu2
Instructions to use Atomic-Germ/Ornith-1.0-9B-NPU2 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Atomic-Germ/Ornith-1.0-9B-NPU2 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="Atomic-Germ/Ornith-1.0-9B-NPU2") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForMultimodalLM tokenizer = AutoTokenizer.from_pretrained("Atomic-Germ/Ornith-1.0-9B-NPU2") model = AutoModelForMultimodalLM.from_pretrained("Atomic-Germ/Ornith-1.0-9B-NPU2", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Atomic-Germ/Ornith-1.0-9B-NPU2 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Atomic-Germ/Ornith-1.0-9B-NPU2" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Atomic-Germ/Ornith-1.0-9B-NPU2", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/Atomic-Germ/Ornith-1.0-9B-NPU2
- SGLang
How to use Atomic-Germ/Ornith-1.0-9B-NPU2 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "Atomic-Germ/Ornith-1.0-9B-NPU2" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Atomic-Germ/Ornith-1.0-9B-NPU2", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "Atomic-Germ/Ornith-1.0-9B-NPU2" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Atomic-Germ/Ornith-1.0-9B-NPU2", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use Atomic-Germ/Ornith-1.0-9B-NPU2 with Docker Model Runner:
docker model run hf.co/Atomic-Germ/Ornith-1.0-9B-NPU2
|
Download README.md from Atomic-Germ/Ornith-1.0-9B-NPU2: direct link, hf CLI and curl.
- Browser
- Download file 3.1 kB
-
https://huggingface.co/Atomic-Germ/Ornith-1.0-9B-NPU2/resolve/a41c53a1f4cba8e8aef03cf54e3a3d76a6f589d7/README.md
- Command line
-
hf download hf://Atomic-Germ/Ornith-1.0-9B-NPU2@a41c53a1f4cba8e8aef03cf54e3a3d76a6f589d7/README.md
-
curl -L -o README.md https://huggingface.co/Atomic-Germ/Ornith-1.0-9B-NPU2/resolve/a41c53a1f4cba8e8aef03cf54e3a3d76a6f589d7/README.md
3.1 kB
| license: other | |
| language: | |
| - en | |
| pipeline_tag: text-generation | |
| tags: | |
| - fastflowlm | |
| - q4nx | |
| - npu | |
| - qwen3.5 | |
| - 9b | |
| - minicpm | |
| base_model: | |
| - ornith-ai/Ornith-1.0-9B | |
| base_model_relation: quantized | |
| quantized_by: Atomic-Germ | |
| library_name: q4nx | |
| # Ornith-1.0-9B - Q4NX for FastFlowLM (AMD Ryzen AI XDNA2) | |
| Ornith-1.0-9B is converted to Q4NX for hardware-accelerated inference with FastFlowLM on AMD Ryzen AI NPUs. | |
| ## What is Q4NX? | |
| Q4NX is FastFlowLM's native packed-quantization format - a rearranged Q4_1 layout tuned for the NPU matrix engine's tile sizes and memory access patterns. It is **not** a GGUF file and it does not run on llama.cpp or Ollama; it is meant exclusively for the [FastFlowLM](https://fastflowlm.com) engine on AMD Ryzen AI NPUs. | |
| ## Requirements | |
| - FastFlowLM >= 0.9.46 (`flm` CLI) | |
| - AMD Ryzen AI processor with **XDNA2 (NPU2)** - Strix Point / Ryzen AI 300 | |
| series or later | |
| - Linux with the XRT NPU stack installed | |
| - ~15 GB of unified system memory (Q4NX weights + activations + KV cache) | |
| ## Files | |
| | File | Purpose | | |
| |---|---| | |
| | model.q4nx | Quantized Q4NX text weights | | |
| | config.json | FastFlowLM model configuration | | |
| | tokenizer.json | Tokenizer | | |
| | tokenizer_config.json | Special tokens and chat template | | |
| | chat_template.jinja | Chat template (optional) | | |
| | flm-add.py | Installer script - registers this model with FastFlowLM | | |
| ## Install and run | |
| This repository works with `flm-add`, a small installer that copies the model | |
| into the FastFlowLM user directory and registers the tag `minicpm4.6:0.8b`. It never | |
| modifies the system FastFlowLM install. | |
| `pip install flm-add` or `uv tool install flm-add` | |
| ```bash | |
| uv tool install flm-add | |
| flm-add Atomic-Germ/Ornith-1.0-9B-NPU2 --family qwen3.5 | |
| FLM_XCLBIN_PATH="$HOME/.config/flm FLM_CONFIG_PATH="$HOME/.config/flm/model_list.json flm run ornith:9b | |
| ``` | |
| ## Kernels | |
| FastFlowLM's NPU kernels (xclbins) are closed source and are not shipped in this repository. This model uses the **`qwen3.5`** engine family and is shape-identical to the official **`qwen3.5:9b`** model (`Qwen3.5-9B-NPU2`). Point the runtime's xclbin path at the matching `xclbins` directory (or ship your own) before running. | |
| ## Serve (OpenAI-compatible) | |
| ```bash | |
| flm serve ornith:9b --port 8080 | |
| ``` | |
| ```bash | |
| curl http://127.0.0.1:8080/v1/chat/completions \ | |
| -H 'Content-Type: application/json' \ | |
| -d '{"model":"ornith:9b","messages":[{"role":"user","content":"Hello!"}],"max_tokens":256}' | |
| ``` | |
| ## Model | |
| - Registry tag: `ornith:9b` | |
| - Engine family: `qwen3.5` | |
| - Kernel source: official `qwen3.5:9b` (`Qwen3.5-9B-NPU2`) | |
| - Context length: 262,144 tokens (from config) | |
| - Hidden size: 4096 | |
| - Layers: 32 | |
| - Intermediate size: 12288 | |
| - Vocabulary: 248320 | |
| - `model.q4nx` size: 7.11 GB | |
| - Base model: [ornith-ai/Ornith-1.0-9B](https://huggingface.co/ornith-ai/Ornith-1.0-9B) | |
| - License: other | |
| ## Original model card | |
| See the upstream model card for training details, benchmarks, and upstream | |
| usage. This repository only contains the Q4NX conversion for FastFlowLM. | |
| - Upstream card: [ornith-ai/Ornith-1.0-9B](https://huggingface.co/ornith-ai/Ornith-1.0-9B) | |