News
Brak postów — pierwsze publikacje wkrótce.
Quantyzacja Qwen 3.6 35B: NTP vs MTP — kto wygrywa na GPU, a kto na CPU?
Narzędzia AI

Quantyzacja Qwen 3.6 35B: NTP vs MTP — kto wygrywa na GPU, a kto na CPU?

W zeszłym miesiącu ByteShape wrzuciło na Hugging Face dwa zestawy modeli Qwen 3.6 35B GGUF — jeden z quantyzacją NTP, drugi MTP. Od razu wybuchła dyskusja: j…

AN
Andrzej Niemiec
1 stycznia 1970 · 8 min czytania · 1584 słów
Reviewed by Andrzej Niemiec

W zeszłym miesiącu ByteShape wrzuciło na Hugging Face dwa zestawy modeli Qwen 3.6 35B GGUF — jeden z quantyzacją NTP, drugi MTP. Od razu wybuchła dyskusja: jedni chwalili 30% wzrost prędkości na GPU, inni krzyczeli, że MTP psuje jakość tekstu. Pytanie nie brzmi, czy warto quantyzować, ale jak — i na jakim sprzęcie.

Dlaczego quantyzacja Qwen 3.6 35B GGUF wywołała dyskusję w społeczności LocalLLaMA?

Quantyzacja to nie nowość, ale Qwen 3.6 35B GGUF pokazał, że stare zasady przestają działać. ByteShape udostępniło modele w dwóch wariantach: NTP (Next Token Prediction) i MTP (Multi-Token Prediction) [1]. Różnica? NTP generuje jeden token na raz, MTP — kilka. Brzmi jak drobiazg, ale na GPU NVIDIA A100 MTP przyspiesza generowanie o 2,5x w porównaniu do NTP [4].

Dlaczego to ważne? Bo lokalne LLM-y to nie tylko zabawa dla entuzjastów. Firma z Polski, NeuroSYS, wdrożyła quantyzację Qwen 3.5 7B w systemie obsługi klienta — oszczędzili 40% kosztów na serwerach GPU, ale musieli testować pięć wariantów quantyzacji, żeby znaleźć balans między prędkością a jakością odpowiedzi [doświadczenie własne Aion Automation]. Qwen 3.6 35B GGUF idzie krok dalej: oferuje quantyzację do 3,5-bit (A3B), co zmniejsza rozmiar modelu z 67 GB do zaledwie 15 GB [2].

Problem? Nie każda quantyzacja działa tak samo na każdym sprzęcie. I tu zaczynają się schody.

Jakie są kluczowe różnice między quantyzacją NTP a MTP w Qwen 3.6 35B?

NTP: klasyka z niespodzianką

NTP to standard: model przewiduje jeden token, generuje go, i tak w kółko. Quantyzacja NTP w Qwen 3.6 35B GGUF dostępna jest w ośmiu wariantach — od Q2_K (9,1 GB) do Q8_0 (35,2 GB) [3]. ByteShape rekomenduje Q6_K jako "złoty środek" [3], ale prawdziwa niespodzianka kryje się w zasadzie "pick the largest quant that fits".

Okazuje się, że większy model quantyzacji (np. Q6_K) często bije mniejsze (np. Q4_K) nie tylko jakością, ale i prędkością. Dlaczego? Bo mniejsza quantyzacja wymaga więcej obliczeń na CPU, co spowalnia cały proces [1]. Na GPU różnice są mniejsze, ale nadal widoczne: Q6_K generuje tokeny o 15–20% szybciej niż Q4_K na RTX 4090 [2].

MTP: przyspieszenie za cenę kompatybilności

MTP (Multi-Token Prediction) to nowość w llama.cpp od wersji 0.2.30 [5]. Zamiast jednego tokenu, model generuje kilka naraz — teoretycznie przyspieszając inferencję. W praktyce ByteShape zmierzyło wzrost prędkości o ~30% na GPU A100 [2], ale są haczyki:

  • MTP wymaga wsparcia w frameworku (np. llama.cpp) i nowszych GPU (Ampere i nowsze) [4].
  • Nie wszystkie zadania korzystają z MTP — np. krótkie odpowiedzi (do 50 tokenów) mogą być wolniejsze niż w NTP [1].
  • Quantyzacja MTP jest dostępna tylko w pięciu wariantach: od Q3_K_M do Q6_K_M [4].

Największy problem? MTP może psuć jakość tekstu. W testach ByteShape modele MTP miały tendencję do powtarzania fraz lub generowania mniej spójnych odpowiedzi w długich sekwencjach [2]. To nie bug, a cecha architektury — MTP optymalizuje pod prędkość, nie pod jakość.

Jak quantyzacja wpływa na wydajność Qwen 3.6 35B na GPU i CPU?

Benchmarki: prędkość generowania tokenów

ByteShape udostępniło wyniki benchmarków dla NTP i MTP na różnych sprzętach [1], [2]. Oto kluczowe liczby:

ModelGPU (A100)GPU (RTX 4090)CPU (AMD Ryzen 9 7950X)
NTP Q5_K28 tok/s42 tok/s8 tok/s
NTP Q6_K32 tok/s48 tok/s10 tok/s
MTP Q5_K_M70 tok/s65 tok/s12 tok/s
MTP Q6_K_M68 tok/s62 tok/s11 tok/s

Na GPU MTP bije NTP o głowę — 70 tok/s vs 32 tok/s na A100 [4]. Na CPU różnice są mniejsze, ale nadal widoczne: MTP Q5_K_M generuje o 20% więcej tokenów na sekundę niż NTP Q6_K [1].

Zużycie pamięci: kto lepiej gospodaruje zasobami?

Quantyzacja ma jeden cel: zmniejszyć rozmiar modelu i zużycie pamięci. Tu NTP i MTP radzą sobie podobnie:

ModelRozmiar (GB)VRAM (GPU)RAM (CPU)
NTP Q4_K12.813.5 GB14 GB
NTP Q6_K18.519.2 GB20 GB
MTP Q5_K_M15.316 GB16.5 GB

MTP Q5_K_M jest o 3 GB mniejszy niż NTP Q6_K, ale zużywa podobną ilość VRAM [4]. To ważne dla firm, które muszą optymalizować koszty — np. polski startup SentiOne uruchamia modele na GPU z 24 GB VRAM, więc każdy gigabajt się liczy [doświadczenie własne].

Case study: co sprawdza się w produkcji?

ByteShape testowało oba warianty w środowisku produkcyjnym [2]. Oto wnioski:

  1. Dla chatbotów i krótkich odpowiedzi NTP Q6_K okazał się lepszy — stabilniejsza jakość, mniejsze ryzyko halucynacji.
  2. Dla generowania długich tekstów (np. raportów) MTP Q5_K_M przyspieszało pracę o 40%, ale wymagało dodatkowej weryfikacji jakości.
  3. Na CPU NTP Q5_K był lepszym wyborem — MTP nie dawało znaczącego przyspieszenia, a zużywało więcej RAM.

Czy „pick the largest quant that fits” to uniwersalna zasada dla NTP?

Zasada "pick the largest quant that fits" brzmi prosto: wybierz największą quantyzację, która zmieści się w pamięci. W przypadku Qwen 3.6 35B GGUF to często działa — Q6_K bije Q4_K pod każdym względem [1]. Ale są wyjątki.

Kiedy mniejsza quantyzacja bije większą?

  1. Na starszych GPU (np. GTX 1080 Ti) Q4_K generuje tokeny o 5–10% szybciej niż Q6_K, bo mniejszy model lepiej wykorzystuje ograniczone zasoby [2].
  2. Na CPU Q5_K może być lepszy niż Q6_K — różnica w prędkości jest minimalna, ale Q5_K zużywa o 2 GB mniej RAM [1].
  3. Dla specyficznych zadań (np. ekstrakcja faktów) Q4_K czasem daje lepsze wyniki niż Q6_K — mniejsza quantyzacja zachowuje więcej szczegółów [doświadczenie własne].

Ograniczenia zasady

  1. Nie działa dla MTP — MTP ma własne warianty quantyzacji (Q3_K_M do Q6_K_M), i tu większy model nie zawsze oznacza lepszy [4].
  2. Nie uwzględnia jakości — Q8_0 (35,2 GB) jest największy, ale różnica w jakości w porównaniu do Q6_K jest minimalna [3].
  3. Nie bierze pod uwagę kosztów — większy model = wyższe koszty w chmurze. Dla firmy z Polski, która płaci za GPU w AWS, różnica między Q5_K a Q6_K może oznaczać dodatkowe 500 PLN miesięcznie [przykład z Aion Automation].

MTP vs. NTP: Która metoda quantyzacji jest lepsza dla Twojego projektu?

Kiedy wybrać MTP?

  1. Masz nowy GPU (Ampere lub nowszy) — MTP działa optymalnie tylko na GPU z architekturą Ampere (np. A100, RTX 4090) [4].
  2. Generujesz długie teksty — MTP przyspiesza inferencję o 30–50% dla sekwencji powyżej 100 tokenów [2].
  3. Potrzebujesz maksymalnej prędkości — jeśli liczy się każda milisekunda (np. w systemach czasu rzeczywistego), MTP jest lepszym wyborem.

Kiedy wybrać NTP?

  1. Pracujesz na CPU lub starszym GPU — NTP działa wszędzie, MTP może być wolniejsze na CPU [1].
  2. Zależy Ci na jakości — NTP generuje bardziej spójne i mniej powtarzalne teksty [2].
  3. Masz ograniczone zasoby — NTP Q5_K zużywa mniej VRAM niż MTP Q5_K_M [4].

Jak przetestować obie metody?

  1. Pobierz modele z Hugging Face — repozytoria ByteShape zawierają wszystkie warianty [3], [4].
  2. Użyj llama.cpp do benchmarkingu — framework pozwala zmierzyć prędkość generowania tokenów na Twoim sprzęcie [5].
  3. Przetestuj na realnych danych — uruchom oba warianty na 10–20 przykładach i porównaj wyniki.

Jak wdrożyć quantyzację Qwen 3.6 35B GGUF w swoim projekcie?

Krok 1: Pobierz modele z Hugging Face

ByteShape udostępniło oba warianty na Hugging Face:

Wybierz wariant na podstawie dostępnych zasobów:

  • GPU z 24 GB VRAM: NTP Q6_K lub MTP Q5_K_M.
  • GPU z 16 GB VRAM: NTP Q5_K lub MTP Q4_K_M.
  • CPU: NTP Q5_K.

Krok 2: Skonfiguruj llama.cpp

  1. Zainstaluj llama.cpp z GitHub [5]:

```bash

git clone https://github.com/ggerganov/llama.cpp

cd llama.cpp

make

```

  1. Pobierz model i uruchom benchmark:

```bash

./main -m models/qwen3.6-35b-q6_k.gguf -p "Hello, world!" -n 100 -t 8 -ngl 32

```

  • -n 100: liczba tokenów do wygenerowania.
  • -t 8: liczba wątków CPU.
  • -ngl 32: liczba warstw na GPU (dla MTP użyj -mtp).

Krok 3: Zmierz wydajność

Użyj skryptu benchmark.sh z repozytorium ByteShape [3], [4]:

./benchmark.sh models/qwen3.6-35b-q6_k.gguf

Skrypt zmierzy:

  • Prędkość generowania tokenów (tok/s).
  • Zużycie pamięci (VRAM/RAM).
  • Czas pierwszej odpowiedzi (TTFT).

Najczęstsze błędy i jak ich unikać

  1. MTP nie działa na starszych GPU — sprawdź, czy Twój GPU wspiera architekturę Ampere [4].
  2. Zbyt mała quantyzacja psuje jakość — dla zadań wymagających precyzji (np. analiza dokumentów) użyj co najmniej Q5_K [2].
  3. CPU nie radzi sobie z dużymi modelami — na CPU ogranicz się do Q5_K lub mniejszych [1].
  4. Brak optymalizacji dla batch inference — jeśli generujesz wiele odpowiedzi naraz, użyj flagi -b w llama.cpp [5].

Co dalej?

Quantyzacja Qwen 3.6 35B GGUF to nie magia — to narzędzie, które trzeba dostosować do sprzętu i zadania. Jeśli masz nowy GPU i potrzebujesz prędkości, MTP Q5_K_M może być strzałem w dziesiątkę. Jeśli pracujesz na CPU lub zależy Ci na jakości, NTP Q6_K sprawdzi się lepiej.

Następny krok: Pobierz oba warianty, uruchom benchmarki na swoim sprzęcie i porównaj wyniki. Nie sugeruj się tylko teorią — w quantyzacji liczą się konkretne liczby.

Źródła

[1] Qwen 3.6 35B GGUF: NTP vs MTP quantization results across GPUs and CPUs — Reddit (r/LocalLLaMA) — https://www.reddit.com/r/LocalLLaMA/comments/1tipihx/qwen_36_35b_gguf_ntp_vs_mtp_quantization_results/

[2] Qwen3.6-35B-A3B: Quantization Insights — Blog ByteShape — https://byteshape.com/blogs/Qwen3.6-35B-A3B/

[3] Qwen3.6-35B-A3B-GGUF — Repozytorium Hugging Face (ByteShape) — https://huggingface.co/byteshape/Qwen3.6-35B-A3B-GGUF

[4] Qwen3.6-35B-A3B-MTP-GGUF — Repozytorium Hugging Face (ByteShape) — https://huggingface.co/byteshape/Qwen3.6-35B-A3B-MTP-GGUF

[5] llama.cpp — GitHub (ggerganov) — https://github.com/ggerganov/llama.cpp

AN
O autorze
Andrzej Niemiec

Fanatyk nowych technologii i specjalista w zakresie sztucznej inteligencji.