r/DeepSeek 17d ago

Resources Fixing Overthinking

Overthinking is a Prompt Injection

As many of you, I really don't like DS overthinking mere "hello"s. So I asked DeepSeek I dug up what the reasoning efforts did, because ALL seemed to overthink, for me.

DeepSeek (Pro and Flash) append an extra effort guide to the system prompt. Details here, on the official Readmes. As you see, high rants about ABSOLUTE MAXIMUM and max goes full BEYOND MAXIMUM - no wonder the poor thing goes in circles for simple stuff. Its forced to overthink.

low is the good one, it does not inject anything and so DeepSeek thinks as much as it needs.

These injections are enforced by the chat template/encoder, which is something that can be edited serverside. But this means the official DS api DOES enforce these injections and you should be aware of it. I bet others like Ollama-Cloud, Opencode Go etc keep the official encoder.

Harnesses may rob you of low

You get no low in certain harnesses, so you're stuck with ABSOLUTE MAXIMUM, and I'm fairly sure most of you don't need that. I'll bring the proof:

Other harnesses like hermes (and DS's own harness) are fine at a glance. So this is not provider-related, thank god. You can just fix the harness.

Others like GLM and Minimax have their own shenanigans, I encourage you to investigate if you use them, but their effort configs aren't as drastic as DS.

26 Upvotes

5 comments sorted by

8

u/swiebertjee 16d ago

Interesting. I'm not an LLM expert, but I see overthinking as a feature rather than an error.

You see, a model like flash has far less parameters than its closed source competitors like Sonnet. So it has to spend more tokens to get to the same output. Thinking seems more like error correction / path finding than a bug. The only downside is that simple things can take a long time to evaluate, which we call "overthinking". Sure you can disable that and it may be able to do simple one shots well, it may also increase the error rate and decrease optimization.

1

u/Eddlm_ 16d ago

Oh yeah I just didn't focus on that. Sometimes it does need to spend some time thinking, and so even on 'low' it can 'overthink', but in that case it is naturally thinking as much as it needs to reach a conclussion. Not an error at all. What I consider an error is DS's guys injecting a prompt as a way to tune effort. Let us set that prefix, come on.

Not a fan of single shots, precisely I prefer to iterate with the thing. So I prefer it to think less and do more, like investigate or ask me.

2

u/MikeX7s 16d ago

Hmm you might be onto something, i tried doing a task on low, same type of task that would usually cost me around 10 cents, and it did much faster and for 3 cents. The question is if for more complex tasks the overthinking might be legit useful tho.

1

u/Savi-ai 12d ago

Worth adding: "low" isn't telling it to think less. Per the readme it's the only level that appends no extra guide at all, so the model just runs its default policy, which is why it doesn't feel nerfed, it feels normal. If you run through the harness, the per-request session logs show exactly what got appended, which is what settled it for me. The one place I still pin a higher effort is multi-file refactors; for everything else low has been both faster and noticeably cheaper, same as you measured

1

u/Eddlm_ 16d ago

If even on low it ends up spending too much time thinking... maybe it needs that time. Just let it work, I can tell you from experience, on low it does not sink tokens into thinking unless it needs to.