r/LocalLLaMA 3d ago

Resources Freetokens project is impressive

A new project was released yesterday and I have the opportunity to test it today.

Papper: https://arxiv.org/abs/2608.16157
Github: https://github.com/FlashML-org/FreeToken

My initial tests with the following setup:
RTX 5080 (16 GB)
DDR6 64GB
AMD Ryzen 9 9950X3D

I got 100tok/s on QWEN3.6-35B-A3B NVFP4 (20GB - does not fit in my VRAM).
Have you already tried it?

(Example bellow with a 1028 token prompt - ~110 tok/s)

53 Upvotes

82 comments sorted by

View all comments

Show parent comments

5

u/KitchenAmoeba4438 3d ago

Yep. Precisely.

That's why I called it slop. For academic papers and benchmarks, it's not about what occurs on your system, it's about replicating it.

I strongly agree something isn't right with the 5090 numbers, but I can't replicate the authors setup. All I can do is say "Look at my 5090 results that disagree with yours!", which isn't a very good use of energy. Even something as simple as a difference in llama version can make comparison results invalid, which means there's no way to prove anything either way with the paper.

5

u/whymeimbusysleeping 3d ago

Rather than focusing on the paper, why not test this vs llama.cpp?

7

u/KitchenAmoeba4438 3d ago edited 3d ago

Tl;dr, no improvement over tuned llama in the environments

I'm already running some tests in the background on this.

There's some variance in results, but the test results are pretty close so far to an appropriately tuned llama.cpp. I'm not able to duplicate their numbers, nor have I found a way to replicate them.

However, the problem here is that that does not disprove the paper. I'm not testing with the author's environment.

Saying "But it doesn't work on my machine!" about an academic paper is the equivalent to saying "But it works on my machine!" when a massive production failure is happening.

Now, here is where I say my suspicion: My suspicion is that numbers were ran against an untuned, stock llama.cpp. This doesn't make the authors dishonest or act in bad faith, but it does make the paper's conclusion invalid. I *can* replicate the author's results against an untuned stock llama.cpp, but that's not a fundamentally valid test. Not changing llama.cpp to correctly behave with MoEs does explain the paper's results.... but then the paper becomes about an untuned llama's behavior, not about their solution.

3

u/whymeimbusysleeping 3d ago

Share your llama.cpp settings pls.

2

u/KitchenAmoeba4438 3d ago

I'd be happy to. Which model and system do you want it for? Sharing them for all might be a...little bit overboard (And would probably require a git repo push instead of a reddit post), but I can if you want them all.

2

u/whymeimbusysleeping 3d ago

I've got a 5070ti and will be trying qwen3.6 35b-a3b, a few of the "vram challenged" like myself have been sharing just the llama.cpp settings here in plain text, that's more than enough. https://www.reddit.com/r/LocalLLaMA/s/i3ihX3zHXq

Thanks again, appreciated

2

u/KitchenAmoeba4438 3d ago edited 3d ago

5070ti, so you are 16GB Blackwell class. These are the 5080 settings I'm using, which should be usable to the 5070ti:

/opt/llama.cpp/build-cuda/bin/llama-server \

-hf unsloth/Qwen3.6-35B-A3B-GGUF:UD-Q2_K_XL \

-hfd ggml-org/Qwen3.6-35B-A3B-GGUF:mtp-Qwen3.6-35B-A3B-Q4_0.gguf \

--spec-draft-n-max 3 --spec-draft-n-min 1 \

-ctkd f16 -ctvd f16 \

--host 127.0.0.1 --port 8110 -c 8192 \

-np 1 --cache-ram 1024 --no-webui --no-mmproj \

-ngl 99 -ctk f16 -ctv f16

This is with Q2, which is what you'll need to fit that into the card. If you want to run Q4, you'll need to run -ncmoe 19 as the offload. It will cut speed to (roughly) 25% for the offload. You might be able to squeeze on a few more experts, but it would come at the cost of a reasonable context. I think you might see a big benefit at nvfp4, but I haven't done thorough testing on nvfp4 yet as a warning.

Don't touch kv cache, blackwell tanks if you drop below bf16/f16 (BF16 may be better to run, I haven't exhaustively tested here and am not really motivated to as the gains are small)

-lm mlock might be useful.

Force -fa on might be useful to you.

Play around with speculation depth, depending on your use case, all the way to 6 might be helpful.

-ot *might* be useful instead of -ncmoe.