# Янник Кильхер на NeurIPS 2023: почему ChatGPT не читает вверх ногами и как чинить «горчицу в кофе»

Источник: https://www.youtube.com/watch?v=cx3bbMf9LRA
Канал: Yannic Kilcher
Опубликовано: 26.12.2023

---

Традиционная конференция по нейросетевым технологиям NeurIPS 2023 в Новом Орлеане стала площадкой для демонстрации прикладных решений, которые устраняют фундаментальные пробелы в работе современных ИИ-моделей. В своем репортаже с четвертой постерной сессии Янник Кильхер (Yannic Kilcher) пообщался с авторами проектов, работающих над такими проблемами, как галлюцинации контекста в видео, неспособность ChatGPT читать перевернутый текст и избыточная сложность дообучения моделей под тысячи разных задач.

## 🎥 Сегментация действий: борьба с «горчицей в кофе»
[[JUMP:0:52]]

Одной из первых обсуждаемых тем стала временная сегментация действий (temporal action segmentation). Суть задачи заключается в том, чтобы классифицировать каждый кадр необработанного видео (например, процесса приготовления завтрака) и определить границы конкретных действий: «взял кружку», «налил кофе», «добавил сахар».

Как отмечает один из исследователей, существующие модели часто страдают от ошибок вне контекста (out of context errors) [1:19]. Например, нейросеть может ошибочно классифицировать движение руки как «добавление горчицы» в процессе приготовления кофе только из-за визуального сходства объектов, хотя это действие логически невозможно в данном контексте [1:33].

Для решения этой проблемы команда предложила четырехэтапный подход:

*   **Алгоритм индукции грамматики (DK):** автоматически извлекает правила последовательности действий из обучающего датасета [2:28].
*   **Эффективный парсер (BP):** находит оптимальные последовательности действий, которые соответствуют предсказаниям нейросети, но не нарушают логику процесса [2:42].
*   **Грамматика на базе PCFG:** используется вероятностная контекстно-свободная грамматика, включающая «И-правила» (фиксированный порядок, например, нельзя налить кофе, не взяв чашку) и «ИЛИ-правила» (свободный порядок, например, сахар можно добавить до или после молока) [5:05].

По словам авторов, такая система позволяет эффективно удалять «галлюцинаторные» действия из итогового отчета, опираясь на глобальную структуру задачи, а не только на локальные визуальные признаки кадра [7:17].

## 🧠 Генерация против дискриминации: тест-тайм адаптация
[[JUMP:8:54]]

Другая группа исследователей представила проект, объединяющий сильные стороны дискриминативных моделей (классификаторов, таких как ResNet или CLIP) и генеративных моделей (например, Stable Diffusion). 

Основная идея строится на том, что классификаторы отлично работают на тренировочных данных, но часто полагаются на «короткие пути» (shortcuts) и плохо обобщают информацию [9:35]. Генеративные модели, напротив, лучше понимают общую структуру данных, но проигрывают в точности классификации на стандартных тестах (например, ImageNet).

Предложенный метод адаптации во время инференса (test-time adaptation) работает следующим образом:

1.  Изображение подается на классификатор, который выдает мягкие вероятности классов [10:40].
2.  Эти вероятности (вместо жесткого One-Hot вектора) передаются в предобученную модель диффузии в качестве условия [10:53].
3.  Если классификатор ошибся (например, назвал гуся собакой), модель диффузии не сможет качественно восстановить изображение из шума, что приведет к высокому значению функции потерь [11:19].
4.  Градиент этой потери пробрасывается обратно, заставляя классификатор изменить предсказание на то, которое позволит генератору «узнать» объект и успешно его восстановить [11:32].

Исследователи утверждают, что такой подход позволяет улучшить точность лучших моделей CLIP на несколько процентных пунктов без переобучения, просто адаптируясь к конкретному входящему примеру [12:09].

## 🙃 Эквивариантность: почему ChatGPT не любит перевернутый текст?
[[JUMP:27:08]]

Янник Кильхер обсудил с авторами проблему «геометрической слепоты» современных языковых и мультимодальных моделей. Известно, что даже GPT-4 часто не справляется с распознаванием перевернутого или сильно повернутого текста на изображениях [28:02]. Аналогичные проблемы наблюдаются у модели Segment Anything (SAM) от Meta: при повороте изображения точность сегментации резко падает [28:28].

Вместо дорогостоящего дообучения гигантских моделей на всех возможных поворотах (data augmentation), авторы предложили использовать **«Канонизатор» (Canonicalizer)**:

*   Это крошечная нейросеть (добавляет всего 0,3% параметров), которая обучается трансформировать входные данные так, чтобы они стали удобными для основной модели [29:33].
*   Если на входе перевернутый текст, Канонизатор учится переворачивать его обратно в «нормальное» состояние перед передачей в GPT-4 или CLIP [29:45].
*   Обучение происходит без прямой разметки, на основе неявной обратной связи от большой замороженной модели [30:13].

Интересно замечание одного из авторов о человеческом восприятии: когда мы видим перевернутую машину, мы мысленно «поворачиваем» её образ [32:24]. Канонизатор делает то же самое, в отличие от классических эквивариантных архитектур, которые пытаются использовать вращающиеся фильтры внутри самой сети [32:37].

## 🧩 Масштабируемые адаптеры: тысячи задач в одной модели
[[JUMP:33:17]]

Специалист из Microsoft (участвующий в дискуссии анонимно в контексте одного из своих проектов) представил метод эффективного управления множеством задач с помощью адаптеров (например, LoRA). Проблема в том, что если у вас десятки тысяч задач, обучать и хранить отдельный адаптер для каждой (даже если он весит несколько мегабайт) становится невозможно [34:22].

Решение — **многоголовочные адаптеры (multi-head adapters)**:

*   Вместо одного адаптера на задачу создается базис из нескольких универсальных адаптеров.
*   Каждый адаптер «разрезается» на части (чанки) [35:52].
*   Для каждой конкретной задачи модель подбирает оптимальную линейную комбинацию этих частей [36:05].

Это позволяет плавно регулировать баланс между точностью и количеством параметров. При увеличении числа «чанков» точность растет, но возрастают и вычислительные затраты [36:20]. Модель способна масштабироваться до 10 000+ задач, что критически важно для крупных корпоративных систем [36:48].

## 🧼 DataFix: очистка данных в духе GAN
[[JUMP:46:21]]

Завершающим интересным проектом стала система **DataFix**, предназначенная для обнаружения и исправления сдвигов в данных (feature shift). Это актуально для медицины: например, если данные из больницы А качественные, а в больнице Б барахлит датчик или нарушен стандарт записи BMI (индекса массы тела), это может испортить общее исследование [47:13].

Метод работает итеративно:

1.  Обучается бинарный классификатор (случайный лес), пытающийся отличить «эталонные» данные от «подозрительных» [48:19].
2.  Если классификатор легко находит отличия, исследователи смотрят на важность признаков (feature importance). Те признаки, по которым классификатор «узнает» плохие данные, помечаются как испорченные [48:32].
3.  Испорченные признаки удаляются, и цикл повторяется до тех пор, пока классификатор не перестает отличать один набор данных от другого (достигает точности случайного угадывания) [48:57].
4.  Для исправления данных используются «предложения» (proposals) из эталонного набора, которые подставляются в испорченные ячейки так, чтобы дискриминатор перестал видеть разницу [50:17].

По словам авторов, этот метод, основанный на простых случайных лесах, показал результаты лучше, чем сложные дифференцируемые системы и методы оптимального транспорта [51:53].