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. οΈ