Przejdź do treści
← Wróć do bloga
qwen3.8Artykuł

llama.cpp czy vLLM dla Qwen3.8-27B na RTX 3090?

W jednym zadaniu Qwen Code wygrał pełny profil ze zmodyfikowanym vLLM. llama.cpp pozostał prostszym wariantem zapasowym. Oto zakres dowodów i koszt tej decyzji.

Autor

Syntalith

Opublikowano Zaktualizowano 4 min czytania

Naprawa tego samego błędu w Go zajęła lokalnemu Qwen3.8-27B 502,14 s na zmodyfikowanym vLLM i 1468,76 s na llama.cpp. Oceny wyniosły odpowiednio 100/100 i 98/100. Próby wykonaliśmy na jednej domowej RTX 3090.

Różnił się cały profil: silnik, format wag, pamięć KV i limit kontekstu. Z tych wyników można wybrać konfigurację do dalszych prób, ale nie da się wyliczyć przewagi samego vLLM nad llama.cpp. Każdy wariant uruchomiliśmy raz, z jednym aktywnym żądaniem modelu.

Dane są dostępne w zestawieniu pomiarów i metrykach zadania 150k. Poniżej opisujemy różnice, które mają znaczenie przy utrzymaniu takiego serwera.

Co właściwie porównujemy

llama.cpp jest silnikiem uruchamiającym model. W tym profilu korzystał z pliku GGUF Unsloth Dynamic V3 Q4_K_M. GGUF przechowuje wagi i ich ustawienia w jednym pliku, a llama.cpp może pracować na różnych procesorach i kartach oraz przenosić część obliczeń między CPU i GPU. Taka ścieżka upraszcza przenoszenie i odtwarzanie usługi.

vLLM jest serwerem uruchamiającym model. Przyjmuje żądania, zarządza pamięcią dla kontekstu i wystawia interfejsy używane przez klientów, w tym interfejs zgodny z OpenAI. W naszym pomiarze działał z zewnętrznie zmodyfikowanym, zamrożonym stosem oraz szybkim wariantem wag W4A16 AutoRound. Ten wariant korzysta z innego pliku niż GGUF.

W4A16 oznacza w przybliżeniu wagi zapisane z dokładnością 4 bitów i aktywacje liczone w 16 bitach. Pamięć KV przechowuje pośrednie wartości uwagi dla tokenów już obecnych w kontekście. Jej format i rozmiar wpływają na to, ile tekstu mieści się w VRAM. Limit kontekstu określa maksymalną liczbę tokenów obsługiwanych przez konkretny profil; deklaracja modelu opisuje osobny poziom możliwości.

Wynik zadania programistycznego

Zadanie dotyczyło dwóch ścieżek Go, które ignorowały błędy json.Marshal. Agent miał zachować poprawne formaty odpowiedzi, dodać przewidywalne zachowanie błędne, testy regresji, kompilację i dokumentację.

Pełny profilKontekstCzasOcena CodexKompresje
llama.cpp, Dynamic V3 Q4_K_M120 0001468,76 s98/1001
zmodyfikowany vLLM, szybki W4A16 AutoRound150 000502,14 s100/1000

Kompresja oznacza skrócenie historii rozmowy przez klienta prowadzącego sesję agenta, gdy zabraknie miejsca w oknie kontekstu. W tej tabeli 0 oznacza brak takiego zdarzenia, a 1 jedno zdarzenie zapisane w przebiegu.

Ocenę wystawił OpenAI Codex według arkusza kryteriów Syntalith: poprawność obsługi błędów (40 pkt), testy regresji (20), zgodność API (15), zakres zmian (10), weryfikacja testami i kompilacją (10) oraz dokumentacja (5). Maksymalny wynik oznacza brak odjęć podczas tego przebiegu. Ten wynik nie jest audytem niezależnego laboratorium ani gwarancją powtarzalności.

W profilu vLLM telemetria zapisała maksymalnie 22 539 MiB użytej pamięci VRAM. Karta ma 24 GB, więc margines był ograniczony. W obu konfiguracjach mierzono pracę agenta, narzędzia i testy, czyli pełny przebieg zamiast pojedynczego kroku dekodowania.

Co mówią testy długiego kontekstu

Osobny test umieszczał trzy znane fakty na początku, w środku i na końcu syntetycznego rekordu, po czym prosił o zwrot trzech wartości w JSON. Wszystkie trzy sprawdzone fakty wróciły dla wejść o długości 50 059, 115 074 i 230 085 tokenów.

Profil długościTokeny wejścioweGenerowanieCzasMaks. VRAM
60k50 05949,24 tok./s59,3 s22 287 MiB
120k115 07440,46 tok./s172,6 s22 649 MiB
250k230 08528,05 tok./s563,4 s23 623 MiB

Tok./s to liczba wygenerowanych tokenów na sekundę. Czas obejmuje cały pomiar, a maksymalny VRAM pokazuje najwyższy zaobserwowany poziom zajętej pamięci karty. Każdą długość uruchomiono raz. Plik z wynikami nie przypisuje tych trzech wierszy osobno do llama.cpp albo vLLM, dlatego nie używamy ich jako bezpośredniego rankingu silników. Test sprawdza odczyt trzech wstawionych faktów i nie opisuje jakości rozumienia dowolnego dokumentu.

Kiedy wybrać llama.cpp

Ten wariant pasuje do pilota na jednej karcie, stanowiska osobistego i usługi, którą musi dać się szybko przenieść. Jeden plik GGUF jest łatwy do zarchiwizowania. Szeroki zakres sprzętu i możliwość przenoszenia części obliczeń na CPU tworzą dodatkową drogę odzyskania usługi. Mniejsza liczba prywatnych poprawek ogranicza koszt aktualizacji.

Zapasowy profil z eksperymentu używał llama.cpp, Dynamic V3 Q4_K_M i limitu 120k. Po zmianie silnika trzeba ponownie sprawdzić model, limit kontekstu i krótką odpowiedź, ponieważ sesja 150k nie pasuje automatycznie do serwera 120k.

Kiedy wybrać vLLM

Wybrany profil vLLM ma sens, gdy długie zadania są częste, margines czasu powtarza się na ustalonym zestawie testów, a zespół potrafi utrzymać obraz, wagi i zgodność interfejsu. Serwer tworzy też dobrą podstawę do późniejszych pomiarów kolejki i wielu żądań.

Kosztem jest złożoność. Zamrożony stos z zewnętrzną poprawką wymaga własnej ewidencji wersji, testu po aktualizacji sterownika i sprawdzonego powrotu do działającego profilu. Jedna karta i jedna aktywna sesja w tym eksperymencie nie dostarczają danych o przepustowości dla zespołu.

Decyzja oparta na dowodach

PotrzebaPierwszy kandydat
szybki pilotaż na jednej karciellama.cpp z GGUF
prosty wariant zapasowyllama.cpp
długie zadania, które przechodzą ustalony testzmierzony profil vLLM
kilku użytkownikówosobny test kolejki i współbieżności
mały koszt utrzymaniaprofil bez prywatnej poprawki

Syntalith konfiguruje hosting prywatnych LLM na własnym sprzęcie lub wynajętych GPU. Dobierzemy silnik, sprawdzimy obciążenie i przekażemy wersje wag, obrazy serwera oraz procedurę odtworzenia. Wycenę opieramy na zadaniu i oczekiwanej dostępności.

OpenAI Select Partner

Syntalith ma status OpenAI Select Partner w OpenAI Partner Network.

Pomagamy szybciej odpowiadać klientom i znajdować informacje w firmowych dokumentach. Dobieramy i wdrażamy narzędzia AI, a Twój zespół uczymy z nich korzystać.

Jak wdrożyć ChatGPT i OpenAI w firmie

Oceńmy prywatne AI w warunkach Twojej firmy

Pomagamy firmom i osobom prywatnym dobrać sprzęt, uruchomić model i sprawdzić go na własnych zadaniach. Możesz zacząć od komputera, który już masz, albo od rozmowy przed zakupem. Pierwsza rozmowa jest bezpłatna, a wycenę przygotowujemy po ocenie zadania i sprzętu.

Prywatne modele LLM i fine-tuning
Porozmawiaj o prywatnym AI