muszka.

Model open source · wersja v1.0 · Apache 2.0 · wydanie

Muszka Instruct

Mały polski asystent, który odpowiada prosto, krótko i na temat. Działa tam, gdzie duży model się nie mieści: na Raspberry Pi, na zwykłym laptopie i offline.

parametrów (1,6 mld ze słownikiem)
1,5 mld
kontekst
8 192 tokeny
Raspberry Pi 5, llama.cpp, Q4_K_M
ok. 12 tok/s
plik GGUF Q4_K_M
0,97 GB

Zbudowana na Bielik-1.5B-v3.0-Instruct od SpeakLeash. Muszka to niezależny projekt, a nie oficjalny model SpeakLeash.

Do czego służy Muszka Instruct

To mały polski model do rozmowy i wykonywania poleceń. Został dostrojony pod styl i trzymanie się poleceń: prosta, naturalna polszczyzna, krótkie odpowiedzi w zadanej długości i formie, bez zbędnego Markdownu i formułek.

  • streszczenia

    Skrót tekstu w zadanej długości.

  • wyjaśnianie

    Trudne rzeczy prostymi słowami, także dla dziecka.

  • e-maile i krótkie teksty

    Wiadomości, upraszczanie tekstu, krótkie formy twórcze.

Fakty nie są jego mocną stroną.

Wiedzę lepiej dostarczyć z wyszukiwania (RAG), na przykład razem z innymi modelami z rodziny Muszka.

Co się zmienia względem modelu bazowego

Nasz zestaw 100 polskich poleceń (e-maile, streszczenia, wyjaśnianie dziecku, upraszczanie tekstu, twórcze pisanie, formatowanie, rozmowa), z automatycznym sprawdzaniem odpowiedzi. Porównanie z modelem, na którym bazuje Muszka - Bielik-1.5B-v3.0-Instruct.

Trzyma zadaną długość i formę

79%vs 60%

wszystkie 100 poleceń, im więcej, tym lepiej

Streszczenia w zadanej długości

100%vs 60%

streszczenia w zestawie 100 poleceń

Wyjaśnienia dla dziecka

93%vs 73%

zgodne z poleceniem

Tabela poniżej może być szersza niż ekran telefonu - przesuń ją palcem w bok.

Na 100 polskich poleceniachBielik 1.5B v3.0 InstructMuszka Instruct 1.5B v1.0
Trzyma się zadanej długości i formy (więcej = lepiej)60%79%
Streszczenia w zadanej długości60%100%
Wyjaśnienia dla dziecka73%93%
E-maile zgodne z poleceniem0%40%
Urwane odpowiedzi (mniej = lepiej)7%0%
Zbędny Markdown: pogrubienia, nagłówki, listy (mniej = lepiej)25%0%
Formułka na początku, np. „Oto…” (mniej = lepiej)20%2%

Nadal słabiej: ścisłe limity słów i formalne e-maile.

Źródło liczb: karta modelu Muszka Instruct 1.5B v1.0 na Hugging Face.

Przykład: wierszyk w 4 wersach

Polecenie: „Napisz krótki wierszyk (4 wersy) o jesiennych liściach.” Oba modele z tymi samymi ustawieniami: temperatura 0, kara za powtórzenia 1,05, bez promptu systemowego.

Bielik 1.5B v3.0 Instruct

16 wersów w pogrubionych zwrotkach (znaki ** to Markdown), dwie ostatnie powtarzają wcześniejsze.

**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 wersy, zwykły tekst.

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.

Jeden przykład, nie pomiar - liczby są w sekcji Wyniki.

Raspberry Pi 5

Plik Q4_K_M w llama.cpp na Raspberry Pi 5 / Pi 500 generuje około 12 tokenów na sekundę na 2 wątkach (-t 2), czyli wygodnie do czytania. Więcej wątków generuje wolniej, bo spada przepustowość pamięci Pi.

Używaj kwantów K

Na rdzeniach Cortex-A76 w Pi 5 ścieżki Q4_0 i Q8_0 w llama.cpp dają dla tej rodziny modeli nieczytelny tekst.

Pliki GGUF

Do llama.cpp, Ollamy, LM Studio i innych programów obsługujących GGUF. Kwanty są zoptymalizowane pod polski tekst.

PlikRozmiarZastosowanie
Q4_K_M0,97 GBZalecany: Raspberry Pi 5, telefony, mało RAM
Q5_K_M1,14 GBLepsza jakość, nadal mały
Q6_K1,31 GBPraktycznie jak pełny model
F163,20 GBPełna precyzja, do własnej kwantyzacji

Demo

Porozmawiaj z Muszką Instruct w przeglądarce.

Muszka Instruct 1.5B v1.0 - demo

Demo działa na Hugging Face i wczyta się tutaj dopiero po kliknięciu. Wtedy Twoja przeglądarka połączy się z Hugging Face - ta strona może używać własnych ciasteczek. Darmowy Space po okresie bezczynności budzi się nawet do minuty.

Jak użyć

Dla programistów: model jest na Hugging Face na licencji Apache 2.0.

llama.cpp i 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))
  • Zalecane ustawienia: temperatura 0,2-0,7, top-p 0,9, kara za powtórzenia 1,05. Prompt systemowy jest opcjonalny.
  • Długość kontekstu: 8 192 tokeny. Format czatu: ChatML (<|im_start|> / <|im_end|>), zapisany w tokenizerze i w plikach GGUF.
  • Pełne wagi (bf16, model.safetensors) do transformers, dalszego dotrenowania i badań.

Ograniczenia

  • Mały model, słabe fakty

    Może mylić fakty, nazwy i liczby. Nie traktuj go jako źródła wiedzy bez wyszukiwania.

  • Limity słów i formalne pisma

    Ścisłe limity słów i formalne pisma nie zawsze są dotrzymane.

  • Tylko polski

    Rodzina Muszek skupia się przede wszystkim na języku polskim.

  • Bezpieczeństwo jak w modelu bazowym

    Bez dodatkowego strojenia bezpieczeństwa ponad model bazowy. Przy publicznych wdrożeniach warto dodać filtr wejścia, np. Muszka Guard.

Rodzina Muszka

Nazwa nawiązuje do muszki owocowej (Drosophila melanogaster). Jej maleńki układ nerwowy pokazuje, ile potrafi niewielka sieć przy bardzo małym zużyciu energii. Rodzina Muszek leci w tę stronę: małe modele, które działają nawet na słabszym sprzęcie.

  • Muszka Guard

    Filtr bezpieczeństwa dla polskich zapytań.

  • Muszka Instruct

    Ten model: mały polski asystent.

  • Kolejne modele

    W przygotowaniu.

Podziękowania i atrybucja

Muszka Instruct powstała na bazie otwartej pracy polskiej społeczności AI.

Zespół Bielik LLM, SpeakLeash i ACK Cyfronet AGH

Krzysztof Ociepa, Łukasz Flis, Remigiusz Kinas, Adrian Gwoździej i Krzysztof Wróbel, a także Sebastian Kondracki, cały zespół SpeakLeash i zespół ACK Cyfronet AGH (PLGrid), twórcy Bielik-1.5B-v3.0-Instruct (Apache 2.0). Raport techniczny: Bielik v3 Small.

Muszka to niezależny projekt, a nie oficjalny model SpeakLeash.

Licencja Muszka Instruct: Apache 2.0, tak jak model bazowy.