Загрузка 0
ПОДЕЛИТЬСЯ

Мой блог

Листай вниз

Как работает фильтр Калмана в цикле правок ИИ-агентов

Как работает фильтр Калмана в цикле правок ИИ-агентов

Исследование процессов взаимодействия ИИ-агентов и критиков показывает, что автоматические исправления без учета теории управления часто приводят к избыточным итерациям. На основе численных симуляций можно оценить, как работает фильтр Калмана в цикле правок, снизить уровень шума и уменьшить количество лишних переписываний кода.

Когда оценка критика сразу определяет следующую правку, ИИ-агент очень легко попадает в цикл избыточных правок. Поправил вступление — критик доволен. Переписал середину, слегка сломав вступление, — критик просит вернуть прежнее. ИИ-агент возвращает вступление и заново ломает середину. Версии сменяют друг друга, бюджет токенов убывает. Теория управления помогает разобраться, почему такой цикл может колебаться вместо достижения цели.

Как работает фильтр Калмана в цикле правок ИИ-агентов — изображение 18
Как работает фильтр Калмана в цикле правок ИИ-агентов — изображение 19
Как работает фильтр Калмана в цикле правок ИИ-агентов — изображение 20

Что здесь происходит с научной точки зрения? ИИ-агент правит работу, критик оценивает результат, отзыв критика определяет следующую правку. В теории управления это называется обратной связью. Шумные правки могут возникнуть как из-за слишком сильных правок исполнителей, так и из-за неточных отзывов критиков. Как отличить действие этих причин друг от друга? Используем парное контролируемое сравнение: сохраняем остальные условия и меняем только способ обработки измерений. Сначала закрепим простое правило правки, затем проверим вклад обработки отзывов критика.

Реклама

Минимальная модель: эталон, артефакт, критик

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

Схема контура управления и обратной связи
Контур обратной связи в модели взаимодействия агента и критика.
Учебный шаг фильтра Калмана и прогон симулятора
Учебный шаг и отдельный прогон симулятора с расчетной неопределенностью.

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

Одна правка глазами агента и критика

Прежде всего разберёмся, откуда и как именно возникает ошибка. Пусть нужный результат находится на отметке 10, текущий — на 8,1. Агент решил прибавить 1,2 балла. Правка сработала чуть сильнее: добавилось ещё 0,05. Получилось 9,35. Но критик сегодня строг: занизил оценку на 0,25 и сообщил 9,1. Что получилось после правки: 8,1 + 1,2 + 0,05 = 9,35. Что сообщил критик: 9,35 − 0,25 = 9,1. Сколько осталось до цели на самом деле: 10 − 9,35 = 0,65. Сколько осталось, по мнению агента: 10 − 9,1 = 0,9.

Реклама

Агент выбирает следующую правку по последней строке. Например, если исправлять 70% замеченной ошибки, он добавит ещё 0,63 балла. Мы уже видим источник проблем: действие рассчитывается по оценке критика, а меняет реальный артефакт. Эти две величины могут расходиться.

Как работает фильтр Калмана в цикле правок ИИ-агентов
Дополнение к рис. 2. Светлая область — большой вес измерения, тёмная — малый. Точка отмечает установившуюся дисперсию прогноза перед измерением; после измерения дисперсия снова уменьшается.

Что фиксируем в модели

Зафиксируем правила этой числовой шкалы. Мы хотим попасть близко к десяти; перелёт выше цели тоже будем считать ошибкой. У нас два источника случайности. Исполнитель может выполнить правку чуть сильнее или слабее, чем задумал. Критик может завысить или занизить результат. В базовом опыте оба источника дают случайные ошибки без систематического смещения. Зададим типичный разброс ошибок критика — 0,55 балла, а исполнения — около 0,22.

Разность «цель минус оценка критика» будем называть невязкой. Если она положительная — нужно прибавить, отрицательная — убавить. Правило, которое по этой невязке выбирает правку, называется регулятором. Теперь весь цикл можно прочитать без формул: измерить → сравнить с целью → выбрать правку → применить её → повторить.

График изменения дисперсии и веса измерений
Изменение дисперсии прогноза перед измерением и после него.

Фильтр Калмана: как не начинать с нуля после каждого отзыва ИИ-критика

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

Фильтр Калмана хранит оценку состояния, предсказывает её изменение после правки и уточняет прогноз по новому измерению. В теории управления такой помощник называется наблюдателем. Его роль в том, что он отвечает регулятору на вопрос «где мы сейчас, насколько можем судить по данным?». Ожидаем прибавку 2, получаем прогноз 8, критик сообщил 6, на два балла ниже прогноза. Учитывая надёжность источников, берём четверть расхождения и отступаем от 8 на половину балла: получаем 7,5.

Как работает фильтр Калмана в цикле правок ИИ-агентов: Анимация 1. Три отдельные иллюстрации: метания реле, дрейф цели и общая ошибка критиков. В первой панели реле работает 4
Анимация 1. Три отдельные иллюстрации: метания реле, дрейф цели и общая ошибка критиков. В первой панели реле работает 40 раундов с потерей 0,3 балла за раунд — это не трёхшаговый таймер. В третьей иллюстрации всем критикам задана постоянная прибавка +1,5: среднее колеблется около 11,5 при истине 10
Влияние корреляции шумов на разброс мнений критиков
Сравнение разброса мнений и ошибки среднего для независимых и коррелированных критиков.

Следующий раунд и проверка прогноза

Теперь в памяти остаются 7,5 и величина неопределённости этой оценки. После очередной правки мы переносим оценку вперёд на ожидаемую прибавку. Заодно увеличиваем неопределённость: правка могла сработать не совсем так, как задумано. Приходит новый отзыв — снова уточняем прогноз. Это объясняет, зачем здесь модель изменения состояния, а не простое среднее последних оценок. Старые отзывы относятся к старым версиям работы.

Реклама
Гистограмма инноваций и выбросов
Распределение честного шума и выбросов за 200 прогонов.
Как работает фильтр Калмана в цикле правок ИИ-агентов: Рис. 6. Модуль невязки перед очередной правкой: для A и B это |r−z|, для C — |r−x̂|. У каждого роя путь до более раннего
Рис. 6. Модуль невязки перед очередной правкой: для A и B это |r−z|, для C — |r−x̂|. У каждого роя путь до более раннего стопа одинаков для всех трёх сроков, поэтому показана одна линия. Кружки B0 и ромбы B8 отмечают последние измерения перед 9-й, 10-й и 11-й правками; финальный результат после этих

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

Траектории колебаний при разной задержке отклика
Сравнение траекторий движения с задержкой в один и два раунда.
Как работает фильтр Калмана в цикле правок ИИ-агентов: Рис. 8. С гейтом медиана и 90-й перцентиль пика ошибки составляют 0.77/1.10 балла — близко к базе 0.77/1.06. Без гейта п
Рис. 8. С гейтом медиана и 90-й перцентиль пика ошибки составляют 0.77/1.10 балла — близко к базе 0.77/1.06. Без гейта при выбросах получаем 1.38/2.02; цена — в среднем 2.995 отброшенных измерения на прогон. Это число включает и ложные отсечения честного шума, поэтому его нельзя отождествлять с доле

Что даёт сам фильтр Калмана? Сравним в одинаковых условиях

Самое интересное начинается тогда, когда работа уже приблизилась к своей цели. Один отзыв требует немного дописать, следующий — убрать примерно столько же. Агент исправно слушается, но часть этой суеты вызвана шумом критика и является лишней. Фильтр Калмана позволяет смешать новый отзыв критика с прогнозом и бороться с этим шумом. Поставим рядом два одинаковых P-регулятора: каждый исправляет 70% оценённого недобора до цели. Первый верит свежей оценке критика, второй — оценке фильтра Калмана.

Стартовые условия, цель, последовательности ошибок и правило правки одинаковы. Меняем только способ оценки текущего состояния, чтобы отдельно проверить вклад фильтра. Проведём 200 пар прогонов по 30 раундов. Фильтр заметно улучшил оценку, но в самом артефакте выигрыш скромнее. Средний модуль правки сократился примерно втрое: цикл слабее реагировал на шум свежего отзыва.

Как работает фильтр Калмана в цикле правок ИИ-агентов: Рис. 9. Два прогона с усилением 0,7: при d = 1 (seed 189) колебания стягиваются к окрестности цели; при d = 2 (seed 46)
Рис. 9. Два прогона с усилением 0,7: при d = 1 (seed 189) колебания стягиваются к окрестности цели; при d = 2 (seed 46) — нарастают. Показаны все 30 пар соседних состояний, общие квадратные пределы охватывают обе траектории целиком. Цвет обозначает число выполненных правок. Это иллюстрации движения;

Почему одного фильтра недостаточно

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

Прогон симулятора с выбросами и сдвигом шкалы
Действие гейта и детектора при выбросах и сдвиге шкалы на шаге.
Как работает фильтр Калмана в цикле правок ИИ-агентов: Схема рабочего цикла. Все проверяющие работают с одной сохранённой версией. Координатор управляет правками и принимает к
Схема рабочего цикла. Все проверяющие работают с одной сохранённой версией. Координатор управляет правками и принимает кандидат только после проверки исправления и регрессий; неясное замечание возвращается на проверку.

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

Четыре конфигурации на полигоне: фильтр, правка и остановка

На стенде проверялись четыре режима: простой таймер по два балла за три раунда (A), независимый рой критиков (B0), рой со скоррелированными ошибками (B8) и контур с наблюдателем и фильтром Калмана (C). На испытательном полигоне контур C продемонстрировал лучшие показатели по точности и объему правок.

Контур C дошёл до цели и остановился с меньшим объёмом переписывания. В 165 из 200 прогонов стоп наступил после четвёртой правки. Ошибка больше балла осталась в двух прогонах, а в строгий коридор ±0,5 попал 161 результат, что составляет 80,5%. Преимущество данной конфигурации сохранилось при всех проверенных сроках завершения работы.

Как работает фильтр Калмана в цикле правок ИИ-агентов: Анимация 2. Реле «правь на максимум» рубит с плеча: случайный знак невязки разворачивает правку. Смен знака невязки, сгл
Анимация 2. Реле «правь на максимум» рубит с плеча: случайный знак невязки разворачивает правку. Смен знака невязки, сглаженной по трём точкам: у реле 13, у P-регулятора 2. P-регулятор движется плавнее, но в этом шумном прогоне с постоянным возмущением финальная ошибка остаётся 0.47 балла.

Что будет, если сломать допущения: выбросы, задержки и смена шкалы

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

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

Как работает фильтр Калмана в цикле правок ИИ-агентов: Анимация 3. Демпфер в шумном дискретном контуре: PD 1.2/0.25 — дёргается сильнее чистого P (16 смен знака сглаженной по
Анимация 3. Демпфер в шумном дискретном контуре: PD 1.2/0.25 — дёргается сильнее чистого P (16 смен знака сглаженной по трём точкам невязки против 10), PD 1.2/0.60 — выходит за коридор устойчивости Kd < 0,4 и разлетается (справа — |x − 10| в лог-шкале).
Как работает фильтр Калмана в цикле правок ИИ-агентов: Анимация 4. Виндап: интегратор накапливает «долг», пока правка упирается в потолок, — в прогоне без защиты максимум x ра
Анимация 4. Виндап: интегратор накапливает «долг», пока правка упирается в потолок, — в прогоне без защиты максимум x равен 13.99, а 26% состояний после 10-й правки лежат выше 11. С анти-виндапом максимум x снижается до 12.24, то есть превышение цели сокращается с 3.99 до 2.24 балла.

Рабочая инструкция: симптом, что проверить и что попробовать

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

01.