DeepSeek-V3.1 to hybrydowy model języka MoE „myślący/niemyślący” (łącznie 671 B, ≈37 B aktywowanych na token), który można uruchomić lokalnie, jeśli użyjesz odpowiedniego dostawcy/kwantyzacji i narzędzi. Poniżej wyjaśniam, czym jest DeepSeek-V3.1, jakie są wymagania sprzętowe/programowe, jak krok po kroku uruchomić lokalnie (przykłady Ollama + llama.cpp) i jak… wdrażanie i używanie trybu myślenia ( <think>/</think> szablon czatu) z przykładami kodu, które możesz skopiować i wkleić.
Czym jest DeepSeek-V3.1?
DeepSeek-V3.1 to wersja 3.1 rodziny MoE (Mixture-of-Experts) firmy DeepSeek. Został zaprojektowany jako hybrydowy model wnioskowania, który obsługuje dwa szablony/tryby konwersacji — Myślący oraz Niemyślenie — z tego samego punktu kontrolnego poprzez zmianę szablonu czatu. Architektura modelu nawiązuje do projektu DeepSeek-V3 MoE (łącznie 671 mld parametrów; ≈37 mld parametrów aktywowanych na token w celu wnioskowania) i dodaje ulepszenia po szkoleniu dotyczące korzystania z narzędzi, umiejętności agentów i obsługi długiego kontekstu.
Krótkie podsumowanie funkcji
- Hybrydowy Myślenie / Niemyślenie tryby (przełączane przez tokenizację szablonu czatu).
- Architektura MoE: duża całkowita liczba parametrów, ale ograniczona liczba aktywowanych parametrów na token (zapewnia wydajność).
- Usprawnienia po szkoleniu w zakresie wywołań narzędzi i przepływów pracy agentów (format wywołań narzędzi i szablony agentów udokumentowane w zasobach modelu).
Czego potrzebuję, aby uruchomić DeepSeek-V3.1 lokalnie?
Uruchomienie pełny DeepSeek-V3.1 (surowe punkty kontrolne) to ciężki orzech do zgryzienia — przechowywanie danych treningowych/punktów kontrolnych i koordynacja wnioskowania są nietrywialne. Istnieją jednak praktyczne rozwiązania:
sprzęt komputerowy
- Pełne wnioskowanie rozproszone (badania/klastry):wiele procesorów GPU o dużej pamięci (klasa A100/H800) lub klaster GPU z obsługą równoległą modeli (typowe dla punktów kontrolnych 600B+). Używaj tylko w przypadku klastrów badawczych w środowisku produkcyjnym.
- Praktyczne opcje lokalne: Użyj aktywowany parametr perspektywa (≈37B aktywowanych) lub skwantyzowane GGUF/1-bitowa dynamiczna kompilacja. Kwantyzacja społecznościowa (1-bitowa dynamiczna/GGUF) znacząco zmniejsza zapotrzebowanie na dysk i pamięć RAM — np. posty społeczności donoszą o kompresji punktu kontrolnego 720 GB do ~170 GB GGUF dla wariantu skwantyzowanego. Dzięki temu lokalne wnioskowanie GPU na pojedynczym serwerze jest wykonalne dla komputerów stacjonarnych/serwerów z dużymi zasobami.
Podsumowując: należy spodziewać się przepływu pracy na dużym modelu (dziesiątki do kilkuset GB dysku na artefakty kwantyzowane); w przypadku pamięci VRAM GPU należy używać wariantów kwantyzowanych i docelowych ≥24–48 GB pamięci VRAM w celu zapewnienia rozsądnej przepustowości; w przeciwnym razie należy użyć procesora i wymiany z kompromisami w zakresie wydajności.
Oprogramowanie i narzędzia
Python 3.10+ (do narzędzi transformer/tokenizer i niestandardowych skryptów).
transformers (dla funkcji tokenizatora i pomocniczych) — karta modelu pokazuje przykłady użycia transformers.AutoTokenizer.
Jedno lub więcej lokalnych środowisk wnioskowania:
- Ollama (łatwy:
ollama pull/ollama runintegracja; niektóre kompilacje DeepSeek na Ollamie wymagają wersji przedpremierowych (sprawdź notatkę dotyczącą modelu/ollama). Ollama stała się standardowym lokalnym menedżerem modeli społecznościowych. - llama.cpp / ggml stosy lub
llama-serverdla plików kwantyzowanych GGUF — świetne do bezpośredniego wykonywania poleceń GGUF. - generowanie tekstu i wnioskowanie / Triton / stosy FlashAttention do wnioskowania GPU o wyższej wydajności (konfiguracje zaawansowane).
Dysk: duża ilość wolnego miejsca na pliki modeli (dziesiątki → setki GB w zależności od kwantyzacji).
Artefakty modelu (który plik pobrać)
- Oficjalne warianty safetensorów / BF16 / FP8 / GGUF: Hugging Face obsługuje artefakty modelu V3.1 i wiele kwantyzacji. Jeśli potrzebujesz pliku GGUF/kwantyzowanego,
llama.cpp, poszukaj wydania społecznościowego dotyczącego kwantyzacji (lub skryptu konwersji z safetensors → GGUF) — karta modelu zawiera listę wariantów skwantyzowanych.
Jak przygotować model do wnioskowania lokalnego?
Poniżej znajdziesz zalecane kroki przygotowawcze, ułożone od prostych do zaawansowanych.
Krok 1 — Wybierz środowisko wykonawcze (zalecenie)
- Test dla początkujących / szybki: Ollama — minimalna konfiguracja: pobierz, uruchom model, wywołaj API. Uwaga: niektóre kompilacje DeepSeek-V3.1 wskazują Ollamę w wersji 0.11.7 jako wymaganą dla określonych funkcji.
- Sterowanie zaawansowane / niskiego poziomu:
llama.cpp+ Kwantyzacja GGUF (jeśli dostępna jest kwantyzacja GGUF). Zapewnia to bezpośrednią kontrolę wnioskowania i integrację zllama-server.
Krok 2 — Pobierz model
Jeśli używasz Ollama:
# install ollama (see https://ollama.com/docs)
# Pull the model (this downloads the model to your machine)
ollama pull deepseek-ai/DeepSeek-V3.1
# or a specific tag: ollama pull deepseek-ai/DeepSeek-V3.1:quant-q4_0
(Ollama's run zostanie automatycznie pobrana, jeżeli nie jest obecna; pull (pozwala kontrolować czas.)
Jeśli używasz Hugging Face + llama.cpp:
# Example: download via huggingface-cli or hf_transfer
pip install huggingface_hub
hf_hub_download(repo_id="deepseek-ai/DeepSeek-V3.1", filename="DeepSeek-V3.1.gguf")
# or use a community quant file (gguf) referenced on the Hugging Face model page
Hugging Face wyświetla listę artefaktów modelu, szablonów i kwantyzacji na karcie modelu.
Krok 3 — Konwersja/kwantyzacja (opcjonalnie)
Jeśli znajdziesz tylko artefakty safetensorów lub BF16, ale potrzebujesz GGUF llama.cpp, użyj skryptów konwersji w llama.cpp (lub narzędzia społecznościowe) do konwersji → kwantyzacji. Istnieją narzędzia społecznościowe do 1-bitowej kwantyzacji dynamicznej, które zachowują dokładność przy jednoczesnym zmniejszeniu rozmiaru; zobacz posty społeczności, które zgłaszają problem do ~170 GB.
Jak uruchomić DeepSeek-V3.1 lokalnie? (Praktyczne samouczki uruchamiania)
Pokażę Ollama (łatwe, zalecane) i lama.cpp Przykłady (GGUF) oraz krótki przykład w Pythonie wykorzystujący pomocniki tokenizatora model-card.
A — Bieganie z Ollamą (szybki start)
- Zainstaluj Ollamę (postępuj zgodnie z oficjalną instrukcją).
- Wyciągnij i uruchom model:
# pull model to disk (optional; run will pull automatically)
ollama pull deepseek-ai/DeepSeek-V3.1
# start an interactive session (runs model and exposes local API)
ollama run deepseek-ai/DeepSeek-V3.1
- Wyślij żądanie HTTP do lokalnego serwera Ollama:
# curl usage example (local Ollama server usually listens on port 11434)
curl -sS -X POST 'http://localhost:11434/api/generate' \
-H 'Content-Type: application/json' \
-d '{
"model":"deepseek-ai/DeepSeek-V3.1",
"prompt":"Explain the difference between thinking and non-thinking mode in DeepSeek.",
"max_tokens":256
}'
Wzorce CLI i API Ollama są zaprojektowane tak, aby były proste: ollama run W razie potrzeby ściągnie i uruchomi serwer modeli. Wskazówki dotyczące pamięci oraz dokładne nazwy/tagi modeli można znaleźć w dokumentacji Ollama i na stronach modeli.
B — Uruchamianie skwantyzowanego GGUF za pomocą llama.cpp
- Buduj
llama.cppz CUDA (opcjonalnie) lub CPU:
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
# for CUDA:
make clean && make LLAMA_CUBLAS=1
# or CPU only:
make
- Umieść plik modelu GGUF w ścieżce i uruchom:
./main -m /path/to/DeepSeek-V3.1.q4_K_M.gguf \
-p "Explain how to enable thinking mode." \
--temp 0.2 --n_predict 512
- Do użytku serwera,
llama-server(projekt społecznościowy) może ujawnić punkt końcowy HTTP:
llama-server -m /path/to/DeepSeek-V3.1.q4_K_M.gguf
# then POST to the server like:
curl -X POST "http://localhost:8080/api/v1/generate" -d '{"prompt":"Hello","max_tokens":200}'
Użyj kwantyzacji społecznościowej GGUF (q4/q8/1-bit dynamiczny), aby dopasować się do budżetów GPU/CPU; llama.cpp repo udostępnia narzędzia konwersji i wskazówki.
C — przykład Pythona wykorzystujący tokenizer + szablon czatu
Karta modelu Hugging Face zapewnia tokenizer.apply_chat_template pomocnika i pokazuje, jak zakodować rozmowę z thinking=TrueOto minimalny przykład Pythona zaadaptowany z karty modelu:
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/DeepSeek-V3.1")
messages = [
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": "Who are you?"},
{"role": "assistant", "content": "<think>Hmm</think>I am DeepSeek"},
{"role": "user", "content": "1+1=?"}
]
# apply thinking chat template
s = tokenizer.apply_chat_template(messages, tokenize=False, thinking=True, add_generation_prompt=True)
print(s) # the template includes the special <think> token placement
Następnie możesz wprowadzić tokenizowany monit do środowiska wykonawczego wnioskowania (Ollama/llama.cpp/TGI) w zależności od swojego stosu.
Jak działa tryb myślenia i jak go wdrożyć lokalnie?
DeepSeek-V3.1 wykorzystuje szablony czatów które zawierają specjalny token myślenia (np. <think> oraz </think>). szablon określa, czy model znajduje się w trybie myślenia czy niemyślenia:
- Niemyślenie miejsca szablonów
</think>w prefiksie asystenta, który instruuje model, aby generował bezpośrednie odpowiedzi (format wywołania narzędzia jest obsługiwany w trybie bezmyślnym). - Myślący miejsca szablonów
<think>w prefiksie asystenta, który sprawia, że model generuje wewnętrzne sygnały pośrednie w stylu łańcucha myśli (model jest trenowany do wykorzystywania tej sekwencji tokenów do wewnętrznego rozumowania i generowania wysokiej jakości odpowiedzi wieloetapowych). Karta modelu Hugging Face dokumentuje te dokładne tokeny itokenizer.apply_chat_template(..., thinking=True)API.
Przełączanie programowe (przykłady)
A — Z tokenizatorem (Python):
# thinking=True or thinking=False changes how the prompt is formatted
prompt_thinking = tokenizer.apply_chat_template(messages, thinking=True, add_generation_prompt=True)
prompt_non_thinking = tokenizer.apply_chat_template(messages, thinking=False, add_generation_prompt=True)
Feed prompt_thinking do środowiska wykonawczego wnioskowania, aby uzyskać zachowanie myślenia.
B — Z surowym komunikatem (llama.cpp / podręcznik):
wstawka <think> zanim asystent się włączy, gdy poprosisz:
<|begin_of_sentence|>You are a helpful assistant<|User|>How to optimize this code?<|Assistant|><think>
(Dokładne obramowanie tokenów znajduje się na karcie modelu — jeśli korzystasz z surowego szablonu, musisz przestrzegać odstępów i specjalnych znaczników.)
C — Z Ollamą (przełącznik interfejsu użytkownika):
Oficjalna demonstracja internetowa i informacje o wydaniu DeepSeek wspominają o przełączniku/przycisku „DeepThink” do przełączania trybów w hostowanym interfejsie użytkownika. Lokalnie, Ollama lub Twoja aplikacja powinna replikować to zachowanie, zmieniając szablon czatu (tj. zmieniając monit wysyłany do środowiska wykonawczego między dwoma tokenizowanymi formularzami). Jeśli uruchamiasz DeepSeek za pośrednictwem Ollama, możesz zaimplementować to w swojej aplikacji, utrzymując dwa szablony monitu (myślący i niemyślący) i przełączając je za pośrednictwem interfejsu API Ollama.
Jak wdrożyć Thinking Mode jako agenta (wywołania narzędzi, agenci kodu)?
Dokumenty DeepSeek-V3.1 wywołanie narzędzia oraz agent szablony w zasobach modelu. Model oczekuje, że narzędzia będą prezentowane w określonym formacie JSON/instrukcji i obsługuje łączenie wielu wywołań narzędzi w jednym kroku, jeśli zastosujesz się do tokenów wrappera opisanych na karcie modelu.
Przykład: prosty wrapper wywołania narzędzia (pseudo)
Model określa blok deskryptora narzędzia i ścisły tool_calls_begin / tool_call_begin format. Minimalny przykład (koncepcyjny):
## Tools
You have access to the following tools:
### web_search
Description: Query the web
Parameters: {"q": "string"}
<|begin_of_sentence|>{system prompt}
## Tools
...tool descriptions...
<|User|>Find the population of Tokyo<|Assistant|></think>
<|tool_calls_begin|><|tool_call_begin|>web_search<|tool_sep|>{"q":"population of Tokyo 2025"}<|tool_call_end|><|tool_calls_end|>
Następnie dane wyjściowe narzędzia powinny zostać przekazane z powrotem do modelu w kolejnej turze, zgodnie z ustalonym przez model formatem (patrz assets/search_tool_trajectory.html Dokładny przepływ można znaleźć na stronie modelu). Wdrażanie agentów wymaga programowej orkiestracji: wywołanie narzędzia → przechwycenie wyniku → wstrzyknięcie wyniku z powrotem do kontekstu czatu dokładnie tak, jak nakazuje szablon → ponowne wywołanie modelu.
Praktyczne wskazówki, rozwiązywanie problemów i uwagi dotyczące bezpieczeństwa (Na co powinienem zwrócić uwagę?)
- Szablony tokenów są rygorystyczne. Użyj modelu
tokenizer.apply_chat_templatelub odtworzyć dokładnie<think>/</think>tokeny, jak pokazano. Nieprawidłowe odstępy lub brakujące znaczniki zmienią zachowanie modelu. - Format narzędzia musi być prawidłowym formatem JSON. Model będzie analizował argumenty narzędzia jako JSON — nieprawidłowy JSON spowoduje przerwanie wywołań narzędzia.
- Kompromisy w zakresie kwantyzacji. 1-bitowe dynamiczne/agresywne kwantyzacje zmniejszają pojemność pamięci masowej i RAM, ale mogą nieznacznie zmieniać dokładność obliczeń numerycznych. Przetestuj na swoich obciążeniach. Istnieją kwantyzacje społecznościowe, które zmniejszają wykorzystanie dysku o 80% (przykładowy raport: 720 GB → ~170 GB), ale zawsze sprawdzaj poprawność zgodnie z instrukcjami.
- Zgodność z Ollamą. Niektóre warianty DeepSeek oznaczają Ollama v0.11.7 jako wymaganą dla funkcji przedpremierowych — sprawdź stronę modelu Ollama i zaktualizuj ją odpowiednio.
Przykład kompleksowy: uruchomienie DeepSeek-V3.1 lokalnie w trybie myślenia (krótki przewodnik)
- Zainstaluj Ollamę i wyciągnij model:
# install ollama per docs, then:
ollama pull deepseek-ai/DeepSeek-V3.1
ollama run deepseek-ai/DeepSeek-V3.1 &
- Użyj tokenizatora Pythona, aby utworzyć polecenie do myślenia:
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/DeepSeek-V3.1")
msgs = [
{"role":"system","content":"You are a helpful assistant."},
{"role":"user","content":"Plan a multi-step strategy to prototype a mobile app in 2 weeks."}
]
prompt = tokenizer.apply_chat_template(msgs, thinking=True, add_generation_prompt=True)
import requests
resp = requests.post("http://localhost:11434/api/generate", json={
"model": "deepseek-ai/DeepSeek-V3.1",
"prompt": prompt,
"max_tokens": 400
})
print(resp.json())
- Jeśli model zwraca wywołanie narzędzia w formacie toolcall, przeanalizuj JSON i uruchom narzędzie, a następnie wstrzyknij wyniki do następnej wiadomości zgodnie z szablonami kart modelu.
Jak wybrać ścieżkę wdrożenia?
- Jeśli chcesz uzyskać najszybszą ścieżkę do eksperymentu: posługiwać się Ollama oraz przykłady karty modelu Hugging Face. Ollama ukrywa wiele szczegółów infrastruktury i udostępnia lokalny interfejs API HTTP.
- Jeśli zależy Ci na niższych kosztach / większej przenośności: użyj społeczności GGUF skwantyzowany artefakt i biegnij z
llama.cpporllama-serverKwantowanie oszczędza dysk i pamięć, ale pozwala na testowanie dokładności dla danego obciążenia. - Jeśli budujesz agentów lub narzędzia: postępuj zgodnie z kartą modelu wywołanie narzędzia oraz agent szablony dokładnie; koordynuj wyniki narzędzi z powrotem w kontekście modelu.
Jak zacząć
CometAPI to ujednolicona platforma API, która agreguje ponad 500 modeli AI od wiodących dostawców — takich jak seria GPT firmy OpenAI, Gemini firmy Google, Claude firmy Anthropic, Midjourney, Suno i innych — w jednym, przyjaznym dla programistów interfejsie. Oferując spójne uwierzytelnianie, formatowanie żądań i obsługę odpowiedzi, CometAPI radykalnie upraszcza integrację możliwości AI z aplikacjami. Niezależnie od tego, czy tworzysz chatboty, generatory obrazów, kompozytorów muzycznych czy oparte na danych potoki analityczne, CometAPI pozwala Ci szybciej iterować, kontrolować koszty i pozostać niezależnym od dostawcy — wszystko to przy jednoczesnym korzystaniu z najnowszych przełomów w ekosystemie AI.
Deweloperzy mogą uzyskać dostęp DeepSeek V3.1 Za pośrednictwem CometAPI najnowsze wersje modeli są aktualne na dzień publikacji artykułu. Na początek zapoznaj się z możliwościami modelu w Plac zabaw i zapoznaj się z Przewodnik po API aby uzyskać szczegółowe instrukcje. Przed uzyskaniem dostępu upewnij się, że zalogowałeś się do CometAPI i uzyskałeś klucz API. Interfejs API Comet zaoferuj cenę znacznie niższą niż oficjalna, aby ułatwić Ci integrację.
Podsumowanie
DeepSeek-V3.1 wprowadza praktyczną, hybrydową filozofię wnioskowania (jeden punkt kontrolny + szablonowe zachowanie myślenia), która ułatwia eksperymentowanie z rozumowaniem opartym na łańcuchu myślowym i korzystaniem z narzędzi agenta, jeśli przestrzega się szablonów czatu i wymagań dotyczących narzędzi. Na początek skorzystaj z karty modelu Hugging Face i notatek o wydaniu DeepSeek, wybierz lokalne środowisko uruchomieniowe (Ollama dla uproszczenia, llama.cpp do celów kontrolnych) i testowania skwantyzowanych kompilacji pod kątem praktycznych zastosowań lokalnych.



