Porównanie wydajności LLM na Ollama z GPU o 16 GB VRAM

Test prędkości LLM na RTX 4080 z 16 GB VRAM

Page content

Uruchamianie dużych modeli językowych lokalnie zapewnia prywatność, możliwość pracy offline i zerowe koszty API. Ten benchmark dokładnie pokazuje, czego można oczekiwać od 14 popularnych LLM na Ollama na karcie RTX 4080.

Przy karcie graficznej z 16 GB VRAM mierzyłem się ze stałym kompromisem: większe modele o potencjalnie lepszej jakości lub mniejsze modele z szybszym wnioskowaniem. Aby dowiedzieć się więcej o wydajności LLM – przepustowość względem opóźnienia, limity VRAM, równoległe żądania i benchmarki w różnych środowiskach wykonawczych – zobacz Wydajność LLM: Benchmarki, wąskie gardła i optymalizacja.

Ten artykuł koncentruje się na Ollama. Aby porównać te same klasy GPU 16 GB zmierzone za pomocą llama.cpp przy kontekście 19K, 32K i 64K (VRAM, obciążenie GPU, tokeny na sekundę dla modeli gęstych i MoE), zobacz Benchmarki LLM dla 16 GB VRAM z llama.cpp (prędkość i kontekst).

Gdy przepustowość i podział VRAM wyglądają na akceptowalne, obciążenia agentowe nadal wymagają sensownych presetów temperatury i kar dla stacków typu Qwen i Gemma; zobacz Parametry wnioskowania agentowego dla Qwen i Gemma.

Wydajność LLM na Ollama - sortowanie karaluchów

TL;DR

Oto zaktualizowana tabela porównawcza wydajności LLM na karcie RTX 4080 16GB z Ollama 0.17.7, (2026-03-09) dodano modele Qwen 3.5 9b, 9bq8, 27b i 35b:

Model Wykorzystana RAM+VRAM Podział CPU/GPU Tokeny/sek
gpt-oss:20b 14 GB 100% GPU 139,93
qwen3.5:9b 9,3 GB 100% GPU 90,89
ministral-3:14b 13 GB 100% GPU 70,13
qwen3:14b 12 GB 100% GPU 61,85
qwen3.5:9b-q8_0 13 GB 100% GPU 61,22
qwen3-coder:30b 20 GB 25%/75% CPU/GPU 57,17
qwen3-vl:30b-a3b 22 GB 30%/70% CPU/GPU 50,99
glm-4.7-flash 21 GB 27%/73% CPU/GPU 33,86
nemotron-3-nano:30b 25 GB 38%/62% CPU/GPU 32,77
qwen3.5:35b 27 GB 43%/57% CPU/GPU 20,66
devstral-small-2:24b 19 GB 18%/82% CPU/GPU 18,67
mistral-small3.2:24b 19 GB 18%/82% CPU/GPU 18,51
gpt-oss:120b 66 GB 78%/22% CPU/GPU 12,64
qwen3.5:27b 24 GB 43%/57% CPU/GPU 6,48

Kluczowa obserwacja: Modele, które mieszczą się całkowicie w VRAM, są dramatycznie szybsze. GPT-OSS 20B osiąga 139,93 tokena/sek, podczas gdy GPT-OSS 120B z intensywnym offloadingiem na CPU osiąga zaledwie 12,64 tokena/sek – różnica w prędkości wynosi 11-krotnie.

Konfiguracja sprzętu testowego

Benchmark został przeprowadzony na następującym systemie:

  • GPU: NVIDIA RTX 4080 z 16 GB VRAM
  • CPU: Intel Core i7-14700 (8 rdzeni P + 12 rdzeni E)
  • RAM: 64 GB DDR5-6000

Jest to typowa, zaawansowana konfiguracja konsumencka do lokalnego wnioskowania LLM. 16 GB VRAM to krytyczne ograniczenie – to ono decyduje, które modele działają całkowicie na GPU, a które wymagają offloadingu do CPU.

Zrozumienie w jaki sposób Ollama wykorzystuje rdzenie procesora Intela staje się ważne, gdy modele przekraczają pojemność VRAM, ponieważ wydajność CPU bezpośrednio wpływa na szybkość wnioskowania warstw offloadowanych.

Cel tego benchmarku

Głównym celem było zmierzenie prędkości wnioskowania w realistycznych warunkach. Już z doświadczenia wiedziałem, że Mistral Small 3.2 24B wyróżnia się jakością językową, podczas gdy Qwen3 14B oferuje lepsze dostosowanie do instrukcji w moich konkretnych zastosowaniach.

Ten benchmark odpowiada na praktyczne pytanie: Jak szybko każdy model może generować tekst i jaka jest kara w prędkości za przekroczenie limitów VRAM?

Parametry testu wynosiły:

  • Rozmiar kontekstu: 19 000 tokenów. To średnia wartość w moich żądaniach Generate.
  • Prompt: “compare weather and climate between capital cities of australia” (porównaj pogodę i klimat między stolicami Australii)
  • Metryka: eval rate (tokeny na sekundę podczas generowania)

Instalacja i wersja Ollama

We wszystkich testach użyto wersji Ollama 0.15.2, która była wówczas najnowsza. Później ponownie uruchomiono testy na Ollama v 0.17.7 - aby dodać modele Qwen3.5. Aby uzyskać pełną listę poleceń Ollama użytych w tym benchmarku, zobacz Ściągawkę Ollama.

Szybka odświeżka - instalacja Ollama na Linuxie:

curl -fsSL https://ollama.com/install.sh | sh

Weryfikacja instalacji:

ollama --version

Jeśli ze względu na ograniczenia miejsca musisz przechowywać modele na innym dysku, sprawdź jak przenieść modele Ollama na inny dysk.

Przetestowane modele

Następujące modele zostały zbenczmarkowane, w kolejności alfabetycznej:

Model Parametry Kwantyzacja Uwagi
devstral-small-2:24b 24B Q4_K_M Skupienie na kodzie
glm-4.7-flash 30B Q4_K_M Model “thinking”
gpt-oss:20b 20B Q4_K_M Naj szybszy ogólnie
gpt-oss:120b 120B Q4_K_M Największy przetestowany
ministral-3:14b 14B Q4_K_M Efektywny model Mistral
mistral-small3.2:24b 24B Q4_K_M Silna jakość językowa
nemotron-3-nano:30b 30B Q4_K_M Oferta NVIDII
qwen3:14b 14B Q4_K_M Najlepsze dostosowanie do instrukcji
qwen3.5:9b 9B Q4_K_M Szybki, w pełni na GPU
qwen3.5:9b-q8_0 9B Q8_0 Wyższa jakość, w pełni na GPU
qwen3.5:27b 27B Q4_K_M Świetna jakość, wolny na Ollama
qwen3-vl:30b-a3b 30B Q4_K_M Wsparcie wizji
qwen3-coder:30b 30B Q4_K_M Skupienie na kodzie
qwen3.5:35b 35B Q4_K_M Dobre możliwości kodowania

Aby pobrać dowolny model:

ollama pull gpt-oss:20b
ollama pull qwen3:14b

Rozumienie offloadingu CPU

Gdy wymagania pamięciowe modelu przekraczają dostępną VRAM, Ollama automatycznie rozdziela warstwy modelu między GPU a pamięcią systemową. Wyjście pokazuje to jako procentowy podział, np. “18%/82% CPU/GPU”.

Ma to ogromne znaczenie dla wydajności. Generowanie każdego tokena wymaga transferu danych między pamięcią CPU a GPU – to wąskie gardło narasta z każdą warstwą offloadowaną do CPU.

Wzorzec jest jasny z naszych wyników:

  • Modele 100% GPU: 61-140 tokenów/sek
  • Modele 70-82% GPU: 19-51 tokenów/sek
  • 22% GPU (głównie CPU): 12,6 tokenów/sek

Tłumaczy to, dlaczego model 20B parametrów może w praktyce wyprzedzić model 120B o 11-krotnie. Jeśli planujesz obsługiwać wiele równoległych żądań, zrozumienie w jaki sposób Ollama obsługuje równoległe żądania staje się niezbędne do planowania pojemności. Podany powyżej podział CPU-offload jest w rzeczywistości problemem budżetu KV-cache i wag w przebraniu — KV Cache na GPU 16 GB przedstawia dokładne obliczenia i ustawienia OLLAMA_KV_CACHE_TYPE, które pozwalają odzyskać zapas pamięci bez przechodzenia na mniejszy model.

Szczegółowe wyniki benchmarku

Modele działające w 100% na GPU

GPT-OSS 20B — Mistrz prędkości

ollama run gpt-oss:20b --verbose
/set parameter num_ctx 19000

NAME           SIZE     PROCESSOR    CONTEXT
gpt-oss:20b    14 GB    100% GPU     19000

eval count:           2856 token(s)
eval duration:        20.410517947s
eval rate:            139.93 tokens/s

Przy 139,93 tokenów/sek, GPT-OSS 20B jest wyraźnym zwycięzcą w aplikacjach krytycznych pod kątem prędkości. Zużywa tylko 14 GB VRAM, pozostawiając zapas na większe okna kontekstowe lub inne obciążenia GPU.

Qwen3 14B — Doskonały balans

ollama run qwen3:14b --verbose
/set parameter num_ctx 19000

NAME         SIZE     PROCESSOR    CONTEXT
qwen3:14b    12 GB    100% GPU     19000

eval count:           3094 token(s)
eval duration:        50.020594575s
eval rate:            61.85 tokens/s

Qwen3 14B oferuje najlepsze dostosowanie do instrukcji w moim doświadczeniu, z komfortową stopą pamięciową 12 GB. Przy 61,85 tokenów/sek jest wystarczająco responsywny do użycia interaktywnego.

Dla deweloperów integrujących Qwen3 w aplikacjach, zobacz Strukturalne wyjście LLM z Ollama i Qwen3 w celu ekstrakcji strukturalnych odpowiedzi JSON.

Ministral 3 14B — Szybki i kompaktowy

ollama run ministral-3:14b --verbose
/set parameter num_ctx 19000

NAME               SIZE     PROCESSOR    CONTEXT
ministral-3:14b    13 GB    100% GPU     19000

eval count:           1481 token(s)
eval duration:        21.11734277s
eval rate:            70.13 tokens/s

Mniejszy model Mistral osiąga 70,13 tokenów/sek, mieszcząc się całkowicie w VRAM. Solidny wybór, gdy potrzebujesz jakości rodziny Mistral przy maksymalnej prędkości.

qwen3.5:9b - szybki i nowy

ollama run  qwen3.5:9b --verbose
/set parameter num_ctx 19000
compare weather and climate between capital cities of australia

NAME          ID              SIZE      PROCESSOR    CONTEXT
qwen3.5:9b    6488c96fa5fa    9.3 GB    100% GPU     19000

eval count:           3802 token(s)
eval duration:        41.830174597s
eval rate:            90.89 tokens/s

qwen3.5:9b-q8_0 - kwantyzacja q8

Ta kwantyzacja obniża wydajność qwen3.5:9b o 30% w porównaniu z q4.

ollama run  qwen3.5:9b-q8_0 --verbose
/set parameter num_ctx 19000

compare weather and climate between capital cities of australia
NAME               ID              SIZE     PROCESSOR    CONTEXT
qwen3.5:9b-q8_0    441ec31e4d2a    13 GB    100% GPU     19000

eval count:           3526 token(s)
eval duration:        57.595540159s
eval rate:            61.22 tokens/s

Modele wymagające offloadingu CPU

qwen3-coder:30b - najszybszy wśród zestawu LLM 30b dzięki byciu tylko tekstowym

ollama run qwen3-coder:30b --verbose
/set parameter num_ctx 19000
compare weather and climate between capital cities of australia

NAME               ID              SIZE     PROCESSOR          CONTEXT
qwen3-coder:30b    06c1097efce0    20 GB    25%/75% CPU/GPU    19000
22%/605%

eval count:           559 token(s)
eval duration:        9.77768875s
eval rate:            57.17 tokens/s

Qwen3-VL 30B — Najlepsza wydajność z częściowym offloadingiem

ollama run qwen3-vl:30b-a3b-instruct --verbose
/set parameter num_ctx 19000

NAME                         SIZE     PROCESSOR          CONTEXT
qwen3-vl:30b-a3b-instruct    22 GB    30%/70% CPU/GPU    19000

eval count:           1450 token(s)
eval duration:        28.439319709s
eval rate:            50.99 tokens/s

Pomimo 30% warstw na CPU, Qwen3-VL utrzymuje 50,99 tokenów/sek – szybciej niż niektóre modele 100% GPU. Możliwość wizji dodaje wszechstronności w zadaniach multimodalnych.

Mistral Small 3.2 24B — Kompromis między jakością a prędkością

ollama run mistral-small3.2:24b --verbose
/set parameter num_ctx 19000

NAME                    SIZE     PROCESSOR          CONTEXT
mistral-small3.2:24b    19 GB    18%/82% CPU/GPU    19000

eval count:           831 token(s)
eval duration:        44.899859038s
eval rate:            18.51 tokens/s

Mistral Small 3.2 oferuje lepszą jakość językową, ale płaci wysoką karę za prędkość. Przy 18,51 tokenów/sek wydaje się zauważalnie wolniejszy w interaktywnym czacie. Warte tego w zadaniach, w których jakość jest ważniejsza niż opóźnienie.

GLM 4.7 Flash — Model MoE “Thinking”

ollama run glm-4.7-flash --verbose
/set parameter num_ctx 19000

NAME                 SIZE     PROCESSOR          CONTEXT
glm-4.7-flash        21 GB    27%/73% CPU/GPU    19000

eval count:           2446 token(s)
eval duration:        1m12.239164004s
eval rate:            33.86 tokens/s

GLM 4.7 Flash to model Mixture of Experts 30B-A3B – 30B parametrów łącznie, z aktywnymi tylko 3B na token. Jako model “thinking”, generuje wewnętrzne rozumowanie przed odpowiedziami. 33,86 tokenów/sek obejmuje zarówno tokeny myślowe, jak i wyjściowe. Pomimo offloadingu CPU, architektura MoE utrzymuje go stosunkowo szybkiego.

qwen3.5:35b - Nowy model z przyzwoitą wydajnością self-hosted

ollama run qwen3.5:35b --verbose
/set parameter num_ctx 19000
compare weather and climate between capital cities of australia

NAME           ID              SIZE     PROCESSOR          CONTEXT
qwen3.5:35b    4af949f8bdf0    27 GB    43%/57% CPU/GPU    19000

eval count:           3418 token(s)
eval duration:        2m45.458926548s
eval rate:            20.66 tokens/s

GPT-OSS 120B — Ciężka artyleria

ollama run gpt-oss:120b --verbose
/set parameter num_ctx 19000

NAME            SIZE     PROCESSOR          CONTEXT
gpt-oss:120b    66 GB    78%/22% CPU/GPU    19000

eval count:           5008 token(s)
eval duration:        6m36.168233066s
eval rate:            12.64 tokens/s

Uruchamianie modelu 120B na 16 GB VRAM jest technicznie możliwe, ale bolesne. Przy 78% na CPU, 12,64 tokenów/sek sprawia, że użycie interaktywne jest frustrujące. Lepiej nadaje się do przetwarzania wsadowego, gdzie opóźnienie nie ma znaczenia.

qwen3.5:27b - Mądry, ale wolny na Ollama

ollama run qwen3.5:27b --verbose
/set parameter num_ctx 19000
compare weather and climate between capital cities of australia

NAME           ID              SIZE     PROCESSOR          CONTEXT
qwen3.5:27b    193ec05b1e80    24 GB    43%/57% CPU/GPU    19000

eval count:           3370 token(s)
eval duration:        8m40.087510281s
eval rate:            6.48 tokens/s

Przetestowałem qwen3.5:27b i zebrałem bardzo dobre opinie o wydajności tego modelu z OpenCode. Jest bardzo zdolny, z wiedzą, naprawdę dobry tool calling, choć jest wolny na moim maszynie na Ollama. Wypróbowałem inne platformy self-hostingu LLM i uzyskałem znacznie wyższe prędkości. Uważam, że nadszedł czas, aby pożegnać się z Ollama. Napiszę o tym nieco później.

Praktyczne zalecenia

Dla czatu interaktywnego

Używaj modeli, które mieszczą się w 100% w VRAM:

  1. GPT-OSS 20B — Maksymalna prędkość (139,93 t/s)
  2. Ministral 3 14B — Dobra prędkość z jakością Mistral (70,13 t/s)
  3. Qwen3 14B — Najlepsze dostosowanie do instrukcji (61,85 t/s)

Dla lepszego doświadczenia czatu, rozważ Otwarte interfejsy chat UI dla lokalnego Ollama.

Dla przetwarzania wsadowego

To znów, na moim sprzęcie - 14 GB VRAM.

Gdy prędkość jest mniej krytyczna:

  • Mistral Small 3.2 24B — Lepsza jakość językowa
  • Qwen3-VL 30B — Możliwość wizji + tekstu

Gdy prędkość w ogóle nie jest krytyczna:

  • Qwen3.5:35b - Dobre możliwości kodowania
  • Qwen3.5:27b - Bardzo dobry, ale wolny na Ollama. Miałem jednak spory sukces hostując ten model na llama.cpp.

Dla rozwoju i kodowania

Jeśli budujesz aplikacje z Ollama:

Alternatywne opcje hostingu

Jeśli ograniczenia Ollama Cię zaniepokajają (zobacz Obawy dotyczące degradacji Ollama), poszukaj innych opcji w Przewodniku po lokalnym hostingu LLM lub porównaj Docker Model Runner vs Ollama.

Wniosek

Z 16 GB VRAM możesz uruchamiać zdolne LLM z imponującą prędkością – o ile wybierasz mądrze. Kluczowe ustalenia:

  1. Trzymaj się limitów VRAM w użyciu interaktywnym. Model 20B z 140 tokenów/sek wygrywa z modelem 120B z 12 tokenów/sek w większości praktycznych celów.

  2. GPT-OSS 20B wygrywa czystą prędkością, ale Qwen3 14B oferuje najlepszy balans prędkości i możliwości w zadaniach dostosowania do instrukcji.

  3. Offloading CPU działa, ale oczekuj spowolnienia o 3-10x. Akceptowalne dla przetwarzania wsadowego, frustrujące dla czatu.

  4. Rozmiar kontekstu ma znaczenie. Kontekst 19K użyty tutaj znacząco zwiększa zużycie VRAM. Zmniejsz kontekst dla lepszego wykorzystania GPU.

Dla wyszukiwania opartego na AI, łączącego lokalne LLM z wynikami z sieci, zobacz self-hosting Perplexica z Ollama.

Aby badać więcej benchmarków, kompromisów między VRAM a przepustowością oraz strojenia wydajności w Ollama i innych środowiskach wykonawczych, sprawdź nasz hub Wydajność LLM: Benchmarki, wąskie gardła i optymalizacja.

Przydatne linki

Zasoby wewnętrzne

Zewnętrzne referencje

Subskrybuj

Otrzymuj nowe wpisy o systemach, infrastrukturze i inżynierii AI.