Start / Poradniki / Rozwiązywanie problemów / Windows

Lokalny LLM powtarza się albo utknął w pętli — jak to naprawić

WindowsLinuxmacOSiPhone & iPad

Autor: Jakub Rusinowski · Ostatnia aktualizacja: 10 lipca 2026

Edukator AI i prowadzący warsztaty z wdrażania lokalnych modeli LLM

Komunikat błędu

The same sentence again. The same sentence again. The same sentence again. The same sentence ag

Kiedy się pojawia

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.

Co się właściwie dzieje

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.

Jak to naprawić

1. Najpierw wyklucz przepełnienie kontekstu — cichą przyczynę w długich rozmowach Najczęstsze rozwiązanie

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.

bash
# 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 8192
Sprawdź, co zmieści się na twoim sprzęcie — sprawdź, na ile kontekstu pozwala twój VRAM przy tym modelu
Otwórz kalkulator VRAM →

2. Ustaw repeat_penalty na 1.1–1.2 (a repeat_last_n na 256)

Kara 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.

bash
# 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 256

3. Podnieś temperature i top_p ponad strefę determinizmu

Temperatura 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.

bash
>>> /set parameter temperature 0.7
>>> /set parameter top_p 0.9

4. Sprawdź tokeny zatrzymania, jeśli model gada dalej po skończonej odpowiedzi

Model, 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.

bash
# 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|>

5. Podejrzewaj sam plik: bardzo niskie kwantyzacje i wadliwe GGUF-y zapętlają się częściej

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.

Dotyczy także: Linux · Apple

Powiązane

Model, który mieści się na większości zestawów:
Zobacz model i wymagania →

Najczęstsze pytania

Dlaczego mój lokalny LLM powtarza to samo zdanie w kółko?

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.

Czy powtarzanie oznacza, że moje GPU albo VRAM się psuje?

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.

Jaka wartość repeat_penalty jest najlepsza?

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.

Dlaczego model zapętla się dopiero późno, w długich rozmowach?

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.

Czy te ustawienia działają tak samo w LM Studio?

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”.