Firma SaaS z 40 000 aktywnych użytkowników dostaje rachunek za API LLM przekraczający 30 000 zł miesięcznie. Dział prawny sygnalizuje, że dane przetwarzane przez zewnętrzne API wymagają audytu pod RODO. CTO pyta: czy nie taniej byłoby uruchomić własny model? To pytanie, które w 2026 słyszymy co tydzień. Odpowiedź nie jest prosta — ale jest policzalna.
Poniżej opisuję, jak wygląda taka migracja od strony decyzji, architektury i ryzyka. Bez obietnic „po migracji oszczędzisz X%". Z konkretnymi progami, typowymi pułapkami i tym, co faktycznie trzeba przeprojektować.
Kiedy migracja ma sens, a kiedy nie
#Migracja na własny model to projekt infrastrukturalny, nie optymalizacja. Przed decyzją warto zadać cztery pytania:
Czy koszt tokenów jest dominującym wydatkiem? Zewnętrzne API rozlicza każde zapytanie. Przy dużym wolumenie to dziesiątki tysięcy złotych miesięcznie. Ale jeśli generatywna AI to marginalny element produktu (np. kilkaset zapytań dziennie), koszty operacyjne serwera własnego modelu łatwo przewyższą oszczędności na tokenach.
Czy dane nie mogą opuszczać infrastruktury? Dane zdrowotne, finansowe, prawne, kadrowe — wszystkie kategorie wymagające szczególnej ochrony na mocy RODO lub tajemnicy zawodowej przemawiają za self-hostingiem nawet przy niskim wolumenie. Tu decyzja jest prawna, nie tylko ekonomiczna.
Czy model ogólny wystarczy, czy potrzebna specjalizacja? Własny model deployowany wprost z repozytorium (np. Mistral, Llama, Qwen) to nadal model ogólny. Jeśli zadanie wymaga znajomości Waszej domeny, sama migracja nie wystarczy — potrzebny jest fine-tuning lub architektura RAG na Waszej bazie wiedzy.
Czy macie kompetencje do utrzymania infrastruktury? Własny model to serwer, monitoring, aktualizacje bezpieczeństwa i reagowanie na awarie. API-first zdejmuje ten koszt z Waszego zespołu. Jeśli nie macie doświadczenia z GPU infrastructure, migracja bez zewnętrznego wsparcia jest ryzykiem operacyjnym.
| Sygnał | API-first | Self-hosting |
|---|---|---|
| Wolumen zapytań / miesiąc | poniżej 30 000 | powyżej 80 000 |
| Dane wrażliwe (RODO / tajemnica zawodowa) | akceptowalny z umową DPA | wymagany self-hosting |
| Wymagany uptime i latencja | zewnętrzne SLA | własna odpowiedzialność |
| Budżet kapex (GPU / serwer) | brak | od 15 000 zł w górę |
| Kompetencje ML/infra w zespole | niekonieczne | wymagane lub outsourcing |
| Potrzeba customizacji modelu | ograniczona | pełna kontrola |
Co konkretnie oznacza „własny model"
#Własny model nie znaczy model stworzony od zera. Trenowanie LLM od podstaw to koszt setek tysięcy do milionów dolarów w mocy obliczeniowej — poza zasięgiem zdecydowanej większości firm. „Własny model" w praktyce oznacza jedno z trzech podejść:
Deploy open-weight z hugging face / repozytorium. Pobieracie wagi modelu (Mistral, Llama 3, Qwen 2.5, Gemma) i uruchamiacie na własnym GPU przez Ollama, vLLM lub llama.cpp. Model jest publicznie dostępny, ale inference dzieje się na Waszej infrastrukturze. Żadne dane nie wychodzą na zewnątrz.
Fine-tuning na Waszych danych. Bierzecie open-weight model i dostrajane go na Waszym zbiorze danych (QLoRA, LoRA). Wynik: model, który zna Wasz styl, terminologię i format odpowiedzi. Kiedy to ma sens i kiedy zamiast tego wystarczy RAG, opisujemy w artykule kiedy fine-tuning ma sens.
Distylacja z dużego modelu do małego. Generujecie syntetyczne dane treningowe z dużego modelu (API) i trenujecie mniejszy model na tych danych. Rezultat: kompaktowy model specjalistyczny, niedrogi w utrzymaniu. Wymaga starannego projektowania zbioru danych i walidacji jakości.
W każdym przypadku to nie „podmianka URL-a" lecz zmiana architektury. Router, guardrails, format promptów, obsługa błędów, monitoring — wszystko musi być dostosowane do nowej charakterystyki modelu.
Czym różni się open-weight od API pod kątem inżynierskim
#Zewnętrzne API i lokalny model to nie ten sam interfejs z innym adresem. Różnice są fundamentalne:
Determinizm i wersjonowanie. API może zmienić zachowanie modelu bez zapowiedzi (aktualizacja backend). Lokalny model ma przypięte wagi — zachowanie jest stabilne do momentu, gdy sami zmienicie wersję. Dla systemów produkcyjnych to istotna różnica: klient zauważy, gdy asystent zaczął odpowiadać inaczej.
Latencja i throughput. Zewnętrzne API ma latencję sieciową i dzieli przepustowość między klientów. Lokalny model ma latencję inference zależną od GPU i jest dedykowany Waszemu ruchu. Przy niskim ruchu API jest szybsze. Przy dużym, skoncentrowanym ruchu własny model wygrywa latencją.
Context window i pamięć. Duże modele w API oferują okna kontekstowe do 128K-200K tokenów. Open-weight modele mają różne limity (zwykle 8K–128K zależnie od wersji). Jeśli Wasz system polega na bardzo długich kontekstach, sprawdźcie limity konkretnego modelu przed migracją.
Format odpowiedzi i structured output. Zewnętrzne API często oferuje natywne wymuszanie schematu JSON. W przypadku lokalnego modelu musicie to zaimplementować po stronie aplikacji: parser z naprawą, walidacja schematem, ponowne próby przy błędzie struktury.
Koszt tokenów a koszt mocy obliczeniowej. API rozlicza per token. Własny model rozlicza prąd i amortyzację sprzętu. Ten drugi model ma stały koszt niezależnie od liczby zapytań — przy niskim ruchu jest droższy, przy wysokim taszy.
Architektura po migracji: co trzeba przeprojektować
#Doświadczenie z kilkunastu migracji pokazuje, że zawsze te same elementy wymagają przebudowy.
Router modeli. Zewnętrzne API to zazwyczaj jeden model. Po migracji na self-hosting mamy flotę modeli o różnej wielkości i koszcie. Router LLM klasyfikuje zapytania według złożoności i kieruje proste pytania do małego modelu (szybkiego i taniego), a złożone do dużego. Bez routera tracicie ekonomię skali własnej infrastruktury.
Guardrails i filtrowanie. Zewnętrzne API ma wbudowane moderowanie treści. Lokalny model go nie ma. Guardrails musicie zaimplementować sami: filtrowanie wejścia (injection, prompt attack, dane wrażliwe), filtrowanie wyjścia (PII w odpowiedzi, zakres tematyczny), pułapki eskalacyjne do human-handoff. Bez tej warstwy model lokalny jest mniej bezpieczny niż API.
PII i maskowanie. Paradoks: własny model przetwarza dane lokalnie, więc ryzyko transferu danych na zewnątrz jest zerowe. Ale to nie zwalnia z obowiązku maskowania danych osobowych przed modelem — zgodnie z zasadą minimalizacji danych z RODO. Dane powinny trafiać do modelu z zamaskowanymi identyfikatorami i odmaskowywane dopiero w wyniku.
Observability i monitoring. Zewnętrzne API loguje zapytania i metryki po swojej stronie — często niewidoczne dla Was. Własny model wymaga własnego stosu observability: logi zapytań (bez PII), metryki wydajności, alerty na dryft jakości. Więcej o tym, co i jak mierzyć, w artykule o monitoringu jakości agenta AI.
Fallback i degradacja. API ma redundancję po stronie dostawcy. Własna infrastruktura wymaga zaplanowania fallbacku: co się dzieje, gdy GPU jest niedostępne? Serwis powinien degradować gracefully — przełączyć na mniejszy model albo komunikować użytkownikowi brak dostępności, zamiast milczeć.
Proces migracji krok po kroku
#Praktyczny harmonogram dla firmy migrującej z zewnętrznego API na self-hosting:
Krok 1: Audyt bieżącego użycia (tydzień 1). Zbierzcie logi z API: rozkład długości promptów, rozkład długości odpowiedzi, typy zadań (klasyfikacja, generacja, ekstrakcja, streszczanie), rozkład błędów. To wejście do decyzji o wyborze modelu. Użyjcie kalkulatora ROI do wstępnej analizy opłacalności.
Krok 2: Dobór i benchmark modelu (tydzień 1–2). Wybierzcie 2–3 open-weight modele kandydackie o wielkości dopasowanej do Waszych zadań. Uruchomcie benchmark na zestawie 50–100 realnych zapytań z produkcji. Mierzcie: jakość odpowiedzi, latencję, procent poprawnych structured outputs. Nie konfigurujcie na podstawie ogólnych benchmarkach — mierzcie na Waszych danych.
Krok 3: Przygotowanie infrastruktury (tydzień 2–3). Serwer z GPU, konfiguracja Ollama lub vLLM, sieć, backup. Szczegółowy dobór sprzętu opisujemy w artykule o lokalnych LLM i sprzęcie GPU. Na tym etapie wdrożycie też router, guardrails i warstwę observability.
Krok 4: Pilot równoległy — shadow mode (tydzień 3–4). Przez co najmniej tydzień kierujcie ruch równolegle do API i do własnego modelu. Porównujcie odpowiedzi. Nie przerywajcie API — jest fallbackiem. Shadow mode ujawnia różnice w jakości, które benchmark pomija.
Krok 5: Stopniowe przełączanie ruchu (tydzień 4–6). 10% ruchu na własny model, monitorowanie, 25%, monitorowanie, 50%, monitorowanie, 100%. Na każdym progu zatrzymajcie się na 48 godziny i weryfikujcie metryki: error rate, latencja, oceny jakości (jeśli macie feedback loop).
Krok 6: Wyłączenie API (po tygodniu 6+). Dopiero gdy shadow mode i ramp-up potwierdzą stabilność. Zachowajcie dostęp do API jako emergency fallback przez kolejne 30 dni.
Koszty i ryzyka, o których nikt nie mówi
#Migracja na self-hosting ma ukryte koszty, których nie widać w porównaniu „koszt tokenów vs. koszt serwera":
Koszt ludzi. Infrastruktura GPU wymaga obsługi. Aktualizacje, monitoring, incydenty, rotacja modeli po deprecacji wersji. Zwykle to 0,2–0,5 etatu inżyniera. Przy małym zespole to dominujący koszt.
Koszt startu. Sprzęt (GPU serwer) to wydatek jednorazowy lub leasing. Amortyzacja 3–4 lata przy kosztach rzędu 15 000–60 000 zł (w zależności od GPU) musi wejść do rachunku. Przed decyzją policzcie to w kalkulatorze inference.
Dryft jakości przy aktualizacji modelu. Przełączenie na nową wersję modelu to potencjalnie zmiana zachowania systemu. Każda aktualizacja wymaga ponownego benchmarku i regresji. Zewnętrzne API ten problem ukrywa — czasem pozornie go rozwiązując, czasem przenosząc do Waszego systemu cicho.
Ryzyko AI Act. Systemy AI klasyfikowane jako wysokiego ryzyka wymagają dokumentacji technicznej, rejestru systemu i zgodności z wymogami przejrzystości. Self-hosting nie zwalnia z tych obowiązków — wręcz zwiększa zakres Waszej odpowiedzialności jako deployera. Zanim przejdziecie na własny model w systemach high-risk, skonsultujcie DPIA i dokumentację techniczną z prawnikiem.
Migracja z API na własny model to decyzja, którą uzasadniacie liczbami, nie intuicją. Punkt wejścia opisuje artykuł o odczekaniu-zacząć wdrożenie AI — tam opisujemy, jak dobrze zdefiniować pytanie przed wyborem narzędzia.
Wypróbuj na żywo
#Opisz swój obecny stack (model, wolumen, typ zadań), a model pokaże Ci progi migracji i szkielet architektury self-hosted z routerem i guardrails — jako punkt wyjścia, nie gotowy projekt (playground: PII maskowane, zero retencji):
FAQ
#Od jakiego wolumenu migracja na własny model zaczyna się opłacać?
#Próg opłacalności zależy od wybranego modelu i długości kontekstu. Orientacyjnie: przy krótkich promptach i odpowiedziach (klasy 200–500 tokenów) próg to 50 000–80 000 zapytań miesięcznie. Przy długich kontekstach (RAG, streszczanie dokumentów) próg spada do 20 000–40 000 zapytań, bo koszt tokenów rośnie nieliniowo. Policz to konkretnie w kalkulatorze ROI przed podjęciem decyzji.
Czy migracja na własny model zapewnia zgodność z RODO?
#Self-hosting eliminuje transfer danych do zewnętrznego dostawcy, co upraszcza compliance — nie musicie podpisywać DPA z dostawcą API ani martwić się o data-residency. Ale RODO nadal obowiązuje: zasada minimalizacji danych, maskowanie PII przed modelem, logi bez danych osobowych, prawo do usunięcia danych z historii konwersacji. Własny model nie jest automatycznie zgodny z RODO — wymaga tych samych mechanizmów, tylko pod innym adresem.
Jak duża jest różnica jakości między open-weight a GPT-4-class API?
#W 2026 czołowe open-weight modele (Llama 3.3 70B, Qwen 2.5 72B, Mistral Large) osiągają porównywalną jakość do GPT-4-class na większości zadań biznesowych: klasyfikacja, ekstrakcja, streszczanie, generacja ustrukturyzowanego tekstu. Różnica widoczna jest przy zadaniach wymagających złożonego wnioskowania wielokrokowego i wiedzy o bardzo aktualnych wydarzeniach. Dla większości systemów firmowych różnica jest akceptowalna lub nieistotna. Sprawdźcie to benchmarkiem na Waszych własnych danych.
Co zrobić z promptami, które działają dobrze w API, a gorzej w lokalnym modelu?
#Prompty pisane pod konkretny model API nie są przenośne jeden do jednego. Open-weight modele mają różne chat templates i reagują inaczej na instrukcje systemowe. Zwykle wystarczy kilka iteracji: dostosowanie formatu (role system/user/assistant), usunięcie instrukcji, które model ignoruje, dodanie przykładów (few-shot) w miejscach, gdzie model API ich nie potrzebował. Pomaga też structured output z walidacją schematu zamiast polegania na domyślnym formacie odpowiedzi.
Czy warto migrować, jeśli korzystamy głównie z RAG?
#Tak, i często to najprostsza migracja. W architekturze RAG model jest tylko generatorem odpowiedzi na podstawie pobranych fragmentów — jakość wyników zależy bardziej od jakości indeksu i embeddingów niż od wielkości modelu. Mniejszy, lokalny model (7B–13B) dobrze radzi sobie z tym zadaniem, a embeddingi — jak BGE-M3 — działają wyłącznie lokalnie z natury. Koszty tokenów dla RAG są wysokie (długi kontekst z fragmentami), więc próg opłacalności self-hostingu jest tu niższy niż dla generacji bez kontekstu.