[GH-ISSUE #12741] gpt-oss:20b generating lots of repeated chunks ( is worse when prompt contains typos ) #70509

Closed
opened 2026-05-04 21:48:10 -05:00 by GiteaMirror · 2 comments
Owner

Originally created by @manuel-koch on GitHub (Oct 22, 2025).
Original GitHub issue: https://github.com/ollama/ollama/issues/12741

What is the issue?

Using ollama 0.12.6 on Apple M1 Pro, 26.0.1 (25A362).

I stumbled about a strange behavior of a specific model with a specific system prompt / chat message.

Repeating the same chat request over and over again ( even with very low temperature ) results sometimes
in the model repeating itself over and over again ( and even apologizing for repetition ),
sometimes even with some sort of endless loop while thinking.
Additionally using reasoning="high" seems to result in worse results.

Using a system prompt and chat message that contains some typos:

Aswer the user question! Don't output any emojis! Use markdown to format the answer!
Was für Arbeitszeitmodelle gibt es für Teilzeitbeschäftigte in Deutschland ?
Ist Arbeit in Teilzeit für den Arbeitnehmer ungerechter als für Vollzeitmitarbeiter in Bezug auf die Behandlung von Feiertage?
Was gibt es für Pro und Contra für Arbeit als Teilzeitmitarbeiter?

may yield response ( especially the <think> section ) with way too much repetition, although I used a high repeat_penalty=5.0, sometimes getting stuck in an endless loop repeating the same chunk over and over again:
( I inserted linebreaks to emphasis the repetition here )

<think>The user asks in German: "Was für Arbeitszeitmodelle gibt es für Teilzeitbeschäftigte in Deutschland? Ist Arbeit in Teilzeit für den Arbeitnehmer ungerechter als für Vollzeitmitarbeiter in Bezug auf die Behandlung von Feiertage? Was gibt es für Pro und Contra für Arbeit als Teilzeitmitarbeiter?" They want an answer in German, no emojis, use markdown. Provide overview of part-time models, fairness regarding holidays, pros and cons. Provide references to German law: Teilzeit- und Befristungsgesetz, Arbeitszeitgesetz, Urlaub, Feiertagsregelungen.
Also mention "Kurzarbeit", "Gleitzeit", "Jobsharing", "Teilzeit mit flexiblen Arbeitszeiten", "Teilzeit mit Teilzeitmodell", "Teilzeit mit Teilzeitmodell" etc. Provide details: "Teilzeit" can be "Kurzarbeit", "Gleitzeit", "Jobsharing", "Teilzeit mit Teilzeitmodell" etc. Provide fairness: holiday entitlement is pro rata, but holiday pay may be lower. Also mention "Feiertagszuschlag" and "Feiertagsentschädigung" for part-time employees.
Provide pros: work-life balance, health, flexibility, lower risk of burnout, more time for family, etc. Cons: lower income, less career progression, less benefits, less social security contributions, potential discrimination, less influence, etc. Provide references to German law: § 1 Teilzeit- und Befristungsgesetz, § 4 Urlaubsrecht, § 6 Arbeitszeitgesetz, etc. Provide suggestions for negotiation. Provide mention of "Arbeitnehmerüberlassung" etc.
Provide mention of "Betriebsrat" and "Tarifverträge".
Provide mention of "Feiertagsregelungen" in Bundesurlaubsgesetz.
Provide mention of "Feiertagsentschädigung" for part-time employees.
Provide mention of "Feiertagszuschlag" for part-time employees. Provide mention of "Feiertagsregelung" in "Bundesurlaubsgesetz" and "Arbeitszeitgesetz".
Provide mention of "Feiertagsregelung" in "Tarifverträge" and "Betriebsvereinbarungen".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" and "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" and "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" and "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" and "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" and "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" and "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" and "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" and "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" and "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" and "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge".
Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge".
Provide mention of "Feiertagsregelung".
Apologies for repetition. Let's produce a concise answer.</think>

Attached are more of such responses, with varying repetition of chunks.
chat-messages-and-responses.zip.txt

Slightly altering the system prompt and the chat message and fixing the typos seems to improves the response quality, reducing/avoiding repetition:

Answer the user question! Don't output any emojis! Use markdown to format the answer!
Was für Arbeitszeitmodelle gibt es für Teilzeitbeschäftigte in Deutschland ?
Ist Arbeit in Teilzeit für den Arbeitnehmer ungerechter als für Vollzeitmitarbeiter z.B. in Bezug auf die Behandlung von Feiertagen ?
Was gibt es für Pro und Contra zum Thema "Arbeit als Teilzeitmitarbeiter" ?

Is this a problem of ollama or a general issue of "thinking" models or inference models in general ?

I'm using this script to execute a single chat response:

from datetime import datetime
import hashlib
from pathlib import Path

from langchain_core.prompts import ChatPromptTemplate
from langchain_ollama import ChatOllama
from click import secho

BASE_DIR = Path(__file__).parent.parent.parent
DATA_DIR = BASE_DIR / "data" / Path(__file__).parent.name
REPEAT_PENALTY = 5.0
TEMPERATURE = 0.001

if __name__ == "__main__":
    ollama_base_url = "http://localhost:11434"
    ollama_client_kwargs = None  # pass authorization header here

    chat_message_path = DATA_DIR / "chat-message-bad.txt"
    chat_message = chat_message_path.read_text().strip()
    now = datetime.now()
    output_path = (
        DATA_DIR
        / f"{chat_message_path.stem}_repeat_penalty={REPEAT_PENALTY}_temperature={TEMPERATURE}_{now.isoformat(timespec='seconds')}.md"
    )

    chat_message = chat_message_path.read_text().strip()
    ollama_chat = ChatOllama(
        model="gpt-oss:20b",
        base_url=ollama_base_url,
        client_kwargs=ollama_client_kwargs,
        stream_mode="messages",
        reasoning=True,
        repeat_last_n=-1,
        repeat_penalty=REPEAT_PENALTY,
        temperature=TEMPERATURE,
    )

    prompt_search_template = ChatPromptTemplate.from_messages(
        [
            (
                "system",
                "Aswer the user question! Don't output any emojis! Use markdown to format the answer!",
            ),
            ("human", "{input}"),
        ]
    )
    ollama_chain = prompt_search_template | ollama_chat
    print("=== CHAT ===")
    secho(chat_message, fg="red")
    print("=== RESPONSE ===")
    is_thinking = False
    with output_path.open("w") as f:
        for chunk in ollama_chain.stream({"input": chat_message}):
            if "reasoning_content" in chunk.additional_kwargs:
                if not is_thinking:
                    secho("<think>", nl=False, fg="green")
                    f.write("<think>")
                is_thinking = True
                content = chunk.additional_kwargs["reasoning_content"]
                secho(content, nl=False, fg="green")
                f.write(content)
            if chunk.content:
                if is_thinking:
                    secho("</think>", fg="green")
                    f.write("</think>\n")
                is_thinking = False
                secho(chunk.content, nl=False, fg="white")
                f.write(chunk.content)
    print("\n\n")
    secho(f"Saved response to {output_path.name} ({output_path.parent})", fg="blue")

Using Python 3.13 with packages

langchain==0.3.27
langchain-community==0.3.30
langchain-core==0.3.77
langchain-ollama==0.3.10

Relevant log output


OS

macOS

GPU

Apple

CPU

Apple

Ollama version

0.12.6

Originally created by @manuel-koch on GitHub (Oct 22, 2025). Original GitHub issue: https://github.com/ollama/ollama/issues/12741 ### What is the issue? Using ollama 0.12.6 on Apple M1 Pro, 26.0.1 (25A362). I stumbled about a strange behavior of a specific model with a specific system prompt / chat message. Repeating the same chat request over and over again ( even with very low temperature ) results sometimes in the model repeating itself over and over again ( and even apologizing for repetition ), sometimes even with some sort of endless loop while thinking. Additionally using `reasoning="high"` seems to result in worse results. Using a system prompt and chat message that contains some typos: ```raw Aswer the user question! Don't output any emojis! Use markdown to format the answer! ``` ```raw Was für Arbeitszeitmodelle gibt es für Teilzeitbeschäftigte in Deutschland ? Ist Arbeit in Teilzeit für den Arbeitnehmer ungerechter als für Vollzeitmitarbeiter in Bezug auf die Behandlung von Feiertage? Was gibt es für Pro und Contra für Arbeit als Teilzeitmitarbeiter? ``` may yield response ( especially the `<think>` section ) with way too much repetition, although I used a high `repeat_penalty=5.0`, sometimes getting stuck in an endless loop repeating the same chunk over and over again: ( I inserted linebreaks to emphasis the repetition here ) ```raw <think>The user asks in German: "Was für Arbeitszeitmodelle gibt es für Teilzeitbeschäftigte in Deutschland? Ist Arbeit in Teilzeit für den Arbeitnehmer ungerechter als für Vollzeitmitarbeiter in Bezug auf die Behandlung von Feiertage? Was gibt es für Pro und Contra für Arbeit als Teilzeitmitarbeiter?" They want an answer in German, no emojis, use markdown. Provide overview of part-time models, fairness regarding holidays, pros and cons. Provide references to German law: Teilzeit- und Befristungsgesetz, Arbeitszeitgesetz, Urlaub, Feiertagsregelungen. Also mention "Kurzarbeit", "Gleitzeit", "Jobsharing", "Teilzeit mit flexiblen Arbeitszeiten", "Teilzeit mit Teilzeitmodell", "Teilzeit mit Teilzeitmodell" etc. Provide details: "Teilzeit" can be "Kurzarbeit", "Gleitzeit", "Jobsharing", "Teilzeit mit Teilzeitmodell" etc. Provide fairness: holiday entitlement is pro rata, but holiday pay may be lower. Also mention "Feiertagszuschlag" and "Feiertagsentschädigung" for part-time employees. Provide pros: work-life balance, health, flexibility, lower risk of burnout, more time for family, etc. Cons: lower income, less career progression, less benefits, less social security contributions, potential discrimination, less influence, etc. Provide references to German law: § 1 Teilzeit- und Befristungsgesetz, § 4 Urlaubsrecht, § 6 Arbeitszeitgesetz, etc. Provide suggestions for negotiation. Provide mention of "Arbeitnehmerüberlassung" etc. Provide mention of "Betriebsrat" and "Tarifverträge". Provide mention of "Feiertagsregelungen" in Bundesurlaubsgesetz. Provide mention of "Feiertagsentschädigung" for part-time employees. Provide mention of "Feiertagszuschlag" for part-time employees. Provide mention of "Feiertagsregelung" in "Bundesurlaubsgesetz" and "Arbeitszeitgesetz". Provide mention of "Feiertagsregelung" in "Tarifverträge" and "Betriebsvereinbarungen". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" and "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" and "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" and "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" and "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" and "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" and "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" and "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" and "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" and "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" and "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge". Provide mention of "Feiertagsregelung" in "Betriebsvereinbarungen" und "Tarifverträge". Provide mention of "Feiertagsregelung". Apologies for repetition. Let's produce a concise answer.</think> ``` Attached are more of such responses, with varying repetition of chunks. [chat-messages-and-responses.zip.txt](https://github.com/user-attachments/files/23059924/chat-messages-and-responses.zip.txt) Slightly altering the system prompt and the chat message and fixing the typos seems to improves the response quality, reducing/avoiding repetition: ```raw Answer the user question! Don't output any emojis! Use markdown to format the answer! ``` ```raw Was für Arbeitszeitmodelle gibt es für Teilzeitbeschäftigte in Deutschland ? Ist Arbeit in Teilzeit für den Arbeitnehmer ungerechter als für Vollzeitmitarbeiter z.B. in Bezug auf die Behandlung von Feiertagen ? Was gibt es für Pro und Contra zum Thema "Arbeit als Teilzeitmitarbeiter" ? ``` **Is this a problem of ollama or a general issue of "thinking" models or inference models in general ?** I'm using this script to execute a single chat response: ```python from datetime import datetime import hashlib from pathlib import Path from langchain_core.prompts import ChatPromptTemplate from langchain_ollama import ChatOllama from click import secho BASE_DIR = Path(__file__).parent.parent.parent DATA_DIR = BASE_DIR / "data" / Path(__file__).parent.name REPEAT_PENALTY = 5.0 TEMPERATURE = 0.001 if __name__ == "__main__": ollama_base_url = "http://localhost:11434" ollama_client_kwargs = None # pass authorization header here chat_message_path = DATA_DIR / "chat-message-bad.txt" chat_message = chat_message_path.read_text().strip() now = datetime.now() output_path = ( DATA_DIR / f"{chat_message_path.stem}_repeat_penalty={REPEAT_PENALTY}_temperature={TEMPERATURE}_{now.isoformat(timespec='seconds')}.md" ) chat_message = chat_message_path.read_text().strip() ollama_chat = ChatOllama( model="gpt-oss:20b", base_url=ollama_base_url, client_kwargs=ollama_client_kwargs, stream_mode="messages", reasoning=True, repeat_last_n=-1, repeat_penalty=REPEAT_PENALTY, temperature=TEMPERATURE, ) prompt_search_template = ChatPromptTemplate.from_messages( [ ( "system", "Aswer the user question! Don't output any emojis! Use markdown to format the answer!", ), ("human", "{input}"), ] ) ollama_chain = prompt_search_template | ollama_chat print("=== CHAT ===") secho(chat_message, fg="red") print("=== RESPONSE ===") is_thinking = False with output_path.open("w") as f: for chunk in ollama_chain.stream({"input": chat_message}): if "reasoning_content" in chunk.additional_kwargs: if not is_thinking: secho("<think>", nl=False, fg="green") f.write("<think>") is_thinking = True content = chunk.additional_kwargs["reasoning_content"] secho(content, nl=False, fg="green") f.write(content) if chunk.content: if is_thinking: secho("</think>", fg="green") f.write("</think>\n") is_thinking = False secho(chunk.content, nl=False, fg="white") f.write(chunk.content) print("\n\n") secho(f"Saved response to {output_path.name} ({output_path.parent})", fg="blue") ``` Using Python 3.13 with packages ```shell langchain==0.3.27 langchain-community==0.3.30 langchain-core==0.3.77 langchain-ollama==0.3.10 ``` ### Relevant log output ```shell ``` ### OS macOS ### GPU Apple ### CPU Apple ### Ollama version 0.12.6
GiteaMirror added the bug label 2026-05-04 21:48:10 -05:00
Author
Owner

@nfsecurity commented on GitHub (Oct 23, 2025):

I am having the same behavior. Others have reported something similar in issue number 12606

<!-- gh-comment-id:3437478412 --> @nfsecurity commented on GitHub (Oct 23, 2025): I am having the same behavior. Others have reported something similar in issue number [12606](https://github.com/ollama/ollama/issues/12606)
Author
Owner

@pdevine commented on GitHub (Oct 23, 2025):

I'm going to close this as a dupe of #12606.

<!-- gh-comment-id:3439409023 --> @pdevine commented on GitHub (Oct 23, 2025): I'm going to close this as a dupe of #12606.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/ollama#70509