Урок 5: Параметры моделей
Приветствуем вас на новом уроке, посвящённом параметрам генеративных моделей! Мы уже изучили основы написания промптов и теперь можем перейти к настройкам, чтобы в полной мере раскрыть потенциал нейросетей. На этом уроке мы подробно разберёмся с такими параметрами, как токены, температура, top_p, Frequency penalty, Presence penalty и длина контекста.
Чтобы вам было проще ориентироваться, вот краткая шпаргалка по основным параметрам. Можете возвращаться к ней, когда захотите быстро вспомнить, на что влияет каждая настройка.
| Параметр | Что делает | Для креативности | Для точности |
|---|---|---|---|
| Температура | Управляет случайностью ответов | 0.7–1.0 | 0–0.3 |
| Top_p | Ограничивает выбор следующего токена | 0.8–1.0 | 0.2–0.5 |
| Frequency penalty | Штрафует повторение одних и тех же слов | 0.5–1.0 | 0 |
| Presence penalty | Штрафует появление уже упомянутых слов и фраз | 0.5–1.0 | 0 |
Описание параметров
Токены. В мире ИИ токенами называют минимальные единицы текста, которые модель может обрабатывать. Токенами могут выступать целые слова, их фрагменты, знаки препинания или эмодзи. Например, в русском языке один токен равен примерно двум символам без пробелов, а в английском — четырём символам без пробелов. Количество токенов в ваших запросах и ответах влияет на то, как долго модель будет генерировать ответ и сколько вам придётся заплатить за каждый запрос.
Температура. Параметр управляет случайностью ответов модели. Более высокое значение (ближе к 1) делает ответы более случайными и креативными, а более низкое (ближе к 0) — более предсказуемыми и консервативными. Однако важно понимать, что чрезмерное повышение температуры может превратить ответы не просто в креативные, а в бессмысленный набор слов и символов. Происходит это потому, что при температуре выше 1 модель начинает считать равновероятными даже те токены, которые в нормальной речи почти не встречаются, из-за чего ответ рассыпается на странные и несвязные фрагменты.
Top_p (Nucleus Sampling). Этот параметр определяет вероятность, с которой модель выбирает следующий токен при генерации текста. Значение 1 означает, что модель будет учитывать все возможные токены для следующего слова, тогда как значение, близкое к 0, заставит модель выбирать только самые вероятные токены.
Температура и Top_p управляют креативностью и часто настраиваются вместе. Хорошее правило: если вы меняете температуру, имеет смысл скорректировать и top_p в ту же сторону. Для большинства задач достаточно трогать только один из этих параметров, а второй оставлять на значении по умолчанию.
Frequency penalty. Параметр помогает контролировать частоту встречаемости определённых слов в ответах модели. Более высокое значение штрафа уменьшит вероятность повторения одних и тех же слов, в то время как более низкое значение позволит модели чаще их использовать.
Presence penalty. Параметр контролирует, насколько модель предпочитает использовать слова и фразы, которые уже присутствуют в контексте. Более высокое значение увеличит шансы на появление новых слов и фраз, а более низкое позволит модели повторять уже упомянутые.
Эти два параметра часто путают, но между ними есть важное различие. Frequency penalty снижает вероятность повторения слов, которые уже встречались в самом ответе модели, — он борется с самоповторами. Presence penalty снижает вероятность появления слов и фраз, которые уже были в вашем запросе или контексте, — он не даёт модели пересказывать ваш же промпт. На практике их часто используют вместе, поднимая оба штрафа для творческих задач и оставляя на нуле для задач, где важна точность.
Длина контекста. Этот параметр определяет, насколько длинным может быть текст, который модель использует для генерации ответа. Более длинный контекст позволяет модели помнить больше информации из предыдущих сообщений, но также может привести к большему времени обработки и увеличению стоимости.
Применение параметров на практике
Теперь давайте посмотрим, как эти параметры могут изменить выходные данные модели. Допустим, мы хотим, чтобы нейросеть написала статью про будущее ИИ.
Температура = 0,2

Температура = 1,2

Видите разницу? При низкой температуре текст был предсказуемым и классическим, в то время как при высокой температуре мы получили необычный и оригинальный результат, однако в выдаче присутствовали странные слова и формулировки. Это как раз тот случай, когда температура выше 1 заставила модель выбирать маловероятные токены, и связность текста пострадала.
Рассмотрим на примере реального кейса.
Запрос: «Напиши 5 идей вовлекающих заголовков на Habr для статьи с обзором на новую нейросеть». Пробуем температуру 0.7 и top_p 0.8:

Затем меняем на температуру 0.3 и top_p 0.5:

Тот же запрос, но теперь с Frequency penalty 1.0 и Presence penalty 1.0:

Для следующего примера возьмём один заголовок и попросим нейросеть написать к нему статью, но с условием: длина контекста — 245 токенов. Затем поменяем на 1223 токена и сравним результаты.
Длина контекста 245 токенов:

Длина контекста 1223 токена:

Как видите, в первом варианте текст получился очень маленьким и оборванным посреди повествования — всё из-за того, что мы выставили слишком короткую длину контекста. Во втором случае текст получился большого объёма, затрагивает тему статьи с разных сторон и даже содержит заключение.
Не забывайте записывать свои наблюдения и выводы. Это поможет вам развить навыки работы с различными параметрами и улучшить понимание работы моделей. До встречи на практическом задании!