Start / Poradniki / Rozwiązywanie problemów / Windows
WindowsLinuxmacOSiPhone & iPad
Autor: Jakub Rusinowski · Ostatnia aktualizacja: 10 lipca 2026
Edukator AI i prowadzący warsztaty z wdrażania lokalnych modeli LLM
The same sentence again. The same sentence again. The same sentence again. The same sentence ag
Model odpowiada normalnie przez jakiś czas, po czym zaczyna powielać tę samą frazę, zdanie albo cały akapit — czasem wpadając w coraz krótszy cykl, aż w końcu wypluwa jedno słowo bez końca. Dzieje się to w trakcie generowania, bez żadnego komunikatu o błędzie, na dowolnym sprzęcie. Dotyczy Ollamy, LM Studio i llama.cpp, bo przyczyna siedzi w ustawieniach generowania, a nie w środowisku uruchomieniowym.
LLM-y wybierają każdy token z rozkładu prawdopodobieństwa, a powtórzenia same się napędzają: gdy fraza pojawi się dwa razy, jej tokeny wydają się jeszcze bardziej prawdopodobne za trzecim. W normalnie skonfigurowanym zestawie cykl przerywają trzy rzeczy — kara za powtórzenia, zdrowa doza losowości w samplingu i poprawnie ustawione tokeny zatrzymania. Kiedy widzisz pętlę, jedna z nich zawodzi: repeat_penalty jest wyłączona albo za słaba, temperature i top_p zjechały tak nisko, że model stał się deterministyczny, rozmowa po cichu przelała okno kontekstu (model dosłownie zgubił wątek) albo zepsuta kwantyzacja czy szablon sprawiają, że model nigdy nie wysyła swojego tokenu zatrzymania. Prawie nigdy nie chodzi o VRAM ani o GPU.
Jeśli pętla zaczyna się dopiero po dłuższej rozmowie, najpewniej przepełniłeś okno kontekstu: najstarsze wiadomości zostają obcięte, a model — zgubiwszy wątek — wraca do powielania świeżych tokenów. Domyślny kontekst Ollamy to zaledwie 2048–4096 tokenów, zależnie od wersji i modelu; długa rozmowa przekracza to błyskawicznie. Podnieś tę wartość (kosztem VRAM-u), a objaw „model zgłupiał i zaczął się powtarzać po dwudziestu minutach” znika. Zanim ustawisz ją bardzo wysoko, sprawdź, na ile kontekstu naprawdę stać twój VRAM.
# Ollama: raise the context window for the session
ollama run llama3.1
>>> /set parameter num_ctx 8192
# or permanently in a Modelfile
PARAMETER num_ctx 8192Kara za powtórzenia obniża prawdopodobieństwo tokenów, które już wystąpiły. Wartość 1.0 oznacza wyłączenie — jeśli twój zestaw startuje z 1.0 (tak bywa w części presetów LM Studio i w surowych domyślnych ustawieniach llama.cpp), zapętlą się nawet dobre modele. 1.1 to rozsądny domyślny wybór, 1.15–1.2 dla małych modeli skłonnych do pętli. Powyżej mniej więcej 1.3 dostajesz nową chorobę: model zaczyna omijać zwykłe słowa, których już użył, i pisze jak ze słownika synonimów. repeat_last_n decyduje, jak daleko wstecz sięga kara — 64 (częsta wartość domyślna) obejmuje jakieś 50 słów, a 256 wyłapuje cykle na poziomie akapitu.
# Ollama (REPL or Modelfile)
>>> /set parameter repeat_penalty 1.15
>>> /set parameter repeat_last_n 256
# llama.cpp
./llama-cli -m model.gguf --repeat-penalty 1.15 --repeat-last-n 256Temperatura bliska zeru w parze z ciasnym top_p sprawia, że model na każdym kroku wybiera jeden najbardziej prawdopodobny token — a „najbardziej prawdopodobnym kolejnym tokenem” po powtórzonej frazie jest dalszy ciąg tej samej frazy. Jeśli obniżyłeś temperaturę, żeby odpowiedzi były rzeczowe, przy swobodnej rozmowie nie schodź poniżej mniej więcej 0.5 — temperatura 0 nadaje się do jednorazowej ekstrakcji czy klasyfikacji, nie do konwersacji. Rozsądny punkt wyjścia dla czatu: temperature 0.7–0.8, top_p 0.9.
>>> /set parameter temperature 0.7
>>> /set parameter top_p 0.9Model, który kończy odpowiedź i mimo to brnie dalej — dopisuje zmyślone tury użytkownika, odpowiada po raz drugi, osuwa się w pętle — nie tyle się powtarza, ile nie potrafi przestać. To znaczy, że środowisko uruchomieniowe nie wyłapuje tokenu końca tury: klasyka przy ręcznie pisanych plikach Modelfile, społecznościowych GGUF-ach z nietypowymi szablonami i przy fine-tunach. Upewnij się, że szablon i parametr stop pasują do rodziny modelu; przy fine-tunie, który sam konwertowałeś, zajrzyj do sekcji o pliku Modelfile w poradniku o konwersji do GGUF.
# See what a correctly configured model uses:
ollama show llama3.1 --template
ollama show llama3.1 --parameters
# Modelfile for Llama-3-family models needs:
PARAMETER stop <|eot_id|>Q2_K i nieoficjalne „frankenkwanty” małych modeli wpadają w pętle mierzalnie częściej — zdegradowane wagi spłaszczają rozkład, na którym pracuje sampler. Jeśli ten sam prompt zapętla się przy Q2 czy Q3, a przy Q4_K_M z oficjalnego źródła już nie, winna jest kwantyzacja. Pobierz plik ponownie z oficjalnej biblioteki Ollamy albo z porządnego repozytorium na Hugging Face, a kwantyzacje poniżej Q4 dla modeli mniejszych niż 7B traktuj jako eksperymentalne.
Prawdopodobieństwa tokenów napędzają się nawzajem, a nic tego cyklu nie przerywa: repeat_penalty wyłączona albo ustawiona na 1.0, za niska temperatura, przepełnione okno kontekstu albo niedopasowany szablon i token zatrzymania. Ustaw repeat_penalty na 1.1–1.15, temperaturę około 0.7 i num_ctx na tyle duże, by pomieściło rozmowę, a pętle znikają w niemal każdym przypadku.
Nie — zapętlanie to problem ustawień generowania, nie sprzętu. Wyjątek potwierdzający regułę: naprawdę uszkodzony VRAM daje bełkot i awarie, a nie czyste powtórzenia. Jeśli widzisz spójny tekst, który się powiela, ze sprzętem wszystko jest w porządku.
1.1 jako domyślna, 1.15–1.2 dla modeli małych (poniżej 7B) albo mocno skwantyzowanych, które łatwiej wpadają w pętlę. Unikaj 1.3 i wyżej: model zaczyna omijać uzasadnione powtórzenia — nazwy własne, terminy techniczne — i jakość spada w inny sposób.
Bo przepełnia się okno kontekstu. Gdy rozmowa przekroczy num_ctx, środowisko uruchomieniowe po cichu odrzuca najstarsze wiadomości; model traci spójność i podpiera się powtarzaniem świeżego tekstu. Zwiększ num_ctx (kosztem VRAM-u) albo częściej zaczynaj nowe rozmowy.
Tak — LM Studio udostępnia dokładnie te same pokrętła (Repeat Penalty, Temperature, Top P, Context Length) w panelu ustawień czatu, bo oba narzędzia mają pod spodem llama.cpp. Sprawdź presety: część z nich startuje z karą za powtórzenia równą 1.0, czyli „wyłączone”.