Instructions to use itsZyn/ZynDwarf-1.1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use itsZyn/ZynDwarf-1.1 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="itsZyn/ZynDwarf-1.1") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("itsZyn/ZynDwarf-1.1") model = AutoModelForCausalLM.from_pretrained("itsZyn/ZynDwarf-1.1", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] 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=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use itsZyn/ZynDwarf-1.1 with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf itsZyn/ZynDwarf-1.1:Q4_K_M # Run inference directly in the terminal: llama cli -hf itsZyn/ZynDwarf-1.1:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf itsZyn/ZynDwarf-1.1:Q4_K_M # Run inference directly in the terminal: llama cli -hf itsZyn/ZynDwarf-1.1:Q4_K_M
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 itsZyn/ZynDwarf-1.1:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf itsZyn/ZynDwarf-1.1:Q4_K_M
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 itsZyn/ZynDwarf-1.1:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf itsZyn/ZynDwarf-1.1:Q4_K_M
Use Docker
docker model run hf.co/itsZyn/ZynDwarf-1.1:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use itsZyn/ZynDwarf-1.1 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "itsZyn/ZynDwarf-1.1" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "itsZyn/ZynDwarf-1.1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/itsZyn/ZynDwarf-1.1:Q4_K_M
- SGLang
How to use itsZyn/ZynDwarf-1.1 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 "itsZyn/ZynDwarf-1.1" \ --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": "itsZyn/ZynDwarf-1.1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'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 "itsZyn/ZynDwarf-1.1" \ --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": "itsZyn/ZynDwarf-1.1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Ollama
How to use itsZyn/ZynDwarf-1.1 with Ollama:
ollama run hf.co/itsZyn/ZynDwarf-1.1:Q4_K_M
- Unsloth Desktop
- Pi
How to use itsZyn/ZynDwarf-1.1 with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf itsZyn/ZynDwarf-1.1:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "itsZyn/ZynDwarf-1.1:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use itsZyn/ZynDwarf-1.1 with Docker Model Runner:
docker model run hf.co/itsZyn/ZynDwarf-1.1:Q4_K_M
- Lemonade
How to use itsZyn/ZynDwarf-1.1 with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull itsZyn/ZynDwarf-1.1:Q4_K_M
Run and chat with the model
lemonade run user.ZynDwarf-1.1-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use itsZyn/ZynDwarf-1.1 with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf itsZyn/ZynDwarf-1.1:Q4_K_M
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 itsZyn/ZynDwarf-1.1:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use itsZyn/ZynDwarf-1.1 with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf itsZyn/ZynDwarf-1.1:Q4_K_M
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 "itsZyn/ZynDwarf-1.1:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
- ZynDwarf-1.1
- Agent and tool-use support
- Local evaluation
- Real CPU throughput test
- Comparison with other small models
- Broader upstream comparison
- Why the comparison matters
- Training details
- Installation: Transformers
- Installation: GGUF / llama.cpp
- Installation: Ollama
- GGUF files
- Checksums
- Intended use
- Not intended for
- Known limitations
- Evaluation philosophy
- Reproducibility
- Credits
- Citation
- Release status
ZynDwarf-1.1
ZynDwarf-1.1 is a compact general-purpose conversational and programming assistant derived from Liquid AI's LFM2.5-350M and adapted by Zyn Models / itsZyn for local inference and agent-oriented workflows.
The release is intentionally small: approximately 354.5M parameters, with Transformers/Safetensors weights and two GGUF distributions for CPU/local inference:
ZynDwarf-1.1-f16.gguf- highest-fidelity GGUF release.ZynDwarf-1.1-Q4_K_M.gguf- compact 4-bit release for lower-memory devices.
The model is designed for short-to-medium conversational turns, programming assistance, structured responses, planning, and tool-oriented agent loops. It is not intended to replace larger models for knowledge-intensive research, difficult mathematics, long autonomous tasks, or high-stakes decisions.
Important: the model's architecture supports a 128K-token maximum position length, but this release was trained with a 768-token training sequence cap. A 128K context window therefore must not be interpreted as a guarantee of 128K-token quality or practical inference on low-memory hardware.
Model at a glance
| Property | ZynDwarf-1.1 |
|---|---|
| Base | LiquidAI/LFM2.5-350M |
| Architecture | LFM2 / Lfm2ForCausalLM |
| Parameters | ~354.5M |
| Vocabulary | 65,536 |
| Architectural context | 128,000 tokens |
| Training sequence cap | 768 tokens |
| LoRA | r=8, alpha=16, dropout=0.05 |
| LoRA targets | q/k/v |
| Learning rate | 1.5e-6 |
| Optimizer steps | 376 |
| Epochs | 1 |
| Gradient accumulation | 4 |
| Training examples encoded | 1,503 |
| Tool-oriented examples | 308 |
| Multi-turn examples | 62 |
| Languages emphasized | Spanish + English |
| GGUF F16 | ~676 MiB |
| GGUF Q4_K_M | ~216 MiB |
What changed for 1.1
ZynDwarf-1.1 is the release line intended to supersede the previous public General Agent publication.
The training target was not to memorize a fixed collection of benchmark questions. Instead, the dataset was constructed around behavioral classes:
- normal conversation without tools;
- programming and debugging;
- Spanish and English interaction;
- structured output;
- tool selection and tool-call formatting;
- multi-turn agent trajectories;
- recovery after tool failures;
- planning and task decomposition;
- cases where using a tool is unnecessary;
- varied code and configuration tasks.
The training data was capped at 768 tokens per encoded sequence. This is deliberately documented because the model architecture and the training context are different things. Marketing a 128K architecture as if it had been trained on 128K sequences would be a rather impressive way to manufacture a benchmark result from thin air.
Agent and tool-use support
ZynDwarf-1.1 includes a chat template with explicit support for tool definitions and assistant tool calls.
The template accepts tool definitions through the standard tools argument and renders assistant calls using the model's native control tokens:
<|tool_call_start|>[ToolName(argument='value')]<|tool_call_end|>
The release therefore supports an agent architecture in which the host application is responsible for:
- presenting available tools to the model;
- rendering the conversation with the chat template;
- detecting a tool call in the assistant output;
- validating the requested function and arguments;
- executing the tool outside the model;
- returning the tool result as a new message;
- continuing generation;
- stopping when the model produces a final answer.
Security boundary
The model does not receive permission to execute commands by itself. Tool execution must remain in the host application. Treat model-generated tool names and arguments as untrusted input and validate them before execution.
A safe agent loop is therefore:
user
↓
chat template + tool definitions
↓
ZynDwarf-1.1
↓
tool call OR final answer
↓
host validation
↓
tool execution
↓
tool result
↓
ZynDwarf-1.1
↓
final answer OR another validated tool call
Important agent limitation
The release's chat template is tool-aware, but tool compatibility is not equivalent to perfect tool-use accuracy. The local regression suite described below found that the standalone CLI test did not reliably emit the requested native tool-call syntax on the two explicit tool-call prompts. This result is published rather than hidden. Integrators should test their exact tool schema and runtime adapter before deploying an autonomous loop.
Local evaluation
Test protocol
A private regression suite of 16 prompts was executed against the Q4_K_M release using llama.cpp on the release server.
The suite covers:
- conversation;
- Spanish explanation;
- Python generation;
- Bash generation;
- JSON-only output;
- arithmetic;
- logical reasoning;
- no-tool behavior;
- explicit tool calls;
- tool-failure recovery;
- planning;
- debugging;
- multi-turn recovery;
- English response;
- concise instruction following.
The prompts used for this release are not presented as a public training set and were not used as a recipe for memorizing the test cases.
Result
8 / 16 passed = 50.0% on the current small regression suite.
This is a development regression score, not an industry-standard benchmark and not directly comparable with IFEval, BFCL, MMLU-Pro, GPQA, or other published benchmark numbers.
Category breakdown
| Category | Result |
|---|---|
| Overall | 50% |
| Agent / explicit tool call | 0% |
| Code | 50% |
| No-tool | 100% |
| Reasoning | 0% |
| JSON | 0% |
The strongest result in this small suite was the no-tool behavior. The largest current weakness is explicit tool-call emission, followed by strict structured-output and reasoning cases. These weaknesses should be treated as release limitations rather than ignored because the model card would look prettier without them.
Real CPU throughput test
Measured with llama.cpp llama-bench, 2 CPU threads, 128-token prompt and 128-token generation workload.
| Variant | Size | Prompt processing | Generation |
|---|---|---|---|
| F16 | 676.25 MiB | 212.12 tok/s ± 8.48 | 18.89 tok/s ± 0.91 |
| Q4_K_M | 216.41 MiB | 272.07 tok/s ± 0.48 | 34.42 tok/s ± 9.82 |
The Q4_K_M build is approximately 68% smaller than F16 and was substantially faster in this CPU test. The exact throughput will vary with CPU model, thread count, memory bandwidth, context length, and llama.cpp build.
Comparison with other small models
The following comparison deliberately separates upstream published benchmark results from ZynDwarf's own local regression tests. These numbers were not generated using the same hardware or necessarily the same evaluation software, so they should not be treated as a single leaderboard.
IFEval
Liquid AI reports the following published IFEval result for LFM2.5-350M: 76.96. Its model card also reports BFCLv3 44.11 and BFCLv4 21.86. The same table includes Granite 4.0-H-350M and other compact models. urlLiquidAI LFM2.5-350M model cardhttps://huggingface.co/LiquidAI/LFM2.5-350M
SmolLM2's official model card reports 41.0 for SmolLM2-360M-Instruct on IFEval and 31.6 for Qwen2.5-0.5B-Instruct under its evaluation setup. urlSmolLM2-360M official model cardhttps://huggingface.co/HuggingFaceTB/SmolLM2-360M-Instruct
Published IFEval snapshot
| Model | Parameters | IFEval | Source |
|---|---|---|---|
| LFM2.5-350M | ~0.35B | 76.96 | Liquid AI |
| Granite 4.0-H-350M | ~0.35B | 61.27 | Liquid AI comparison table |
| SmolLM2-360M-Instruct | ~0.36B | 41.0 | Hugging Face / lighteval |
| Qwen2.5-0.5B-Instruct | ~0.5B | 31.6 | Hugging Face / lighteval |
ZynDwarf-1.1 is intentionally not assigned an IFEval score here. The local 16-prompt suite is not IFEval, so inserting 50 beside these numbers would create a false comparison.
Broader upstream comparison
Liquid AI's current LFM2.5-350M model card reports the following results under its published benchmark setup:
| Model | GPQA Diamond | MMLU-Pro | IFEval | BFCLv3 | BFCLv4 |
|---|---|---|---|---|---|
| LFM2.5-350M | 30.64 | 20.01 | 76.96 | 44.11 | 21.86 |
| LFM2-350M | 27.58 | 19.29 | 64.96 | 22.95 | 12.29 |
| Granite 4.0-H-350M | 22.32 | 13.14 | 61.27 | 43.07 | 13.28 |
| Granite 4.0-350M | 25.91 | 12.84 | 53.48 | 39.58 | 13.73 |
| Gemma 3 1B IT | 23.89 | 14.04 | 63.49 | 16.61 | 7.17 |
These are upstream numbers from Liquid AI's published comparison table, not independent Zyn Models measurements. urlLiquid AI benchmark tablehttps://huggingface.co/LiquidAI/LFM2.5-350M
SmolLM2's published evaluation is also useful for understanding this size class. Its official card reports 32.8 MMLU (cloze), 43.7 ARC Average, 70.8 PIQA, 7.43 GSM8K 5-shot and 3.66 MT-Bench for SmolLM2-360M-Instruct. urlSmolLM2-360M-Instruct evaluationhttps://huggingface.co/HuggingFaceTB/SmolLM2-360M-Instruct
Why the comparison matters
ZynDwarf-1.1 is built on LFM2.5-350M rather than attempting to compete with much larger systems through parameter count. Its practical goal is different:
- small enough for local CPU inference;
- usable from GGUF runtimes;
- usable from Ollama;
- compatible with Transformers;
- capable of Spanish and English interaction;
- oriented toward programming and practical tasks;
- structured around agent/tool-call workflows;
- deployable on constrained hardware.
The upstream LFM2.5-350M results show that the base family is unusually strong for its size on instruction following and function-calling-oriented evaluations. ZynDwarf-1.1 should therefore be evaluated primarily on whether its fine-tuning preserves useful base capabilities while improving the desired local assistant behavior.
Training details
The release was produced from a repaired LFM2.5-350M starting point and a general agent dataset.
Dataset
- 1,613 deduplicated sequences in the intended dataset.
- 1,503 sequences successfully encoded under the 768-token training cap.
- 308 examples included real tool-oriented traces.
- 62 examples were multi-turn.
- Examples covered programming, debugging, general conversation, planning, tool use, tool failures, Spanish, English, and no-tool behavior.
LoRA configuration
rank = 8
alpha = 16
dropout = 0.05
targets = q_proj, k_proj, v_proj
lr = 1.5e-6
epochs = 1
grad_accum = 4
max_length = 768
The final adapter used approximately 0.069% of the model parameters as trainable parameters during fine-tuning.
What was deliberately avoided
- No attempt was made to memorize the public benchmark prompts.
- No claim of true logit-level knowledge distillation is made for this release.
- No claim is made that the 128K architectural context was trained end-to-end at 128K.
- No claim is made that the model can autonomously execute tools without a host runtime.
Installation: Transformers
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "itsZyn/ZynDwarf-1.1"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)
messages = [
{"role": "user", "content": "Hola, ¿qué puedes hacer?"}
]
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
return_tensors="pt",
)
outputs = model.generate(
inputs,
max_new_tokens=128,
)
print(tokenizer.decode(outputs[0], skip_special_tokens=False))
For agent use, provide the tool schemas through the tools= argument of the tokenizer's chat template and inspect the assistant message for tool_calls / the rendered native tool-call sequence.
Installation: GGUF / llama.cpp
F16
./llama-cli \
-m ZynDwarf-1.1-f16.gguf \
-c 32768 \
-t 2 \
--temp 0.35 \
--top-k 40 \
--top-p 0.9 \
--repeat-penalty 1.05
Q4_K_M
./llama-cli \
-m ZynDwarf-1.1-Q4_K_M.gguf \
-c 32768 \
-t 2 \
--temp 0.35 \
--top-k 40 \
--top-p 0.9 \
--repeat-penalty 1.05
The 32K runtime example is a practical configuration, not a claim that 32K or 128K contexts will have identical quality to short-context inference.
Installation: Ollama
The published Ollama package is:
ollama pull itsZyn/ZynDwarf-1.1:latest
Run it with:
ollama run itsZyn/ZynDwarf-1.1:latest
The model can also be used as the local inference backend for agent frameworks that integrate with Ollama's chat/tool APIs.
GGUF files
| File | Quantization | Approx. size | Intended use |
|---|---|---|---|
ZynDwarf-1.1-f16.gguf |
F16 | 676 MiB | quality / reference local build |
ZynDwarf-1.1-Q4_K_M.gguf |
Q4_K_M | 216 MiB | memory-constrained local deployment |
Both files are distributed directly in this repository so the Hugging Face model page can expose the F16 and Q4 variants together.
Checksums
ZynDwarf-1.1-f16.gguf
ce452090b010d1e199fd7b39b2d65e5fcd8d7c2ceac52c38219f8b53e491c424
ZynDwarf-1.1-Q4_K_M.gguf
04a6ea0100b84a8687162db856f4c0b8042f54ad6b50a93b3c8132afc3499ae2
Always verify downloaded model files when distributing them through mirrors.
Intended use
ZynDwarf-1.1 is intended for:
- local personal assistants;
- programming help;
- code generation and debugging;
- Spanish/English conversation;
- lightweight planning;
- structured text generation;
- local agent prototypes;
- tool-calling experiments;
- CPU-oriented deployments;
- Ollama and llama.cpp workflows.
Not intended for
- medical, legal, financial, or other high-stakes decisions;
- unrestricted autonomous execution;
- factual research without verification;
- large-scale coding projects without human review;
- claiming guaranteed correctness;
- treating model output as trusted code or trusted tool arguments.
Known limitations
- Small model capacity. At ~354.5M parameters, ZynDwarf-1.1 cannot match larger models on broad knowledge, difficult reasoning, or long complex projects.
- Tool calling needs host validation. The model can produce tool-call structures, but the host must validate and execute them.
- Current explicit tool-call regression is weak. The release regression suite scored 0/2 on direct standalone tool-call prompts. Integrators should test the complete chat-template + runtime pipeline.
- Structured output is imperfect. The 16-prompt suite found failures on the strict JSON case.
- Arithmetic/reasoning can fail. The small regression suite exposed an incorrect arithmetic explanation and an incorrect transitive-set conclusion.
- Context length is not quality length. 128K is the architectural limit; the fine-tuning sequence cap was 768 tokens.
- Quantization changes behavior. Q4_K_M is smaller and faster, but F16 is the reference GGUF for fidelity.
- Knowledge can be stale or wrong. Use retrieval or external tools when correctness matters.
Evaluation philosophy
Zyn Models publishes failures as well as successes because a benchmark section that contains only flattering numbers is closer to advertising than evaluation.
For this release, three kinds of evidence are kept separate:
A. Local regression tests
These are executed by Zyn Models on the actual release artifact and are useful for tracking regressions between versions.
B. Local performance tests
These measure llama.cpp throughput on the release server. They are useful for deployment planning, not for claiming universal CPU speed.
C. Upstream standardized evaluations
These are reproduced from the original model authors' published model cards. They provide external context but are not relabeled as ZynDwarf measurements.
This separation prevents the common mistake of mixing unrelated evaluation protocols into one decorative leaderboard.
Reproducibility
The release artifacts, benchmark outputs, benchmark scripts, and SVG charts are kept together in the release workspace. The local benchmark command used llama.cpp with two CPU threads and a 128-token prompt/generation configuration for throughput testing.
For future ZynDwarf releases, the recommended evaluation process is:
- run the same regression suite;
- run the same llama-bench configuration;
- add independent standardized benchmarks;
- compare F16 and Q4 separately;
- publish failures and category-level scores;
- never reuse private evaluation prompts as training examples.
Credits
ZynDwarf-1.1 builds on the work of Liquid AI and the LFM2/LFM2.5 model family.
Model adaptation, evaluation, packaging and release engineering: Zyn Models / itsZyn.
Base model: LiquidAI/LFM2.5-350M.
Upstream references:
- https://huggingface.co/LiquidAI/LFM2.5-350M
- https://huggingface.co/HuggingFaceTB/SmolLM2-360M-Instruct
Citation
If you use ZynDwarf-1.1 in a project, cite the model repository and the upstream base model.
@misc{zyndwarf11,
title = {ZynDwarf-1.1},
author = {Zyn Models and itsZyn},
year = {2026},
note = {Compact LFM2.5-350M based conversational and agent-oriented model}
}
Release status
Version: 1.1
Release type: general agent-oriented local model
Primary formats: Transformers/Safetensors, GGUF F16, GGUF Q4_K_M
Status: public release with documented regression limitations
- Downloads last month
- -