Temperature (LLM) (BG)
Температура (англ. Temperature) в контекста на големите езикови модели (LLM) — това е хиперпараметър, който контролира нивото на случайност и „креативност" при генерирането на текст. Той регулира „остротата" или, обратно, „изглаждането" на вероятностното разпределение на следващия token на всяка стъпка от декодирането. Чрез манипулиране на температурата може да се управлява балансът между предсказуемост (кохерентност) и разнообразие (креативност) на генерирания текст.
Просто обяснение
Температурата е параметър, който определя, колко предпазливо или, обратно, свободно моделът избира следващата дума. Голям езиков модел почти никога няма само едно възможно продължение: обикновено на всяка стъпка има няколко подходящи варианта, всеки с различна вероятност. Температурата влияе не върху самите знания на модела и не върху „това, което той знае", а върху начина, по който той избира между тези варианти при генерирането.
При ниска температура моделът се държи по-консервативно. Той „се доверява" повече на най-вероятните думи и по-рядко се отклонява от най-очакваното продължение. В резултат текстът обикновено е по-равен, предсказуем, формално правилен и последователен. Този режим е полезен там, където са важни точността на формулировките, стабилността на отговора, повторяемостта на резултата и минимизирането на излишна вариативност. Но този подход има и обратна страна: текстът може да стане прекалено шаблонен, сух, еднообразен и понякога излишно „предпазлив". При прекалено ниска температура моделът може дори да започне безкрайно да повтаря едни и същи конструкции (да попадне в цикъл), „заседавайки" на най-вероятните, но не винаги уместни продължения.
При висока температура моделът се държи по-смело. Той по-често допуска избор не само на най-вероятните, но и на по-малко очевидни думи. Благодарение на това отговорите стават по-разнообразни, живи, нестандартни и понякога по-оригинални. Това може да бъде полезно при творчески задачи, при мозъчна атака, генериране на идеи, художествени текстове или търсене на няколко различни формулировки. Но заедно с ръста на разнообразието нараства и рискът: текстът може да стане по-малко свързан, по-малко точен, а в крайни случаи — странен, нелогичен или случаен.
Удобна интуиция е, че температурата е не регулатор на знанията, а регулатор на риска при избора на думи. Ниската температура кара модела почти винаги да избира „най-безопасния" вариант. Високата — му позволява по-често да „рискува" и да пробва по-малко очевидни продължения.
Още един полезен образ: температурата може да се сравни с начина, по който човек отговаря на въпрос. Ако се изисква официален, точен и внимателен отговор, човекът като правило избира най-неутралните и очаквани формулировки — това прилича на ниска температура. Ако пък задачата се състои в измисляне на необичайна идея, метафора, сюжетен обрат или няколко нестандартни варианта, формулировките стават по-свободни и смели — това прилича на висока температура.
По този начин температурата отговаря за баланса между две свойства на генерирането:
- предсказуемост и устойчивост на отговора;
- разнообразие и неочакваност на формулировките.
Колкото по-ниска е температурата, толкова по-близо е моделът до най-вероятното и стандартното продължение. Колкото по-висока е температурата, толкова по-голямо е пространството за вариативност, но толкова по-слаб е контролът върху строгостта и свързаността на резултата.
Теоретично определение
Математически, температурата () се въвежда като делител във функцията softmax, която преобразува изходните логити на модела () в разпределение на вероятностите (). Формулата изглежда по следния начин:
Където:
- — крайната вероятност на -ия token при температура .
- — логит (ненормализирана оценка) за -ия token, издаден от модела.
- — параметърът температура (строго положително число). Например, в API на OpenAI за повечето модели допустимият диапазон е от 0 до 2.0, където 0 е специален случай на greedy decoding (вж. по-долу). В други библиотеки (Hugging Face Transformers, llama.cpp) температурата може да приема произволна положителна стойност.
Важно: температурата влияе върху извода само в режими със sampling. В режими без sampling (greedy decoding, класически beam search) параметърът температура не оказва ефект. Например, в Hugging Face Transformers за работата на температурата е необходимо да се включи do_sample=True.
Влияние на стойността на температурата
- (стандартна стойност): Разпределението на вероятностите остава без промяна. Това е стандартният softmax, който отразява изходните предсказания на модела.
- (ниска температура, например – ): Разпределението става по-остро или пиково. Вероятностите на най-вероятните token-и нарастват, а на малко вероятните — намаляват. Това прави генерирането по-детерминирано и предсказуемо. Моделът по-често избира очевидни, високочестотни думи, което повишава кохерентността и граматическата правилност на текста, но намалява разнообразието му.
- (висока температура, например – ): Разпределението става по-гладко или равномерно. Разликата между вероятностите на token-ите се изглажда, което увеличава шанса за избор на по-малко вероятни (и по-„неочаквани") token-и. Това прави текста по-креативен, разнообразен и непредсказуем, но повишава риска от генериране на несвързани или граматически неверни изречения.
Гранични случаи
- : В граничния случай, когато температурата се стреми към нула, функцията softmax се превръща в argmax. Моделът винаги ще избира token-а с най-висок логит. Този режим е еквивалентен на жадно декодиране (greedy decoding) и е напълно детерминиран. Той често води до повтарящ се и шаблонен текст. Забележка: стойността не може да се замести директно във формулата (деление на нула); в много реализации тя се обработва като специален режим на максимално консервативен избор, близък до greedy decoding. При това не всички hosted API гарантират пълна детерминираност при — например в Anthropic API дори при нулева температура резултатите могат незначително да варират.
- : Когато температурата се стреми към безкрайност, разпределението на вероятностите става равномерно. Всички token-и в речника стават равновероятни и моделът генерира случаен „поток на съзнанието", напълно губейки кохерентност. На практика безкрайността не е необходима: дори при разпределението става почти равномерно и текстът се превръща в несвързана поредица от token-и.
Практическо приложение и препоръки
Правилният избор на температура е от критично значение и зависи от конкретната задача. Диапазоните, посочени по-долу, са груби евристики — оптималните стойности могат съществено да се различават в зависимост от конкретния модел, домейн и задача.
- За творчески задачи (писане на разкази, стихове, маркетингови слогани):
- Препоръчва се по-висока температура ().
- Това стимулира модела да генерира по-неочаквани и креативни идеи, да използва разнообразна лексика и да избягва шаблонни фрази.
- За задачи, изискващи точност и фактологичност (отговори на въпроси, суммаризация, генериране на код):
- Препоръчва се ниска температура ().
- Това намалява вариативността и повишава възпроизводимостта на резултата, карайки модела да се придържа към най-вероятните продължения на текста. При генерирането става детерминирано (при фиксиран seed и отсъствие на други източници на случайност), което е полезно за тестване и отстраняване на грешки, но може да маскира проблеми, проявяващи се само при sampling. Въпреки това ниската температура сама по себе си не гарантира фактическа точност — ако моделът не разполага с необходимото знание, той може уверено да генерира грешен отговор. За максимална фактологичност се препоръчва комбинирането на ниска температура с методи за търсене в база от знания (RAG) и подобрен prompting. В документацията на OpenAI за задачи по извличане на данни и фактологични отговори се препоръчва .
- За задачи по reasoning, математика и генериране на код:
- Като правило се използват по-ниски температури, но оптималната стойност забележимо зависи от конкретния модел и задача.
- Забележка: в някои reasoning модели (например семейството OpenAI o1/o3) параметрите на sampling могат да бъдат ограничени или фиксирани от страна на доставчика. Вътрешният chain-of-thought изисква стабилно разпределение, поради което доставчиците могат напълно да блокират промяната на температурата или да приемат потребителски стойности само в тесен диапазон.
- За диалогови системи и чат-ботове:
- Препоръчва се умерена температура ().
- Това позволява намирането на баланс: отговорите остават свързани и по темата, но при това не стават прекалено сухи и еднообразни.
Забележка: в документацията на OpenAI API се препоръчва да се променя или temperature, или top_p, но не двата параметъра едновременно — в противен случай поведението става трудно предсказуемо. В примерите в документацията на OpenAI API като стойност по подразбиране обикновено фигурира .
Сравнение с Top-k и Top-p
Температурата, за разлика от методите за отрязване като Top-k и Top-p (nucleus sampling), работи по различен начин:
- Температурата преразпределя вероятностите между всички token-и в речника, но не изключва нито един от тях. Дори при много ниска температура малко вероятните token-и имат минимален, но ненулев шанс да бъдат избрани.
- Top-k и Top-p въвеждат твърдо изключване, напълно елиминирайки token-ите, които не са попаднали в ядрото на извадката. Такова изключване намалява риска от избор на опашкови token-и, но само по себе си е груба евристика и може да отхвърля правдоподобни продължения с ненулева „истинска" вероятност.
На практика тези параметри често се използват съвместно. Например, може да се зададе умерена температура (например ) за общата стилистика и да се добави Top-p (например ), за да се отреже „опашката" на разпределението и да се намали рискът от груби грешки. При много ниска температура () Top-p фактически губи смисъл, тъй като разпределението и без това има само един значим пик.
Взаимодействие на температурата с други параметри на декодиране
Температурата почти никога не се използва изолирано. На практика тя се комбинира с други хиперпараметри за фина настройка на баланса „креативност ↔ надеждност".
Типичен ред на прилагане на параметрите
В разпространените sampling реализации (по-конкретно Hugging Face Transformers) параметрите обикновено се прилагат в следния ред:
- Моделът издава сурови логити ().
- Прилагат се наказания за повторения (repetition / frequency / presence penalty) — промяна на логитите въз основа на вече генерираните token-и.
- Температурата мащабира логитите: .
- Прилага се softmax → получава се ново разпределение на вероятностите.
- Отрязване (truncation): първо Top-k (ако е зададен), след това Top-p или Min-p.
- От останалото „ядро" се извършва случайна извадка (sampling).
В тази типична схема температурата променя формата на разпределението след прилагането на наказанията за повторения, но преди softmax и филтрирането. Затова едно и също при и при дава напълно различен размер на „ядрото". Наказанията и температурата взаимодействат нелинейно — това е важно да се има предвид при подбора на параметри. Вътрешният ред на прилагане в hosted API (OpenAI, Anthropic) не е публично документиран на такова ниво на детайлност.
Top-p (nucleus sampling) и Min-p
Min-p (minimum probability sampling) — сравнително нов метод за отрязване, задаващ долен праг на вероятността спрямо най-вероятния token (обикновено 0.05–0.1). За разлика от Top-p, той изключва token-ите по относителен праг (свързан с вероятността на най-добрия token, а не с фиксирана кумулативна маса), което е особено ефективно при висока температура (>0.8): предотвратява избора на съвсем неподходящи token-и без значителна загуба на разнообразие. Min-p се поддържа от редица популярни open-source inference стекове, включително vLLM и llama.cpp.
Repetition / Frequency / Presence penalty
Frequency_penalty и presence_penalty (OpenAI API) намаляват вероятността за повторение на вече срещани token-и. Те могат да компенсират един от недостатъците на ниската температура — склонността към шаблонност и зацикляне.
Typical sampling и Mirostat
Typical sampling (Meister et al., 2023) избира token-и, чиято вероятност е близка до „очакваната" ентропия на контекста. Mirostat (v2) динамично настройва параметрите за отрязване, така че целевата perplexity да остава постоянна — това е полезно за дълги текстове, където стабилността на стила е критична.
Илюстративни примери за настройка
По-долу са дадени примерни конфигурации за различни типове задачи. Тези стойности не са препоръки с общо предназначение — оптималните параметри зависят от конкретния модел, задача и inference стек.
| Задача | Температура | Възможна комбинация | Логика |
|---|---|---|---|
| Factual Q&A, суммаризация | 0.0–0.3 | T + top_p=0.9 | Минимизиране на случайната вариативност |
| Генериране на код, математика | 0.1–0.4 | T + repetition_penalty | Стабилност + избягване на зацикляне |
| Диалози / чат-ботове | 0.6–0.85 | T + top_p=0.92 или min_p=0.1 | Баланс между естественост и свързаност |
| Творчество (разкази, маркетинг) | 0.75–1.1 | T + min_p=0.07–0.1 | Разнообразие с филтриране на опашката |
| Long-form / агенти | 0.5–0.8 | Mirostat или T + frequency_penalty | Контрол на дължината и свързаността |
Общ съвет: не е препоръчително едновременно да се променят значително temperature и top_p. По правило е по-удобно да се фиксира един от truncation параметрите и да се управлява креативността чрез температурата — това прави поведението на модела по-предсказуемо.
Особеност на съвременните aligned модели: в силно изравнените модели (преминали RLHF / Constitutional AI / RLAIF) ефектът на високата температура е отслабен в сравнение с базовите модели — моделът по-рядко генерира несвързан текст дори при . Конкретните оптимални стойности могат да се променят с излизането на нови поколения модели; горепосочените препоръки са актуални към 2025–2026 година.
Литература
- Holtzman, A. et al. (2020). The Curious Case of Neural Text Degeneration. arXiv:1904.09751.
- Caccia, M. et al. (2018). Language GANs Falling Short. arXiv:1811.02549.
- Fan, A. et al. (2018). Hierarchical Neural Story Generation. arXiv:1805.04833.
- Meister, C. et al. (2023). Locally Typical Sampling. arXiv:2202.00666.
- Hewitt, J.; Manning, C.; Liang, P. (2022). Truncation Sampling as Language Model Desmoothing. arXiv:2210.15191.
- Su, Y.; Collier, N. (2022). Contrastive Search Is What You Need for Neural Text Generation. arXiv:2210.14140.
- O'Brien, S.; Lewis, M. (2023). Contrastive Decoding Improves Reasoning in Large Language Models. arXiv:2309.09117.
- Finlayson, M. et al. (2023). Closing the Curious Case of Neural Text Degeneration. arXiv:2310.01693.
- Shi, C. et al. (2024). A Thorough Examination of Decoding Methods in the Era of Large Language Models. arXiv:2402.06925.
- Ravfogel, S. et al. (2023). Conformal Nucleus Sampling. arXiv:2305.02633.
- Sen, J. et al. (2025). Advancing Decoding Strategies: Enhancements in Locally Typical Sampling for LLMs. arXiv:2506.05387.
- Basu, S. et al. (2021). Mirostat: A Perplexity-Controlled Neural Text Decoding Algorithm. arXiv:2007.14966.
- Nguyen, M. N. et al. (2025). Turning Up the Heat: Min-p Sampling for Diverse and High-Quality Text Generation. arXiv:2407.01082.
- Renze, M.; Guven, E. (2024). The Effect of Sampling Temperature on Problem Solving in Large Language Models. arXiv:2402.05201.
- Zhang, S. et al. (2024). EDT: Improving Large Language Models' Generation by Entropy-based Dynamic Temperature Sampling. arXiv:2403.14541.
- Li, L. et al. (2025). Exploring the Impact of Temperature on Large Language Models: Hot or Cold?. arXiv:2506.07295.
Вижте също
- Големи езикови модели