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

Na jednej domowej karcie RTX 3090 porównaliśmy dwa sposoby serwowania Qwen3.8-27B. W dopasowanej naprawie kodu Go profil ze zmodyfikowanym vLLM zakończył pracę w 502,14 s i otrzymał 100/100. Profil llama.cpp potrzebował 1468,76 s i otrzymał 98/100. Oba wyniki pochodzą z jednego przebiegu.

To porównanie całych konfiguracji. Zmieniły się jednocześnie silnik, format wag, pamięć KV i limit kontekstu, więc tabela wybiera profil operacyjny w tym eksperymencie. Nie izoluje jakości kwantyzacji ani przewagi samego silnika.

Pełne dane są w zestawieniu pomiarów i w metrykach zadania 150k. Eksperyment trwał po godzinach na domowym PC, z jedną kartą i jednym aktywnym uruchomieniem modelu.

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

Wdrożenie powinno obejmować wybrany profil, wersję wag i obrazu, test po restarcie oraz sprawdzony wariant powrotu. Audyt procesu AI pomaga dobrać test do rzeczywistej pracy, a bezpłatny skan procesu pozwala ustalić, czy wąskim gardłem jest model, serwer czy sam przebieg zadania.

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