Skip to content

[BUG] EOS token no longer triggering with KoboldCpp v1.34.2 #305

Description

@WolframRavenwolf

Prerequisites

Please answer the following questions for yourself before submitting an issue.

  • I am running the latest code. Development is very rapid so there are no tagged versions as of now.
  • I carefully followed the README.md.
  • I searched using keywords relevant to my issue to make sure that I am creating a new issue that is not already open (or closed).
  • I reviewed the Discussions, and have a new bug or useful enhancement to share.

Expected Behavior

While benchmarking KoboldCpp v1.34.2 using the same setup (software, model, settings, deterministic preset, and prompts), the EOS token is not being triggered as with v1.33 anymore despite using --unbantokens. I expect the EOS token to be output and triggered consistently as it used to be with v1.33.

Current Behavior

I noticed generated text to be of lesser quality than it used to be with the previous version v1.33, more hallucinations and derailing the chat, and checked the console where I noticed it always triggered ending sequences. It used to trigger the EOS token, so I wonder if the lower quality output is caused by the missing EOS token, or is itself a symptom of some change that also causes the EOS token to be missing.

Environment and Context

Operating System: Windows 11
KoboldCpp: v1.34.2
Model: TheBloke_guanaco-33B-GGML/guanaco-33B.ggmlv3.q4_K_M.bin
Preset: "n": 1, "rep_pen": 1.18, "temperature": 0, "top_p": 0, "top_k": 1, "top_a": 0, "typical": 1, "tfs": 1, "rep_pen_range": 2048, "rep_pen_slope": 0, "sampler_order": [0, 1, 2, 3, 4, 5, 6], "quiet": false, "max_context_length": 2048, "max_length": 250

I've been benchmarking various settings, but all exhibited the same behavior - here are the command lines:

  • koboldcpp-1.34.2\koboldcpp.exe --blasbatchsize 1024 --gpulayers 16 --highpriority --unbantokens --useclblast 0 0 TheBloke_guanaco-33B-GGML/guanaco-33B.ggmlv3.q4_K_M.bin
  • koboldcpp-1.34.2\koboldcpp.exe --blasbatchsize 1024 --highpriority --unbantokens --useclblast 0 0 TheBloke_guanaco-33B-GGML/guanaco-33B.ggmlv3.q4_K_M.bin
  • koboldcpp-1.34.2\koboldcpp.exe --blasbatchsize 1024 --highpriority --unbantokens --usecublas --model TheBloke_guanaco-33B-GGML/guanaco-33B.ggmlv3.q4_K_M.bin
  • koboldcpp-1.34.2\koboldcpp.exe --blasbatchsize 1024 --gpulayers 16 --highpriority --unbantokens --usecublas --model TheBloke_guanaco-33B-GGML/guanaco-33B.ggmlv3.q4_K_M.bin
  • koboldcpp-1.34.2\koboldcpp.exe --blasbatchsize 1024 --gpulayers 16 --highpriority --unbantokens TheBloke_guanaco-33B-GGML/guanaco-33B.ggmlv3.q4_K_M.bin
  • koboldcpp-1.34.2\koboldcpp.exe --blasbatchsize 1024 --gpulayers 16 --highpriority --unbantokens --useclblast 0 0 TheBloke_guanaco-33B-GGML/guanaco-33B.ggmlv3.q4_K_M.bin

The previous version properly triggered the EOS token - here is its command line:

  • koboldcpp-1.33\koboldcpp.exe --blasbatchsize 1024 --gpulayers 16 --highpriority --unbantokens --useclblast 0 0 TheBloke_guanaco-33B-GGML/guanaco-33B.ggmlv3.q4_K_M.bin

Failure Information (for bugs)

Although software, model, deterministic preset, and prompts were identical, clBLAS and cuBLAS generate very different outputs. Is that to be expected? But none of the runs produced the EOS token consistently, which worked very well with the version I used previously (v1.33). I can't say if the latest version's outputs are worse because of the missing EOS token, or if the EOS token is missing because the output is worse! I also don't know if the token is not generated by the model, suppressed by koboldcpp, or just ignored?

Steps to Reproduce

  1. Use KoboldCpp v1.34.2 with --unbantokens and chat with a model that consistently produced them with previous versions.
  2. Check console and notice instead of EOS token, it now triggers the ending sequence you definited, or goes on until max gen length.
  3. Try the exact same model, settings and prompt with KoboldCpp v1.33 and you'll see the EOS token working.

Failure Logs

The only difference between the old and new version regarding logs is that now it's "Stop sequence triggered" instead of "EOS token triggered!"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions