llama.cpp czy vLLM dla Qwen3.8-27B na RTX 3090?
vLLM lepiej obsługuje wiele zapytań i agentów. llama.cpp jest prostszy, przenośny i dobrze wspiera GGUF. Porównujemy oba pełne profile na RTX 3090.
Syntalith
llama.cpp jest lekkim silnikiem do uruchamiania modeli na różnych procesorach i kartach, szczególnie w formacie GGUF. vLLM jest serwerem nastawionym na wydajne kolejkowanie i obsługę wielu zapytań na GPU. Wybór dotyczy całej usługi. Szybkość pojedynczej odpowiedzi jest jednym z kilku kryteriów.
W eksperymencie po godzinach na domowym PC zmodyfikowany vLLM ukończył dopasowane zadanie Qwen Code w 502,14 s wobec 1468,76 s na llama.cpp. Zachowaliśmy llama.cpp jako rozwiązanie zapasowe, ponieważ GGUF jest prostszy do uruchomienia, przeniesienia i odtworzenia.
To porównanie dwóch kompletnych profili. Nie dowodzi, że oficjalne wydanie vLLM zawsze pokonuje llama.cpp ani że wagi W4A16 mają wyższą jakość od GGUF Dynamic V3.
Dwa różne produkty operacyjne
llama.cpp daje dojrzały format GGUF, prosty serwer, szeroki wybór sprzętu i precyzyjną kontrolę przenoszenia warstw między procesorem i kartą oraz pamięci kontekstu. Dobrze nadaje się do pilota, stanowiska osobistego i środowiska, w którym łatwość odtworzenia jest ważniejsza od maksymalnej przepustowości.
vLLM jest serwerem nastawionym na wydajne obsługiwanie modeli i udostępnia między innymi interfejsy zgodne z OpenAI. Wariant z domowego eksperymentu używał jednak zewnętrznej poprawki dla Qwen3.8/RTX 3090, zamrożonego vLLM 0.27.1, osobnego pliku wag AutoRound, FP8 KV, pamięci podręcznej wspólnego prefiksu i MTP-3. Tego wyniku nie należy przypisywać czystej instalacji z pip.
Najpierw surowe 115k
Na tym samym wejściu 115 074 tokenów oba profile odtworzyły fakty z początku, środka i końca.
| Profil | Czas | VRAM | Wynik testu pamięci |
|---|---|---|---|
llama.cpp, Dynamic V3 | 189,67 s | 21 597 MiB | zaliczony |
| zmodyfikowany vLLM | 167,65 s | 22 515 MiB | zaliczony |
vLLM był o 11,6% szybszy kosztem około 0,9 GiB dodatkowego VRAM. To czystszy test inferencji niż sesja agenta, choć profile nadal różnią się formatem wag i pamięcią kontekstu.
Potem całe zadanie Qwen Code
W zadaniu kodowym interesował nas zaakceptowany wynik:
| Profil | Kontekst | Ocena | Czas | Kompresje |
|---|---|---|---|---|
llama.cpp, Dynamic V3 Q4_K_M | 120k | 98/100 | 1468,76 s | 1 |
| zmodyfikowany vLLM, W4A16 | 150k | 100/100 | 502,14 s | 0 |
Obie wersje dały kod nadający się do dalszej pracy. vLLM dołożył mocniejszy test serializacji, uniknął kompresji i zakończył zadanie znacznie szybciej. To wystarczyło, by został profilem zachowanym do kolejnych domowych prób.
Nie rozdzielimy z tej tabeli, ile zysku dały kernely, ile MTP, ile 30k dodatkowego kontekstu, a ile konkretny układ wag. Do tego potrzebna byłaby macierz kontrolująca każdą zmienną i wiele powtórzeń.
Gdzie llama.cpp nadal wygrywa
- Prostota artefaktu. Jeden plik GGUF łatwiej zweryfikować i przenieść.
- Zakres sprzętu. CPU, różne GPU i częściowy offload rozszerzają możliwości awaryjne.
- Kontrola pamięci. Profile wag, pamięci kontekstu i wielkości paczki są jawne i przewidywalne.
- Odtwarzanie. Mniej prywatnych poprawek oznacza mniejszy koszt aktualizacji.
- Rozwiązanie zapasowe. Gdy obraz vLLM lub jego plik wag przestanie działać po zmianie sterownika, sprawdzony GGUF przywraca usługę.
Rozwiązanie zapasowe zachowane w eksperymencie to llama.cpp, Dynamic V3 Q4_K_M, Q8 KV, 120k i medium, sterowany przez Codex. Nie jest najszybszy, ale ma zachowane testy i prostszą ścieżkę diagnostyczną.
Gdzie wybrany vLLM ma sens
Zmodyfikowany vLLM jest uzasadniony, gdy długie zadania są częste, różnica czasu powtarza się na zestawie akceptacyjnym, a zespół potrafi utrzymać obraz, plik wag i zgodność protokołu. Pamięć podręczna wspólnego prefiksu pomaga, gdy kolejne żądania współdzielą duży początek. Silnik daje też lepszą drogę do późniejszych testów kolejkowania.
Koszt utrzymania należy policzyć. Poprawka spoza oficjalnego projektu może zablokować aktualizację bezpieczeństwa albo nowy sterownik. Wtedy szybszy przebieg konkuruje z godzinami inżyniera potrzebnymi do ponownego zbudowania obrazu.
Matryca decyzji
| Priorytet | Pierwszy kandydat |
|---|---|
| szybki pilot na jednej karcie | llama.cpp + oficjalny GGUF |
| najprostszy backup | llama.cpp |
| długie zadania z powtarzalnym prefiksem | vLLM po dopasowanym teście |
| wielu użytkowników | vLLM lub inny serwer przepustowościowy, po teście kolejki |
| minimalny koszt utrzymania | wariant bez zewnętrznych poprawek, nawet jeśli wolniejszy |
Syntalith wdraża zwycięski profil razem z rozwiązaniem zapasowym, wykazem wersji, testem po restarcie i progiem aktualizacji. Audyt procesu AI od 4990 zł netto może zakończyć się rekomendacją prostszego llama.cpp, jeśli skala nie płaci za dodatkową złożoność. Bezpłatny skan procesu ustala zadanie, na którym warto to rozstrzygnąć.
Bezpłatny skan procesów
Zacznij od bezpłatnego skanu procesów.
- 30 minut z inżynierem, który może prowadzić Twoje wdrożenie.
- Przegląd procesów, które kosztują Cię najwięcej czasu i pieniędzy.
- Pisemne podsumowanie: co zautomatyzować, w jakiej kolejności, z widełkami kosztów.
W 30 minut wybieramy proces do oceny, a w ciągu 2 dni roboczych dostajesz rekomendację, także gdy lepsza będzie prostsza droga.
0 zł
30 minut · pisemne podsumowanie w 2 dni robocze
Terminy zobaczysz w swojej strefie czasowej.
Wolisz napisać? Opisz proces