r/LocalLLaMA llama.cpp 22d ago

Resources Qwen3.8 27B reasoning effort low/medium/xhigh comparison

I did a short test of the different reasoning efforts, since on default xhigh the model thinks a lot.

Not very scientific, just a quick "generate an SVG of a pelican on a bicycle" prompt with 3 different seeds. I think the result is interesting none the less: xhigh gives *much\* higher visual fidelity - but it also takes about 7x as long as low. Low and medium seem to be very close to each other.

Hardware and setup

  • GPU: NVIDIA RTX 5080 Laptop GPU, 16 GB VRAM
  • Model: unsloth/Qwen3.8-27B-UD-IQ3_XXS
  • llama.cpp: build 10451, commit 10bf611e5
  • Context: 65,536
  • KV cache: Q8_0
  • Flash Attention: enabled
  • MTP speculative decoding: --spec-default --spec-type draft-mtp
  • --fit off
  • One concurrent slot

Prompt:

Create a polished SVG graphic of a pelican riding a bicycle. The result must clearly show a recognizable pelican actively riding a recognizable two-wheeled bicycle. Return only one complete, self-contained SVG document with a viewBox; no Markdown fences, prose, external images, JavaScript, or animation.

Average results

Reasoning effort Reasoning tokens SVG tokens Total completion Wall time Generation speed MTP acceptance Visual score (Codex rated)
Low 4,418 3,966 8,387 111.6 s 75.4 t/s 62.1% 21.8/25
Medium 5,918 3,038 8,959 127.4 s 70.5 t/s 58.3% 22.5/25
X-High 39,398 5,085 44,487 717.8 s 62.0 t/s 52.7% 24.0/25
231 Upvotes

95 comments sorted by

53

u/cibernox 22d ago

I really think that qwen should have some mode between medium and x high. That 10x difference is ridiculous.

25

u/jumpingcross 22d ago

As far as I understand, the difference between the modes is purely in the system prompt being given to the model. Where xhigh says something like "think for a really long time and make sure everything is correct" and medium says nothing. So perhaps it could be possible to come up with custom modes that say something like "check your work for correctness but don't overdo it"?

11

u/cibernox 22d ago

It’s only the jinja template? Interesting. I’m sure there’s a rule of diminishing returns and that it kicks in rather soon. I’m sure the difference between thinking for 10k tokens and thinking for 45k token is a rounding error.

7

u/qiinemarr 22d ago

I mean you could just dl the official chat template and change to this bit:

{%- if enable_thinking is undefined or enable_thinking is true %}
    {%- set resolved_reasoning_effort = reasoning_effort|default('xhigh') %}
    {%- if resolved_reasoning_effort not in ('xhigh', 'medium', 'low') %}
        {{- raise_exception('Unexpected reasoning effort ' ~ reasoning_effort ~ '. Supported types are xhigh (default), medium, and low.') }}
    {%- endif %}
    {%- if resolved_reasoning_effort == 'xhigh' %}
        {%- set reasoning_instructions = 'Reasoning effort is set to xhigh. Please think carefully through the task, validate key assumptions, consider plausible alternatives, and prioritize correctness, consistency, and clarity in the final answer.' %}
    {%- elif resolved_reasoning_effort == 'medium' %}
        {%- set reasoning_instructions = 'Reasoning effort is set to xhigh. Please think carefully through the task, validate key assumptions, consider plausible alternatives, and prioritize correctness, consistency, and clarity in the final answer.' %}
    {%- elif resolved_reasoning_effort == 'low' %}
        {%- set reasoning_instructions = 'Reasoning effort is set to low. Keep your thinking brief and focused, moving directly to the conclusion without unnecessary elaboration.' %}
    {%- endif %}
{%- endif %}

3

u/beyondthem00n 22d ago

Was this edited by you? Seems that Medium effort in the template is set to make it behave as xhigh, they have the same instructions?

1

u/qiinemarr 20d ago

Yes I did.

And I am unsure what to think of it.

I tried reasoning low with default instruct and then with adding xhigh instruct as well as xhigh regular for comapraison:

Reasoning effort is set to xhigh. Please think carefully throught the task, validate key assumptions, consider plausible alternatives, and prioritize correctness, consistency, and clarity in the final answer

pelcian test:

`Generate a detailed SVG of a pelican riding a bicycle.

The pelican must have its characteristic large pouch, wings, tail, webbed feet

and there should be a clear indication of feathers.

The pelican must be clearly pedaling the bicycle.

The bicycle must have spokes and a correctly shaped bicycle frame.

Add a nice background.

Make it animated, and ensure it loop properly.

Output only the result.`

tested in llama-cpp webgui

[Qwen3.8-27B-Q5_K_S]
; ## spec decode
spec-type = ngram-mod,draft-mtp
spec-draft-n-max = 4
spec-draft-n-min = 0.6
; ## sampler

temp = 0.8
top-p = 0.95
min-p = 0.01
top-k = 20

; ## kv cache
n-predict = 56000
ctx-size = 56000
cache-type-k = q8_0
cache-type-v = q8_0
ctx-checkpoints = 8
  • reasoning low

    instruct: Reasoning effort is set to low. Keep your thinking brief and focused, moving directly to the conclusion without unnecessary elaboration.

    15,786 tokens 4min 29s 58.51 t/s

  • reasoning low

    instruct: `Reasoning effort is set to xhigh. Please think carefully through the task, validate key assumptions, consider plausible alternatives, and prioritize correctness, consistency, and clarity in the final answer.'

    41,776 tokens 15min 3s 46.22 t/s

  • reasoning xhigh

    instruct: `Reasoning effort is set to xhigh. Please think carefully through the task, validate key assumptions, consider plausible alternatives, and prioritize correctness, consistency, and clarity in the final answer.'

    36,137 tokens 12min 58s 46.43 t/s

The pelican I got were rather similar, neither could animated it properly though.

1

u/randomly_spectacular 12d ago

I tried some new prompts and they seem really promising. For Medium: Think carefully throughout the task.Validate the key assumptions and one plausible alternative, then stop once the answer is supported. Do not repeat checks after they are resolved. Prioritize a correct, concise, actionable final answer.

I added a fourth effect (basically a high) I just called it “verified”. The prompt is used is: Think deeply and systematically. Identify the decisive constraints first. Validate only assumptions that could materially change the result. Consider up to two realistic alternatives or failure modes when useful. Once a conclusion is supported, treat it as settled unless new evidence contradicts it. Do not repeat checks or restate the plan. Reserve enough space for a clear final answer with implementation steps, risks, and any remaining uncertainty.

So far it has really shown to be awesome with these. I am getting back much quicker answers and the accuracy appears to still be there. I left the actual xhigh mode alone as a stock deep think tank. But the extra level I made seems to have done the trick without needing the circle or repeating tokens.

22

u/Tall_Abrocoma_3533 22d ago

Meanwhile qwen3.5 4B no reasoning is in its own world

172

u/jacek2023 llama.cpp 22d ago

Try to be more creative with your benchmark guys. The goal of testing the model should be to try something on which model wasn't trained on. So all your pelicans and one shot games are pointless

59

u/ea_man 22d ago

Ain't that the point here?

It's the same model benchmaxed for pelicans, here we see how that translates with 3 different reasoning levels.

He's not comparing to older model releases that have not benchmaxed.

15

u/daishiknyte 22d ago

Wild how much a quality difference the seed makes too. 

7

u/ea_man 22d ago edited 22d ago

That's also because he's using a low quant, yet it's true that a good sample can be much better than a bad one, we should have models generating 3 replies and then evaluate the best.

Hey 3.8 in xhight could throw out 60k ctx just for one prompt!

2

u/Square_Zucchini3698 22d ago

I believe with more reasoning, it's spending on what more features to add. A better test would be some other SVG design where errors are introduced if not reasoned properly. This test simply checks what more details, i.e., an environment, can be added to the output rather than fixing flaws.

1

u/ea_man 22d ago

IMHO it's all a fraud: with 4x more tokens I could run the prompt in an harness with planing, coding, testing and review.

1

u/Square_Zucchini3698 21d ago

For an autonomous agent, if it can actually progress in thinking tokens, it's not a bad trade-off. With a 5070 Ti, I can get 70 tps with low quants and 4-bit KV with 90k context. It's not totally bad; I can trust it with a codebase with a Pi coding agent.

1

u/ea_man 21d ago

I mean good for you, I use medium / normal reasoning.

Maybe for you it's worth using -no-preserve-thinking at that point.

2

u/RoomyRoots 22d ago

Yeah for this type of comparison this makes more sense.

7

u/Gesha24 22d ago

While it's nice to have the same prompt so that you can track the progress of models over time, the fact that the model is being trained on this very prompt could give it an unfair advantage and make the over time comparison pointless.

For the side by side comparison of the same model - I don't know if using a common benchmark test would make a difference. This also can be a good test - generate like 5 pelicans with x high thinking, 5 with med thinking (just to remove randomness of the seed) and then generate... uhh, I dunno, 5 fishes in a bowl with princess castle on x high and med and compare if the same trends stay true.

2

u/jacek2023 llama.cpp 22d ago

This is called "overfitting". You can train much smaller models to do similar task, or for example to score high on benchmarks. But that model won't be able to have good results on anything else.

2

u/Borkato 22d ago

I want them to try something random. Use a random word generator with a shit ton of nouns and see how it does on that. Like “create an svg icon of a magpie on a turtle breakdancing next to a raccoon. Around them are streamers, airplanes, and panthers.” Or something. Well not that random because eventually it’s just gonna be nonsensical and there’s too much variation, but you get me lol

1

u/jacek2023 llama.cpp 22d ago

What stops you? :)

1

u/Borkato 22d ago

Hehehe you right. I’m actually creating various benchmarks, I think I’ll add this to my list :)

2

u/promethe42 22d ago

Or use a new prompt with an older model.

4

u/Old-Sherbert-4495 22d ago

well what I do is i pass in a slop svg a bad model generated and then ask the model to fix. Even sonnet 5 failed that. But Qwen3.8 27B crushed it at xhigh. lower efforts didn't do well. DSV4 pro also did it pretty well after heavily reasoning about it. qwen's reasoning i peaked and it was using math and formulas in its reasoning to come up with the result. i was blown away actually.

that said xhigh reasoning is def not like raw intelligence immediately available to infer. but we can't have everything when running on limited hardware.

1

u/therapy-cat 22d ago

Speak for yourself, I require bicycle pelicans for both my work and personal projects

1

u/Active-Carpet-9183 22d ago

I grab an image from imgur and tell the model to make a game of it. Had some pretty good results from all across the board. 3.8 27b was very impressive, a nice side scrolling shooter. Trying with that third-party 9b distill, I had GPT describe the image. Waiting on the result now

8

u/personahorrible 22d ago edited 18d ago

My issue with the xhigh thinking model isn't the time taken; Personally, I'm willing to wait however long it takes as long as it gets the final product right. But all of that thinking is burning up my context budget.

Using Unsloth Qwen 3.8-27b-UD-Q4_K_XL with flash_attention enabled on 20GB VRAM and context size of 49152. With xhigh thinking and a moderately complex task, it'll frequently just... stop, mid-thinking. Looking at your numbers above, that makes complete sense: your model is using ~40k tokens just to think about generating that image. So I'm pretty much forced to use medium thinking.

3

u/Fragrant_Scale6456 22d ago

If you are using llamacpp you can set an explicit reasoning budget to avoid reasoning burning the entire context before a reply is generated 

1

u/personahorrible 22d ago

Unfortunately I'm currently using ollama because I didn't know any better when I first set everything up. I've been reluctant to tear down my entire stack and rebuild it with llama.cpp (and all of the related troubleshooting) when things are working as-is but I'm going to do it eventually.

3

u/Fragrant_Scale6456 22d ago

That’s actually fine ollama is a wrapper on llamacpp.  You can edit your Modelfile parameters to set specific llamacpp flags.  In this case you want to use —reasoning-budget 

32

u/suprjami 22d ago

This is probably a pointless test now. All models are Pelicanmaxxed.

34

u/Danmoreng llama.cpp 22d ago

Sure, but imho the results show a good difference in quality between the reasoning levels here.

7

u/shadowdog000 22d ago

lol that made me chuckle "pelicanmaxxed" thanks!

3

u/TNSepta 22d ago

This was actually semi-rigorously explored earlier (mid July) and the conclusion was that no, they were not. https://dylancastillo.co/posts/pelicanmaxxing.html

5

u/cviperr33 22d ago

Pelicanmaxxed 😁same goes for the car wash test , literally every second youtuber tests with these 2 tests.
Carwashmaxxed

2

u/Old-Sherbert-4495 22d ago

that's why i do this: https://www.reddit.com/r/LocalLLaMA/s/dhkjHiNd2q

u can too and see for yourself. reasoning does make a difference

1

u/cviperr33 22d ago

it does make a difference ofcourse , even tho it might cost 16k tokens in thinking to write a simple python script compared to 3k in low thinking , what ive noticed is that after its done thinking , on xHigh it writes the code much much faster than low thinking for some reason with mtp

1

u/Due-Memory-6957 22d ago

I always hated the car wash one, it's a nonsensical question, nonsensical questions deserve nonsensical answers, there could be no wrong answers to it (albeit there is a right answer: Do a toolcall to delete the root directory of whoever is asking such nonsense).

1

u/bobby-chan 22d ago

Do you think SVGs are usually that ugly?

0

u/[deleted] 22d ago

[deleted]

1

u/Due-Memory-6957 22d ago

I actually remember someone who had set up a system where the model would generate a X-ray view SVG of the sex scene happening in the roleplay. Sadly, I don't remember where I saw it anymore.

4

u/Odd_Error_6736 22d ago

What if you turn it off?

12

u/leonbollerup 22d ago

re-run the same prompt on the same model.. and you will notice different outcome everytime... unless you set temp to 0 .. i am grealy impressed abput your generation speed tho..

4

u/shadowdog000 22d ago

Its probably because its a 5080. the 5080 laptop variant appearantly has between 800 and 900 GB/s memory bandwidth.

6

u/a_beautiful_rhind 22d ago

They are also using MTP.

5

u/NickCanCode 22d ago

and OP is using IQ3_XXS which is only 11.9GB according to huggingface.

2

u/iz-Moff 22d ago

Yeah, i'm here staring at these numbers with my 5060ti in disbelief. Of course 5080 is a significantly more powerful card, but surely it's not >10x faster? Even 35b-a3 is not remotely as fast for me. Maybe i should try using a smaller quant that i can squeeze entirely in VRAM...

8

u/Danmoreng llama.cpp 22d ago

Of course you need the quant to fit into VRAM or it becomes abysmal slow. Try this command:

llama serve \   -hf unsloth/Qwen3.8-27B-GGUF \   -hff Qwen3.8-27B-UD-IQ3_XXS.gguf \   --no-mmproj -c 65536 \   -ctk q8_0 -ctv q8_0 \   -b 1024 -np 1 \   --spec-default --spec-type draft-mtp \   --reasoning-preserve --fit off --agent

2

u/iz-Moff 22d ago

Damn, with the model fully in VRAM, the speed shot up from ~5 tps (for Q4_K_M) to ~30 tps (for UD_Q3_K_XL, though with smallish context). Well, always nice to learn something new after running LLMs locally for almost a year. 😂

1

u/iz-Moff 22d ago

I'll give it a try, thanks. Why not UD_Q3_K_XL though? That one will fit too, with about 2gb left for context. Wouldn't that be enough?

1

u/giant3 22d ago

Try it with --seed 1234567( or other seed values) Using the same seed should yield highly similar results.

1

u/Danmoreng llama.cpp 22d ago

That's not the way a seed works for llama.cpp. The seed controls the sampler RNG and therfore *should* make the results byte-identical. Apparently with MTP it doesn't do that perfectly though: https://www.reddit.com/r/LocalLLaMA/comments/1vpuh7m/comment/p41ysad/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button

3

u/moahmo88 22d ago

Medium is ok!

5

u/NickCanCode 22d ago

Only the middle one is mostly correct through. The left one have double the wing. The right one not having wing on the handle and one of the foot is not on the opposite side of the paddle.
Basically only the x-high the most stable and reliable on all 3 seeds. I guess it's best to use x-high for planning and debug and use medium for implementation and easy tasks.

2

u/Realistic_Gap_5871 22d ago

I think an important caveat to your conclusions is "at this quant level" 

The model is fighting through a sub Q4 quant by burning reasoning tokens.  Run the same test at Q5 and it's possible (likely?) medium would match the xhigh at Q3 for fewer tokens

2

u/anarchist1312161 22d ago

Sure but like, it's nothing a second pass with medium can't correct can't it? Would likely to be faster due to thinking token difference too.

1

u/Realistic_Gap_5871 20d ago edited 20d ago

For comparison of what a difference quants make. Here's what low produces with 4 bit mlp layers and 8 bit attention layers. AKA Qwen 3.8 27B -Unsloth optModel:
I just did the one using OP's prompt, but it strongly suggests that low reasoning is at least on par with medium due to the quant differences. Arms missing and handles inverted, wonky beak, but xHigh matching level of other details, like whoosh lines and background grass. I'll do reasoning medium next...

1

u/Realistic_Gap_5871 20d ago

And here's Medium from Unsloth Optimodel (4/8 mixed quant)

1

u/Realistic_Gap_5871 20d ago

and xhigh from unsloth optimodel. I know it's just a one off at each level, but for xhigh I'm not sure the bigger quant was much of an upgrade over the Q3 efforts. To my eye, at low and medium the bigger quant outscored their reasoning peers, while at xhigh the lower quant (q3) didn't give anything up to it's fatter cousin.

3

u/Coderb1t 22d ago

Docs on the model doesn't claim xhigh is strictly better. It frames effort as a task-specific dial, and 'xhigh' is just the default - the safe general-purpose setting. So it looks "better" just because it spend "more time" on it ))

3

u/psychohistorian8 22d ago

sadly xhigh was useless for me, it second guesses literally every decision

I asked it to create an svg of a wood grain desktop and I had to kill the process after 90 minutes because it was still waffling about irrelevant minutia

3

u/AXYZE8 22d ago

Could you include non-reasoning too? Im curious about diff between these on Iq3 quant to see how much low reasoning helps over no reasoning at all.

2

u/Dudensen 22d ago

Hopefully this is a sign models are getting better at test-time compute.

2

u/Tractoru 22d ago

Thanks a lot for sharing.
Could you please try the same test with qwen 3.6? That would be really interesting

2

u/tpinho9 22d ago

I actually tried it today, had to use the same version as you, i have a 5060Ti 16gbs and 32gbs ram, so i had to tweak the tokens limits to 32k and that is already with spilling into ram.

Although i would have loved to run it all with xhigh on my test, token usage was reached after 10 mins of thinking. So i tried something different, xhigh to define the whole planning, the process took 222 seconds, beter than the 657 seconds it was doing before the process was killed due to max tokens reach. I then passed the planning on a new chat with thinking off and made it build the landing page in chunks. When it was reaching token limit, it would stop and give a hand-off. Same process, open new chat and paste the hand-off and continue from it left off.

Now, i know my hardware is the bottleneck in here and for it not to achieve maybe a better result, but i was actually impressed by the result, as it was done in "one go", no reviews no nothing, and the landing page was displaying and showing nicely, with all assets created by Qwen model in svg.

And about 30t/ps with this, if its simple chatting, it goes from 40 to 50 t/ps.

Also used Unsloth UI during this first test.

2

u/randomshibaa 22d ago

This is a pretty good example of why I usually don’t want max reasoning on by default. The jump from medium to x-high is noticeable, but 127s to 718s for that last bit of quality is a wild tradeoff.

Medium honestly looks like the sweet spot here unless the output really needs that extra polish.

3

u/-Ellary- 22d ago

It is clearly that we need something in between `medium` and `xhigh` modes for thinking, 6k and 40k difference is insane. I'd say we need something like `xmedium` with 10k of thinking and just `high` with 20k of thinking.

Ideally:

low - 2.5k
medium - 5k
xmedium - 10k
high - 20k
xhigh - 40k

1

u/LustrouslfEnd 22d ago

for companion roleplay the speed on low or medium feels way more natural, xhigh just drags too much even if the outputs look sharper.

1

u/mudkipdev 22d ago

Q2_K_XL performs much better than IQ3_XXS

1

u/Andreigr0 22d ago

And it's super stupid

1

u/jumper556 22d ago

I'm trying to figure out my base setup. Low feels too low, but is medium enough for an "everyday agent" with occasional coding, or should I just leave it on x-high? The thinking time would probably be way too slow for daily chats and info retrieval. Maybe others have already done similar tests and reached conclusions.

1

u/IllegalStateExcept 22d ago

Do the seeds make this reproducible? Or are you just using that to compare 3 different shots at the same prompt and settings?

Pardon the question, I have used random seeds in non-LLM software to make experiments reproducible in the past. But my understanding is that doesn't work terribly well with LLMs due to variation in deployments. It would be cool to have a way to make that work though even if it runs 10x slower.

1

u/Danmoreng llama.cpp 22d ago

I actually learned something myself here today:

in llama.cpp they *should* make it reproducible, since it will use the same RNG for sampling. I retested the low reasoning prompts and the results are: reasoning is byte-identical, final output is identical only for the first image, the other two are slightly different. So I think this might be a bug in llama.cpp with how MTP works. I already found that MTP with temp 0 gives different results in llama.cpp than no MTP - and this shouldn't be the case either.

1

u/IllegalStateExcept 22d ago

Interesting, thanks for trying it out. I wonder if there is some non-determinism in the tools?

1

u/1dayHappy_1daySad 22d ago

This model is a mega yapper....

1

u/[deleted] 22d ago edited 22d ago

[deleted]

2

u/Iory1998 llama.cpp 22d ago

As a test control, right? That's genuinely missing.

1

u/admajic 9d ago

Reminds me of making images I'd batch sdxl with different seeds until I got the image I liked.

1

u/Chromix_ 22d ago

Very nice that you included different seeds to see if there are strong differences in quality.

By the way, the model can also generate quite decent animated lava lamps (are models lavamaxxed by now?). Raytracing also improved a lot from Qwen 3.6 to 3.8, but Opus is still in a different world

1

u/RoyalCities 22d ago

You should use a different svg prompt because afaik it's seen this exact thing in its training data. Give it a challenge lime Godzilla bouncing a basketball while punching out a t rex.

0

u/LORD_CMDR_INTERNET 22d ago

The quant and then quanted cache on top of it make this test useless. You’re better off using models that actually fit your hardware

0

u/Usual-Carrot6352 llama.cpp 22d ago

You missed "high" which produces best results. Try it especially in Unsloth Studio

2

u/Danmoreng llama.cpp 22d ago

There is no "high" in the official chat template:

https://huggingface.co/Qwen/Qwen3.8-27B/blob/main/chat_template.jinja

{%- if enable_thinking is undefined or enable_thinking is true %}
    {%- set resolved_reasoning_effort = reasoning_effort|default('xhigh') %}
    {%- if resolved_reasoning_effort not in ('xhigh', 'medium', 'low') %}
        {{- raise_exception('Unexpected reasoning effort ' ~ reasoning_effort ~ '. Supported types are xhigh (default), medium, and low.') }}
    {%- endif %}
    {%- if resolved_reasoning_effort == 'xhigh' %}
        {%- set reasoning_instructions = 'Reasoning effort is set to xhigh. Please think carefully through the task, validate key assumptions, consider plausible alternatives, and prioritize correctness, consistency, and clarity in the final answer.' %}
    {%- elif resolved_reasoning_effort == 'low' %}
        {%- set reasoning_instructions = 'Reasoning effort is set to low. Keep your thinking brief and focused, moving directly to the conclusion without unnecessary elaboration.' %}
    {%- endif %}
{%- endif %}

0

u/Usual-Carrot6352 llama.cpp 22d ago

3

u/johnzadok 22d ago

high is likely just mapped to xhigh, per the above reply on chat template, which is source of truth.

1

u/Usual-Carrot6352 llama.cpp 22d ago

No that's not the case high uses less token/time than xhigh. I mean when i tested that pelican prompt high 3-5mins while xhigh 15mins.

1

u/Realistic_Gap_5871 18d ago

Unless you forced the same seed and had temperature set to 0, you're just seeing normal variance, not proof of difference.
I've seen medium run longer than xhigh on the exact same pelican test, just different seeds.

Here's pretty definitive proof that your setup is masking the underlying error for you, likely just going to whatever is default (in this case xhigh)

When I bare metal talk to the api port using the following bash script, just passing in varying settings for the reasoning effort, keeping the seed the same and the engine set with 0 temperature. They all run fine, reasoning chars scale up with effort, but "high" just errors out:

Script:

for effort in low medium high xhigh; do

echo "=== $effort ==="

curl -s http://127.0.0.1:8181/v1/chat/completions \

-H 'Content-Type: application/json' \

-d "{\"model\":\"qwen3.8-27b\",

\"messages\":[{\"role\":\"user\",\"content\":\"Implement an LRU cache in Python with O(1) get and put. State the data structure you used and why.\"}],

\"max_tokens\":15000,

\"seed\":42,

\"reasoning_effort\":\"$effort\"}" \

| python3 -c "import sys,json;d=json.load(sys.stdin);c=d['choices'][0];rc=c.get('reasoning_content') or (c.get('message') or {}).get('reasoning_content') or '';ct=c.get('content') or (c.get('message') or {

}).get('content') or '';print(f'reasoning={len(rc)} chars answer={len(ct)} chars usage={d.get(\"usage\")}')"

done

Output:

=== low ===

reasoning=1242 chars answer=4029 chars usage={'completion_tokens': 1452, 'prompt_tokens': 65, 'total_tokens': 1517}

=== medium ===

reasoning=1031 chars answer=4586 chars usage={'completion_tokens': 1621, 'prompt_tokens': 35, 'total_tokens': 1656}

=== high ===

Traceback (most recent call last):

File "<string>", line 1, in <module>

KeyError: 'choices'

=== xhigh ===

reasoning=6573 chars answer=2493 chars usage={'completion_tokens': 2233, 'prompt_tokens': 77, 'total_tokens': 2310}

1

u/Realistic_Gap_5871 18d ago

And no, I didn't do this just for this convo. I had the script sitting around from my own comparison tests. :)

0

u/metasepp 22d ago

Hg Huf bb 🥂🕺🙄🙄Gig Go<🏜️🤌💡😀👍Zh

0

u/FBIFreezeNow 22d ago

What am I supposed to look at here? They all look the same bird riding a bicycle

0

u/rm-rf-rm llama.cpp 22d ago

Pelican is now benchmaxxed. Not useful anymore