Kluczowe punkty
- Uruchomienia lokalne wymagają wystarczającej ilości RAM lub VRAM na plik skwantyzowany plus bufor kontekstu.
- Ollama to najszybszy start; llama.cpp daje większą kontrolę nad skwantyzowaniem i flagami.
- Oba narzędzia udostępniają serwer w stylu OpenAI, więc ten sam kod klienta może wskazywać na wersję lokalną lub hostowaną.
- Endpoint hostowany kosztuje $0,15 za 1 mln tokenów wejściowych i $0,50 za 1 mln tokenów wyjściowych, a jego konfiguracja zajmuje kilka minut.
Najpierw zdecyduj: jaki masz sprzęt?
Pamięć decyduje o wszystkim. Model językowy to bardzo duży zbiór liczb, a cały ten zbiór musi znajdować się w szybkiej pamięci podczas generowania. Skwantyzowanie zmniejsza te liczby. Model skwantyzany w 4-bitach zajmuje około pół bajta na parametr, więc model z 8 miliardami parametrów zajmuje około 5 GB, a model z 70 miliardami – około 40 GB. Traktuj te dane jako przybliżone, ponieważ dokładny rozmiar zależy od formatu skwantyzowania.
Poza wagami potrzebujesz miejsca na bufor kontekstu. Rozmiar bufora rośnie wraz z długością promptu, więc długa historia roleplay lub duży dokument zużywają więcej pamięci niż krótkie pytanie. Przy umiarkowanym oknie kontekstu zaplanuj kilka dodatkowych gigabajtów, a przy długich promptach – jeszcze więcej.
- Laptop z 8 GB RAM i bez GPU: tylko małe modele, wolne generowanie.
- Mac z Apple Silicon z 16–32 GB RAM: modele średniej wielkości działają dobrze dzięki współdzielonej pamięci CPU i GPU.
- Pojedyncza karta GPU dla konsumentów z 12–24 GB VRAM: modele średniej wielkości z dobrą prędkością.
- Więcej niż powyższe: wiele kart GPU lub wynajęty serwer.
Metoda 1: Ollama w kilku poleceniach
Ollama to najkrótsza droga. Pobiera skwantyzowany model, uruchamia serwer w tle i daje Ci prompt czatu. Zainstaluj go ze strony oficjalnej dla Twojego systemu operacyjnego, a następnie sprawdź, jakie tagi Dolphin w bibliotece modeli Ollama obecnie wymienia, ponieważ nazwy i rozmiary zmieniają się między wydaniami.
# replace <tag> with a Dolphin tag from the Ollama library
ollama pull <tag>
ollama run <tag>
Pierwsze polecenie pobiera plik, co przy wolnym połączeniu może zająć chwilę. Drugie otwiera interaktywny czat w terminalu. Ollama udostępnia również interfejs API HTTP na Twojej maszynie, w tym trasę w stylu OpenAI pod /v1, więc mogą z niej korzystać inne programy.
Jeśli generowanie jest bardzo wolne, model prawdopodobnie nie zmieścił się w VRAM i część z niego działa na CPU. Wybierz mniejszy tag lub skwantyzowanie w niższej bitowości.
Metoda 2: llama.cpp dla większej kontroli
llama.cpp to silnik C++, na którym zbudowanych jest wiele innych narzędzi. Pobierasz plik GGUF modelu, a następnie uruchamiasz jego serwer. Wymaga to więcej kroków niż Ollama, ale pozwala ustawić długość kontekstu, liczbę warstw przeniesionych na GPU oraz pożądane skwantyzowanie.
# after building llama.cpp and downloading a GGUF file
llama-server -m ./model.gguf -c 8192 -ngl 99 --port 8080
Tutaj -c ustawia długość kontekstu, -ngl określa, ile warstw trafi na GPU, a --port wybiera port. Sprawdź dokumentację projektu, aby poznać flagi w Twojej wersji, ponieważ ewoluują one. Większe -c zużywa więcej pamięci, więc zwiększaj go tylko wtedy, gdy jest to konieczne.
Do użytku graficznego front-endy takie jak Open WebUI mogą łączyć się z dowolnym serwerem. Nasz opis endpointów API Open WebUI pokazuje, jak dodać niestandardowy endpoint.
Wywoływanie lokalnego serwera z kodu
Oba narzędzia obsługują format czatu OpenAI, więc piszesz klienta raz, a cel zmieniasz za pomocą dwóch ustawień. Ten skrypt trzyma oba cele obok siebie. Wersja lokalna używa portu, którego Ollama używa domyślnie; zmień go, jeśli uruchomiłeś llama.cpp na porcie 8080.
from openai import OpenAI
TARGETS = {
"local": {"base_url": "http://localhost:11434/v1", "key": "not-needed", "model": "your-local-tag"},
"hosted": {"base_url": "https://api.dolphinllm.com/v1", "key": "YOUR_KEY", "model": "uncensored"},
}
t = TARGETS["hosted"]
client = OpenAI(base_url=t["base_url"], api_key=t["key"])
resp = client.chat.completions.create(
model=t["model"],
messages=[{"role": "user", "content": "Summarize what a GGUF file is."}],
)
print(resp.choices[0].message.content)
Lokalne serwery zazwyczaj ignorują klucz, ale SDK wymaga niepustego ciągu. Nazwa modelu dla serwera lokalnego to dowolny tag lub alias, który załadowałeś, podczas gdy ID modelu hostowanego to zawsze uncensored.
Metoda 3: pomiń konfigurację i użyj endpointu hostowanego
Jeśli analiza sprzętowa wygląda słabo lub chcesz tego samego zachowania na każdej maszynie, endpoint hostowany jest prostszy. Usługa ta oferuje jeden model o otwartych wagach, uruchamiany przez niezależnego dostawcę i dostrojony do odpowiadania bez odmów treści dla prawnego użytku dorosłych. Nie jest to oficjalne API żadnego dostawcy modeli i nie pozwala wybrać innych modeli. Otrzymujesz stabilny URL, klucz i rozliczanie za tokeny.
Kroki są krótkie. Zarejestruj się przez Google lub e-mail i hasło, otwórz stronę klucza API i odbierz $0,50 kredytu próbnego jednym kliknięciem. Nie wymaga karty, jest ważny przez 7 dni i limitowany do jednej osoby. Następnie uruchom powyższy skrypt Pythona z celem hostowanym. Jeśli wolisz curl:
curl https://api.dolphinllm.com/v1/chat/completions -H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" -d '{"model":"uncensored","messages":[{"role":"user","content":"Hello"}],"stream":false}'
Okno kontekstu ma 100 000 tokenów, co jest więcej niż większość laptopów może wygodnie utrzymać w pamięci podręcznej. Prompty nie są używane do trenowania.
Porównanie kosztów i wysiłku
Lokalna wersja wydaje się darmowa, ale nie jest. Płacisz za sprzęt, prąd i swój czas. Hostowana wersja kosztuje za każde żądanie, ale kwoty są małe. Przy cenie $0,15 za 1 mln tokenów wejściowych i $0,50 za 1 mln tokenów wyjściowych, jedna tura czatu z 3000 tokenami wejściowymi i 700 tokenami wyjściowymi kosztuje:
- Wejście: 3000 x $0,15 / 1 000 000 = $0,00045
- Wyjście: 700 x $0,50 / 1 000 000 = $0,00035
- Razem: $0,0008 za turę, czyli $0,80 za 1000 tur
Nawet intensywny użytkownik wysyłający 5000 takich tur w miesiącu wyda około $4. GPU kosztujące setki dolarów potrzebowałoby lat użytkowania, aby zwróciło się przy takim wolumenie. Porównanie zmienia się, gdy masz ciągły wysoki wolumen, potrzebujesz konkretnego dostosowania lub nie możesz wysyłać danych poza swoją maszynę.
Pełne szczegóły cen, w tym bonusy za doładowanie +5%, +10% i +15%, znajdziesz na stronie cenowej, a dokumentacja obejmuje limity i parametry.
Prosta zasada wyboru
Uruchom lokalnie, jeśli chcesz eksperymentować z wieloma dostosowaniami, pracować offline lub przechowywać każdy prompt na swoim dysku. Użyj endpointu hostowanego, jeśli budujesz coś, z czego będą korzystać inni, jeśli Twój sprzęt jest skromny lub jeśli chcesz długiego kontekstu 100 000 tokenów bez zarządzania pamięcią. Wielu programistów robi jedno i drugie: lokalny model do prywatnych eksperymentów i endpoint hostowany do wszystkiego, co musi być online. Ponieważ kod klienta jest taki sam, koszt przełączenia to jedna linia.

