Porównanie wydajności LLM w Ollama na GPU z 16 GB pamięci VRAM

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

Page content

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

W przypadku karty graficznej z 16 GB pamięci VRAM, byłem narażony na ciągłe kompromisy: większe modele o potencjalnie lepszej jakości, czy mniejsze modele szybsze w wnioskowaniu. Więcej na temat wydajności LLM – przepustowość vs opóźnienie, 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. W przypadku tych samych GPU klasy 16 GB zmierzonych przy użyciu llama.cpp z kontekstem 19K, 32K i 64K (VRAM, obciążenie GPU, tokeny na sekundę dla checkpointów dense i MoE), zobacz Benchmarki LLM dla 16 GB VRAM z llama.cpp (prędkość i kontekst).

Gdy przepustowość i podziały VRAM wyglądają akceptowalnie, obciążenia stylu agentowego nadal wymagają rozsądnych ustawień temperatury i kar dla stosów Qwen i Gemma; zobacz Parametry wnioskowania agentowego dla Qwen i Gemma.

Wydajność LLM w Ollama - reranking cockroaches

TL;DR

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

Model Zużycie 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

Kluczowe spostrzeżenie: Modele, które mieszczą się w całości w VRAM, są drastycznie szybsze. GPT-OSS 20B osiąga 139,93 tokenów/sek, podczas gdy GPT-OSS 120B z intensywnym offloadingiem na CPU „gąsienicuje" przy 12,64 tokenów/sek – różnica prędkości wynosi 11-krotnie.

Konfiguracja sprzętu testowego

Benchmark przeprowadzono 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

Reprezentuje to typową, wysokopoziomową konfigurację konsumencką do lokalnego wnioskowania LLM. 16 GB VRAM to krytyczne ograniczenie – decyduje ono, które modele działają w całości na GPU, a które wymagają offloadingu do CPU.

Zrozumienie jak Ollama wykorzystuje rdzenie procesora Intel staje się ważne, gdy modele przekraczają pojemność VRAM, ponieważ wydajność CPU bezpośrednio wpływa na prędkość wnioskowania warstw offloadowanych.

Cel tego benchmarku

Głównym celem było zmierzenie prędkości wnioskowania w realistycznych warunkach. Z doświadczenia już wiedziałem, że Mistral Small 3.2 24B excelsuje w jakości językowej, podczas gdy Qwen3 14B oferuje lepsze przestrzeganie instrukcji w moich specyficznych przypadkach użycia.

Ten benchmark odpowiada na praktyczne pytanie: Jak szybko każdy model generuje tekst i jaka jest karą za przekroczenie limitów VRAM?

Parametry testowe były następujące:

  • Rozmiar kontekstu: 19 000 tokenów. Jest to wartość średnia w moich żądaniach Generate.
  • Prompt: „compare weather and climate between capital cities of australia" (porównaj pogodę i klimat między stolicami Australii)
  • Metryka: stopień ewaluacji (tokeny na sekundę podczas generowania)

Instalacja i wersja Ollama

Wszystkie testy używały wersji Ollama 0.15.2, najnowszej wersji w momencie testowania. Później ponownie uruchomiono na Ollama v 0.17.7 – aby dodać modele Qwen3.5. Pełny zestaw poleceń Ollama użytych w tym benchmarku znajdziesz w Skróconym przewodniku Ollama.

Aby szybko zainstalować Ollama na Linuxie:

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

Zweryfikuj instalację:

ollama --version

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

Przetestowane modele

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

Model Parametry Kwantyzacja Uwagi
devstral-small-2:24b 24B Q4_K_M Skupiony na kodzie
glm-4.7-flash 30B Q4_K_M Model myślowy
gpt-oss:20b 20B Q4_K_M Najszybszy ogólnie
gpt-oss:120b 120B Q4_K_M Największy przetestowany
ministral-3:14b 14B Q4_K_M Efektywny model Mistrala
mistral-small3.2:24b 24B Q4_K_M Wysoka jakość językowa
nemotron-3-nano:30b 30B Q4_K_M Oferta NVIDIA
qwen3:14b 14B Q4_K_M Najlepsze przestrzeganie 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 Doskonała jakość, wolny w Ollama
qwen3-vl:30b-a3b 30B Q4_K_M Obsługa widzenia
qwen3-coder:30b 30B Q4_K_M Skupiony 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

Zrozumienie offloadingu do CPU

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

Ma to ogromne implikacje wydajnościowe. Każde generowanie tokena wymaga transferu danych między pamięcią CPU a GPU – wąskie gardło, które narasta z każdą warstwą offloadowaną do CPU.

Wzór 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

To wyjaśnia, dlaczego model o 20B parametrów może w praktyce wyprzedzić model o 120B parametrów 11-krotnie. Jeśli planujesz obsługiwać wiele równoległych żądań, zrozumienie jak Ollama obsługuje żądania równoległe staje się kluczowe dla planowania pojemności.

Szczegółowe wyniki benchmarku

Modele działające 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 tokenach/sek, GPT-OSS 20B jest jasnym zwycięzcą dla aplikacji krytycznych dla prędkości. Używa tylko 14 GB VRAM, pozostawiając miejsce 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 najlepszą jakość przestrzegania instrukcji według moich doświadczeń, przy wygodnym śladzie pamięciowym 12 GB. Przy 61,85 tokenach/sek jest wystarczająco responsywny do użytku interaktywnego.

Dla deweloperów integrujących Qwen3 z aplikacjami, zobacz Strukturyzowane wyjście LLM z Ollama i Qwen3 w celu ekstrakcji strukturyzowanych odpowiedzi JSON.

Ministral 3 14B — Szybki i zwarty

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 Mistrala dostarcza 70,13 tokenów/sek, mieszcząc się w całości 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 do 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 do CPU

qwen3-coder:30b - najszybszy ze zbioru LLM 30b ze względu na bycie 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ść częściowo offloadowana

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

Mimo 30% warstw na CPU, Qwen3-VL utrzymuje 50,99 tokenów/sek – szybciej niż niektóre modele 100% GPU. Możliwość widzenia dodaje wszechstronność dla zadań 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 wyższą jakość językową, ale płaci wysoką karę za prędkość. Przy 18,51 tokenach/sek czuje się zauważalnie wolniej w rozmowach interaktywnych. Warto tego, jeśli jakość ma większe znaczenie niż opóźnienie.

GLM 4.7 Flash — Model myślowy MoE

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 o 30B-A3B – 30B całkowitych parametrów, z których tylko 3B jest aktywne na token. Jako „model myślowy" generuje wewnętrzne rozumowanie przed odpowiedziami. 33,86 tokenów/sek obejmuje zarówno tokeny myślowe, jak i wyjściowe. Mimo offloadingu do CPU, architektura MoE utrzymuje go w rozsądnej prędkości.

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ężki gracz

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. Lepsze do przetwarzania wsadowego, gdzie opóźnienie nie ma znaczenia.

qwen3.5:27b - Mądry, ale wolny w 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 otrzymałem niezwykle dobrą opinię o wydajności tego modelu z OpenCode. Jest bardzo kompetentny, wiedzy, naprawdę dobry w wywoływaniu narzędzi, choć jest wolny na moim sprzęcie w Ollama. Próbowałem innych platform self-hosting LLM i uzyskałem znacznie wyższe prędkości. Szczerze mówiąc, czas odejść od Ollama. Napiszę o tym nieco później.

Praktyczne rekomendacje

Do czatu interaktywnego

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

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

Dla lepszego doświadczenia czatowego, rozważ Otwarte interfejsy użytkownika czatu dla lokalnego Ollama.

Do przetwarzania wsadowego

To znowu na moim sprzęcie - 14 GB VRAM.

Gdy prędkość jest mniej krytyczna:

  • Mistral Small 3.2 24B — Wyższa jakość językowa
  • Qwen3-VL 30B — Możliwości widzenia + tekst

Gdy prędkość wcale nie jest krytyczna:

  • Qwen3.5:35b - Dobre możliwości kodowania
  • Qwen3.5:27b - Ekstremalnie dobry, ale wolny w Ollama. Miałem jednak spory sukces z hostowaniem tego modelu na llama.cpp.

Do rozwoju i kodowania

Jeśli budujesz aplikacje z Ollama:

Alternatywne opcje hostingu

Jeśli ograniczenia Ollama Cię martwią (zobacz Obawy dotyczące degradacji Ollama), rozważ inne opcje w Przewodniku po lokalnym hostingu LLM lub porównaj Docker Model Runner vs Ollama.

Wniosek

Z 16 GB VRAM możesz uruchamiać kompetentne LLM z imponującymi prędkościami – jeśli wybierzesz mądrze. Kluczowe wnioski:

  1. Pozostań w limitach VRAM do użytku interaktywnego. Model 20B przy 140 tokenach/sek pokonuje model 120B przy 12 tokenach/sek w większości praktycznych zastosowań.

  2. GPT-OSS 20B wygrywa pod względem czystej prędkości, ale Qwen3 14B oferuje najlepszy balans między prędkością a możliwościami w zadaniach wymagających przestrzegania instrukcji.

  3. Offloading do CPU działa, ale oczekuj zwolnienia 3-10-krotnego. Akceptowalne do przetwarzania wsadowego, frustrujące w czacie.

  4. Rozmiar kontekstu ma znaczenie. 19K kontekstu użytego tutaj znacząco zwiększa zużycie VRAM. Zredukuj kontekst dla lepszej wykorzystania GPU.

Dla wyszukiwania zasilane AI łączącego lokalne LLM z wynikami internetowymi, zobacz self-hosting Perplexica z Ollama.

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

Przydatne linki

Zasoby wewnętrzne

Referencje zewnętrzne

Subskrybuj

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