Друзья, хочу поделиться с вами карьерным апдейтом.
После четырёх месяцев активного поиска я присоединился к Сбер Автотех (Navio) в Москве на позицию Deep Learning Engineer, Motion Planning. Изначально я планировал остаться в области манипуляции роботами, но выяснилось, что и в манипуляции, и в автономном вождении активно применяются методы обучения по демонстрациям и обучения с подкреплением для планирования движения. В новой роли я буду заниматься улучшением модели планирования траектории для автономного автомобиля.
Я переехал в Москву вместе с семьёй и буду рад встретиться.
После четырёх месяцев активного поиска я присоединился к Сбер Автотех (Navio) в Москве на позицию Deep Learning Engineer, Motion Planning. Изначально я планировал остаться в области манипуляции роботами, но выяснилось, что и в манипуляции, и в автономном вождении активно применяются методы обучения по демонстрациям и обучения с подкреплением для планирования движения. В новой роли я буду заниматься улучшением модели планирования траектории для автономного автомобиля.
Я переехал в Москву вместе с семьёй и буду рад встретиться.
🔥26😎3
Всем привет! Сколько лет, сколько зим.
У ребят из @deep_school есть классный проект: они зовут обычных роботяг вести канал @deepschool_underthehood и рассказать про работу и жизнь вне ее. На этой неделе там буду я — расскажу про ML в автономном вождении, карьеру в робототехнике и немного про личное.
Залетайте в канал, читайте и задавайте вопросы! Ну и тут репосты тоже будут.
У ребят из @deep_school есть классный проект: они зовут обычных роботяг вести канал @deepschool_underthehood и рассказать про работу и жизнь вне ее. На этой неделе там буду я — расскажу про ML в автономном вождении, карьеру в робототехнике и немного про личное.
Залетайте в канал, читайте и задавайте вопросы! Ну и тут репосты тоже будут.
👍9🔥6💯3
Forwarded from DeepSchool / underthehood (Shamil Mamedov)
Про работу
Я занимаюсь планированием траекторий для автономных машин. Проще говоря: моя задача — на основе дорожной обстановки и маршрута предложить траекторию на несколько секунд вперёд.
На первый взгляд — задача плоская: никакого 3D, как у дронов, и не такие сложные движения, как у робо-рук. Но на практике — одна из самых сложных областей, потому что нужно учитывать взаимодействие с другими машинами и при этом обеспечивать безопасность.
Раньше траектории строили классическими методами поиска и эвристиками. Но со временем стало ясно: невозможно прописать правила для всех дорожных ситуаций. Поэтому сегодня почти все крупные компании делают ставку на ML — легче «научить» модель на данных, чем изобретать новые костыли-эвристики.
В отличие от многих областей, где инженеры уже опираются на foundation-модели, в автономном вождении модели всё ещё учат с нуля. Почти всегда это архитектура «энкодер-декодер»: энкодер (почти всегда трансформер) кодирует дорожную сцену; декодер (трансформер или диффузия) предсказывает траекторию.
Ключевая проблема не в моделях, а в их оценке. Нельзя просто сравнить предсказанную траекторию с реальной (экспертной) — такая метрика игнорирует накопление ошибок. В реальной езде маленькие ошибки могут накапливаться и приводить к опасным ситуациям (out-of-distribution). Поэтому используют симуляторы или — в идеале — реальные тесты на дорогах.
Если интересно глубже погрузиться в тему планирования в автономном вождении — вот мой пост блоге deep-school. Если есть вопросы про работу в автономном вождении, спрашивайте в комментариях🙂
Я занимаюсь планированием траекторий для автономных машин. Проще говоря: моя задача — на основе дорожной обстановки и маршрута предложить траекторию на несколько секунд вперёд.
На первый взгляд — задача плоская: никакого 3D, как у дронов, и не такие сложные движения, как у робо-рук. Но на практике — одна из самых сложных областей, потому что нужно учитывать взаимодействие с другими машинами и при этом обеспечивать безопасность.
Раньше траектории строили классическими методами поиска и эвристиками. Но со временем стало ясно: невозможно прописать правила для всех дорожных ситуаций. Поэтому сегодня почти все крупные компании делают ставку на ML — легче «научить» модель на данных, чем изобретать новые костыли-эвристики.
В отличие от многих областей, где инженеры уже опираются на foundation-модели, в автономном вождении модели всё ещё учат с нуля. Почти всегда это архитектура «энкодер-декодер»: энкодер (почти всегда трансформер) кодирует дорожную сцену; декодер (трансформер или диффузия) предсказывает траекторию.
Ключевая проблема не в моделях, а в их оценке. Нельзя просто сравнить предсказанную траекторию с реальной (экспертной) — такая метрика игнорирует накопление ошибок. В реальной езде маленькие ошибки могут накапливаться и приводить к опасным ситуациям (out-of-distribution). Поэтому используют симуляторы или — в идеале — реальные тесты на дорогах.
Если интересно глубже погрузиться в тему планирования в автономном вождении — вот мой пост блоге deep-school. Если есть вопросы про работу в автономном вождении, спрашивайте в комментариях🙂
DeepSchool
Кто за рулём?! Трансформер - DeepSchool
Разбираем планирование движения — ключевую задачу беспилотников, где на первый план выходит архитектура трансформера
👍6
Принёс вам хорошую обзорную статью про VLA.
Но сначала — коротко о том, что это такое. Всё началось с больших языковых моделей (LLM), с которыми сегодня знакомы почти все. Позже им «дали глаза» — так появились vision-language models (VLM), которые принимают на вход изображение и текст и умеют отвечать на вопросы и рассуждать о картинках.
Логичный следующий шаг: если VLM понимают изображения и язык, почему бы не научить их генерировать действия? Так появились VLA — модели, которые уже показывают неплохие результаты и становятся важным шагом к роботам общего назначения. Но впереди ещё много работы, прежде чем мы приблизимся к 99.9% успеха.
В этой обзорной статье отлично разбираются современные подходы к VLA. Рекомендую!
Но сначала — коротко о том, что это такое. Всё началось с больших языковых моделей (LLM), с которыми сегодня знакомы почти все. Позже им «дали глаза» — так появились vision-language models (VLM), которые принимают на вход изображение и текст и умеют отвечать на вопросы и рассуждать о картинках.
Логичный следующий шаг: если VLM понимают изображения и язык, почему бы не научить их генерировать действия? Так появились VLA — модели, которые уже показывают неплохие результаты и становятся важным шагом к роботам общего назначения. Но впереди ещё много работы, прежде чем мы приблизимся к 99.9% успеха.
В этой обзорной статье отлично разбираются современные подходы к VLA. Рекомендую!
arXiv.org
Vision Language Action Models in Robotic Manipulation: A Systematic Review
Vision Language Action (VLA) models represent a transformative shift in robotics, with the aim of unifying visual perception, natural language understanding, and embodied control within a single...
🔥9❤5❤🔥3
На прошлой неделе Hugging Face порадовал сразу двумя релизами для всех, кто интересуется робототехникой
1️⃣ Обзорная статья по Robot Learning
Отличный разбор всех современных подходов: обучение с подкреплением, с демонстраций и фундаментальные модели для робототехники (aka VLA — Vision-Language-Action модели).
2️⃣ Полноценный курс по Robot Learning
Подходит даже для абсолютных новичков. Авторы начинают с основ классической робототехники и плавно переходят к фундаментальным моделям.
Если давно хотели разобраться, сейчас идеальный момент — всё собрано в одном месте.
1️⃣ Обзорная статья по Robot Learning
Отличный разбор всех современных подходов: обучение с подкреплением, с демонстраций и фундаментальные модели для робототехники (aka VLA — Vision-Language-Action модели).
2️⃣ Полноценный курс по Robot Learning
Подходит даже для абсолютных новичков. Авторы начинают с основ классической робототехники и плавно переходят к фундаментальным моделям.
Если давно хотели разобраться, сейчас идеальный момент — всё собрано в одном месте.
👍10🔥6❤3
Написали с Антоном небольшую статью про VLA для DeepSchool. Если интересно, заходите читать
❤🔥4🔥3👍2
Forwarded from DeepSchool
Vision-Language-Action (VLA) Models: от токенов к действиям
Современные мультимодальные модели умеют работать с визуальными данными и текстом. Следующий шаг их развития — взаимодействие с физическим миром. Для управления роботами создаются Vision-Language-Action (VLA) модели, которые переводят визуальные данные и текстовые инструкции прямо в моторные команды робота. О том, как устроены такие модели, рассказываем в новой статье. 🤖
Из неё вы узнаете:
• как устроены VLA-модели — от визуального энкодера до генератора действий
• какие архитектуры используются для предсказания движений — от дискретных токенов до диффузий и Flow Matching'а
• какие существуют подходы к дообучению систем — от полного fine-tuning'а до PEFT-методов, таких как LoRA
• с какими проблемами сталкиваются VLA в реальном мире: задержки, накопление ошибок и безопасность
Читайте новую статью по ссылке! 🚀
🪔 DeepSchool
Современные мультимодальные модели умеют работать с визуальными данными и текстом. Следующий шаг их развития — взаимодействие с физическим миром. Для управления роботами создаются Vision-Language-Action (VLA) модели, которые переводят визуальные данные и текстовые инструкции прямо в моторные команды робота. О том, как устроены такие модели, рассказываем в новой статье. 🤖
Из неё вы узнаете:
• как устроены VLA-модели — от визуального энкодера до генератора действий
• какие архитектуры используются для предсказания движений — от дискретных токенов до диффузий и Flow Matching'а
• какие существуют подходы к дообучению систем — от полного fine-tuning'а до PEFT-методов, таких как LoRA
• с какими проблемами сталкиваются VLA в реальном мире: задержки, накопление ошибок и безопасность
Читайте новую статью по ссылке! 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
DeepSchool
Vision-Language-Action (VLA) Models: от токенов к действиям - DeepSchool
Рассказываем, как устроены VLA-модели — от визуального энкодера до генератора действий.
🔥6❤🔥5👍4🐳1
Что такое action chunk и зачем он нужен
Раньше контроллеры управления роботами на каждом временном шаге предсказывали ровно одно действие — например, положение и ориентацию захвата. Это действие затем отрабатывалось низкоуровневыми контроллерами.
На следующем шаге контроллер получал новые наблюдения (изображения с камер и состояние робота) и предсказывал следующее действие. Такой подход позволял роботу быстро реагировать на изменения в окружении.
Сегодня большинство vision-language-action (VLA) и других visuomotor-моделей используют action chunk — проще говоря, генерацию последовательности действий, а не одного действия. Есть несколько причин, почему этот подход работает лучше.
1️⃣ Генерация высокочастотных (быстрых) траекторий
VLA-контроллеры обычно работают на низкой частоте, например ~10 Гц. Это означает, что максимальная частота движения не превышает 5 Гц, что недостаточно для быстрых и точных манёвров.
При использовании action chunk модель может сгенерировать последовательность действий с любой частотой и передать её низкоуровневому контроллеру. В результате становится возможна более динамическая и плавная манипуляция.
2️⃣ Ансамблирование действий
Если в момент времени t_1 мы предсказываем действия (a_1, a_2, a_3, a_4), а в момент t_3 — (a_3, a_4, a_5, a_6), то пересекающиеся действия (a_3, a_4) можно усреднить.
Эмпирически такое ансамблирование повышает стабильность и качество поведения модели.
3️⃣ Компенсация задержек (latency)
Пока в момент t_1 контроллер генерирует действия на основе наблюдений o_1, робот уже успевает сместиться. В результате предсказанное действие соответствует прошлому состоянию сцены.
При использовании последовательности действий и хорошего низкоуровневого контроллера робот продолжает двигаться к запланированному положению, пока модель выполняет инференс, что снижает эффект запаздывания.
В другой раз расскажу как лучше можно решить проблему с запаздыванием.
Раньше контроллеры управления роботами на каждом временном шаге предсказывали ровно одно действие — например, положение и ориентацию захвата. Это действие затем отрабатывалось низкоуровневыми контроллерами.
На следующем шаге контроллер получал новые наблюдения (изображения с камер и состояние робота) и предсказывал следующее действие. Такой подход позволял роботу быстро реагировать на изменения в окружении.
Сегодня большинство vision-language-action (VLA) и других visuomotor-моделей используют action chunk — проще говоря, генерацию последовательности действий, а не одного действия. Есть несколько причин, почему этот подход работает лучше.
1️⃣ Генерация высокочастотных (быстрых) траекторий
VLA-контроллеры обычно работают на низкой частоте, например ~10 Гц. Это означает, что максимальная частота движения не превышает 5 Гц, что недостаточно для быстрых и точных манёвров.
При использовании action chunk модель может сгенерировать последовательность действий с любой частотой и передать её низкоуровневому контроллеру. В результате становится возможна более динамическая и плавная манипуляция.
2️⃣ Ансамблирование действий
Если в момент времени t_1 мы предсказываем действия (a_1, a_2, a_3, a_4), а в момент t_3 — (a_3, a_4, a_5, a_6), то пересекающиеся действия (a_3, a_4) можно усреднить.
Эмпирически такое ансамблирование повышает стабильность и качество поведения модели.
3️⃣ Компенсация задержек (latency)
Пока в момент t_1 контроллер генерирует действия на основе наблюдений o_1, робот уже успевает сместиться. В результате предсказанное действие соответствует прошлому состоянию сцены.
При использовании последовательности действий и хорошего низкоуровневого контроллера робот продолжает двигаться к запланированному положению, пока модель выполняет инференс, что снижает эффект запаздывания.
В другой раз расскажу как лучше можно решить проблему с запаздыванием.
✍8🔥5👍3
Друзья, поздравляю всех с наступившим Новым годом!
Надеюсь, что 2025 год был для вас полон побед — маленьких и больших, а следующий станет ещё лучше🦾
Этот пост — небольшая рефлексия по итогам 2025 года и одновременно вопрос к вам о том, что вам было бы интересно читать в этом канале.
Для меня 2025 год выдался очень насыщенным. В январе я защитился в KU (запись защиты) Leuven и спустя почти 4 года стал PhD.
Сразу после этого мы с женой и нашей трёхмесячной дочкой переехали в Баку, Азербайджан — чтобы спокойно искать работу в США, UK и России. После стажировки в Amazon и окончания PhD я, честно говоря, ожидал больше приглашений на интервью, чем получил.
Прошёл 8кругов ада этапов интервью в Яндекс Humanoid и в итоге получил отказ; дошёл до финала в Humanoids. Офферы же получил от Центра робототехники Сбера и Navio.
Хотя автономное вождение изначально не было для меня приоритетом, по совокупности интереса и компенсации этот вариант оказался лучшим. Уже в конце апреля я переехал в Москву и начал работать.
В Navio сначала занимался обучением из демонстраций в рамках модульного подхода, а затем — vision-language-action моделями. За эти 9 месяцев я очень многому научился и совершенно не жалею, что пошёл в автономное вождение.
Помимо основной работы, я писал статьи в DeepSchool (раз, два) и старался писать здесь. Было забавно, когда несколько человек на работе узнали меня именно по статьям в DeepSchool.
В новом году хочу писать здесь больше, а также попробовать себя в менторстве. Поэтому хочу спросить вас: о чём вам было бы интереснее читать? Например: обзоры статей, стартапов, рост в IT, больше личных постов — или что-то ещё. Буду очень благодарен, если напишете в комментариях.
Надеюсь, что 2025 год был для вас полон побед — маленьких и больших, а следующий станет ещё лучше🦾
Этот пост — небольшая рефлексия по итогам 2025 года и одновременно вопрос к вам о том, что вам было бы интересно читать в этом канале.
Для меня 2025 год выдался очень насыщенным. В январе я защитился в KU (запись защиты) Leuven и спустя почти 4 года стал PhD.
Сразу после этого мы с женой и нашей трёхмесячной дочкой переехали в Баку, Азербайджан — чтобы спокойно искать работу в США, UK и России. После стажировки в Amazon и окончания PhD я, честно говоря, ожидал больше приглашений на интервью, чем получил.
Прошёл 8
Хотя автономное вождение изначально не было для меня приоритетом, по совокупности интереса и компенсации этот вариант оказался лучшим. Уже в конце апреля я переехал в Москву и начал работать.
В Navio сначала занимался обучением из демонстраций в рамках модульного подхода, а затем — vision-language-action моделями. За эти 9 месяцев я очень многому научился и совершенно не жалею, что пошёл в автономное вождение.
Помимо основной работы, я писал статьи в DeepSchool (раз, два) и старался писать здесь. Было забавно, когда несколько человек на работе узнали меня именно по статьям в DeepSchool.
В новом году хочу писать здесь больше, а также попробовать себя в менторстве. Поэтому хочу спросить вас: о чём вам было бы интереснее читать? Например: обзоры статей, стартапов, рост в IT, больше личных постов — или что-то ещё. Буду очень благодарен, если напишете в комментариях.
👏12🎄9❤4
Год назад я собеседовался в Яндекс Humanoid, прошел через 7 раундов интервью и получил отказ. Рассказываю, как это было.
После предзащиты PhD я начал активно искать работу в робототехнике. Откликнулся на позицию контрол-инженера в Яндекс Humanoid, но в процессе собеседований фокус проекта менялся — под конец меня рассматривали уже на роль инженера по манипуляции.
Первое интервью было с лидом (на тот момент), где меня спрашивали всё про контрол: передаточные функции, модели пространства состояний, стабильность систем, MPC, LQR, наблюдатели. Для подготовки я использовал курс Automatic Control от Alberto Bemporad.
Второе интервью было на профильное программирование, в моем случае на контрол. Дали нестабильную систему с двумя состояниями, и попросили спроектировать контроллер и наблюдатель. Я реализовал LQR для стабилизации и LQE для оценки состояний. Использовал Python-библиотеку control и scipy.signal.
Третье интервью было на динамику робототехнических систем. Дали двойной маятник на платформе и попросили вывести уравнения динамики. Можно было использовать что угодно, даже симуляторы типа Mujoco. Но я решил вывести уравнения символьно, используя CasADi для вычисления производных Лагранжиана. Спрашивали про свойства матриц инерции и кориолисовых сил. Хорошим источником для подготовки к такому интервью — курс Underactuated Robotics от Russ Tedrake.
Четвертое интервью было про robotics system design. Попросили спроектировать автономную машину. Надо было рассказать, какие есть модули (карты, восприятие, планирование…) и как они между собой взаимодействуют. Интервьюер порой задавал очень низкоуровневые вопросы, типа — какие протоколы лучше использовать для обмена данными между модулями. Для подготовки сложно было найти какие-либо материалы. В отдельном посте расскажу, как бы я сейчас готовился к такому интервью.
Пятый и шестой раунды интервью были с директорами проекта. Там они много спрашивали про мой опыт и мои мысли о проекте, и о задачах, которые я могу взять на себя. Также подробно спрашивали, как бы я решал конкретные проблемы.
Седьмое интервью было с HR-бизнес-партнером. Про такую позицию я узнал впервые в жизни. Я понятия не имел, как готовиться к этому интервью. В итоге мы просто общались про мой опыт и мотивацию.
В конце мне неофициально дали отказ. Главная причина — отсутствие коммерческого опыта в ML. Было обидно, но потом я узнал, что часто после PhD требуют год или более опыта.
Рассказывайте в комментариях про свой опыт интервью в робототехнике.
После предзащиты PhD я начал активно искать работу в робототехнике. Откликнулся на позицию контрол-инженера в Яндекс Humanoid, но в процессе собеседований фокус проекта менялся — под конец меня рассматривали уже на роль инженера по манипуляции.
Первое интервью было с лидом (на тот момент), где меня спрашивали всё про контрол: передаточные функции, модели пространства состояний, стабильность систем, MPC, LQR, наблюдатели. Для подготовки я использовал курс Automatic Control от Alberto Bemporad.
Второе интервью было на профильное программирование, в моем случае на контрол. Дали нестабильную систему с двумя состояниями, и попросили спроектировать контроллер и наблюдатель. Я реализовал LQR для стабилизации и LQE для оценки состояний. Использовал Python-библиотеку control и scipy.signal.
Третье интервью было на динамику робототехнических систем. Дали двойной маятник на платформе и попросили вывести уравнения динамики. Можно было использовать что угодно, даже симуляторы типа Mujoco. Но я решил вывести уравнения символьно, используя CasADi для вычисления производных Лагранжиана. Спрашивали про свойства матриц инерции и кориолисовых сил. Хорошим источником для подготовки к такому интервью — курс Underactuated Robotics от Russ Tedrake.
Четвертое интервью было про robotics system design. Попросили спроектировать автономную машину. Надо было рассказать, какие есть модули (карты, восприятие, планирование…) и как они между собой взаимодействуют. Интервьюер порой задавал очень низкоуровневые вопросы, типа — какие протоколы лучше использовать для обмена данными между модулями. Для подготовки сложно было найти какие-либо материалы. В отдельном посте расскажу, как бы я сейчас готовился к такому интервью.
Пятый и шестой раунды интервью были с директорами проекта. Там они много спрашивали про мой опыт и мои мысли о проекте, и о задачах, которые я могу взять на себя. Также подробно спрашивали, как бы я решал конкретные проблемы.
Седьмое интервью было с HR-бизнес-партнером. Про такую позицию я узнал впервые в жизни. Я понятия не имел, как готовиться к этому интервью. В итоге мы просто общались про мой опыт и мотивацию.
В конце мне неофициально дали отказ. Главная причина — отсутствие коммерческого опыта в ML. Было обидно, но потом я узнал, что часто после PhD требуют год или более опыта.
Рассказывайте в комментариях про свой опыт интервью в робототехнике.
🔥5❤1