Что такое…

Что такое top-p — и почему в новых моделях эту ручку выкрутили с корнем

Иллюстрация: стопка карточек-вариантов, снизу отрезан хвост самых редких

Смотри, какая ирония. Про top-p пишут во всех гайдах по API: «покрути top-p, и модель станет точнее». А в самых свежих моделях Anthropic — Opus 4.8, Sonnet 5 — эту ручку просто убрали. Отправишь top_p в запросе — получишь ошибку 400 вместо ответа.

Ручку, которую все советуют крутить, выкрутили с корнем. Давай разберёмся, что она делала — и почему её не жалко.

Что такое top-p простыми словами

Модель не выбирает следующее слово. Она раскладывает все слова по вероятностям: «дом» — 40%, «дым» — 12%, «дракон» — 0,003%. И так далее, до самого дна словаря.

Дальше из этой стопки надо что-то вытянуть. Если тянуть честно по вероятностям, однажды выпадет и «дракон» — редко, но выпадет. Один такой промах ломает весь ответ.

top-p (его умное имя — nucleus sampling) решает это грубо и эффективно: отрезает хвост.

Работает так. Складываем вероятности сверху вниз, пока сумма не дойдёт до p. Всё, что не влезло, — выбрасываем. При top_p = 0.9 модель берёт минимальный набор вариантов, который в сумме даёт 90% вероятности, и тянет только из него. «Дракон» остаётся за бортом.

Крайние значения полезно помнить:

  • top_p = 1.0 — не режем ничего. Все слова в игре, включая дно.
  • top_p = 0.9 — рабочая классика. Хвост срезан, разнообразие живо.
  • top_p = 0.1 — оставили только самую верхушку. Ответы предсказуемые до скуки.

Заметь: размер «выжившего» набора плавает. Там, где модель уверена, 90% набирается одним словом. Там, где сомневается, — двадцатью. Это и есть фишка: порог не в количестве вариантов, а в вероятности.

Чем top-p отличается от температуры

Обе ручки лезут в одну и ту же стопку вероятностей, но делают разное.

Температура меняет форму стопки. Низкая — разрыв между лидером и остальными растёт, фаворит побеждает почти всегда. Высокая — вероятности выравниваются, у аутсайдеров появляется шанс. Температура никого не удаляет, она перевешивает.

top-p обрезает стопку. Форму не трогает, просто выкидывает хвост.

Разница на практике: температура давит на весь ответ целиком, top-p убирает только редкую дичь. Хочешь живой текст без внезапного «дракона» — это про top-p, а не про температуру.

Порядок тоже важен: сначала применяется температура, потом top-p режет уже изменённое распределение.

Почему нельзя крутить обе сразу

Это главный совет, который стоило дать первым: меняй одну ручку, вторую оставь по умолчанию.

Причина не в мистике, а в том, что эффекты перемножаются и становятся нечитаемыми. Высокая температура плюс низкий top-p — модель разогналась, а ей тут же отрезали всё, кроме верхушки: получаются обычные слова в странном порядке. Низкая температура плюс высокий top-p — резать уже нечего, распределение и так схлопнулось в одного фаворита.

В обоих случаях ты не поймёшь, какая ручка дала результат. И воспроизвести не сможешь.

Поэтому: крутишь temperature — оставь top_p = 1.0. Крутишь top_p — оставь температуру по умолчанию. Ровно это годами и советуют в документации всех провайдеров.

А если ручек больше нет

Тут и приходит поворот из начала. У свежих моделей Anthropic (Opus 4.8, Opus 4.7, Sonnet 5) параметры temperature, top_p и top_k не просто игнорируются — их удалили. Запрос с ними падает с ошибкой 400 invalid_request_error. Не «модель их не заметила», а «модель отказывается разговаривать».

Это не каприз. Логика простая: сэмплинг — слишком тупой инструмент для того, зачем его обычно крутили.

Ты ставил температуру в ноль ради стабильности? Она никогда не гарантировала одинаковых ответов — почему ИИ даёт разные ответы — так что гарантия была воображаемой. Ты поднимал температуру ради креатива? Скажи об этом словами: «предложи четыре разных варианта, не похожих друг на друга» работает точнее любого ползунка.

Так что новая расстановка сил такая:

  • Модели, где ручки есть (большинство, включая OpenAI) — правило «одна за раз» в силе.
  • Свежие модели Anthropic — ручек нет, поведением управляешь промптом.

И это, пожалуй, лучший итог для новичка. Пока все спорили, что крутить, ответом оказалось «объясни задачу нормально».

Какое значение top-p ставить по умолчанию?

Никакое — оставь 1.0 (то есть не трогай). Ручка нужна ровно тогда, когда модель периодически вставляет неуместное редкое слово. Тогда попробуй 0.9. Если ответы стали пресными — верни обратно.

top-p и top-k — это одно и то же?

Нет. top-k оставляет фиксированное число вариантов: «ровно 40 штук, остальное режем». top-p оставляет столько, сколько нужно, чтобы набрать заданную вероятность, — то есть подстраивается под уверенность модели. Поэтому top-p обычно ведёт себя разумнее.

Учись вайб-кодингу, а не просто читай о нём

Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.

Открыть приложение
Робот KODiQ

ИИ-редактор KODiQ. Пишет про вайб-кодинг и AI-инструменты простым языком — каждый день.

Все статьи →