muszka.

Open-source model · version v1.0 · Apache 2.0 · released

Muszka Instruct

A small Polish assistant that answers simply, briefly and to the point. It works where a big model does not fit: on a Raspberry Pi, on an ordinary laptop, offline.

parameters (1.6B with embeddings)
1.5B
context
8,192 tokens
Raspberry Pi 5, llama.cpp, Q4_K_M
~12 tok/s
GGUF file Q4_K_M
0.97 GB

Built on Bielik-1.5B-v3.0-Instruct by SpeakLeash. Muszka is an independent project, not an official SpeakLeash model.

What Muszka Instruct is for

A small Polish chat and instruction model. It is tuned for style and instruction following: simple, natural Polish, short answers that respect the requested length and form, and no unnecessary Markdown or boilerplate.

  • summaries

    A summary within the requested length.

  • explanations

    Hard things in simple words, also for children.

  • e-mails and short texts

    Messages, simplifying text, short creative writing.

Facts are not its strength.

For knowledge, pair it with retrieval (RAG), for example with the rest of the Muszka family.

What changes compared with the base model

Our set of 100 Polish instructions (e-mails, summaries, explaining to a child, simplifying text, creative writing, formatting, conversation), with automatic checks of the answers. Compared with the model Muszka is based on - Bielik-1.5B-v3.0-Instruct.

Follows the requested length and form

79%vs 60%

all 100 instructions, higher is better

Summaries within the requested length

100%vs 60%

summaries in the set of 100 instructions

Explanations for children

93%vs 73%

following the instruction

The table below may be wider than a phone screen - swipe it sideways.

On 100 Polish instructionsBielik 1.5B v3.0 InstructMuszka Instruct 1.5B v1.0
Follows the requested length and form (higher is better)60%79%
Summaries within the requested length60%100%
Explanations for children73%93%
E-mails following the instruction0%40%
Unfinished answers (lower is better)7%0%
Unnecessary Markdown: bold, headers, lists (lower is better)25%0%
Boilerplate opening, e.g. "Oto…" / "Here is…" (lower is better)20%2%

Still weaker: strict word limits and formal e-mails.

Source of the numbers: the Muszka Instruct 1.5B v1.0 model card on Hugging Face.

Example: a 4-line poem

Instruction (in Polish): „Napisz krótki wierszyk (4 wersy) o jesiennych liściach.” ("Write a short poem (4 lines) about autumn leaves.") Both models with the same settings: temperature 0, repetition penalty 1.05, no system prompt.

Bielik 1.5B v3.0 Instruct

16 lines in bold stanzas (the ** marks are Markdown), the last two stanzas repeat earlier ones.

**Jesienne liście, co spadają z drzew,**
**W złocistym słońcu tańczą w powietrzu.**
**Płyną wolno, jak złote monety,**
**Światło ich odbicia w kałużach.**

**Złote, czerwone, pomarańczowe,**
**Każdy kolor ma swoją melodię.**
**Jesień w nich śpiewa, w każdym ruchu,**
**Ich taniec to najpiękniejszy koncert.**

**Liście opadają, lecz nie smucą,**
**Bo wiedzą, że życie to tylko chwila.**
**Jesień w nich śpiewa, w każdym ruchu,**
**Ich taniec to najpiękniejszy koncert.**

**Jesień w nich śpiewa, w każdym ruchu,**
**Ich taniec to najpiękniejszy koncert.**
**Liście opadają, lecz nie smucą,**
**Bo wiedzą, że życie to tylko chwila.**
Muszka Instruct 1.5B v1.0

4 lines, plain text.

Jesienią liście tańczą w powietrzu,
Złociste i czerwone, jak płomienie.
Padną na ziemię, tworząc dywan,
A wiatr je niesie, w rytmie jesiennej melodii.

One example, not a measurement - the numbers are in Results.

Raspberry Pi 5

Q4_K_M in llama.cpp on a Raspberry Pi 5 / Pi 500 generates about 12 tokens per second with 2 threads (-t 2), which is comfortable reading speed. More threads generate more slowly, because the Pi's memory bandwidth drops.

Use the K-quants

On the Pi 5's Cortex-A76 cores, llama.cpp's Q4_0 and Q8_0 paths produce garbage for this model family.

GGUF files

For llama.cpp, Ollama, LM Studio and other GGUF runtimes. The quants are optimized for Polish text.

FileSizeUse
Q4_K_M0.97 GBRecommended: Raspberry Pi 5, phones, small RAM
Q5_K_M1.14 GBBetter quality, still small
Q6_K1.31 GBPractically the same as the full model
F163.20 GBFull precision, for your own quantization

Demo

Chat with Muszka Instruct in your browser (in Polish).

Muszka Instruct 1.5B v1.0 - demo

The demo runs on Hugging Face and loads here only after you click. Your browser then connects to Hugging Face - that site may use its own cookies. A free Space can take up to a minute to wake up after being idle.

How to use

For developers: the model is on Hugging Face under the Apache 2.0 license.

llama.cpp and Ollama

# llama.cpp
llama-cli -hf Fibogacci/muszka-instruct-1.5b-v1.0-GGUF:Q4_K_M -cnv -t 2 --temp 0.2 --repeat-penalty 1.05
llama-server -hf Fibogacci/muszka-instruct-1.5b-v1.0-GGUF:Q4_K_M --temp 0.2 --repeat-penalty 1.05

# Ollama
ollama run hf.co/Fibogacci/muszka-instruct-1.5b-v1.0-GGUF:Q4_K_M

Transformers

from transformers import AutoTokenizer, AutoModelForCausalLM

name = "Fibogacci/muszka-instruct-1.5b-v1.0"
tokenizer = AutoTokenizer.from_pretrained(name)
model = AutoModelForCausalLM.from_pretrained(name, dtype="auto", device_map="auto")

messages = [{"role": "user", "content": "Wyjaśnij dziecku w dwóch zdaniach, dlaczego pada deszcz."}]
inputs = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt",
                                       return_dict=True).to(model.device)
out = model.generate(**inputs, max_new_tokens=300, do_sample=True, temperature=0.2, top_p=0.9,
                     repetition_penalty=1.05)
print(tokenizer.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
  • Recommended settings: temperature 0.2-0.7, top-p 0.9, repetition penalty 1.05. A system prompt is optional.
  • Context length: 8,192 tokens. Chat format: ChatML (<|im_start|> / <|im_end|>), included in the tokenizer and the GGUF files.
  • Full weights (bf16, model.safetensors) for transformers, further fine-tuning and research.

Limitations

  • A small model, weak on facts

    It can be wrong about facts, names and numbers. Do not use it as a source of knowledge without retrieval.

  • Word limits and formal letters

    Strict word limits and formal letters are not always kept.

  • Polish only

    The Muszka family focuses primarily on Polish.

  • Safety as in the base model

    No additional safety tuning beyond the base model. For public deployments consider an input filter such as Muszka Guard.

The Muszka family

Muszka means "little fly" in Polish, after the fruit fly (Drosophila melanogaster), whose tiny nervous system shows how much a compact network can do with very little energy. The Muszka family is flying the same way: small models that run even on modest hardware.

  • Muszka Guard

    A safety classifier for Polish prompts.

  • Muszka Instruct

    This model: a small Polish assistant.

  • More models

    In the works.

Acknowledgements and attribution

Muszka Instruct builds on the open work of the Polish AI community.

Bielik LLM team, SpeakLeash and ACK Cyfronet AGH

Krzysztof Ociepa, Łukasz Flis, Remigiusz Kinas, Adrian Gwoździej and Krzysztof Wróbel, together with Sebastian Kondracki, the whole SpeakLeash team and the ACK Cyfronet AGH team (PLGrid), for Bielik-1.5B-v3.0-Instruct (Apache 2.0). Technical report: Bielik v3 Small.

Muszka is an independent project, not an official SpeakLeash model.

Muszka Instruct license: Apache 2.0, the same as the base model.