
Большие языковые модели по-прежнему просто предсказывают следующее слово.
Два года назад одна лишь эта причина казалось достаточной, чтобы их отвергать — ведь именно ею обосновывали их неуклюжий вывод. Но в настоящее время большие языковые модели стали гораздо лучше, и одним лишь масштабированием этого не объяснить.
Если вы недавно знакомы с большими языковыми моделями (LLM), то вам стоит посмотреть лекцию Карпаты “Deep Dive into LLMs” и почитать статью Ли и Тротта “LLMs Explained with a Minimum of Math and Jargon”.
Как в 2024 мы представляли себе LLM
Пожалуй, вы уже знаете, что LLM — это не сохраняющие состояния механизмы, предсказывающие следующий токен, обучаемые на больших объёмах текста и хранящие информацию в сжатом виде (принцип сжатия очень странный).
На внутреннем уровне эта система организована как очень сложная машина, выполняющая сопоставление с шаблоном и генерирующая на выход поток токенов.
Если бы в 2024 году вы спросили ChatGPT:
Как будет дешевле добраться из Лондона до Барселоны — лететь самолётом или взять билет на поезд в следующую пятницу?
то она дала бы, в сущности, бесполезный ответ:
Лететь самолётом по этому маршруту, как правило, дешевле, чем ехать поездом.
Авиакомпании эконом-класса, например, Ryanair и easyJet часто предлагают рейсы из Лондона в Барселону по стоимости в диапазоне 30–80 фунтов, если заказывать билеты заранее. Полёт длится примерно 2 часа.
Напротив, если решите ехать поездом, то придётся сначала добираться на Eurostar от Лондона до Парижа, а оттуда отправиться высокоскоростным поездом до Барселоны. Это может обойтись в 120–200 фунтов, а само путешествие займёт около 10-12 часов.
Таким образом, лететь, вероятно, будет дешевле и быстрее, а ехать на поезде — комфортнее, а также экологичнее.
Пусть с 2024 года ничего принципиально не изменилось, можно убедиться, что в 2026 году мы получаем ответ из «совершенно другой лиги».
Модели учатся говорить «Я не знаю»
В 2024 году одним из основных раздражающих факторов при обращении с LLM было то, как уверенно они галлюцинировали.
Проor всего проблема решалась так: научить модель говорить «я не знаю» — а потом предложить им, что делать в таких случаях. (в ретроспективе кажется, что это весьма очевидный ход)
Модели теперь обучаются распознавать паттерны, свидетельствующие о неопределённости — например, когда запрашиваешь у них данные реального времени — и в ответ на такой паттерн реагировать отказом. Например:
Какая сейчас погода в Париже? Извини, у меня нет доступа к оперативным данным о погоде. Можно проверить на сайте weather.com.
На предоставленных примерах модели обучаются самокритичности.
Оказывается, тем самым удаётся добиться не только значительно более конструктивного общения с моделями. Более того, модель сама начинает определять, в каких случаях ей не хватает информации, и учится выходить из таких ситуаций.
Запрашиваем информацию (с применением инструментов)
Модели можно научить не просто отказывать в ответе, но и обращаться за помощью. Для этого модель должна сгенерировать вызов инструмента, который система затем перехватит, выполнит и вновь подаст модели на вход в виде контекста.
Вернёмся к нашему примеру с погодой. Вы спрашиваете:
Какая сейчас погода в Париже?
→ [TOOL_CALL: web_search(“weather Paris”)]
→ (результат внедряется в контекст)
Сейчас в Париже 18°C и небольшая облачность.
С точки зрения пользователя, всё это происходит неявно. Задав вопрос, вы можете увидеть индикатор “Searching the web…” (Ищу в Интернете…), а затем получите ответ.
Но с точки зрения модели ничего принципиально не изменилось. Она как генерировала токены, так и продолжает генерировать. Фокус в том, что теперь среда реагирует на определённые токены, дополнительно выбирая реальные данные.
Чтобы не полагаться на внутренние знания (информация хранится в системе в сжатом виде, причём, именно в таком, как она была зафиксирована по результатам обучения), модель пользуется доступом к целому Интернету, проприетарным базам данных, либо к любому API, связанному с системой. Если ей нужно выполнять какие-то расчёты, для этого можно написать программку на Python и приказать хосту её выполнить.
Рассуждение
В 2024 году модели обычно генерировали ответы за один проход.
Но это не обязательное условие. Человеческий мозг, выдавший обучающий датасет, работает иначе. Мы продумываем задачи, подвергаем сомнению собственные допущения, а иногда можем годами размышлять над каким-то вопросом.
Первый намёк на то, что LLM способны делать что-то подобное, появился в 2022 году. Тогда исследователи показали, что, если включить в промпт подсказку «думай пошагово», то производительность модели в задачах на рассуждение возрастала. Эту технику стали называть (chain-of-thought prompting) (промптинг с цепочкой рассуждений), но модель по-прежнему работает в одиночку — никто не проверяет её шаги.
Автоматизация мышления
Чтобы эта техника приносила пользу при решении реалистичных исследовательских задач, человек может сформулировать: «думай пошагово и после каждого шага обращайся за обратной связью», а затем вести диалог с моделью в направлении желаемого результата.
Очевидно, на следующей итерации нужно убрать человека из этого цикла. Пошаговым рассуждением модели должен руководить не пользователь — пусть это делает другая модель, либо одна и та же модель играет обе роли, проверяя на прочность собственные ответы.
Выглядит работоспособно. Но на практике всё оказалось ещё интереснее, когда исследователи привнесли в эту систему “Обучение с подкреплением”(RL).
Обучение с подкреплением
(После предобучения) базовая модель получает набор задач, которые начинает решать как цикл. Всякий раз она даёт разные ответы, и каждый ответ оценивается. Спустя много итераций, модель методом проб и ошибок получает всё более качественные результаты и генерирует ответы, получающие высокую оценку, так как нужные веса в них усиливались.
Таким образом, заложенное в модель сопоставление с шаблоном постепенно работает всё качественнее. В следующий раз, когда она столкнётся со схожей задачей, те процессы, которые приводили к верному ответу, будут активироваться сильнее, тем самым повышая вероятность, что модель воспользуется успешным подходом.
Необработанная информация уже содержится в базовой модели. Благодаря обучению с подкреплением всего лишь становится гораздо вероятнее, что модель станет правильно её использовать. Вычисления задействуются для улучшения структуры информации; а именно, в систему внедряется метаинформация.
Это первый реальный способ получать интеллект в эквиваленте затрачиваемых вычислений.
Примечание: в ранних LLM обучение с подкреплением использовалось с поддержкой людей-оценщиков, судивших, какие ответы «лучше» других (RLHF). Благодаря этому модели получались вежливыми, но субъективными и дорогими. Настоящий прорыв был достигнут с появлением RLVR — обучения с подкреплением, применяющего верифицируемые вознаграждения. При решении задач на математику и программирование правильность полученных решений такая технология может проверять автоматически. Такой подход масштабируется, поскольку верифицировать гораздо проще, чем решать.
Нативные LLM-рассуждения
После того, как было внедрено обучение с подкреплением и верифицируемыми вознаграждениями (RLVR) произошло нечто неожиданное: модели сами начали действовать по принципу пошагового рассуждения. Никто им не подсказывал, что задачи нужно разбивать на подзадачи, но веса сдвинулись именно таким образом, так как при методологическом подходе ответы получаются в целом более правильными.
Помните идею о том, что две модели могут проверять друг друга? Здесь то же самое, но это происходит в рамках одной модели и в пределах одного отклика.
Когда сгенерированный текст выглядит как сложная задача, модель пишет: «Дай я разделю это на части». Закончив обработку подзадачи, она пишет: «Дай я ещё раз проверю». Упёршись в тупик, она реагирует так: «На первый взгляд, это неверно, дай мне ещё раз это обдумать».
Этот метод гораздо мощнее, чем цепочка рассуждений, выдаваемая в ответ на промпт — ведь модель обучается распознавать паттерны сложности, которые не под силу самостоятельно перечислить ни одному промпт-инженеру.
Обучение с подкреплением всегда нацелено на результат. В данном случае таким результатом стали рассуждения.
Вычисления во время логического вывода и рассуждения
Как только модель научилась рассуждать на основе обучения с подкреплением, оказывается, что заставить её поумнеть удивительно просто: дайте ей подумать подольше.
На этапе логического вывода — то есть, именно пока вы задаёте вопрос — модель может сгенерировать дополнительные токены, исследовать альтернативы, проследить рассуждения в обратном направлении и лишь затем дать ответ. Без обучения с подкреплением дополнительные токены с высокой вероятностью окажутся шумом, но модель, обучаемая с подкреплением, предпочитает именно те паттерны, которые связаны с продуктивным мышлением.
Рассуждение со стороны LLM — это поиск по всем путям, которые могут вести к решению, на основе изученной эвристики.
Это компромиссы второго рода. Теперь интеллект не ограничивается тем, что было заложено в веса на этапе обучения, а дополняется тем, какую вычислительную мощность вы готовы потратить в момент формулировки вопроса.
Всё вместе
Эти возможности хорошо сочетаются. Модель, способная как рассуждать, так и использовать инструменты, фундаментально отличается от модели, которая может либо одно, либо другое.
Вернёмся к вопросу, который мы разбирали в начале этой статьи:
Как будет дешевле добраться из Лондона до Барселоны — лететь самолётом или взять билет на поезд, если я собираюсь ехать в следующую пятницу?
Мы уже видели, как бы ответила на этот вопрос бесполезная модель из 2024 года.
Модель, опирающаяся при работе лишь на инструменты, может поискать в Интернете и вернуть некоторые результаты, но не в силах их осмысленно сравнить. Рассуждающая модель может выдать блестящую аналитическую картинку, но числа в неё будут заложены «с потолка».
Если же модель обладает обеими возможностями, то она может и судить о том, какие данные её нужны, и сделать несколько вызовов к нужным инструментам, чтобы проверить цены на авиарейсы и поезда, а также написать небольшую программу. Эта программа учтёт такие факторы как длительность пути и пересадки в аэропортах, затем модель получит от программы результаты, распознает, какие поисковые результаты выглядят устаревшими, попробует ещё раз — и представит вам хорошо продуманный ответ, основанный на реальных данных.
Именно на основе рассуждений подбираются инструменты, а инструменты помогают подкрепить рассуждения.
Заключение
Большие языковые модели в настоящее время по-прежнему просто предсказывают следующее слово.
Но такой предиктор следующего слова можно научить признавать, что он может чего-то не знать. Вы можете предоставить ему доступ к инструментам. Можно научить её думать, прежде чем отвечать, либо научить её ставить под сомнения её собственные выводы.
Получающийся результат по-настоящему полезен на практике, хотя, современные модели по-прежнему иногда галлюцинируют, излишне усложняют выводы и решения, а также залипают в циклах. Тем не менее, с 2024 года был достигнут огромный прогресс.
