Krótka odpowiedź: PLLuM (Polski Duży Model Językowy) odpalisz lokalnie na używanej Tesli tak samo jak każdy inny model w formacie GGUF — przez Ollamę albo llama.cpp. Kluczowe pytanie to nie „czy", tylko „który rozmiar modelu" i „ile ma VRAM Twoja karta". Tesla P40 24GB to budżetowy wybór z dużym zapasem pamięci; V100 16GB albo V100 32GB daje więcej mocy przy dłuższym kontekście. Dane nie muszą opuszczać Twojej infrastruktury — to główny powód, dla którego polska administracja i firmy chcą tego lokalnie.
Piszę to z perspektywy kogoś, kto codziennie odbiera pytania typu „mam wrażliwe dane klientów / dokumenty urzędowe, nie mogę tego wysłać do chmury OpenAI — da się postawić polski model u siebie?". Da się. I nie potrzebujesz do tego karty za kilkanaście tysięcy złotych. Poniżej — konkret, bez owijania, z uczciwym oznaczeniem tego, czego nie jestem pewien.
Co to jest PLLuM i po co go trzymać lokalnie
PLLuM to Polski Duży Model Językowy — rodzina modeli językowych rozwijana przez konsorcjum polskich instytucji, którego liderem jest NASK Państwowy Instytut Badawczy. W skład konsorcjum wchodzą m.in. Politechnika Wrocławska, Instytut Podstaw Informatyki PAN, OPI PIB, Uniwersytet Łódzki, Instytut Slawistyki PAN i Centralny Ośrodek Informatyki; w fazie rozwojowej dołączyła Akademia Górniczo-Hutnicza (moc obliczeniową dostarcza ACK CYFRONET AGH), a COI wdraża modele w aplikacji mObywatel. Idea jest prosta: model uczony z myślą o języku polskim, polskim kontekście kulturowym i administracyjnym, z wagami udostępnianymi publicznie na Hugging Face (organizacja CYFRAGOVPL) w rozmiarach 4B, 8B, 12B i ~70B, zależnie od wydania i modelu w wariantach base, instruct i chat.
Jedna ważna uwaga techniczna, bo w sieci krąży skrót myślowy: oficjalne repozytoria PLLuM udostępniają wagi w formacie safetensors, a nie GGUF. Pliki GGUF (te, których używa Ollama i llama.cpp) to kwantyzacje społecznościowe — robią je i publikują na Hugging Face niezależni autorzy (m.in. mradermacher, tensorblock, bartowski). To nadal PLLuM, tylko przepakowany do formatu wygodnego dla llama.cpp — po prostu pobierasz GGUF z repo społecznościowego, nie z konta CYFRAGOVPL.
Dlaczego lokalnie, a nie w chmurze?
- RODO i suwerenność danych. Dane osobowe, dokumenty urzędowe, dane medyczne czy prawne — przy lokalnym przetwarzaniu nie musisz wysyłać ich do zewnętrznego dostawcy API. To mocno ułatwia kontrolę nad danymi, ale samo uruchomienie modelu lokalnie nie oznacza automatycznej zgodności z RODO (o tym w FAQ). Dla urzędów i wielu firm brak wysyłki na zewnątrz to warunek konieczny, nie wygoda.
- Brak opłaty per token. Nie płacisz za każde zapytanie do zewnętrznego API — koszt przenosisz na własny sprzęt, energię, chłodzenie i utrzymanie. Przy dużych wolumenach to się liczy.
- Offline i kontrola. Model działa bez internetu, wersję zamrażasz, nikt Ci go nie „zaktualizuje" pod nogami.
- Polski język. PLLuM (podobnie jak Bielik) jest rozwijany z naciskiem na polszczyznę i polski kontekst, więc w zadaniach po polsku może być szczególnie interesujący. Czy w Twoim przypadku wypadnie lepiej niż konkretny model ogólny — to zależy od zastosowania, więc zweryfikuj na własnych zadaniach, zamiast wierzyć w ogólne rankingi.
Ile VRAM potrzebujesz
Nie ma magii — jest arytmetyka. Zapotrzebowanie na VRAM zależy od dwóch rzeczy: liczby parametrów modelu i liczby bitów na parametr (kwantyzacji).
Reguła kciuka: VRAM ≈ liczba parametrów × bity na parametr / 8, plus narzut na kontekst (KV cache) i sam runtime. Kwantyzacja to sposób na „ściśnięcie" wag:
- Q8 (~8 bitów/param) — blisko oryginału, najwięcej VRAM.
- Q5_K_M (~5 bitów) — dobra jakość, rozsądny rozmiar.
- Q4_K_M (~4 bity) — najczęstszy kompromis; model wyraźnie mniejszy, jakość nadal użyteczna.
Orientacyjnie, dla różnych rozmiarów modelu (sam plik wag; dolicz zapas na kontekst/KV cache). Tabela pokazuje przede wszystkim, czy same wagi się zmieszczą na danej karcie — a nie gwarantowany komfort pracy przy długim kontekście:
| Rozmiar modelu | Q4_K_M (wagi, ~orient.) | Q5_K_M (~orient.) | Karta (mieści wagi) |
|---|---|---|---|
| ~7–8B | ~5–6 GB | ~6–7 GB | P40 / P100 / V100 z zapasem |
| ~11–13B | ~8–10 GB | ~10–12 GB | P40 24GB, V100 16GB |
| ~30B | ~18–22 GB | ~22–26 GB | P40 24GB (mały margines na kontekst) / V100 32GB |
| ~70B | ~40 GB+ | ~48 GB+ | 2× P40 24GB* |
* Dla 70B liczy się łączna VRAM, nie liczba kart: 2× P40 24GB = 48 GB wystarcza na wagi w Q4, ale 2× V100 16GB = 32 GB może nie wystarczyć. Jeśli składasz to z V100, celuj w konfigurację o odpowiednio dużej łącznej pamięci (np. 2× V100 32GB).
Liczby to szacunki z reguły parametry×bity — dokładny rozmiar sprawdź przy konkretnym pliku GGUF (widać go na Hugging Face). Dla konkretu: Llama-PLLuM-8B-instruct w kwantyzacjach społecznościowych waży ~4,9 GB w Q4_K_M, ~5,7 GB w Q5_K_M i ~8,5 GB w Q8_0 (stan na 08.2026) — czyli 8-miliardowy PLLuM z zapasem mieści się na każdej z opisywanych kart. Do tego doliczaj KV cache: im dłuższy kontekst, tym więcej pamięci zjada. Pełny rozkład „ile VRAM na jaki model" mam tu: ile VRAM na LLaMA 7B/13B/70B.
Która karta pod PLLuM
- Tesla P40 24GB — budżet i pojemność. 24 GB GDDR5 to najwięcej VRAM za najmniej pieniędzy. 13B w Q4 mieści się z dużym zapasem na kontekst; ~30B w Q4 też się zmieści, ale wtedy margines na długi kontekst jest znacznie mniejszy. Wada, którą powtarzam uczciwie: P40 nie ma Tensor Cores, a różnice architektoniczne Pascal→Volta przekładają się w praktyce na znacznie słabszy prefill (przetwarzanie długiego promptu). Do pracy z krótszymi promptami i pojedynczym użytkownikiem — bardzo rozsądny wybór.
- V100 16GB / V100 32GB — więcej mocy obliczeniowej. HBM2 (wysoka przepustowość) plus Tensor Cores 1. generacji. V100 daje wyższą wydajność w prefillu i lepiej znosi obsługę wielu zapytań; wariant 32 GB dodatkowo pozwala na większe modele i dłuższy kontekst bez łączenia kart. Uwaga: 16 GB to mniej pamięci niż 24 GB w P40 — na samym marginesie na kontekst V100 16GB nie wygrywa z P40. Płacisz więcej — dostajesz szybszy „czas do pierwszego tokena".
- P100 16GB — kompromis cenowy. HBM2 daje wysoką przepustowość pamięci, ale w naszym teście nie przekłada się to na przewagę w prefillu — brak Tensor Cores i różnice architektoniczne pozostają istotne; do tego 16 GB ogranicza większe modele.
Uczciwie o technikaliach: Tesla V100 i P100 mają NVENC (enkoder wideo) zgodnie z oficjalną matrycą NVIDIA, ale do tego zadania obliczeniowego enkoder wideo i tak nie ma znaczenia; kartą bez NVENC jest dopiero A100. Wspominam o tym, żeby nikt nie kupił tych kart „przy okazji do transkodowania" — do LLM enkoder nie robi różnicy. I jeszcze jedno, o czym ludzie zapominają: te karty korzystają z 8-pinowego złącza zasilania typu CPU/EPS (nie PCIe) — przed podłączeniem sprawdź wymagany przewód dla konkretnego wariantu karty i serwera; nie używaj przypadkowego kabla tylko dlatego, że pasuje mechanicznie. To osobny temat, ale realny koszt.
Jak odpalić — Ollama albo llama.cpp
Najprościej przez Ollamę, jeśli masz plik GGUF z PLLuM. Tworzysz Modelfile:
FROM ./pllum-<rozmiar>-Q4_K_M.gguf
# opcjonalnie: szablon promptu i parametry
PARAMETER num_ctx 4096
PARAMETER temperature 0.6
Potem:
ollama create pllum -f Modelfile
ollama run pllum
Uwaga: dobierz num_ctx do tego, ile VRAM Ci zostało po wczytaniu wag — zbyt duży kontekst może wyczerpać VRAM. Zależnie od konfiguracji runtime zmniejszy dostępny kontekst albo przeniesie część obliczeń do RAM/CPU, co potrafi dramatycznie obniżyć wydajność. Dla oryginalnych wag z Hugging Face szablon czatu jest zdefiniowany w konfiguracji/tokenizerze modelu (tokenizer_config.json) — warianty oparte na Llamie używają szablonu z rodziny Llama 3.1, wariant 12B (baza Mistral-Nemo) ma własny. Dobre pliki GGUF przenoszą ten szablon do własnych metadanych, więc llama.cpp i Ollama pobierają go stamtąd automatycznie i zwykle nie musisz nic ustawiać ręcznie. Jeśli Twój plik GGUF go nie zawiera, ustaw TEMPLATE zgodnie z kartą konkretnej wagi na Hugging Face.
Alternatywnie llama.cpp bezpośrednio:
./llama-server -m pllum-<rozmiar>-Q4_K_M.gguf -ngl 999 -c 4096
-ngl 999 wrzuca wszystkie warstwy na GPU (upewnij się, że model się mieści), -c to długość kontekstu. Dostajesz endpoint kompatybilny z API, pod który podłączysz własną aplikację.
Cała procedura jest identyczna jak przy Bieliku — jeśli już go stawiałeś, PLLuM zajmie Ci pięć minut. Krok po kroku pokazuję to na przykładzie Bielika tu: Bielik lokalnie na używanej Tesli.
Bielik vs PLLuM — którego użyć
Obie rodziny są polskie i obie warto mieć lokalnie. Nie ma jednej dobrej odpowiedzi — zależy od zadania.
- Bielik — dojrzały, popularny w społeczności, sprawdzony w codziennych zadaniach po polsku.
- PLLuM — budowany przez konsorcjum z udziałem instytucji publicznych, z naciskiem na polski kontekst administracyjny (trafił m.in. do aplikacji mObywatel). Licencja zależy od konkretnej wagi: wariant 12B (baza Mistral-Nemo) jest na Apache 2.0, warianty oparte na Llamie — na licencji Llama 3.1; obie dopuszczają użycie komercyjne. Uwaga: w rodzinie istnieją też starsze warianty z dopiskiem
-nc(non-commercial), które komercyjnie użyć się nie da — dlatego licencję sprawdzaj przy tej konkretnej wadze, którą pobierasz.
Moja szczera rada: pobierz oba w GGUF, odpal na tej samej karcie i przetestuj na WŁASNYCH promptach. Benchmarki ogólne nie powiedzą Ci, który lepiej streszcza Twoje umowy albo odpowiada w Twoim tonie. To kwestia dwóch wieczorów, a decyzję podejmiesz na danych, nie na cudzej opinii.
Źródła
Dane o PLLuM zweryfikowane 2026-08-11 na oficjalnych źródłach (pewność: potwierdzone):
- PLLuM — strona projektu (skład konsorcjum, lider NASK) — https://pllum.org.pl/projects
- NASK — „Nowe modele językowe są już dostępne. Rodzina PLLuM się powiększa" (rozwój rodziny, partnerzy) — https://www.nask.pl/aktualnosci/nowe-modele-jezykowe-sa-juz-dostepne-rodzina-pllum-sie-powieksza
- PLLuM — CYFRAGOVPL (wagi i warianty na Hugging Face: 4B/8B/12B/~70B, base/instruct/chat, format safetensors) — https://huggingface.co/CYFRAGOVPL
- CYFRAGOVPL/Llama-PLLuM-8B-instruct-2512 (baza Llama-3.1-8B, licencja Llama 3.1, szablon czatu) — https://huggingface.co/CYFRAGOVPL/Llama-PLLuM-8B-instruct-2512
- CYFRAGOVPL/PLLuM-12B-instruct-2512 (baza Mistral-Nemo-Base-2407, licencja Apache-2.0) — https://huggingface.co/CYFRAGOVPL/PLLuM-12B-instruct-2512
- mradermacher/Llama-PLLuM-8B-instruct-GGUF (społecznościowe GGUF; rozmiary Q4_K_M ~4,9 GB, Q5_K_M ~5,7 GB, Q8_0 ~8,5 GB) — https://huggingface.co/mradermacher/Llama-PLLuM-8B-instruct-GGUF
- NVIDIA Video Encode/Decode GPU Support Matrix (P100 i V100 mają NVENC; A100 = 0) — https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new
- NVIDIA Tesla V100 datasheet (HBM2, Tensor Cores) — https://images.nvidia.com/content/technologies/volta/pdf/tesla-volta-v100-datasheet-letter-fnl-web.pdf
Tak, sprzedajemy te karty — P40 24GB, V100 16GB, V100 32GB, P100 16GB, Tesla P4 8GB — więc mam interes w tym, żebyś jedną kupił. Dlatego wolę mówić wprost, także o wadach (wolny prefill P40, zasilanie EPS) i o tym, że enkoder wideo NVENC przy LLM nie ma znaczenia, niż sprzedać Ci rozczarowanie. Każdy egzemplarz przechodzi test wygrzewający (burn-in) i dostaje certyfikat. Nie wiesz, który rozmiar PLLuM i która karta pasują do Twojego przypadku? Napisz do nas — pomożemy dobrać.
FAQ
- Czy PLLuM jest darmowy do użytku komercyjnego?
- Najczęściej tak — najnowsze wagi mają licencje przyjazne komercji: 12B na Apache 2.0, warianty oparte na Llamie na licencji Llama 3.1. Ale to zależy od konkretnej wersji: w rodzinie są też starsze wagi
-nc(non-commercial). Zanim wdrożysz coś komercyjnie, sprawdź licencję dokładnie tej wagi na Hugging Face. - Najmniejsza karta pod PLLuM?
- Zależy od rozmiaru modelu. Mały wariant (~7–8B) zmieści się nawet na Tesla P4 8GB w niskim quancie — ale na 8 GB wybieraj małe modele i krótszy kontekst, bo samo zmieszczenie pliku GGUF nie daje dużego zapasu na KV cache; większe wymagają P40 24GB lub V100.
- Czy PLLuM działa na 2× P40?
- Tak — llama.cpp i Ollama potrafią rozłożyć duży model na dwie karty. 2× P40 24GB daje ~48 GB łącznej VRAM i może pozwolić na modele klasy 70B w Q4 — zależnie od konkretnego GGUF, długości kontekstu, ustawień splitowania i zapasu na KV cache. Pamiętaj: łączna VRAM z dwóch kart to nie to samo co 48 GB na jednej — dochodzi komunikacja między GPU po PCIe, która potrafi obciążyć wydajność.
- RODO — czy lokalny model wystarczy do zgodności?
- Lokalne przetwarzanie mocno pomaga (dane nie opuszczają Twojej infrastruktury), ale zgodność to też procedury, dostęp i dokumentacja. Model to element układanki, nie całość — decyzję o zgodności skonsultuj z własnym IOD lub prawnikiem.
- Dlaczego prompt „myśli" chwilę przed odpowiedzią na P40?
- To prefill — na P40 starsza architektura Pascal i brak Tensor Cores przekładają się na wyraźnie niższą wydajność przetwarzania długiego promptu niż na V100. Skróć kontekst albo rozważ V100.
