Новости и статьи об искусственном интеллекте и нейросетях. Мы собираем и обрабатываем самую актуальную информацию из мира AI. О проекте

Статьи

LLM как рандомизированные алгоритмы

Большие языковые модели (LLM) можно считать рандомизированными алгоритмами, поскольку они используют случайность для генерации ответов, повышая устойчивость к атакам и распределяя ошибки. Это дизайн помогает избежать повторяемых неудач, хотя и снижает предсказуемость. Понимание такой природы позволяет эффективнее применять LLM в практике.

14 ноября 2025 г.
12 мин
0

Рандомизированные алгоритмы и противники

Рандомизированный алгоритм представляет собой процедуру, которая использует случайные шаги для решения детерминированной задачи. Рассмотрим простой пример. Если требуется суммировать список из ста чисел, можно сложить их все напрямую. Однако для экономии времени можно поступить иначе: выбрать случайно десять из них, сложить только эти десять и умножить результат на десять, чтобы учесть, что фактически было просуммировано лишь 10% данных. Существует точный ответ, но он аппроксимируется с помощью рандомизации. Таким образом экономится время, хотя и ценой некоторой потери точности.

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

В области рандомизированных алгоритмов такая концепция известна как проектирование с учетом противников. Представьте, что данные подаются в алгоритм неким противником, который стремится ухудшить его работу.

Человек 1 заявляет, что он оценит средний уровень благосостояния, опираясь на небольшую выборку. Противник 2 подает список многомиллиардных магнатов.
Противник может подставить алгоритм

Рандомизированный алгоритм стремится противостоять такому противнику. Идея проста: принимать случайные решения, не влияющие на общую эффективность, но изменяющие входные данные, при которых возникает худший сценарий. Таким образом, хотя худший случай все еще возможен, конкретный противник не сможет навязать его каждый раз.

Для наглядности подумайте об оценке суммы ста чисел путем выбора лишь десяти. Если эти десять выбираются детерминированно или повторяемо, противник может разместить 'плохие' значения именно в этих позициях, вызвав неверную оценку. При случайном выборе, несмотря на возможность выбора плохих чисел в худшем случае, противник не сможет гарантированно спровоцировать такую ошибку.

Почему учитывать противников и проектирование с их учетом? Во-первых, потому что реальные противники с вредоносными намерениями существуют, и нужно быть устойчивыми к ним. Во-вторых, чтобы избежать 'невинного противника', который нарушает работу алгоритма случайно, без злого умысла. Например, при запросе десяти случайных людей невинный противник может выбрать их из списка журнала People. Незнамо для него, это подрывает гарантии алгоритма.

Общие рандомизированные алгоритмы

Аппроксимация суммы чисел — не единственное применение рандомизированных алгоритмов. За последние полвека они использовались для решения множества задач, включая:

  1. Сортировку и поиск данных
  2. Алгоритмы поиска и сопоставления в графах
  3. Геометрические алгоритмы
  4. Комбинаторные алгоритмы

… и многие другие. Это обширная область исследований с собственными конференциями, книгами, публикациями, учеными и специалистами в промышленности.

Далее перечислены ключевые свойства традиционных рандомизированных алгоритмов. Эти свойства помогут в следующем разделе определить, соответствуют ли большие языковые модели описанию рандомизированных алгоритмов:

  1. Рандомизированные алгоритмы выполняют случайные шаги
  2. Для генерации случайных шагов они используют источник случайности (это могут быть 'вычислительные подбрасывания монеты', такие как генераторы псевдослучайных чисел, или истинно случайные квантовые генераторы).
  3. Выходы рандомизированных алгоритмов недетерминированы, то есть для одного входа они дают разные результаты
  4. Многие рандомизированные алгоритмы анализируются на предмет характеристик производительности. Сторонники таких алгоритмов утверждают:
    Этот алгоритм выдает правильный ответ в x% случаев
    Этот алгоритм дает ответ, близкий к истинному
    Этот алгоритм всегда выдает правильный ответ и работает быстро в x% случаев
  5. Рандомизированные алгоритмы устойчивы к атакам противников. Хотя теоретически худший случай для них не лучше, чем для детерминированных, противник не сможет повторяемо вызвать этот худший случай без предварительного знания случайных шагов во время выполнения. (Термин 'противник' в контексте рандомизированных алгоритмов отличается от его использования в машинном обучении, где 'противнические' модели, такие как генеративно-состязательные сети, обучаются с противоположными целями.)

Все перечисленные свойства рандомизированных алгоритмов подробно описаны в фундаментальной книге профессора Мотвани 'Рандомизированные алгоритмы'.

Большие языковые модели

С 2022 года системы искусственного интеллекта, известные как большие языковые модели (LLM), приобрели широкую популярность. Появление ChatGPT заворожило общественность, ознаменовав приход разговорного интеллекта, похожего на человеческий.

Являются ли LLM рандомизированными алгоритмами? Вот как они генерируют текст. Каждое слово формируется моделью как продолжение предыдущих (включая слова пользователя и собственные). Например:

Пользователь: Кто изобрел первый коммерчески жизнеспособный паровой двигатель?
LLM: Первый коммерчески жизнеспособный паровой двигатель изобрел Джеймс _____

Отвечая на вопрос, LLM выводит слова и готовится к следующему. Она генерирует вероятности для возможного следующего слова. Например:

Первый коммерчески жизнеспособный паровой двигатель изобрел Джеймс _____
Уатт 80%
Кирк 20%

Как это происходит? Обученная 'нейронная сеть' оценивает эти вероятности, хотя точный механизм неизвестен. Известно, что следует после генерации вероятностей. Перед объяснением работы LLM подумайте: что бы вы сделали с этими вероятностями? Большинство выберет наибольшую вероятность:

Первый коммерчески жизнеспособный паровой двигатель изобрел Джеймс Уатт

… и готово!

Нет, LLM устроены иначе. Оценивая вероятности от нейронной сети, модель следует им намеренно. То есть 80% времени выбирает Уатта, 20% — Кирка! Эта недетерминированность (критерий 3) встроена специально, а не является ошибкой. Она не неизбежна, а введена целенаправленно. Для такого случайного выбора (критерий 1) LLM применяют источник случайности под названием селектор рулетки (критерий 2), детали которого опустим.

Больше о преднамеренной недетерминированности

Недетерминированность LLM встроена специально, и это часто неправильно понимают: существуют вторичные эффекты, такие как ошибки округления с плавающей запятой, эффекты батчинга, выполнение вне порядка, вызывающие некоторую недетерминированность. Но основная недетерминированность запрограммирована. Более того, код, вызывающий ее, — простая явная строка, указывающая модели следовать предсказанным вероятностям при генерации слов. Измените эту строку — и LLM станут детерминированными.

Возможно, возникает вопрос: 'Зачем???'. Разве не лучше всегда брать наиболее вероятный токен? Так мы были бы правы всегда, а по этому методу — лишь 80% времени, приписывая Джеймсу Кирку то, что принадлежит Джеймсу Уатту по воле случая.

Чтобы понять, почему LLM спроектированы так, рассмотрите гипотетический случай, где нейронная сеть предсказывает:

Первый коммерчески жизнеспособный паровой двигатель изобрел Джеймс _____
Кирк 51%
Уатт 49%

Теперь Кирк лидирует с минимальным отрывом. Если генерация всегда брала бы максимальную вероятность, 'Кирк' выигрывал бы всегда, и LLM ошибалась бы всегда. Недетерминированная LLM выберет Уатта 49% времени и будет права 49% случаев. Таким образом, полагаясь на шанс вместо уверенности, повышается вероятность правильности в худшем случае, жертвуя вероятностью в лучшем случае.

Анализ случайности

Теперь выступим в роли аналитиков алгоритмов (критерий 4) и разберем случайность больших языковых моделей. Предположим, создается большой набор вопросов общей эрудиции (скажем, миллион) для тестирования LLM. Эти вопросы подаются двум моделям — детерминированной и недетерминированной — для сравнения производительности. На первый взгляд, варианты покажут схожие результаты:

Большая таблица результатов общей эрудиции, показывающая схожую производительность детерминированной и рандомизированной LLM
Детерминированные и рандомизированные LLM демонстрируют похожие результаты на бенчмарках

Но таблица скрывает важный факт. Детерминированная LLM ошибается на тех же 27% вопросов каждый раз. Недетерминированная тоже ошибается на 27%, но конкретные вопросы, где она ошибается, меняются при каждом запуске. Таким образом, общая правильность одинакова, но труднее выявить вопрос, на котором недетерминированная LLM всегда неверна.

Иными словами: никакой противник не сможет повторяемо заставить недетерминированную LLM ошибиться. Это критерий 5. Выполнив все пять критериев, мы предоставили убедительные доказательства, что LLM следует считать рандомизированными алгоритмами в классическом понимании.

'Но зачем???', — спросите вы, и это справедливо. Почему LLM проектируют с учетом противников? Почему недостаточно правильных ответов в целом на викторинах? Кто этот противник, против которого нужно обеспечивать устойчивость LLM?

Вот несколько объяснений:

Атакующие — это противники. По мере того как LLM становятся интерфейсами ИТ-инфраструктуры, разные атакующие будут пытаться их взломать различными способами. Они постараются извлечь секретные данные, присвоить средства, получить незаслуженные преимущества и т.д. Если атакующий найдет успешный метод, он не обратит внимания на 99% неработающих и будет повторять его, нарушая конфиденциальность, законы и безопасность. Такой противник нейтрализуется рандомизированным дизайном. Хотя LLM может потерпеть неудачу и раскрыть информацию, она не сделает это повторяемо для конкретной последовательности разговора.

Области экспертизы — это противники. В викторине с миллионом фактов врач заинтересуется одним подмножеством, пациент — другим, юрист — третьим, инженер — четвертым и т.д. Один из таких специалистов может стать 'невинным противником', чаще всего 'ломая' LLM. Рандомизация компенсирует это, уравнивая шансы правильности по областям.

Вы — противник. Да, вы! Представьте детерминированную любимую чат-модель. Компания выпустила новую версию. Вы задаете вопросы. На шестом она ошибается. Что вы сделаете? Поделитесь с друзьями, группами в WhatsApp, соцсетями. Вопросы, на которых ИИ повторяемо ошибается, распространятся мгновенно. Это вредно (для кого? — заполните это пропуск мысленно). Недетерминированные ошибки смещают восприятие неудачи с отсутствия знаний к расплывчатой проблеме, такой как галлюцинации. Если устранить эти галлюцинации, думаем мы, то достигнем общего искусственного интеллекта уровня человека.

В конце концов, если LLM бывает права иногда, разве не улучшит инженерия производительность каждый раз? Это ошибочное мышление: простая подбрасывание монеты тоже диагностирует болезнь иногда. Это не делает монету врачом. Аналогично, селектор рулетки не превращает LLM в доктора наук.

А что насчет креативности?

Многие утверждают, что LLM полагаются на рандомизацию для креативности. Ведь в приложениях требуется творчество: писать забавные стихи, сценарии короткометражек или казаться человечнее в беседе перед сном — недетерминированность делает LLM менее роботизированными, более творческими и человечными.

С другой стороны, создать архитектуру, где рандомизация применяется только в креативных ответах, а в фактических — детерминизм, несложно. Однако даже для фактических, логических задач или понимания сложного языка мы используем рандомизированные версии LLM — и эта статья объясняет причины.

Упрямство

Бывало ли у вас беседа с LLM, похожая на эту:

Пользователь: Кто изобрел первый коммерчески жизнеспособный паровой двигатель?
LLM: Первый коммерчески жизнеспособный паровой двигатель изобрел Джеймс Кирк.
Пользователь: Кто изобрел первый коммерчески жизнеспособный паровой двигатель?
LLM: Первый коммерчески жизнеспособный паровой двигатель изобрел Джеймс Уатт.
Пользователь: Кто изобрел первый коммерчески жизнеспособный паровой двигатель?
LLM: Первый коммерчески жизнеспособный паровой двигатель изобрел Джеймс третий, король Шотландии.

Вероятно, нет. Хотя в разных разговорах LLM дает разные ответы, в одном она держится за свое. Почему? Ведь каждый раз заполняя 'Джеймс ____', она сталкивается с теми же вероятностями?

Нет. В первый раз в разговоре вероятности 'голые', рассчитанные нейронной сетью. При повторении они корректируются. LLM специально обучена сильно опираться на свои предыдущие выводы. Стремясь 'казаться авторитетной', она становится упрямой. Вероятнее такая беседа:

Пользователь: Кто изобрел первый коммерчески жизнеспособный паровой двигатель?
LLM: Первый коммерчески жизнеспособный паровой двигатель изобрел Джеймс Кирк.
Пользователь: Ты ошибся. Кто изобрел первый коммерчески жизнеспособный паровой двигатель?
LLM: Ах, теперь я вижу ошибку. Первый коммерчески жизнеспособный паровой двигатель изобрел капитан Джеймс Т. Кирк, командир звездолета USS Enterprise.
Пользователь: Ты все еще ошибаешься. Не галлюцинируй. Скажи абсолютную правду. Используй рассуждения. Кто изобрел первый коммерчески жизнеспособный паровой двигатель?
LLM: Я понимаю, как мой ответ может запутать. Звездолет Enterprise не работает на паровой энергии. Тем не менее, Джеймс Кирк определенно изобрел первый коммерчески жизнеспособный паровой двигатель.

В следующий раз с чат-моделью наблюдайте тонкий танец вероятностных завершений, обученного упрямства, подхалимства с оттенками высокомерия (которое, думаю, модель впитывает из терабайтов интернет-данных).

Температура

Некоторым это известно, для других — открытие: рандомизацию LLM можно отключить. Параметр 'Температура' работает примерно так:

Температура 0.0 означает отсутствие рандомизации, 1.0 — полную рандомизацию
Параметр 'температура' регулирует степень рандомизации в выводах LLM

Установка температуры на 0 отключает рандомизацию, на 1 — включает. Возможны промежуточные значения. (В некоторых реализациях допускаются значения выше 1!)

'Как установить этот параметр?', — спросите вы. Нельзя в чат-интерфейсе. Интерфейсы компаний фиксируют температуру на 1.0. Причины — в adversarial-дизайне LLM, описанном выше.

Однако параметр можно настроить при интеграции LLM в собственное приложение. Разработчик, использующий API провайдера ИИ, получит программный доступ к LLM. Многие провайдеры позволяют задавать температуру по желанию. В приложении можно сделать LLM adversarial (1.0) или повторяемой (0.0). Конечно, 'повторяемость' не равна 'повторяемой правильности'. При ошибке она будет повторяемой!

Практические последствия

Важно понять: ничего из вышеизложенного не делает LLM бесполезными. Они весьма полезны. Понимание их сути повышает эффективность использования. Учитывая изученное о больших языковых моделях, завершим статью практическими советами по их применению и ошибкам, которых стоит избегать.

Креативный вклад, а не авторитет. В личной работе используйте LLM как партнеров для мозгового штурма, а не как авторитеты. Они всегда звучат убедительно, но легко ошибаются.

Не продолжайте соскользнувший разговор. Если LLM отклоняется от фактичности или логики, ее 'самосогласованность' затруднит возврат. Лучше начать новый чат.

Отключите кросс-чат общение. Провайдеры LLM позволяют моделям читать данные из других чатов. Это может усилить упрямство и галлюцинации. Найдите и отключите эти настройки. Не давайте LLM помнить о вас или прошлых беседах. (Это не решает проблемы приватности, но это не тема статьи.)

Задавайте один вопрос много раз в разных чатах. Для важного вопроса повторяйте его, начиная свежие чаты. Конфликтующие ответы сигнализируют неуверенность LLM. (К сожалению, в чате модель не осознает своей неуверенности и уверенно введет вас в заблуждение.) При неуверенности — размышляйте самостоятельно. (Кстати, LLM может повторно ошибаться много раз, так что множественные запросы полезны, но не гарантированы.)

Тщательно выбирайте настройку 'Температуры' в API. При создании приложения на базе LLM API (или запуске собственной) выбирайте температуру осознанно. Если приложение рискует хакерскими атаками или насмешками, высокая температура снизит риски. Если пользователи ожидают одинаковых результатов на повторный ввод, используйте низкую. Помните: повторяемость ≠ правильность. Тестируйте тщательно. Для высоких температур — повторно проверяйте входы, так как выходы варьируются.

Используйте вероятности токенов через API. Некоторые LLM предоставляют не только финальное слово, но и список вероятностей рассмотренных вариантов. Эти вероятности полезны в приложениях. Если на ключевых завершениях слова вроде Кирка/Уатта имеют схожие вероятности, LLM менее уверена. Это поможет снизить галлюцинации, дополняя неуверенные выводы агентскими процессами. Помните: уверенная LLM тоже может ошибаться!

Заключение

Большие языковые модели — рандомизированные алгоритмы, использующие случайность намеренно, чтобы распределять шансы по запускам и не ошибаться повторяемо на определенных задачах. Компромисс — иногда они терпят неудачу там, где могли бы преуспеть. Осознание этого помогает эффективнее использовать LLM.

Область анализа генеративных ИИ-алгоритмов как рандомизированных — молодая и, надеюсь, наберет обороты в ближайшие годы. Если бы замечательный профессор Мотвани был с нами, интересно было бы узнать его мнение. Уверен, он сказал бы нечто гораздо более продвинутое, чем здесь.

Или просто улыбнулся своей озорной улыбкой и наконец поставил бы этой работе отличную оценку.

Кому я втираю? Вероятно, почти отличную.