Byrne-100M-Ultra-MC / DECODING-DEFAULTS.md
Quazim0t0's picture
Add Byrne-100M-Ultra-MC inference release
ba3565a verified
|
Raw
History Blame Contribute Delete
2.47 kB

Decoding defaults

Serve these with temperature sampling. Greedy is for tests.

temp = 0.7      top_k = 40      rep_pen = 1.3

That's what the project's own scripts already use (gen_multiturn.py, chat_infer_service.py, and the rest: temp 0.7 five times, top_k 40 five times, rep_pen 1.3 three times). Use it for anything a user sees, and for any claim about whether a checkpoint is any good.

When greedy is actually right

  • cache checks (verify.py / verify_cache.py: cached decode == full recompute)
  • speculative-decode identity (MTP on vs off, same tokens)
  • A/B where both arms have to be deterministic
  • "these two code paths compute the same thing"

That's it. Greedy strips sampling noise, which is why those tests want it. Everywhere else it lies to you.

What greedy actually does here

It always takes the mode. On the Mark2 SFT/DPO checkpoints that mode is an UltraChat disclaimer, so greedy chat looks a lot worse than the model:

decoding context "Hey" →
greedy cold ### How to Research the Latest Trends and Profiles
temp 0.7 cold Alright, let's start with a simple diagram...
greedy primed I'm not able to visit the Japanese market...
temp 0.7 primed Alex, ... exploring Japan's rich cultural heritage

"Primed" means there's already a handwritten assistant turn in the conversation (how gen_multiturn.py works). Priming sets the register; sampling gets you out of the disclaimer basin. You need both.

The 2026-08-13 screwup

A repetition study reported self-repetition of 0.364 and decided the models paraphrase themselves. That turned into a no-repeat n-gram ban, defaulted on in both Spaces, ported to the WebGPU JS sampler, wired into standalone generate.py, and added to Anti-DEG as a new "R" stage.

All of those numbers were greedy. Maybe 0.364 still shows up at temp 0.7 / top_k 40 / rp 1.3. Maybe it doesn't. Either way it was sold as a model property and it was a decoding property.

Measure in the mode you serve. If a number is greedy-only, say so next to the number.

Sampling isn't magic either

Same prompt, peanut-allergy constraint in context: temp 0.7 suggested "1 cup chopped almonds or peanuts". Greedy stayed safe. Sampling gets you fluency. It does not get you constraint following. Score those separately.


Written after the 2026-08-13 Byrne/Escarda v1.5 Space work. Change the serving defaults, change this file.