# Models

> The models Kjarni can download by name, the architectures it implements, and how embedding models truncate long text.

Source: https://kjarni.ai/docs/models/ (published 2026-10-30)

The registry below is what `kjarni model list` shows, and the names are what every binding
accepts. Chat models are also available as GGUF downloads, which are smaller.

| Task | Model | Parameters |
|---|---|---|
| Embeddings | `minilm-l6-v2` (default) | 22M |
| | `mpnet-base-v2` | 110M |
| | `nomic-embed-text` | 137M |
| | `bge-m3` (multilingual) | 567M |
| | `distilbert-base` | 66M |
| Reranking | `minilm-l6-v2-cross-encoder` | 22M |
| Classification | `distilbert-sentiment` (positive/negative) | 66M |
| | `roberta-sentiment` (negative/neutral/positive) | 125M |
| | `bert-sentiment-multilingual` (1 to 5 stars) | 168M |
| | `toxic-bert` (six toxicity labels) | 110M |
| | `roberta-emotions` (28 emotions, multi-label) | 125M |
| | `distilroberta-emotion` (7 emotions) | 82M |
| Chat | `qwen2.5-0.5b-instruct` | 0.5B |
| | `qwen2.5-1.5b-instruct` | 1.5B |
| | `llama3.2-1b-instruct` | 1.2B |
| | `llama3.2-3b-instruct` | 3.2B |
| | `phi3.5-mini-instruct` | 3.8B |
| | `mistral-7b-instruct` | 7.2B |
| | `llama3.1-8b-instruct` | 8.0B |
| | `deepseek-r1-8b` | 8.0B |
| Text generation | `distilgpt2`, `gpt2` | 82M, 117M |
| Summarization | `distilbart-cnn`, `bart-large-cnn` | 306M, 406M |
| Instruction / translation | `flan-t5-base`, `flan-t5-large` | 250M, 780M |
| Speech-to-text | `whisper-small`, `whisper-large-v3` | 244M, 1.6B |
| Image and text embeddings | `clip-vit-base-32` | 151M |

The engine implements these architecture families: BERT, DistilBERT, RoBERTa, XLM-RoBERTa,
MPNet and Nomic-BERT encoders; Llama, Qwen 2, Phi 3, Mistral and GPT-2 decoders; T5, BART
and Whisper encoder-decoders; and CLIP. A model outside the registry can be loaded from a
local folder (`model_path` in the binding configs, `--model-path` on the command line)
provided it uses one of those architectures. Weights load from HuggingFace safetensors or
GGUF as published; there is no conversion step.

Embedding models truncate at the length their sentence-transformers config specifies, the
same as the Python reference: 256 tokens for `minilm-l6-v2` and 384 for `mpnet-base-v2`.
[The 256-token limit](/blog/embedding-truncation/) explains what that means for chunking.
