Akademia · Lokalne modele
Jeśli szukasz maksymalnej wydajności, elastyczności i prawdziwej współbieżności na własnym sprzęcie, odpowiedzią jest llama-server z projektu llama.cpp. Poniżej kompilacja, modele GGUF, flagi uruchomienia i dostęp przez API zgodne z OpenAI.
Ostatnia aktualizacja:
01 / Wprowadzenie · Dlaczego llama-server
Na rynku istnieje wiele narzędzi do uruchamiania lokalnych modeli językowych. Jeśli jednak zależy Ci na maksymalnej wydajności, elastyczności i — co najważniejsze — prawdziwej współbieżności, odpowiedź jest jedna: llama-server z projektu llama.cpp.
Kluczowa przewaga — continuous batching: w przeciwieństwie do serwerów przetwarzających zapytania sekwencyjnie (jedno po drugim), llama-server obsługuje wiele zapytań jednocześnie i równolegle. Pozwala to w pełni wysycić moc GPU i obsłużyć wielu użytkowników lub procesów naraz.
02 / Sprzęt · GPU i format GGUF
Serwer działa wyłącznie z modelami w formacie GGUF — to plik zawierający „skwantyzowany" model. Kwantyzacja to zmniejszenie precyzji wag (np. z 16-bitowej do 4-bitowej), co drastycznie redukuje rozmiar pliku i wymagania VRAM przy niewielkiej utracie jakości.
03 / Instalacja · Klonowanie i kompilacja
Budujemy oprogramowanie bezpośrednio ze źródła, aby zapewnić maksymalną optymalizację dla sprzętu. Potrzebujesz git, cmake i odpowiedniego zestawu narzędzi deweloperskich.
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp Aktualizacja: repozytorium przeniesiono do organizacji ggml-org. Stary adres github.com/ggerganov/llama.cpp tylko przekierowuje — używaj github.com/ggml-org/llama.cpp.
Proces różni się w zależności od posiadanego GPU.
Apple Silicon (Metal):
cmake -B build -DGGML_METAL=ON
cmake --build build --config Release -j Nvidia (CUDA):
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release -j AMD (ROCm):
cmake -B build -DGGML_HIP=ON
cmake --build build --config Release -j 04 / Konfiguracja · Uruchomienie serwera
Minimalnie musisz wskazać model:
./build/bin/llama-server -m /sciezka/do/modelu.gguf -c 4096 -ngl 99 -m, --model [SCIEZKA] — wymagane: ścieżka do pliku modelu GGUF.-hf, --hf-repo <user>/<model>[:quant] — alternatywa dla -m: pobiera i uruchamia model GGUF prosto z Hugging Face, bez ręcznego ściągania pliku.-ngl, --n-gpu-layers [LICZBA] — krytyczne: ile warstw modelu trafia do VRAM GPU. Ustawiaj wysoko (np. 99), aby załadować jak najwięcej na GPU. Flaga przyjmuje też auto i all — przy auto serwer sam dobiera liczbę warstw pod dostępną pamięć.--cpu-moe, -cmoe / --n-cpu-moe, -ncmoe [N] — dla modeli MoE: trzyma wagi ekspertów w RAM zamiast w VRAM (wariant z N dotyczy tylko pierwszych N warstw). Tym sposobem odpalisz duży model MoE na karcie, która inaczej by go nie pomieściła.-fa, --flash-attn [on|off|auto] — Flash Attention; domyślnie auto, więc serwer sam włącza je, gdy sprzęt to wspiera.--parallel [LICZBA] — ile zapytań (slotów) może być przetwarzanych równolegle.--host / --port — adres i port nasłuchu (np. 0.0.0.0 i 8080).Continuous batching domyślnie włączone: nie musisz już podawać --cont-batching. Aby wyłączyć, użyj -nocb lub --no-cont-batching.
Aktualizacja — tryb routera (wiele modeli na jednym serwerze): odpal llama-server bez -m, a wystartuje jako router. Zamiast jednego modelu na sztywno obsłuży wiele i ładuje je na żądanie. --models-dir wskazuje katalog z plikami GGUF, a --models-preset opisuje konfiguracje poszczególnych modeli w pliku .ini. Każde zapytanie trafia do właściwego modelu samo — przełączasz model bez restartu serwera.
./build/bin/llama-server \
-m ./modele/Mistral-7B-v0.1.Q4_K_M.gguf \
-c 4096 \
-ngl 99 \
--host 0.0.0.0 \
--port 8080 \
--parallel 4 05 / Użycie · WebUI i API
Otwórz przeglądarkę i wejdź na http://127.0.0.1:8080. Dostaniesz: rozmowę z modelem, statystyki na żywo (tokeny/s) oraz ustawienia (temperatura, top-k).
Dzięki continuous batching i fladze --parallel serwer nie blokuje się na jednym zapytaniu. Możesz otworzyć wiele kart w przeglądarce lub wysłać wiele zapytań API jednocześnie — serwer inteligentnie rozdzieli zasoby GPU i przetworzy wszystkie równolegle.
llama-server automatycznie udostępnia API zgodne ze standardem OpenAI (endpoint /v1/). Oznacza to, że podłączysz setki narzędzi (LangChain, Open WebUI, skrypty Python) do lokalnego serwera — wystarczy ustawić adres API na http://127.0.0.1:8080/v1/.
Jeśli zależy Ci na tool callingu, dodaj flagę --jinja. Każe ona serwerowi użyć szablonu czatu wbudowanego w model GGUF. To ona odblokowuje na /v1/chat/completions poprawne parsowanie wywołań narzędzi (pole tool_calls) i wydzielanie treści rozumowania do osobnego pola reasoning_content. Bez niej serwer zgaduje format heurystycznie i często przepuszcza znaczniki jako zwykły tekst.
06 / Best practices · Dobre praktyki
Wydajność zależy od flagi -ngl. Jeśli serwer działa wolno, prawdopodobnie część modelu została przeniesiona do RAM zamiast VRAM.
Projekt llama.cpp rozwija się bardzo szybko. Co tydzień uruchamiaj:
git pull
cmake --build build --config Release -j Wszystkie dostępne endpointy (/completion, /chat/completions) znajdziesz w oficjalnej dokumentacji projektu na github.com/ggml-org/llama.cpp.
Wdrożenie u Was
Akademia to materiały. Projekt i wdrożenie lokalnego serwera LLM prowadzimy z Waszym zespołem — od doboru sprzętu po produkcję. 30 minut wystarczy, żeby sprawdzić, czy ma to u Was sens.