Docs
Browse documentation

Docs / Integrity and support

Determinism and output identity

Understand the exact guarantees behind greedy generation, serving, and speculative decoding.

Deterministic generation

fermion generate defaults to temperature 0 and repetition penalty 1.0. At matched model, prompt, dtype, backend, and context settings, it selects argmax at every step.

chat and serve intentionally use temperature 0.01 and repetition penalty 1.05 by default. Set temperature 0 when deterministic service output is required. The repetition penalty remains active unless you set it to 1.0.

Speculative output identity

The strong identity guarantee is CPU, greedy, float32. In that regime every drafted token stream must match the target-only stream, and fermion verify exits non-zero if it does not.

Reduced precision can move near-equal logits across the argmax boundary. This is why verify defaults to float32 even though normal PyTorch inference defaults to bfloat16.

CLI and server parity

The server and command line use the same generation function. At matched sampler, prompt, model, dtype, and backend settings, the emitted token sequence is the same. Streaming changes delivery, not generation.