Обучение на основе реального опыта
Дообучение модели Perplexity Computer для имитации успешного поведения, снижения потребности в исправлениях и предотвращения ошибок инструментов.
То, как пользователи взаимодействуют с нашими продуктами в реальном мире, является ценным источником для обучения моделей. Эти данные многочисленны, отражают реальное распределение пользовательских задач и фиксируют пользовательские исправления и сбои инструментов, которые могут быть упущены в синтетических средах.
Распространенным способом обучения на данных реального мира является дообучение на основе выборки с отклонением (rejection sampling fine-tuning): оценка результата каждого сеанса, сохранение успешных и обучение модели имитировать их. Но успешный результат не означает, что каждый шаг был правильным, поэтому имитация всей траектории рискует закрепить плохие промежуточные поведения в дополнение к хорошим. Отбрасывание неудачных сеансов также приводит к потере критически важных свидетельств о том, где модель терпит неудачу.
Мы объединяем дообучение на основе выборки с отклонением и самодистилляцию под руководством подсказок, чтобы учиться как на успешных, так и на неуспешных сеансах. Подсказка представляет собой короткую корректирующую инструкцию, основанную на информации, которой модель уже обладала в момент совершения ошибки. Полезные шаги из успешных сеансов остаются целями для подражания, в то время как обоснованные подсказки превращают предотвратимые ошибки в цели для исправления.
Исправления пользователей и ошибки инструментов добавляют надзорные данные о том, что пошло не так в процессе, в дополнение к информации об успешности выполнения задачи в целом. Мы применяем этот этап после обучения с подкреплением в синтетических средах, чтобы помочь сократить разрыв между этими средами и реальным использованием.
При реальном использовании более поздняя контрольная точка GLM-5.2 после дообучения снизила количество сбоев вызовов инструментов на 21,2% по сравнению с более ранней контрольной точкой. Для GLM-5.3 дообучение снизило количество сбоев вызовов инструментов на 33,0%, а среднюю оцененную вероятность среднего или высокого уровня недовольства пользователя — на 17,2% по сравнению с базовой моделью.
От синтетических данных к реальным
Синтетические задачи позволяют нам создавать контролируемые проблемы с результатами, которые легко проверить, но они, как правило, ограничиваются одним промптом и могут охватывать только те сценарии, которые мы разрабатываем явно.
Напротив, пользователи в реальных сеансах привносят разнообразные инструкции, контекст и комбинации инструментов в сеансы, которые разворачиваются на протяжении нескольких ходов взаимодействия. Такое использование в реальном мире естественным образом дает два ценных сигнала об ошибках: исправления пользователей показывают, где агент не смог предоставить то, что они хотели, а ошибки инструментов показывают, где его действия дали сбой в реальных средах. Наш конвейер выборки уважает конфиденциальность и выбор пользователей в отношении обучения, исключая сеансы с личной информацией (PII) и сеансы пользователей, которые отказались от участия.
Таким образом, данные реального мира предоставляют нам случаи сбоев, которые синтетическая среда может не выявить, и часто содержат уже встроенную информацию о том, где произошел сбой.
Имитируйте хорошие шаги, исправляйте плохие
При обучении на данных реального мира стандартное дообучение на основе выборки с отклонением (rejection sampling fine-tuning, RFT) выбирает успешные сеансы на основе их конечных результатов, не используя явно отзывы пользователей и инструментов для разграничения хороших промежуточных действий и плохих. Агент может восстановиться после плохого вызова инструмента или исправить ошибку после отзыва пользователя и все равно выдать правильный результат в конце.
Отбрасывание неудачных сеансов также снижает эффективность выборки. Сеанс, который так и не приводит к хорошему результату, все же может выявить явную, избегаемую ошибку в качестве полезного обучающего сигнала.
Мы решаем эти проблемы, разделяя два решения: какие сеансы содержат поведение, достойное подражания, и какие ходы содержат ошибки, достойные исправления. Конвейер данных принимает эти решения раздельно, а затем присваивает ходам модели одно из трех воздействий:
- Имитируйте: ходы без ошибок в успешных сеансах получают обычные потери на основе перекрестной энтропии (CE loss), увеличивая вероятность записанных токенов.
- Корректные: как в успешных, так и в неуспешных сеансах ходы с ошибками, имеющие действительную подсказку, получают потери на основе дивергенции Кульбака — Лейблера (KL), приближая модель к предсказаниям следующих токенов, которые она делает при виде подсказки.
- Сохранять как контекст: ходы в неуспешных сеансах, не имеющие проверенной подсказки, и помеченные неверные ходы без проверенной подсказки в сеансах любого типа служат в качестве контекста, но не получают ни одной из функций потерь.
В результате успешные сеансы могут предоставлять цели как для имитации, так и для исправления, в то время как неуспешные сеансы предоставляют цели только для исправления. Все остальные ходы, включая системные выводы, выводы пользователя и вывода инструментов, остаются в качестве контекста.
Имитационная часть использует стандартный метод RFT. Корректирующая часть использует самодистилляцию на политике (On-Policy Self-Distillation, OPSD): одна и та же модель выступает в роли учителя и студента, причем учителю предоставляется привилегированная информация. Здесь такой привилегированной информацией является короткая подсказка, объясняющая предотвратимую ошибку. Мы обучаем студента соответствовать предсказаниям следующего токена учителя без подсказки.
Важны обе части. Обучение только на исправлениях может привести к обходному пути: учитель и студент могут прийти к согласию, игнорируя контекст, вместо того чтобы учиться исправлению. Член перекрестной энтропии (CE) закрепляет обучение за полезным поведением, помогая предотвратить согласие, возникающее из-за игнорирования контекста.
После дообучения студент становится доступной моделью в Computer. Новые сеансы из реального использования проходят те же фильтры соответствия требованиям и конфиденциальности перед тем, как попасть в следующий раунд конвейера обучения.
Пример: один сеанс может преподать оба урока
Далее мы рассмотрим конкретный пример, который содержит как имитацию, так и исправление.
Рассмотрим в конечном итоге успешный сеанс, в котором пользователь просит сравнить изменения asyncio в Python 3.13 с использованием официальной документации. Наша документация по инструментам гласит, что search.web возвращает список совпадений, каждое из которых имеет поле url.
Сначала модель выполняет допустимый поиск для одной версии в рамках сбора свидетельств для сравнения, что является хорошим поведением для имитации.
Однако следующий вызов выполнения кода неверно обрабатывает этот список как словарь. Инструмент кода возвращает TypeError: list indices must be integers or slices, not str. Поскольку тип возвращаемого значения был задокументирован до вызова, это ошибка, которую модель должна была уметь предотвратить. Для исправления этого действия можно сгенерировать подсказку с правильным вызовом.
Как работает обучение
Конвейер обучения состоит из четырех этапов: выбор сеансов и оценка их результатов, выявление ошибок и создание подсказок на основе отзывов пользователей и ошибок инструментов, генерация вероятностей следующих токенов как от учителя, так и от студента, а также обучение модели с комбинированными потерями CE и KL.
Выбор сеансов, затем оценка результата
Пайплайн выборки формируется из подмножества реальных сеансов Computer, пригодных для обучения, обслуживаемых GLM 5.2. Отказ от обучения и связанные с PII исключения в пайплайне применяются до выбора примеров для этого рабочего процесса.
На этапе первоначального отбора выбираются кандидаты, оцененные в 4 или 5 баллов по пятибалльной шкале сложности задач судьей LLM, и делятся на 2 группы:
- Группа отзывов пользователей содержит сеансы с подлинным последующим вопросом пользователя или флагом средней или высокой степени неудовлетворенности. Мы находим эти последующие запросы с высоким уровнем намерения особенно полезными для обучения: пользователи активно пытаются завершить задачу, а их исправления точно указывают на то, что упустила модель.
- Группа ошибок инструментов содержит сеансы с неудачными вызовами, отмеченными проверками на основе правил, за исключением распознанных сбоев инфраструктуры и отклоненной авторизации.
Затем два судьи на базе больших языковых моделей оценивают окончательный результат в соответствии с запросом пользователя; оба судьи должны вынести положительный вердикт, чтобы пометить сеанс как «успешный». Для случаев, в которых выдаются артефакты, этап определения результата может воссоздать и проверить доставку, переключаясь на текстовые оценки, если этот этап завершается сбоем. Сеансы, классифицированные как незавершенные (например, работа в ожидании пользователя), исключаются.
Этот шаг определяет потенциальные источники обучающих сигналов; однако не каждая ошибка объясняется действиями модели, так как некоторые из них возникают из-за неоднозначных инструкций или сбоев инфраструктуры. Последующее аннотирование определяет, какие предполагаемые ошибки действительно можно предотвратить и они подходят для обучения.
Поиск ошибок по отзывам пользователей
Рассмотрим пример сеанса в группе отзывов пользователей, где пользователь спрашивает: «Как найти мой w3 на paychex». Модель обрабатывает «w3» как опечатку в W-2, ищет инструкции для W-2 и объясняет, как найти эту форму. Последующий вопрос пользователя: «Я имел в виду форму передачи W-3» — указывает на ошибку, даже если сеанс в итоге завершается успехом.
Жалоба помогает обнаружить ошибку, но первопричиной является более раннее решение переинтерпретировать «w3» как W-2. Первоначальный запрос делает ошибку предотвратимой: модель могла сохранить W-3 или запросить уточнение. Оказывается, что последний ход ассистента перед жалобой является первопричиной лишь примерно в половине случаев.
Наш конвейер аннотирования систематически сопоставляет причину и следствие в рамках каждого сеанса с отзывами пользователей. Аннотатор сначала проверяет наличие пропущенного требования или намерения, поддерживаемого более ранним контекстом. Затем три судьи на базе больших языковых моделей определяют ответственные ходы, причем для выбора конкретного хода требуется согласие как минимум двух из них. Иногда более раннее утверждение явно устанавливает требование. В других случаях ни одно из предыдущих утверждений по отдельности не делает этого, но несколько фрагментов предшествующего разговора в совокупности позволяют сделать вывод о предполагаемом таком поведении. Такая конструкция позволяет связать жалобу с более ранней корневой ошибкой, а не приписывать ее исключительно последнему ответу.
Перед принятием подсказки конвейер также проверяет, вытекают ли ее исправительные утверждения из информации, доступной до отмеченного хода. Эти проверки призваны снизить предвзятость ретроспективного анализа (hindsight bias), когда новое предпочтение, выявленное в жалобе, рассматривается как нечто, что модель уже должна была знать.
В этом примере подсказка указывает модели искать форму передачи W-3 на Paychex, а не W-2, или спросить, какую форму имеет в виду пользователь, если запрос является двусмысленным. Исправление нацелено на более раннюю интерпретацию и решение о поиске, а не только на окончательный ответ. Исходный ход остается неизменным; аннотация добавляет is_bad_turn: true и непустую hint.
Поиск ошибок по сбоям инструментов
Рассмотрим другой сеанс в группе ошибок инструментов с вызовом поиска, где агент выполняет поиск с параметром recency_filter: "year", но инструмент отклоняет его, поскольку допустимыми значениями являются «day», «week» или «month». Это явное нарушение схемы.
Путь ошибки инструмента использует детерминированные правила для известных ошибок и оценку модели для неоднозначных случаев. Само по себе сообщение об ошибке также недостаточно для обвинения модели; оцененное исправление должно указывать на то, что модель могла знать из схемы инструмента, системных инструкций или предыдущего разговора.
Здесь подсказка называет неудавшийся вызов, включает ошибку проверки и предписывает модели использовать разрешенное значение или опустить поле, если оно является необязательным.
Два прямых прохода
После отметки хода тренер запускает один и тот же чекпоинт дважды: один раз в роли учителя, а другой — в роли ученика. Учитель видит подсказку, а ученик — нет.
Оба прохода используют принуждение учителем (teacher forcing), при котором мы подаем в модель записанный сеанс, а не позволяем ей выбирать новые токены. Прямой проход по-прежнему выдает полное распределение следующих токенов на каждом шаге, но оно всегда обусловлено фиксированным префиксом из записи, а не токенами генерации.
В примере с поиском та же модель присваивает гораздо более высокую вероятность «month» и меньшую — «year», когда ей предоставляется подсказка. Обучение использует этот сдвиг распределения в качестве мягкой цели.
Предсказания учителя отсекаются (stop-gradient): они задают целевое значение, но не получают обновления через проход учителя. После прохода студента один шаг оптимизатора обновляет общую модель.
Функция потерь
Потери на основе перекрестной энтропии (CE loss)
Потери на основе перекрестной энтропии (CE loss) рассматривают записанные токены, выбранные для имитации, как эталонные целевые значения и наказывают модель за присвоение им низких вероятностей. Это создает жесткую цель имитации.
В позиции токена пусть будет вероятностью токена студента в полном словаре . Записанный следующий токен в ответе или вызове инструмента равен , целевое распределение с одним активным состоянием (one-hot) равно .
Кросс-энтропия измеряет, насколько хорошо студент предсказывает этот записанный токен. При наличии цели с одним активным состоянием (one-hot) она сводится к отрицательному логарифму вероятности, присвоенной .
Маска перекрестной энтропии (CE) представляет собой там, где токен должен быть сымитирован, и в противном случае. Суммирование по выбранным позициям дает потери на имитацию.
Потери Кульбака — Лейблера (KL loss)
Потери Кульбака — Лейблера (KL loss) вместо этого используют полное распределение вероятностей следующего токена учителя в качестве мягкой целевой метки для исправления. Контекст учителя включает текущую подсказку и любые более ранние подсказки, сохраненные в этом сегменте обучения; контекст студента всегда свободен от подсказок.
Маска KL представляет собой там, где токен должен быть исправлен, и в противном случае; маски CE и KL не перекрываются. В этих позициях прямое расхождение KL наказывает за несогласие между учителем и студентом по всему словарю:
Комбинированные потери
Обе составляющие разделяют один знаменатель, а не нормируются раздельно. Этот знаменатель подсчитывает общее количество токенов, выбранных для имитации по всему глобальному обучающему батчу. Вес управляет вкладом корректирующего обучения относительно имитации.
Эта общая нормализация соответствует интерфейсу с единственным знаменателем нашей инфраструктуры обучения и восстанавливает стандартные потери SFT при , упрощая сравнение базовых показателей. Поскольку токенов CE гораздо больше, чем токенов KL, использование общего знаменателя также позволяет избежать присвоения отдельным токенам KL непропорционально больших весов в батчах с небольшим количеством помеченных токенов.
Применительно к предыдущим примерам, ходы, содержащие путаницу W-3/W-2 и недопустимый вызов поиска, получают KL. Другой непомеченный контент ассистента в успешном сеансе по-прежнему получает CE. Другой контент ассистента в неудачном сеансе сохраняется как контекст, но не получает ни CE, ни KL.
Что показывают оценки
Наши оценки отвечают на два разных вопроса. Во-первых, действительно ли подсказка помогает модели исправить ошибку, когда она присутствует? Во-вторых, помогает ли обучение модели избегать этой ошибки в дальнейшем без подсказки? Первый вопрос проверяет, обеспечивают ли подсказки полезные обучающие сигналы. Второй проверяет, учится ли модель на них.
Подсказки могут уберечь модель от ошибок
Мы проверяем первый вопрос перед запуском обучения, чтобы убедиться, что подсказки действительно могут удерживать модель от ошибок.
Отзывы пользователей
Мы заново сгенерировали помеченные ходы с обратной связью от пользователя с подсказкой и без нее, используя ту же базовую модель GLM-5.2 при нулевой температуре. Слепой судья видит более позднюю жалобу, но ни подсказку, ни условие, при котором был получен ответ.
В примере с W-3 подсказка смещает вероятность следующего токена в сторону «3» и от «2» после префикса «W-».
На большей отложенной выборке из 40 ходов, подкрепленной явно заявленными более ранними свидетельствами, доля тех, что были признаны исправленными или находящимися на верном пути, возрастает с 40,0% без подсказки до 75,0% с подсказкой. На других 40 ходах, подкрепленных предполагаемым намерением, этот показатель возрастает с 32,5% до 80,0%.
Ошибки инструментов
В примере с ошибкой инструмента поиска подсказка действительно смещает массу вероятности с токена года (year) на токен месяца (month).
На большей отложенной выборке из 985 ходов мы регенерируем каждый ход четыре раза с подсказкой и без нее, используя ту же базовую модель. Слепой судья оценивает, позволяет ли каждая регенерация избежать первоначальной ошибки. Подсказки повышают предотвращение ошибок с 75,1% до 93,7% (парный прирост на 18,6 процентных пункта) и увеличивают долю выполнения исправленного действия с 60,6% до 82.3%. Наибольший прирост наблюдается при ошибках, с которыми трудно справиться с помощью одной лишь повторной выборки.
Надежность инструментов и отзывы пользователей после обучения
Затем мы проверяем, делает ли обученная модель меньше ошибок без подсказок. Мы оцениваем базовую модель и различные дообученные контрольные точки на офлайн-бенчмарках и в живых пользовательских сеансах, проверяя, становится ли меньше сбоев инструментов и снижается ли недовольство пользователей.
Автономная оценка
Автономная оценка использует BrowseComp, Finch, WideSearch, DRACO, DSQA, SpreadsheetBench, HLE, репрезентативный набор задач Computer, а также проверки на загрузку навыков, рецензирование документов и встроенные цитаты. Мы измеряем долю вызовов инструментов, результаты которых явно помечены как ошибки среди траекторий оценки.
В этих оценках зарегистрированная частота ошибок инструментов составила 2,79% для стандартной GLM 5.2, 1,35% для контрольной точки только с RFT и 0,87% для контрольной точки RFT+OPSD. Эти контрольные точки обучались на разных данных, поэтому данное исследование не является абляционным тестом на сопоставимых данных. Результаты тестов на уровне задач оказались смешанными, поэтому меньшее количество ошибок инструментов само по себе необязательно приводит к широкому улучшению успешности выполнения задач.
Онлайн-оценка: GLM-5.2
Для GLM-5.2 мы провели два независимых A/B-теста примерно со ста тысячами пользователей в каждой группе. В первом ранний чекпоинт RFT-plus-OPSD показал чуть более низкую частоту сбоев инструментов по сравнению со стандартной GLM-5.2 (2,82% против 2,94%), однако разница не была статистически значимой.
В последующем тесте мы сравнили две контрольные точки RFT+OPSD: более раннюю (контрольная точка 1) и более позднюю (контрольная точка 2). Сбои вызовов инструментов сократились с 2,24% до 1,77% от числа вызовов с зарегистрированным статусом. Это составило статистически значимое относительное сокращение на 21,2%. Мы не сравнивали контрольную точку 2 напрямую со стандартной GLM 5.2 в сети.
Результаты отзывов пользователей оказались менее определенными. Во втором эксперименте с GLM-5.2 средняя вероятность сильного недовольства (среднего или высокого) составила 2,58% для первого чекпоинта и 2,54% для второго, причем статистически значимая разница отсутствовала.
Онлайн-оценка: GLM-5.3
Для GLM-5.3 мы сравнили контрольную точку после дообучения напрямую с базовой моделью GLM-5.3. Количество сбоев вызовов инструментов снизилось с 3,56% до 2,38% от вызовов с зафиксированным статусом, что составляет относительное сокращение на 33,04%. Показатель MID+ (средняя оцененная вероятность среднего или высокого уровня недовольства) снизился с 4,12% до 3,41%, что соответствует относительному сокращению на 17,2%. Оба сокращения статистически значимы.
Заключение
Центральная идея заключается в том, чтобы учиться на уровне решения, а не только сеанса.
Успешный результат может скрывать ошибки, а неудачный сеанс все же может показать, как добиться улучшений. Мы сохраняем полезное поведение из успешных сеансов в качестве опорного, используем жалобы и ошибки инструментов для выявления предотвратимых сбоев и обучаем модель прогнозам, которые она делает при выявлении этих ошибок и внесении исправлений. Успех обеспечивает сохранение поведения; неудача задает направление для улучшений.
Использование в реальном мире делает этот подход особенно полезным. Реальные пользователи привносят цели, ограничения и рабочие процессы, которые трудно предусмотреть в синтетической среде. Их исправления выявляют требования, которые пропустила модель, в то время как ошибки инструментов обнажают разрывы между тем, что пыталась сделать модель, и тем, что позволяет среда. Эти сигналы дополняют обучение на основе результатов: вместо того чтобы задавать вопрос только об успешности задачи, мы можем спросить, где модель допустила ошибку и какая информация могла бы помочь ей принять более правильное решение.
Ограничения имеют не меньшее значение. Судьи могут ошибаться, а исправление одного хода не гарантирует успешное выполнение всей задачи. Цель заключается не просто в создании агента, который восстанавливается после исправления. Нужен агент, которому исправления требуются реже.
Цитирование
@online{perplexity2026LearningFromRealWorldExperience,
author = {{Perplexity} and Senzeyu Zhang and Chuan Wang and Hang Wu and Hao Zhang and Yuan Liang and Yunfan Zhong and Phi Hoang and Claire Beamer and Jeremy Yang and Andrew Wilson and Denis Yarats},
title = {{Learning from real-world experience}},
date = {2026-09-21},
url = {https://www.perplexity.ai/hub/blog/learning-from-real-world-experience}
}