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.