глоссарий

Nucleus sampling

Nucleus sampling

Nucleus sampling, или ядровая выборка, — это способ, которым современные языковые модели вроде GPT выбирают следующее слово при генерации текста. Вместо того чтобы всегда брать самое вероятное слово, модель случайным образом выбирает из небольшого набора наиболее вероятных вариантов, который называют «ядром». Этот подход решает важную проблему: сделать текст одновременно осмысленным и живым. Если всегда выбирать топ-1, ответы становятся сухими и предсказуемыми, а если учитывать все слова — бессвязными. Метод находит золотую середину.

Как это работает на интуитивном уровне? Представьте, что модель после фразы «Сегодня на обед у нас» видит сто возможных продолжений. Каждому слову она присваивает вероятность: «суп» — 0.3, «каша» — 0.2, «кот» — 0.01 и так далее. Программист задаёт порог, например 0.9. Модель сортирует слова от самых вероятных к редким и складывает их шансы: 0.3 + 0.2 + 0.15 + 0.12 + 0.08 + 0.05 = 0.9. Эти шесть слов образуют ядро. Из них модель случайно выбирает одно, но с учётом весов — «суп» выпадет чаще, чем «йогурт». Слова за пределами ядра, вроде «кот», отбрасываются, чтобы текст не сошёл с ума.

Прикладной пример — чат-бот для рекомендации рецептов. С ядровой выборкой он выдаёт разнообразные, но правдоподобные ответы. На вопрос «Что приготовить из картофеля?» модель может предложить «запеканку», «пюре» или «драники», но не «картофельный коктейль». При этом ответы не повторяют один и тот же шаблон, как было бы с самой вероятной фразой.

Главный вывод: nucleus sampling — это гибкий рубильник между креативностью и адекватностью. Меняя порог ядра, можно сделать модель более консервативной или более изобретательной. Именно поэтому этот метод применяют в большинстве современных генеративных систем — от чатов до редакторов текста. Он позволяет машине говорить естественно, не скатываясь ни в шаблонность, ни в абсурд.