Wariant czterobitowy modelu Llama 3.1 8B zajmuje 4 685 MiB, ośmiobitowy 8 138 MiB, a w uśrednionym wyniku pięciu testów różnica między nimi wynosi 0,26 punktu na skali, gdzie model nieskompresowany dostaje 69,47. Pytanie kwantyzacja q4 czy q8 wygląda więc na wybór między ponad czterdziestoma procentami miejsca a zauważalną stratą jakości, ale pomiary tego nie potwierdzają. Wariant czterobitowy bywa przy tym szybszy od ośmiobitowego, co przeczy intuicji, dopóki nie spojrzy się na to, co naprawdę ogranicza prędkość. Poniżej są liczby z jednego spójnego badania, wyjaśnienie zaskakującej różnicy w tempie oraz miejsce, w którym jakość rzeczywiście się załamuje.
Czym w praktyce różni się Q4 od Q8
Kwantyzacja zapisuje liczby opisujące model z mniejszą dokładnością. Zamiast szesnastu bitów na wagę używa ośmiu, czterech albo jeszcze mniej. Plik maleje proporcjonalnie, a model traci trochę precyzji.
Litera Q z liczbą mówi o tej dokładności. Q8 to zapis ośmiobitowy, Q4 czterobitowy. Dalsze oznaczenia w rodzaju _K_M opisują sposób zapisu, a nie samą liczbę bitów, i mają duże znaczenie dla wyniku.
Tyle wystarczy do dalszej lektury. Reszta tekstu jest o tym, co z tego wynika dla twojego komputera.
Ile naprawdę tracisz, schodząc z Q8 na Q4
Najciekawsze dane pochodzą z badania, które przepuściło jeden model przez wszystkie warianty kwantyzacji i zmierzyło je tym samym zestawem testów. Autor wziął Llamę 3.1 8B Instruct i porównał rozmiar, przewidywalność tekstu oraz pięć zestawów zadań. Poniżej najważniejszy wycinek wyników.
| Wariant | Rozmiar | Przewidywalność | Zadania matematyczne | Wiedza ogólna | Średnia z 5 testów |
|---|---|---|---|---|---|
| F16 (bez kompresji) | 15 317 MiB | 7,32 | 77,63 | 63,50 | 69,47 |
| Q8_0 | 8 138 MiB | 7,33 | 77,48 | 63,43 | 69,41 |
| Q6_K | 6 283 MiB | 7,35 | 78,17 | 63,17 | 69,23 |
| Q5_K_M | 5 460 MiB | 7,40 | 78,54 | 62,80 | 69,36 |
| Q4_K_M | 4 685 MiB | 7,56 | 77,41 | 62,43 | 69,15 |
Przy przewidywalności tekstu niższa liczba znaczy lepiej, przy zadaniach wyższa. Odczyt jest jednoznaczny. Wariant ośmiobitowy praktycznie nie różni się od nieskompresowanego, a czterobitowy traci 0,32 punktu średniej wobec oryginału. Za tę stratę dostajesz plik mniejszy o 69 procent.
Podobny obraz daje narzędzie z projektu llama.cpp, które przy każdym wariancie podaje przyrost błędu przewidywania dla modelu klasy 7B. Wariant Q4_K_M dokłada 0,0535, Q5_K_M 0,0142, a Q8_0 zaledwie 0,0004. Producent opisuje przy tym Q4_K_M jako zrównoważony i zalecany, a Q8_0 jako bardzo duży przy znikomej poprawie.
Q4 potrafi być szybszy od Q8 i to nie jest pomyłka pomiaru
Ta liczba zaskakuje najbardziej, więc warto ją podać dokładnie. W pomiarach dołączonych do llama.cpp ten sam model generuje 71,93 znacznika na sekundę w wariancie Q4_K_M i 50,93 w Q8_0. Znacznik to fragment tekstu, którym model operuje zamiast całych słów. Wersja nieskompresowana wypada najgorzej z całej trójki, bo 29,17.
Powód jest prozaiczny. Przy generowaniu tekstu wąskim gardłem nie jest liczenie, tylko przesyłanie wag z pamięci do układu obliczeniowego. Niższa dokładność zapisu zmniejsza objętość samych wag, więc przy każdym kolejnym słowie przesyłanych jest mniej danych. Rozmiar pliku jest przy tym przybliżeniem, a nie pełnym zapotrzebowaniem na pamięć, bo dochodzą jeszcze bufory i miejsce na rozmowę.
Wynika z tego wniosek, który wielu osobom wywraca plan zakupowy. Wariant ośmiobitowy nie jest wersją lepszą, tylko ostrożniejszą. Płacisz za niego podwójnie: miejscem w pamięci i prędkością odpowiedzi.
Gdzie naprawdę jest urwisko jakości
Skoro między czterema a ośmioma bitami różnica jest niewielka, warto wiedzieć, gdzie się kończy. To samo badanie zmierzyło również warianty trzybitowe i tam obraz się zmienia.
Wariant Q3_K_S traci na zadaniach matematycznych 9,32 punktu wobec modelu nieskompresowanego. Przewidywalność tekstu pogarsza się z 7,32 do 8,96. Średnia spada do 65,49, czyli o cztery punkty, a nie o trzy dziesiąte.
Autor zauważa przy tym rzecz praktyczną. Najbardziej cierpi rozumowanie matematyczne, a zadania oparte na zdrowym rozsądku pozostają stabilne w całym zakresie. Jeżeli twoje zastosowanie wymaga liczenia albo wielokrokowego wnioskowania, trzy bity odpadają. Do streszczania i pisania trzymają się znacznie dłużej.
Litery po Q mają znaczenie większe, niż wygląda
Tu wraca sprawa oznaczeń, o której wspomnieliśmy na początku. Nie każdy wariant czterobitowy jest taki sam, a różnica bywa blisko pięciokrotna.
Narzędzie z llama.cpp podaje dla starego wariantu Q4_0 przyrost błędu 0,2499, a dla Q4_K_M 0,0535. To wynik gorszy prawie pięciokrotnie, przy praktycznie tym samym rozmiarze pliku. Nowsze warianty z literą K dzielą wagi na bloki i zapisują je sprytniej.
Praktyczna zasada brzmi więc prosto. Jeśli widzisz na liście plików Q4_0 i Q4_K_M w podobnym rozmiarze, bierz ten drugi. Stare oznaczenia bez litery K zostały w obiegu głównie w starszych plikach i poradnikach.
Pierwsza Misja AI · Kodożercy
AI bez technikaliów – kurs i certyfikat
Pierwsza Misja AI to kurs Kodożerców dla absolutnych początkujących. Fabuła w konwencji science fiction, gamifikacja, ćwiczenia na żywym modelu, certyfikat na koniec.
Zacznij Pierwszą Misję →

Kompresja pamięci kontekstu to osobna decyzja
Drugi poziom kompresji dotyczy czegoś zupełnie innego niż wagi modelu. Rozmowa również zajmuje pamięć, a im dłuższa, tym więcej. Tę pamięć da się skompresować niezależnie.
Ollama steruje tym zmienną OLLAMA_KV_CACHE_TYPE. Domyślna wartość f16 jest najdokładniejsza. Wariant q8_0 zajmuje mniej więcej połowę tego miejsca, a q4_0 około jednej czwartej, przy odpowiednio małej i średniej stracie precyzji.
Są tu dwa haczyki i oba warto znać. Kompresja działa tylko przy włączonym szybszym mechanizmie uwagi. Ustawienie obowiązuje globalnie, dla wszystkich modeli naraz, więc nie da się go dobrać osobno dla każdego. Dokumentacja zaznacza też, że modele o określonej budowie tracą na tym więcej niż inne.
Jak dobrać poziom kompresji do własnej karty
Karty modeli podają w tej sprawie konkretną zasadę i sprawdza się ona lepiej niż rozważania o bitach. Wybierz wariant, którego plik jest mniejszy o 1 do 2 gigabajtów od pamięci karty graficznej. Ten margines pokrywa kontekst i narzut programu.
Jeżeli chcesz maksymalnej jakości i godzisz się na wolniejsze odpowiedzi, dodaj do siebie pamięć karty i pamięć systemową, a potem zastosuj ten sam margines. Model policzy się wtedy częściowo na procesorze. Prędkość spadnie, ale zadziała.
Zasada działa lepiej niż gotowe zestawienia kart, bo rozmiary plików różnią się między modelami nawet w tej samej klasie. Dla Mistrala 7B wariant Q4_K_M waży 4,37 GB, a Q8_0 już 7,70 GB. To dwie różne decyzje na tej samej karcie i dopiero po podstawieniu konkretnego pliku widać, która jest wykonalna.
Ta sama arytmetyka wraca przy wyborze wielkości modelu, o czym piszemy w tekście o modelu 7B kontra 13B. Poziom kompresji i klasa modelu to dwa suwaki tego samego budżetu pamięci, więc ustawia się je razem.
Kiedy Q8 naprawdę ma sens
Zostają przypadki, w których wariant ośmiobitowy jest uzasadniony, i warto je nazwać. Pierwszy to sytuacja, gdy model i tak mieści się w pamięci z zapasem. Wtedy nie ma po co schodzić niżej.
Drugi dotyczy porównywania modeli między sobą. Jeżeli sprawdzasz, który model lepiej radzi sobie z twoim zadaniem, kompresja dokłada zmienną, której nie kontrolujesz. Test na wariancie ośmiobitowym mierzy model, a nie sposób jego zapisu.
Trzeci przypadek to punkt odniesienia przy strojeniu. Zanim uznasz, że model nie nadaje się do zadania, warto sprawdzić go raz w wariancie dokładniejszym. Jeśli wynik się nie poprawi, winna jest inna rzecz niż kwantyzacja. Sprawdzanie tego wymaga narzędzia, które daje dostęp do wszystkich wariantów, a to argument za zejściem z Ollamy do llama.cpp.
Agent AI, który pracuje na danych Twojej firmy
Budujemy agentów, którzy odpowiadają klientom, czytają dokumenty i przygotowują raporty, podłączonych do Waszych systemów. Zaczynamy od jednego procesu i sprawdzamy efekt, zanim pójdziemy dalej.
Najczęstsze pytania
Czy różnicę między Q4 a Q8 widać w zwykłej rozmowie?
W pomiarach na Llamie 3.1 8B średnia z pięciu zestawów zadań różni się o 0,26 punktu, a przewidywalność tekstu o 0,23. Przy pisaniu, streszczaniu i odpowiadaniu na pytania taka różnica ginie w szumie. Widać ją raczej na dłuższych łańcuchach rozumowania i przy zadaniach wymagających liczenia.
Który wariant wybrać, jeśli mam kartę z 8 GB pamięci?
Zastosuj zasadę marginesu: plik ma być mniejszy o 1 do 2 gigabajtów od pamięci karty. Dla Mistrala 7B wariant Q4_K_M waży 4,37 GB, więc mieści się z zapasem, a Q8_0 z jego 7,70 GB już nie. Przy innym modelu z tej samej klasy podstaw jego własny rozmiar pliku, bo różnice sięgają kilkuset megabajtów.
Czy Q4 psuje model przy dłuższych tekstach?
Przytoczone badanie nie sprawdzało osobno długiego kontekstu ani spójności długich wypowiedzi, więc nie rozstrzyga tego pytania. Wyraźny spadek wyników zaczyna się dopiero przy trzech bitach i najmocniej dotyka rozumowania matematycznego. Przy długim kontekście osobnym czynnikiem jest rozmiar i kompresja pamięci podręcznej rozmowy, a nie sama kwantyzacja wag.
Co zrobić, gdy model po kompresji zaczyna zmyślać?
Najpierw sprawdź, czy mieści się w całości w pamięci karty, bo rozłożenie na procesor zmienia prędkość, ale nie jakość. Potem sprawdź długość kontekstu, bo obcięta rozmowa wygląda dokładnie jak zapominanie. Dopiero gdy oba ustawienia są w porządku, przetestuj wariant o jeden poziom dokładniejszy.
Podsumowanie
Różnica między wariantem czterobitowym a ośmiobitowym jest mniejsza, niż podpowiada liczba bitów w nazwie. W pomiarach na Llamie 3.1 8B Q4_K_M zajmuje 4 685 MiB, a Q8_0 8 138 MiB, natomiast w średniej z pięciu testów dzieli je 0,26 punktu. Do tego wariant czterobitowy generuje tekst szybciej, bo prędkość ogranicza przesyłanie wag z pamięci, a nie samo liczenie. Prawdziwe urwisko leży przy trzech bitach, gdzie zadania matematyczne tracą ponad dziewięć punktów. Zapamiętaj więc jedną zasadę zamiast całej tabeli: wybierz wariant z literą K, którego plik jest mniejszy o 1 do 2 gigabajtów od pamięci twojej karty. Zacznij od Q4_K_M, a wyżej sięgaj tylko wtedy, gdy masz zapas pamięci albo porównujesz modele między sobą i chcesz wyeliminować kompresję jako zmienną.
Newsletter · DevstockAcademy & Kodożercy
Bądź na bieżąco ze światem IT, AI i automatyzacji
Co wtorek: newsy z branży, praktyczne tipy i narzędzia które warto znać. Zero spamu.



