Text Generation
MLX
Safetensors
k2_horizon
apple-silicon
oQ
conversational
custom_code
4-bit precision
Instructions to use mlx-community/K2-Horizon-MoVA-36B-A4B-oQ4e with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use mlx-community/K2-Horizon-MoVA-36B-A4B-oQ4e with MLX:
# Make sure mlx-lm is installed # pip install --upgrade mlx-lm # Generate text with mlx-lm from mlx_lm import load, generate model, tokenizer = load("mlx-community/K2-Horizon-MoVA-36B-A4B-oQ4e") prompt = "Write a story about Einstein" messages = [{"role": "user", "content": prompt}] prompt = tokenizer.apply_chat_template( messages, add_generation_prompt=True ) text = generate(model, tokenizer, prompt=prompt, verbose=True) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use mlx-community/K2-Horizon-MoVA-36B-A4B-oQ4e with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "mlx-community/K2-Horizon-MoVA-36B-A4B-oQ4e"
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "mlx-community/K2-Horizon-MoVA-36B-A4B-oQ4e" } ] } } }Run Pi
# Start Pi in your project directory: pi
- MLX LM
How to use mlx-community/K2-Horizon-MoVA-36B-A4B-oQ4e with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Interactive chat REPL mlx_lm.chat --model "mlx-community/K2-Horizon-MoVA-36B-A4B-oQ4e"
Run an OpenAI-compatible server
# Install MLX LM uv tool install mlx-lm # Start the server mlx_lm.server --model "mlx-community/K2-Horizon-MoVA-36B-A4B-oQ4e" # Calling the OpenAI-compatible server with curl curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "mlx-community/K2-Horizon-MoVA-36B-A4B-oQ4e", "messages": [ {"role": "user", "content": "Hello"} ] }' - Hermes Agent
How to use mlx-community/K2-Horizon-MoVA-36B-A4B-oQ4e with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "mlx-community/K2-Horizon-MoVA-36B-A4B-oQ4e"
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 mlx-community/K2-Horizon-MoVA-36B-A4B-oQ4e
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use mlx-community/K2-Horizon-MoVA-36B-A4B-oQ4e with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "mlx-community/K2-Horizon-MoVA-36B-A4B-oQ4e"
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "mlx-community/K2-Horizon-MoVA-36B-A4B-oQ4e" \ --custom-provider-id mlx-lm \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
Add files using upload-large-folder tool
Browse files- README_MLX-6bit.md +91 -0
- README_MLX-8bit.md +91 -0
- README_oQ4e.md +91 -0
README_MLX-6bit.md
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
base_model: IFM/K2-Horizon-MoVA-36B-A4B
|
| 3 |
+
tags:
|
| 4 |
+
- mlx
|
| 5 |
+
- apple-silicon
|
| 6 |
+
- text-generation
|
| 7 |
+
- oQ
|
| 8 |
+
license: apache-2.0
|
| 9 |
+
---
|
| 10 |
+
|
| 11 |
+
# K2-Horizon-MoVA-36B-A4B MLX-6bit
|
| 12 |
+
|
| 13 |
+
6-bit uniform quantization conversion of [IFM/K2-Horizon-MoVA-36B-A4B](https://huggingface.co/IFM/K2-Horizon-MoVA-36B-A4B), a sparse Mixture-of-Experts model with Mixture-of-Values attention (36B total / 4B active parameters, 512K context).
|
| 14 |
+
|
| 15 |
+
**Upstream model:** [IFM/K2-Horizon-MoVA-36B-A4B](https://huggingface.co/IFM/K2-Horizon-MoVA-36B-A4B) by the IFM Team, released under Apache-2.0.
|
| 16 |
+
|
| 17 |
+
**Conversion:** Quantized to MLX format using [Hermes Agent](https://hermes-agent.nousresearch.com) with `mlx-lm` and `oMLX`.
|
| 18 |
+
|
| 19 |
+
## Quickstart
|
| 20 |
+
|
| 21 |
+
```bash
|
| 22 |
+
pip install -U mlx-lm
|
| 23 |
+
|
| 24 |
+
python3 -m mlx_lm.generate --model hermitdave/K2-Horizon-MoVA-36B-A4B-MLX-6bit --prompt "Explain why long-context evaluation is difficult." --max-tokens 512 --temp 1.0 --top-p 0.95
|
| 25 |
+
```
|
| 26 |
+
|
| 27 |
+
## Reasoning
|
| 28 |
+
|
| 29 |
+
K2-Horizon is a reasoning model. Always use `reasoning_effort="high"` for best results:
|
| 30 |
+
|
| 31 |
+
```python
|
| 32 |
+
from openai import OpenAI
|
| 33 |
+
|
| 34 |
+
client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")
|
| 35 |
+
response = client.chat.completions.create(
|
| 36 |
+
model="hermitdave/K2-Horizon-MoVA-36B-A4B-MLX-6bit",
|
| 37 |
+
messages=[{"role": "user", "content": "Explain quantum entanglement."}],
|
| 38 |
+
extra_body={"chat_template_kwargs": {"reasoning_effort": "high"}},
|
| 39 |
+
)
|
| 40 |
+
print("Reasoning:", getattr(response.choices[0].message, "reasoning_content", None))
|
| 41 |
+
print("Answer:", response.choices[0].message.content)
|
| 42 |
+
```
|
| 43 |
+
|
| 44 |
+
## Benchmark Results
|
| 45 |
+
|
| 46 |
+
| Benchmark | K2-Horizon-MoVA-36B-A4B |
|
| 47 |
+
|-----------|------------------------|
|
| 48 |
+
| tau3-Banking (Agentic tool use) | **26.8** |
|
| 49 |
+
| Terminal-Bench 2.1 (Agentic terminal use) | **58.6** |
|
| 50 |
+
| GPQA Diamond (Graduate-level science QA) | 80.8 |
|
| 51 |
+
| AA-LCR (Long-context reasoning) | 66.3 |
|
| 52 |
+
|
| 53 |
+
Scores in %. See [model card](https://huggingface.co/IFM/K2-Horizon-MoVA-36B-A4B) for full results.
|
| 54 |
+
|
| 55 |
+
## oMLX Patch
|
| 56 |
+
|
| 57 |
+
K2-Horizon requires oMLX v0.6.4+ with the [K2-Horizon support patch (PR #3441)](https://github.com/jundot/omlx/pull/3441). This patch adds:
|
| 58 |
+
|
| 59 |
+
- `k2_horizon` model type support
|
| 60 |
+
- Reasoning content handling (`<ifm|think>` tags)
|
| 61 |
+
- Tool call parsing (plain text and XML formats)
|
| 62 |
+
- Multi-turn conversation support
|
| 63 |
+
|
| 64 |
+
Without this patch, oMLX will refuse to load K2-Horizon models with `ValueError: Model type k2_horizon not supported`.
|
| 65 |
+
|
| 66 |
+
## Chat Template
|
| 67 |
+
|
| 68 |
+
K2-Horizon uses IFM's custom chat template with reasoning and tool calling support. Key tags:
|
| 69 |
+
|
| 70 |
+
| Tag | Purpose |
|
| 71 |
+
|-----|---------|
|
| 72 |
+
| `<ifm\|think>`, `<ifm\|think_fast>`, `<ifm\|think_faster>` | Thinking blocks |
|
| 73 |
+
| `<\|ifm\|im_start|>`, `<\|ifm\|im_end\|>` | Message delimiters |
|
| 74 |
+
| `<ifm\|tool_call>`, `<ifm\|arg_key>`, `<ifm\|arg_value>` | Tool call structure |
|
| 75 |
+
|
| 76 |
+
All tags are automatically stripped by oMLX before responses reach users.
|
| 77 |
+
|
| 78 |
+
## Citation
|
| 79 |
+
|
| 80 |
+
```bibtex
|
| 81 |
+
@misc{k2horizon2026,
|
| 82 |
+
title = {Introducing K2 Horizon: Frontier Performance, Radically Open},
|
| 83 |
+
author = {{IFM Team}},
|
| 84 |
+
year = {2026},
|
| 85 |
+
url = {https://ifm.ai/blog/k2/},
|
| 86 |
+
}
|
| 87 |
+
```
|
| 88 |
+
|
| 89 |
+
## License
|
| 90 |
+
|
| 91 |
+
Apache-2.0 (same as upstream).
|
README_MLX-8bit.md
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
base_model: IFM/K2-Horizon-MoVA-36B-A4B
|
| 3 |
+
tags:
|
| 4 |
+
- mlx
|
| 5 |
+
- apple-silicon
|
| 6 |
+
- text-generation
|
| 7 |
+
- oQ
|
| 8 |
+
license: apache-2.0
|
| 9 |
+
---
|
| 10 |
+
|
| 11 |
+
# K2-Horizon-MoVA-36B-A4B MLX-8bit
|
| 12 |
+
|
| 13 |
+
8-bit uniform quantization conversion of [IFM/K2-Horizon-MoVA-36B-A4B](https://huggingface.co/IFM/K2-Horizon-MoVA-36B-A4B), a sparse Mixture-of-Experts model with Mixture-of-Values attention (36B total / 4B active parameters, 512K context).
|
| 14 |
+
|
| 15 |
+
**Upstream model:** [IFM/K2-Horizon-MoVA-36B-A4B](https://huggingface.co/IFM/K2-Horizon-MoVA-36B-A4B) by the IFM Team, released under Apache-2.0.
|
| 16 |
+
|
| 17 |
+
**Conversion:** Quantized to MLX format using [Hermes Agent](https://hermes-agent.nousresearch.com) with `mlx-lm` and `oMLX`.
|
| 18 |
+
|
| 19 |
+
## Quickstart
|
| 20 |
+
|
| 21 |
+
```bash
|
| 22 |
+
pip install -U mlx-lm
|
| 23 |
+
|
| 24 |
+
python3 -m mlx_lm.generate --model hermitdave/K2-Horizon-MoVA-36B-A4B-MLX-8bit --prompt "Explain why long-context evaluation is difficult." --max-tokens 512 --temp 1.0 --top-p 0.95
|
| 25 |
+
```
|
| 26 |
+
|
| 27 |
+
## Reasoning
|
| 28 |
+
|
| 29 |
+
K2-Horizon is a reasoning model. Always use `reasoning_effort="high"` for best results:
|
| 30 |
+
|
| 31 |
+
```python
|
| 32 |
+
from openai import OpenAI
|
| 33 |
+
|
| 34 |
+
client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")
|
| 35 |
+
response = client.chat.completions.create(
|
| 36 |
+
model="hermitdave/K2-Horizon-MoVA-36B-A4B-MLX-8bit",
|
| 37 |
+
messages=[{"role": "user", "content": "Explain quantum entanglement."}],
|
| 38 |
+
extra_body={"chat_template_kwargs": {"reasoning_effort": "high"}},
|
| 39 |
+
)
|
| 40 |
+
print("Reasoning:", getattr(response.choices[0].message, "reasoning_content", None))
|
| 41 |
+
print("Answer:", response.choices[0].message.content)
|
| 42 |
+
```
|
| 43 |
+
|
| 44 |
+
## Benchmark Results
|
| 45 |
+
|
| 46 |
+
| Benchmark | K2-Horizon-MoVA-36B-A4B |
|
| 47 |
+
|-----------|------------------------|
|
| 48 |
+
| tau3-Banking (Agentic tool use) | **26.8** |
|
| 49 |
+
| Terminal-Bench 2.1 (Agentic terminal use) | **58.6** |
|
| 50 |
+
| GPQA Diamond (Graduate-level science QA) | 80.8 |
|
| 51 |
+
| AA-LCR (Long-context reasoning) | 66.3 |
|
| 52 |
+
|
| 53 |
+
Scores in %. See [model card](https://huggingface.co/IFM/K2-Horizon-MoVA-36B-A4B) for full results.
|
| 54 |
+
|
| 55 |
+
## oMLX Patch
|
| 56 |
+
|
| 57 |
+
K2-Horizon requires oMLX v0.6.4+ with the [K2-Horizon support patch (PR #3441)](https://github.com/jundot/omlx/pull/3441). This patch adds:
|
| 58 |
+
|
| 59 |
+
- `k2_horizon` model type support
|
| 60 |
+
- Reasoning content handling (`<ifm|think>` tags)
|
| 61 |
+
- Tool call parsing (plain text and XML formats)
|
| 62 |
+
- Multi-turn conversation support
|
| 63 |
+
|
| 64 |
+
Without this patch, oMLX will refuse to load K2-Horizon models with `ValueError: Model type k2_horizon not supported`.
|
| 65 |
+
|
| 66 |
+
## Chat Template
|
| 67 |
+
|
| 68 |
+
K2-Horizon uses IFM's custom chat template with reasoning and tool calling support. Key tags:
|
| 69 |
+
|
| 70 |
+
| Tag | Purpose |
|
| 71 |
+
|-----|---------|
|
| 72 |
+
| `<ifm\|think>`, `<ifm\|think_fast>`, `<ifm\|think_faster>` | Thinking blocks |
|
| 73 |
+
| `<\|ifm\|im_start|>`, `<\|ifm\|im_end\|>` | Message delimiters |
|
| 74 |
+
| `<ifm\|tool_call>`, `<ifm\|arg_key>`, `<ifm\|arg_value>` | Tool call structure |
|
| 75 |
+
|
| 76 |
+
All tags are automatically stripped by oMLX before responses reach users.
|
| 77 |
+
|
| 78 |
+
## Citation
|
| 79 |
+
|
| 80 |
+
```bibtex
|
| 81 |
+
@misc{k2horizon2026,
|
| 82 |
+
title = {Introducing K2 Horizon: Frontier Performance, Radically Open},
|
| 83 |
+
author = {{IFM Team}},
|
| 84 |
+
year = {2026},
|
| 85 |
+
url = {https://ifm.ai/blog/k2/},
|
| 86 |
+
}
|
| 87 |
+
```
|
| 88 |
+
|
| 89 |
+
## License
|
| 90 |
+
|
| 91 |
+
Apache-2.0 (same as upstream).
|
README_oQ4e.md
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
base_model: IFM/K2-Horizon-MoVA-36B-A4B
|
| 3 |
+
tags:
|
| 4 |
+
- mlx
|
| 5 |
+
- apple-silicon
|
| 6 |
+
- text-generation
|
| 7 |
+
- oQ
|
| 8 |
+
license: apache-2.0
|
| 9 |
+
---
|
| 10 |
+
|
| 11 |
+
# K2-Horizon-MoVA-36B-A4B oQ4e
|
| 12 |
+
|
| 13 |
+
oQ4e (imatrix-enhanced mixed-precision 4-bit) conversion of [IFM/K2-Horizon-MoVA-36B-A4B](https://huggingface.co/IFM/K2-Horizon-MoVA-36B-A4B), a sparse Mixture-of-Experts model with Mixture-of-Values attention (36B total / 4B active parameters, 512K context).
|
| 14 |
+
|
| 15 |
+
**Upstream model:** [IFM/K2-Horizon-MoVA-36B-A4B](https://huggingface.co/IFM/K2-Horizon-MoVA-36B-A4B) by the IFM Team, released under Apache-2.0.
|
| 16 |
+
|
| 17 |
+
**Conversion:** Quantized to MLX format using [Hermes Agent](https://hermes-agent.nousresearch.com) with `mlx-lm` and `oMLX`.
|
| 18 |
+
|
| 19 |
+
## Quickstart
|
| 20 |
+
|
| 21 |
+
```bash
|
| 22 |
+
pip install -U mlx-lm
|
| 23 |
+
|
| 24 |
+
python3 -m mlx_lm.generate --model hermitdave/K2-Horizon-MoVA-36B-A4B-oQ4e --prompt "Explain why long-context evaluation is difficult." --max-tokens 512 --temp 1.0 --top-p 0.95
|
| 25 |
+
```
|
| 26 |
+
|
| 27 |
+
## Reasoning
|
| 28 |
+
|
| 29 |
+
K2-Horizon is a reasoning model. Always use `reasoning_effort="high"` for best results:
|
| 30 |
+
|
| 31 |
+
```python
|
| 32 |
+
from openai import OpenAI
|
| 33 |
+
|
| 34 |
+
client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")
|
| 35 |
+
response = client.chat.completions.create(
|
| 36 |
+
model="hermitdave/K2-Horizon-MoVA-36B-A4B-oQ4e",
|
| 37 |
+
messages=[{"role": "user", "content": "Explain quantum entanglement."}],
|
| 38 |
+
extra_body={"chat_template_kwargs": {"reasoning_effort": "high"}},
|
| 39 |
+
)
|
| 40 |
+
print("Reasoning:", getattr(response.choices[0].message, "reasoning_content", None))
|
| 41 |
+
print("Answer:", response.choices[0].message.content)
|
| 42 |
+
```
|
| 43 |
+
|
| 44 |
+
## Benchmark Results
|
| 45 |
+
|
| 46 |
+
| Benchmark | K2-Horizon-MoVA-36B-A4B |
|
| 47 |
+
|-----------|------------------------|
|
| 48 |
+
| tau3-Banking (Agentic tool use) | **26.8** |
|
| 49 |
+
| Terminal-Bench 2.1 (Agentic terminal use) | **58.6** |
|
| 50 |
+
| GPQA Diamond (Graduate-level science QA) | 80.8 |
|
| 51 |
+
| AA-LCR (Long-context reasoning) | 66.3 |
|
| 52 |
+
|
| 53 |
+
Scores in %. See [model card](https://huggingface.co/IFM/K2-Horizon-MoVA-36B-A4B) for full results.
|
| 54 |
+
|
| 55 |
+
## oMLX Patch
|
| 56 |
+
|
| 57 |
+
K2-Horizon requires oMLX v0.6.4+ with the [K2-Horizon support patch (PR #3441)](https://github.com/jundot/omlx/pull/3441). This patch adds:
|
| 58 |
+
|
| 59 |
+
- `k2_horizon` model type support
|
| 60 |
+
- Reasoning content handling (`<ifm|think>` tags)
|
| 61 |
+
- Tool call parsing (plain text and XML formats)
|
| 62 |
+
- Multi-turn conversation support
|
| 63 |
+
|
| 64 |
+
Without this patch, oMLX will refuse to load K2-Horizon models with `ValueError: Model type k2_horizon not supported`.
|
| 65 |
+
|
| 66 |
+
## Chat Template
|
| 67 |
+
|
| 68 |
+
K2-Horizon uses IFM's custom chat template with reasoning and tool calling support. Key tags:
|
| 69 |
+
|
| 70 |
+
| Tag | Purpose |
|
| 71 |
+
|-----|---------|
|
| 72 |
+
| `<ifm\|think>`, `<ifm\|think_fast>`, `<ifm\|think_faster>` | Thinking blocks |
|
| 73 |
+
| `<\|ifm\|im_start|>`, `<\|ifm\|im_end\|>` | Message delimiters |
|
| 74 |
+
| `<ifm\|tool_call>`, `<ifm\|arg_key>`, `<ifm\|arg_value>` | Tool call structure |
|
| 75 |
+
|
| 76 |
+
All tags are automatically stripped by oMLX before responses reach users.
|
| 77 |
+
|
| 78 |
+
## Citation
|
| 79 |
+
|
| 80 |
+
```bibtex
|
| 81 |
+
@misc{k2horizon2026,
|
| 82 |
+
title = {Introducing K2 Horizon: Frontier Performance, Radically Open},
|
| 83 |
+
author = {{IFM Team}},
|
| 84 |
+
year = {2026},
|
| 85 |
+
url = {https://ifm.ai/blog/k2/},
|
| 86 |
+
}
|
| 87 |
+
```
|
| 88 |
+
|
| 89 |
+
## License
|
| 90 |
+
|
| 91 |
+
Apache-2.0 (same as upstream).
|