Whereas constructing my very own LLM-based utility, I discovered many immediate engineering guides, however few equal guides for figuring out the temperature setting.
In fact, temperature is an easy numerical worth whereas prompts can get mindblowingly complicated, so it could really feel trivial as a product determination. Nonetheless, choosing the proper temperature can dramatically change the character of your outputs, and anybody constructing a production-quality LLM utility ought to select temperature values with intention.
On this publish, we’ll discover what temperature is and the mathematics behind it, potential product implications, and the way to decide on the precise temperature on your LLM utility and consider it. On the finish, I hope that you just’ll have a transparent plan of action to seek out the precise temperature for each LLM use case.
What’s temperature?
Temperature is a quantity that controls the randomness of an LLM’s outputs. Most APIs restrict the worth to be from 0 to 1 or some related vary to maintain the outputs in semantically coherent bounds.
From OpenAI’s documentation:
“Larger values like 0.8 will make the output extra random, whereas decrease values like 0.2 will make it extra targeted and deterministic.”
Intuitively, it’s like a dial that may alter how “explorative” or “conservative” the mannequin is when it spits out a solution.
What do these temperature values imply?
Personally, I discover the mathematics behind the temperature area very fascinating, so I’ll dive into it. However in case you’re already accustomed to the innards of LLMs otherwise you’re not concerned with them, be at liberty to skip this part.
You in all probability know that an LLM generates textual content by predicting the following token after a given sequence of tokens. In its prediction course of, it assigns chances to all doable tokens that would come subsequent. For instance, if the sequence handed to the LLM is “The giraffe ran over to the…”, it would assign excessive chances to phrases like “tree” or “fence” and decrease chances to phrases like “condo” or “e book”.
However let’s again up a bit. How do these chances come to be?
These chances often come from uncooked scores, often known as logits, which are the outcomes of many, many neural community calculations and different Machine Studying strategies. These logits are gold; they include all the dear details about what tokens might be chosen subsequent. However the issue with these logits is that they don’t match the definition of a chance: they are often any quantity, optimistic or destructive, like 2, or -3.65, or 20. They’re not essentially between 0 and 1, and so they don’t essentially all add as much as 1 like a pleasant chance distribution.
So, to make these logits usable, we have to use a perform to rework them right into a clear chance distribution. The perform sometimes used right here is known as the softmax, and it’s primarily a sublime equation that does two necessary issues:
- It turns all of the logits into optimistic numbers.
- It scales the logits in order that they add as much as 1.

The softmax perform works by taking every logit, elevating e (round 2.718) to the facility of that logit, after which dividing by the sum of all these exponentials. So the best logit will nonetheless get the best numerator, which implies it will get the best chance. However different tokens, even with destructive logit values, will nonetheless get an opportunity.
Now right here’s the place Temperature is available in: temperature modifies the logits earlier than making use of softmax. The components for softmax with temperature is:

When the temperature is low, dividing the logits by T makes the values bigger/extra unfold out. Then the exponentiation would make the best worth a lot bigger than the others, making the chance distribution extra uneven. The mannequin would have a better likelihood of selecting probably the most possible token, leading to a extra deterministic output.
When the temperature is excessive, dividing the logits by T makes all of the values smaller/nearer collectively, spreading out the chance distribution extra evenly. This implies the mannequin is extra prone to decide much less possible tokens, growing randomness.
How to decide on temperature
In fact, one of the simplest ways to decide on a temperature is to mess around with it. I imagine any temperature, like several immediate, must be substantiated with instance runs and evaluated in opposition to different prospects. We’ll talk about that within the subsequent part.
However earlier than we dive into that, I need to spotlight that temperature is a vital product determination, one that may considerably affect person conduct. It might appear relatively simple to decide on: decrease for extra accuracy-based functions, increased for extra artistic functions. However there are tradeoffs in each instructions with downstream penalties for person belief and utilization patterns. Listed here are some subtleties that come to thoughts:
- Low temperatures could make the product really feel authoritative. Extra deterministic outputs can create the phantasm of experience and foster person belief. Nevertheless, this will additionally result in gullible customers. If responses are all the time assured, customers may cease critically evaluating the AI’s outputs and simply blindly belief them, even when they’re mistaken.
- Low temperatures can cut back determination fatigue. In the event you see one sturdy reply as an alternative of many choices, you’re extra prone to take motion with out overthinking. This may result in simpler onboarding or decrease cognitive load whereas utilizing the product. Inversely, excessive temperatures might create extra determination fatigue and result in churn.
- Excessive temperatures can encourage person engagement. The unpredictability of excessive temperatures can maintain customers curious (like variable rewards), resulting in longer classes or elevated interactions. Inversely, low temperatures may create stagnant person experiences that bore customers.
- Temperature can have an effect on the way in which customers refine their prompts. When solutions are sudden with excessive temperatures, customers is perhaps pushed to make clear their prompts. However with low temperatures, customers could also be compelled to add extra element or broaden on their prompts as a way to get new solutions.
These are broad generalizations, and naturally there are numerous extra nuances with each particular utility. However in most functions, the temperature is usually a highly effective variable to regulate in A/B testing, one thing to think about alongside your prompts.
Evaluating completely different temperatures
As builders, we’re used to unit testing: defining a set of inputs, operating these inputs via a perform, and getting a set of anticipated outputs. We sleep soundly at evening once we make sure that our code is doing what we anticipate it to do and that our logic is satisfying some clear-cut constraints.
The promptfoo bundle enables you to carry out the LLM-prompt equal of unit testing, however there’s some further nuance. As a result of LLM outputs are non-deterministic and infrequently designed to do extra artistic duties than strictly logical ones, it may be exhausting to outline what an “anticipated output” seems like.
Defining your “anticipated output”
The only analysis tactic is to have a human price how good they suppose some output is, in line with some rubric. For outputs the place you’re searching for a sure “vibe” you could’t specific in phrases, this can in all probability be the simplest technique.
One other easy analysis tactic is to make use of deterministic metrics — these are issues like “does the output include a sure string?” or “is the output legitimate json?” or “does the output fulfill this javascript expression?”. In case your anticipated output could be expressed in these methods, promptfoo has your again.
A extra fascinating, AI-age analysis tactic is to make use of LLM-graded checks. These primarily use LLMs to judge your LLM-generated outputs, and could be fairly efficient if used correctly. Promptfoo presents these model-graded metrics in a number of varieties. The entire checklist is right here, and it accommodates assertions from “is the output related to the unique question?” to “examine the completely different take a look at circumstances and inform me which one is finest!” to “the place does this output rank on this rubric I outlined?”.
Instance
Let’s say I’m making a consumer-facing utility that comes up with artistic present concepts and I need to empirically decide what temperature I ought to use with my primary immediate.
I would need to consider metrics like relevance, originality, and feasibility inside a sure price range and ensure that I’m selecting the correct temperature to optimize these components. If I’m evaluating GPT 4o-mini’s efficiency with temperatures of 0 vs. 1, my take a look at file may begin like this:
suppliers:
- id: openai:gpt-4o-mini
label: openai-gpt-4o-mini-lowtemp
config:
temperature: 0
- id: openai:gpt-4o-mini
label: openai-gpt-4o-mini-hightemp
config:
temperature: 1
prompts:
- "Provide you with a one-sentence artistic present thought for an individual who's {{persona}}. It ought to price beneath {{price range}}."assessments:
- description: "Mary - attainable, beneath price range, unique"
vars:
persona: "a 40 yr previous lady who loves pure wine and performs pickleball"
price range: "$100"
assert:
- kind: g-eval
worth:
- "Test if the present is well attainable and cheap"
- "Test if the present is probably going beneath $100"
- "Test if the present can be thought-about unique by the typical American grownup"
- description: "Sean - reply relevance"
vars:
persona: "a 25 yr previous man who rock climbs, goes to raves, and lives in Hayes Valley"
price range: "$50"
assert:
- kind: answer-relevance
threshold: 0.7
I’ll in all probability need to run the take a look at circumstances repeatedly to check the consequences of temperature modifications throughout a number of same-input runs. In that case, I’d use the repeat param like:
promptfoo eval --repeat 3

Conclusion
Temperature is an easy numerical parameter, however don’t be deceived by its simplicity: it may possibly have far-reaching implications for any LLM utility.
Tuning it excellent is essential to getting the conduct you need — too low, and your mannequin performs it too protected; too excessive, and it begins spouting unpredictable responses. With instruments like promptfoo, you possibly can systematically take a look at completely different settings and discover your Goldilocks zone — not too chilly, not too scorching, however excellent. ️