DynatempExponent

DynatempExponent controls the shape of the entropy-to-temperature mapping in dynamic temperature sampling. It only matters when DynatempRange is enabled (non-zero).

Quick reference

Type float
Default 1.0 (linear mapping)
Range > 0
Category Adaptive temperature
Field on SamplerParameters.DynatempExponent

What it does

Dynatemp maps the normalized entropy e ∈ [0, 1] at each step to an offset within DynatempRange. DynatempExponent reshapes the mapping:

  • DynatempExponent = 1.0 — linear mapping. Temperature scales proportionally with entropy.
  • DynatempExponent > 1.0 — convex. Only very high entropy triggers significant temperature increases; medium entropy stays near the base.
  • DynatempExponent < 1.0 — concave. Small entropy changes trigger larger temperature swings.

The exact formula from llama.cpp: the step’s temperature is the base Temperature adjusted by an offset proportional to entropy^DynatempExponent over DynatempRange.

When to change it

Scenario Value
Default linear mapping 1.0
Only react to very uncertain steps 1.52.0
React to mild uncertainty 0.70.9

Most users leave DynatempExponent = 1.0. Change only after experimenting with DynatempRange alone and finding the linear mapping unsuitable for your workload.

Example

var preset = new Qwen25Preset();
preset.SamplerParameters.Temperature = 0.7f;
preset.SamplerParameters.DynatempRange = 0.3f;
preset.SamplerParameters.DynatempExponent = 1.5f;
// Temperature rises significantly only on high-entropy steps; low-to-medium
// entropy stays close to 0.7.

using var api = AsposeLLMApi.Create(preset);

Interactions

  • DynatempRange — must be non-zero for DynatempExponent to have any effect.
  • Temperature — the base temperature dynatemp varies around.

What’s next