Умеют ли трансформеры водить машину?

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

Любая система автономного движения опирается на модуль Motion Planner — алгоритм, который несколько раз в секунду решает, куда должен переместиться робот или автономный автомобиль. То есть превращает их восприятие мира в конкретные действия: руление, торможение, ускорение.

В индустрии популярны два подхода к построению Motion Planner: классический, с разделением на perception и planning, и end-to-end, когда модель получает на вход сырые данные сенсоров и сразу выдаёт управляющие действия, без промежуточной стадии perception.

Мы в Яндексе используем классический подход. Формально перед нами задача sequence-to-sequence: на вход приходят временные последовательности стейтов, и нам нужно предсказать будущие стейты. Для решения используем трансформеры.

🔴 Энкодер временного контекста. Для каждого агента и эго у нас есть последовательность стейтов за последние несколько секунд. Мы пропускаем её через энкодер с attention по временной оси — чтобы модель учитывала динамику движения.

🔴 Энкодер карты. Карта — статическая структура, которую также нужно преобразовать в эмбеддинги. Обычно её разбивают на фрагменты с фиксированным числом точек и кодируют каждый фрагмент отдельным энкодером. Мы используем PointNet, но это лишь один из возможных вариантов.

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

На выходе этого блока получается три вида эмбеддингов: агентов, карты и эго.

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

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

Разбор подготовил ❣️ Максим Спорышев
404 driver not found