Параметры генерации нейросети
Параметры генерации нейросети (Параметры генерации LLM/ИИ) — набор управляющих переменных, которые определяют поведение генеративных моделей искусственного интеллекта в процессе создания текста. Они позволяют сбалансировать оригинальность и предсказуемость результатов, и позволяют пользователям тонко настраивать выходные данные для каждой задачи.
Температура[править]
Температура контролирует степень случайности в выборе токенов. Этот параметр напрямую влияет на распределение вероятностей, применяя масштабирование к логитам перед применением функции softmax.
Математически температура применяется так, что вероятность выбора токена i вычисляется как exp(zi/T) / Σj exp(zj/T), где zi представляет логит для токена i, а T обозначает значение температуры. При температуре равной единице распределение остается неизменным. Значения ниже единицы делают распределение более острым, увеличивая вероятность выбора наиболее вероятных токенов и делая выход более детерминированным. Напротив, значения выше единицы сглаживают распределение, повышая вероятность менее вероятных токенов и увеличивая необычность контента.
На практике температура около 0.7-0.9 используется для создания адекватного текста. Очень низкие значения, близкие к нулю, приводят к почти детерминированному выводу, где модель почти всегда выбирает наиболее вероятный токен. Это может быть полезно для задач, требующих высокой точности и последовательности, но выйдет слишком хреново. Высокие значения температуры, превышающие 1.5, могут генерировать более разнообразный текст, но в нём с очень высокой вероятностью начнёт появляться различная хрень.
Top-P[править]
Метод выборки, который динамически определяет размер множества кандидатов на основе общего распределения вероятностей. Вместо выбора фиксированного количества наиболее вероятных токенов, этот метод выбирает минимальное множество токенов, чья суммарная вероятность достигает заданного порогового значения p.
Токены сортируются по убыванию вероятности, затем вычисляется кумулятивная сумма до тех пор, пока она не достигнет значения p. Только токены в этом ядре рассматриваются для выборки, после чего их вероятности нормализуются и один токен выбирается случайным образом из этого ограниченного множества.
Значение параметра p обычно находится в диапазоне от 0.9 до 0.95 для большинства задач. При p=1.0 метод становится обычной выборкой по температуре, рассматриваются все возможные токены. Меньшие значения p делают выборку более ограниченной, вариантом становится меньше. В контекстах с высокой неопределенностью рассматривается больше токенов, в более предсказуемых ситуациях множество кандидатов автоматически сужается.
Top-K[править]
Этот метод ограничивает выборку k наиболее вероятными токенами на каждом шаге генерации. После того как модель вычисляет распределение вероятностей для всех токенов в словаре, выбираются только k токенов с наибольшими вероятностями. Вероятности этих токенов затем перенормализуются, и выборка производится из этого ограниченного распределения.
Этот метод предлагает более прямолинейный способ контроля по сравнению с прошлым. Типичные значения k варьируются от 10 до 100, в зависимости от желаемого уровня оригинальности. Низкие значения k создают более предсказуемый текст, поскольку выбор ограничен небольшим множеством наиболее вероятных продолжений. Высокие значения k, генерируют необычный текст, но при этом все еще исключают маловероятные токены, которые могут испортить весь вывод.
Основное различие между этими методами заключается в их адаптивности. Top-L использует фиксированное количество токенов независимо от распределения вероятностей, тогда как Top-P меняет размер множества токенов в зависимости от формы распределения. Поэтому Top-K может быть слишком ограничивающим в запросах с высокой неопределенностью или слишком либеральным в определённых запросах.
Частотные штрафы[править]
Частотные штрафы и штрафы присутствия нацелены на снижение повторяемости в генерируемом тексте путем модификации вероятностей токенов на основе их предыдущего появления в сгенерированной последовательности.
Частотный штраф пропорционален количеству раз, когда токен уже появлялся в генерируемом тексте. Каждый раз, когда рассматривается токен для следующей позиции, его логит уменьшается на величину, пропорциональную числу его предыдущих появлений, умноженному на коэффициент частотного штрафа. Токены, которые уже использовались многократно, становятся все менее вероятными с каждым последующим появлением. Математически это выражается как модификация логита: z’i = zi — α * count(i), где α представляет коэффициент частотного штрафа, а count(i) обозначает количество появлений токена i в ранее сгенерированном тексте.
Присутственный штраф, напротив, применяет фиксированное снижение к логиту любого токена, который уже появлялся хотя бы один раз, независимо от количества появлений. Это можно выразить как z’i = zi — β, если токен i уже встречался, где β представляет коэффициент присутственного штрафа. Этот механизм заставляет модель генерировать новые токены, даже если токен появился только однажды.
Оба типа штрафов обычно принимают значения от 0 до 2, где 0 означает отсутствие штрафа. Умеренные значения около 0.3-0.6 часто эффективны для уменьшения повторений, но не вредят при этом сильно тексту. Высокие значения могут привести к тексту, в котором будут использоваться странные синонимы, он будет выглядеть неестественно.
Максимальная длина и условия остановки[править]
Параметры, контролирующие длину генерации, определяют, когда модель должна прекратить производство токенов. Максимальная длина (max_tokens или max_length) устанавливает жесткий предел на количество токенов, которые могут быть сгенерированы. Таким образом ИИ не начинает генерировать тексты бесконечно.
Условия остановки — специфические последовательности токенов, при обнаружении которых генерация автоматически прекращается. К ним относятся специальные маркеры конца последовательности, такие как токен <EOS>, или пользовательские строки, указывающие на завершение определенного типа контента. Например, при генерации диалога модель может быть настроена на остановку при обнаружении определенного шаблона, обозначающего конец реплики персонажа.
Некоторые системы также поддерживают более сложные условия остановки на основе семантики. Генерация может останавливаться при достижении логического завершения предложения или абзаца, а не на произвольной границе токенов. Это требует дополнительного анализа сгенерированного контента, но и результат выходит лучше.
Штраф повторений[править]
Штраф повторений — более общий механизм снижения повторяемости, который применяется независимо от конкретного типа повторения. В отличие от частотных и присутственных штрафов, которые обычно применяются к отдельным токенам, штраф повторений может учитывать более широкий контекст и различные формы повторений.
Этот параметр модифицирует логиты токенов, которые уже появлялись в контексте, применяя мультипликативный или аддитивный штраф. Типичная реализация использует мультипликативный подход: если токен уже встречался, его логит делится на значение штрафа, если это значение больше единицы. Это эффективно снижает вероятность выбора повторяющихся токенов.
Значения штрафа повторений обычно находятся в диапазоне от 1.0 до 1.5, где 1.0 означает отсутствие штрафа. Умеренные значения около 1.1-1.2 часто достаточны для уменьшения заметных повторений без существенного влияния на качество текста. Более высокие значения могут быть полезны в задачах, где разнообразие критически важно, таких как генерация креативного контента или брейнсторминг.
Min-P[править]
Относительно новый метод выборки, который устанавливает минимальный порог вероятности относительно наиболее вероятного токена. Вместо использования абсолютного порога вероятности или фиксированного количества токенов, Min-P фильтрует токены на основе их вероятности по отношению к максимальной вероятности в распределении.
Конкретно, токен включается в множество кандидатов только если его вероятность составляет по крайней мере p * max_prob, где max_prob представляет вероятность наиболее вероятного токена, а p является параметром Min-P. Этот подход позволяет адаптивную фильтрацию, которая становится более строгой, когда распределение концентрировано (то есть когда модель уверена), и более либеральной, когда распределение диффузное (когда модель неуверенна).
Типичные значения Min-P находятся в диапазоне от 0.05 до 0.2. Этот метод предлагает преимущества, аналогичные выборке по ядру, но с более интуитивной интерпретацией, он автоматически адаптирует размер множества кандидатов к степени уверенности модели, обеспечивая при этом, что все рассматриваемые токены имеют разумную вероятность относительно лучшего варианта.
Логитные искажения и маски[править]
Логитные искажения и маски позволяют прямо управлять распределением вероятностей перед выборкой. Логитные искажения позволяют добавлять фиксированные смещения к логитам конкретных токенов, эффективно увеличивая или уменьшая их вероятность быть выбранными.
Положительное искажение увеличивает логит токена, делая его более вероятным, в то время как отрицательное искажение снижает его вероятность. Это может быть использовано для направления модели к использованию или избеганию определенных слов или фраз. Например, в приложениях, требующих формального языка, можно применить положительные искажения к токенам формальной лексики и отрицательные к сленгу или разговорным выражениям.
Маски токенов представляют собой более мощную форму контроля, полностью запрещая определенные токены, устанавливая их вероятность в ноль. Это гарантирует, что определенные слова или последовательности никогда не будут сгенерированы, что обычно применяется для цензуры. Маски могут быть статическими, применяясь ко всей генерации, или динамическими в зависимости от контекста.
Контекстное окно[править]
Размер контекстного окна определяет, сколько предыдущих токенов модель может учитывать при генерации следующего токена. Современные трансформерные модели имеют фиксированные максимальные длины контекста, которые могут отличаться от нескольких тысяч до сотен тысяч токенов в наиболее продвинутых системах.
Когда входная последовательность или комбинация входа и сгенерированного вывода превышает максимальную длину контекста, необходимо применять стратегии усечения. Различные подходы включают усечение с начала последовательности, сохраняя наиболее недавний контекст, усечение с конца, сохраняя начальный контекст, или более сложные методы, которое поддерживает некоторую часть как начального, так и недавнего контекста.
Выбор стратегии усечения может значительно влиять на качество генерации. Для задач, требующих понимания начальных инструкций или промпта, усечение с начала может быть проблематичным. Для задач, где недавний контекст наиболее релевантен, усечение старого контекста более подходяще. Некоторые продвинутые системы используют механизмы внимания или суммаризацию для сжатия старого контекста вместо простого усечения, тем самым важная информация сохраняется, а малополезная отправляется в попу, прямо как в человеческой памяти.
Seed[править]
Параметр сееда определяет начальное состояние генератора псевдослучайных чисел, используемого в процессе выборки. Установка конкретного значения сееда делает генерацию воспроизводимой, то бишь, при одинаковых входных данных и параметрах модель будет производить идентичный вывод, евона што.
Воспроизводимость критически важна для исследовательских целей, отладки, тестирования и в ситуациях, где требуется единообразие результатов. Однако в реальных системах часто предпочтительно не фиксировать сеед, чтобы обеспечить возможность генерации разных ответов при повторных запросах с идентичными или похожими данными.
Важно помнить, что полная воспроизводимость может быть сложной для обеспечения в распределенных системах или при использовании различного аппаратного обеспечения из-за различий в вычислениях с плавающей точкой. Кроме того, даже с фиксированным сеед, изменения в весах модели, версиях библиотек или аппаратной конфигурации могут привести к различным результатам.