CoolFace
Modelpublic

itsZyn/ZynDwarf-1.0

sourceHugging Faceotherupdated 16d agoView on Hugging Face
1likes880downloads
Model Card

<div align="center">

Zyn Dwarf 1.0

Lightweight general-purpose language model by Zyn Models

<img src="/assets/itsZyn/ZynDwarf-1.0/f1485873-13eb-4e54-87b3-8bb300a70314" alt="Zyn Dwarf 1.0 logo" width="220" />

Hugging FaceOllamaBase model

</div>


Overview

Zyn Dwarf 1.0 is a compact ~354M-parameter text model adapted by Zyn Models from LiquidAI/LFM2.5-350M.

The release is aimed at practical local inference, especially on machines with limited CPU, RAM, and storage. The model was post-trained with a mixed supervised dataset covering:

  • General conversation
  • Instruction following
  • Spanish instruction data
  • Programming and code generation
  • Identity / assistant behavior

The final release is available as Transformers/Safetensors, F16 GGUF, and Q4_K_M GGUF.

Important: This model is small by design. It can be surprisingly useful for its size, but it should not be treated as a substitute for larger frontier models on difficult reasoning, long-form debugging, broad factual recall, or complex multi-step tasks.

Model card at a glance

PropertyZyn Dwarf 1.0
OrganizationZyn Models
Model nameZyn Dwarf 1.0
Parameters~354M
ArchitectureLFM2 / LFM2.5 family
Base modelLiquidAI/LFM2.5-350M
Main languagesSpanish, English
Primary strengthsConversation, instruction following, small code tasks
Native weight formatTransformers / Safetensors
Local formatsGGUF F16, GGUF Q4KM
Q4KM size216.41 MiB
F16 size676.25 MiB
Q4 size reduction~68.0%
F16 → Q4 ratio~3.12× smaller
Recommended CPU context8192 tokens
GGUF context metadata128K (runtime recommendation remains 8192 for this release)
Inference engines testedllama.cpp, Ollama packaging

The upstream LFM2.5-350M model card describes a 350M-parameter general-purpose model, 16 layers, 65,536-token vocabulary, 32,768-token context, and support for nine languages. This project inherits its LFM2.5 lineage but focuses its post-training on a smaller practical assistant profile with an explicit Zyn identity. See the upstream card for the original architecture and licensing details: LiquidAI/LFM2.5-350M.


Why a 354M model?

The objective of Zyn Dwarf 1.0 is not to win against billion-parameter models on every benchmark. The objective is to maximize useful behavior per byte and per CPU cycle.

That makes the model appropriate for:

  • Local CPU inference
  • Low-memory environments
  • Android / Termux experimentation
  • VPS environments without GPUs
  • Embedded or edge-style applications
  • Small programming assistants
  • Lightweight chat interfaces

Humanity spent decades making computers smaller, then immediately asked them to run a language model. Naturally.


Release files

Transformers / Safetensors

text
config.json
generation_config.json
model.safetensors
tokenizer.json
tokenizer_config.json
chat_template.jinja

GGUF

text
Zyn-Dwarf-1.0-general-final-f16.gguf
Zyn-Dwarf-1.0-Q4_K_M.gguf

The Q4_K_M build is the recommended local release when storage and RAM matter most. The F16 build is the higher-fidelity option when additional memory is available.


Real model evaluation

Test methodology

The results below were produced from actual local inference runs of the final model rather than estimated benchmark scores.

Primary benchmark backend: llama.cpp

Test environment:

  • CPU: 2 vCPU Intel Xeon
  • RAM: ~3.8 GiB
  • GPU: none
  • Runtime: llama.cpp
  • Threads: 2
  • Context used for validation: 2048–8192 depending on the test
  • Deterministic runs: seed 42
  • Sampling for quality smoke tests: temperature 0 to 0.2

This is a smoke-test / capability evaluation, not an official standardized leaderboard benchmark. Results therefore should not be compared numerically with published MMLU, GSM8K, HumanEval, or other benchmark numbers unless the same benchmark harness, prompts, scoring rules, and model variants are used.


Capability smoke suite

Eight representative tasks were checked against the released Q4KM model using local inference.

TestResultNotes
IdentityPASSCorrectly identifies itself as Zyn Dwarf 1.0
Capital of PeruPASSReturned Lima
ArithmeticPASS27 × 14 + 8 = 386 in validated llama.cpp runs
Python max() generationPASSGenerated a correct return max(lista) implementation
Python len() generationPASSGenerated a correct return len(lista) implementation
Variable definitionPASSGave an acceptable programming explanation
Basic loop generationPASSGenerated a correct 1–5 loop
Python syntax debuggingFAIL / WEAKCorrect fix diagnosis was inconsistent; the missing : was not reliably identified

Smoke-test result

7 / 8 passed = 87.5% on this manually designed capability suite.

[image]

Interpretation

The release is strongest at short, well-scoped instructions and common programming primitives. The most obvious weakness discovered in testing is debugging and error diagnosis, especially when the input code is syntactically malformed.

That result is useful because it tells future training work where to spend data budget: targeted debugging examples are likely to produce more value than endlessly adding generic conversation samples.


A/B comparison with the previous protected checkpoint

A shared subset of four identical tasks was previously used to compare the new general-final checkpoint against the protected checkpoint that existed before the final general training stage.

Shared taskPrevious checkpointZyn Dwarf 1.0 General Final
IdentityPASSPASS
Capital of PeruPASSPASS
ArithmeticPASSPASS
Python max() taskWEAKER / truncatedPASS
Shared subset3 / 44 / 4

Shared-subset accuracy

  • Previous checkpoint: 75%
  • Zyn Dwarf 1.0 General Final: 100%

[image]

This comparison is intentionally limited to the same four previously tested tasks. It is not a claim that the model is globally 33% better; small hand-built test sets cannot justify that conclusion.


Storage efficiency

The same final model is released in two useful GGUF precision levels:

FormatSizeRelative size
F16676.25 MiB100%
Q4KM216.41 MiB~32.0%

[image]

That makes Q4KM roughly 3.12× smaller than the F16 artifact, while retaining the same model architecture and weights in quantized form.


Inference performance

Performance is highly dependent on CPU, thread count, memory bandwidth, context length, thermals, and system contention.

During earlier clean local runs on the 2-vCPU test host, the final Q4KM build showed approximately:

MetricObserved range
Prompt processing~115–141 tok/s
Generation~22–29 tok/s

A later retest while the host was under heavy background load dropped as low as ~2.6 tok/s generation, demonstrating why a single instantaneous speed number would be misleading for this project.

The upstream LiquidAI card reports much higher performance on specialized CPU/SoC setups, but those numbers were measured on different hardware and should not be transplanted into this README as Zyn Dwarf performance. See the upstream model card for its own hardware results: LiquidAI/LFM2.5-350M.


Recommended local inference

llama.cpp: quality-oriented configuration

bash
cd ~/ZynDwarf-1.0

/home/ubuntu/gemma4-350m/llama.cpp/build/bin/llama-cli \
  -m output/Zyn-Dwarf-1.0-general-final-Q4_K_M.gguf \
  -c 8192 \
  -t 2 \
  -tb 2 \
  --temp 0.55 \
  --top-p 0.9 \
  --top-k 40 \
  --min-p 0.05 \
  --repeat-penalty 1.05 \
  --seed 42 \
  -i

For the most faithful local weights, use the F16 artifact instead:

bash
/home/ubuntu/gemma4-350m/llama.cpp/build/bin/llama-cli \
  -m output/Zyn-Dwarf-1.0-general-final-f16.gguf \
  -c 8192 \
  -t 2 \
  -tb 2 \
  --temp 0.55 \
  --top-p 0.9 \
  --top-k 40 \
  --min-p 0.05 \
  --repeat-penalty 1.05 \
  --seed 42 \
  -i
Use the embedded conversation template through interactive/chat mode. Raw -p prompts can bypass the intended chat formatting on some llama.cpp builds.

Transformers usage

python
from transformers import AutoTokenizer, AutoModelForCausalLM

model_id = "itsZyn/ZynDwarf-1.0"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)

messages = [
    {"role": "user", "content": "Escribe una función Python para obtener el mayor número de una lista."}
]

inputs = tokenizer.apply_chat_template(
    messages,
    add_generation_prompt=True,
    tokenize=True,
    return_tensors="pt",
)

outputs = model.generate(inputs, max_new_tokens=96)
print(tokenizer.decode(outputs[0][inputs.shape[-1]:], skip_special_tokens=True))

For production inference, configure the device and dtype according to the hardware available.


Ollama

The release was also published under:

text
itsZyn/ZynDwarf-1.0:latest
itsZyn/ZynDwarf-1.0:q4_k_m
itsZyn/ZynDwarf-1.0:f16

Example pull:

bash
ollama pull itsZyn/ZynDwarf-1.0:q4_k_m

Ollama compatibility note

The GGUF itself is valid and was successfully imported into Ollama. During validation, however, the current Ollama Modelfile/template path did not reproduce the same conversational formatting as the validated llama.cpp path. For example, an Ollama smoke test returned an incorrect arithmetic answer (378) where the validated llama.cpp path returned 386.

Therefore:

  • llama.cpp is the validated reference inference path for this release.
  • Ollama artifacts are published and usable as model blobs.
  • The Ollama conversational template should be treated as experimental until a dedicated template pass is validated.

This distinction is deliberate. A README should be a map, not an advertisement brochure written by a very optimistic intern.


Training summary

The final general model was trained from the official LiquidAI/LFM2.5-350M base rather than continuing from a weaker intermediate checkpoint.

Final training mixture

SourceAmount
HuggingFaceTB/smol-smoltalk1,800
Spanish Tulu instruction examples900
Code replay examples1,200
Identity examples50
Total3,921

Final training configuration

SettingValue
LoRA rank4
LoRA alpha8
LoRA dropout0.05
Target modulesq_proj, v_proj
Learning rate5e-6
Epochs1
Max sequence length512
Batch size1
Gradient accumulation8
Optimizer steps491
Warmup25 steps
Weight decay0.01
Gradient clip1.0
Torch threads2

The training stage completed all 491 / 491 optimizer steps and the merged final checkpoint was exported to F16 GGUF and Q4KM GGUF.


Dataset and licensing notes

The project uses data from multiple sources, each with its own license and terms. The base model is LiquidAI/LFM2.5-350M, whose Hugging Face card identifies its license as lfm1.0.

Before redistributing, fine-tuning, or commercially deploying this model, review:

  1. 1.The license for the LFM2.5 base model.
  2. 2.The licenses/terms of every training dataset used by the project.
  3. 3.The terms of any generated or filtered derivative data.

The repository intentionally uses Hugging Face metadata license: other plus license_name: lfm1.0 rather than claiming Apache-2.0 for the entire resulting model.


Limitations

Zyn Dwarf 1.0 is a compact model and inherits the usual limitations of small language models.

Known weaknesses observed in testing

  • Debugging malformed code is weaker than code generation.
  • Long complex reasoning may degrade quickly.
  • The model can become verbose when a prompt does not constrain the answer.
  • Knowledge accuracy should be verified for high-stakes or current facts.
  • Benchmark results from a few hand-designed tests are not a substitute for standardized evaluation.
  • CPU inference speed varies dramatically with system load and hardware.
  • Ollama chat-template compatibility is not yet considered the reference path.

Recommended usage

Use Zyn Dwarf 1.0 for:

  • Lightweight chat
  • Spanish / English assistant tasks
  • Small programming questions
  • Code snippets
  • Explanations and summaries
  • Local experimentation
  • Low-resource deployments

For difficult software debugging, long mathematical proofs, broad factual research, or demanding agentic workflows, use a larger model or pair Zyn Dwarf with external tools and verification.


Roadmap

The next logical improvement is targeted debugging training, not simply adding more generic chat examples.

Planned directions:

  • Syntax-error diagnosis
  • Traceback interpretation
  • Bug localization
  • Minimal fixes
  • JavaScript / Node.js debugging
  • HTML / CSS debugging
  • Better uncertainty handling
  • Expanded Spanish programming coverage
  • Standardized automatic evaluation
  • Dedicated Ollama chat-template validation

Citation and attribution

Base model

text
Liquid AI. LFM2.5-350M. 2026.
https://huggingface.co/LiquidAI/LFM2.5-350M

Technical report:

text
Liquid AI, LFM2 Technical Report, arXiv:2511.23404.

Zyn Dwarf 1.0

text
Zyn Models. Zyn Dwarf 1.0.
Hugging Face: itsZyn/ZynDwarf-1.0
Ollama: itsZyn/ZynDwarf-1.0

Final status

Zyn Dwarf 1.0 is a practical ~354M-parameter lightweight model with a strong small-task profile, especially for short code generation and instruction following.

Current evidence supports the following positioning:

AreaAssessment
Small footprintExcellent
Local CPU suitabilityStrong
Basic programmingStrong for size
Spanish conversationGood
Identity consistencyGood with intended chat formatting
DebuggingNeeds improvement
Long complex reasoningLimited by model scale
Ollama chat formattingExperimental

[image]


Project

Zyn Dwarf 1.0 Created and trained by Zyn Models Model family: Zyn Dwarf