Автономный автомобиль — это сложнейшая система. Чтобы эффективно тестировать и улучшать технологию автопилота, мы в Яндексе создали собственную систему симуляции поездок в виртуальном мире.
Однако, чтобы доверять результатам симуляции, важно не только правдоподобно симулировать поведение окружающего мира, но и учитывать особенности работы тестируемых алгоритмов на вычислителях, установленных на реальном автомобиле: миллисекунды задержки или нюансы вычислений на разных чипах могут кардинально повлиять на безопасность и комфорт движения.
Сейчас мы ищем опытного разработчика, готового решить задачу, а в дальнейшем возглавить направление, отвечающее за соответствие реальности работы алгоритмов автопилота в симуляциях.
Разработка модели реалистичных задержек компонентов пайплайна
В реальном автомобиле время обработки данных зависит от дорожной ситуации, версий ML-моделей и состояния вычислителей. Сейчас в симуляторе виртуальное время моделируется упрощённо, что не позволяет оценить, как деградации или ускорение отдельных компонентов влияют на поведение машины. Вам предстоит создать архитектуру для сбора метрик производительности на реальном флоте, проанализировать расхождения между реальностью и симуляцией, а затем разработать и внедрить математическую модель задержек, которая позволит достоверно воспроизводить временные характеристики работы пайплайна в симуляторе.
Обеспечение детерминизма вычислений при различиях в железе
Разное железо (GPU/CPU на кластере и в автомобиле) может вносить систематические ошибки в вычисления — от различий в квантизации float до несовместимости инструкций. Ваша задача — разработать механизм автоматического выявления критичных отклонений в поведении алгоритмов, вызванных различиями в аппаратной платформе. Вам предстоит спроектировать и внедрить прослойку, позволяющую вносить корректировки в промежуточные вычисления в симуляции, чтобы полностью исключить влияние «железного» фактора на воспроизводимость сценариев и сохранить высокое доверие к результатам симуляции.
Развитие архитектуры симуляции
Архитектура симулятора построена по замкнутому циклу, включающему зависимости между цепочками компонентов симулируемого мира и тестируемого пайплайна автомобиля. В результате виртуальное время не может течь быстрее реального.
При этом есть понимание, что данную архитектуру можно перестроить так, чтобы вычисления для моделирования автомобиля и окружающего мира выполнялись параллельно и асинхронно, синхронизируясь через единое представление мира. Это позволит снизить время ожидания экспериментов на 40–50%.
Вам предстоит разработать и внедрить новую архитектуру распределённой системы, которая позволит избавиться от узкого места, сохранив при этом строгую согласованность данных и не допустив «утечек» информации из будущего в прошлое.
Больше о бэкенде в Яндексе — в канале Yandex for Backend