Примечание. 1 апреля 2023 года компания Woven Planet получила статус Woven by Toyota.

Абстрактный

Данные играют ключевую роль в разработке Arene, целью которой является создание действительно современного программного обеспечения мобильности в качестве основы для транспортных средств следующего поколения. Когда вы создаете платформу данных, очень важно понимать, какие данные вы будете принимать и как ваши пользователи планируют взаимодействовать с ними. Зная это, вы сможете встроить в свою платформу различные механизмы, обеспечивающие необходимый уровень контроля для минимизации затрат и максимальной эффективности. В этом посте я расскажу о том, как наша унаследованная платформа данных в Woven Planet Holdings, Inc. (Woven Planet) было бы полезно заранее лучше понять данные и пользователей, а также какие уроки мы будем извлекать из следующего поколения больших данных в Woven Planet.

Фон

Первая платформа данных, созданная Woven Planet, за два года приняла двузначные петабайты данных. Наши пользователи успешно находили нужные им данные и, следовательно, могли создавать и развертывать различные модели автоматизированного вождения / расширенной системы поддержки вождения (AD/ADAS) на автомобилях Toyota Motor Corporation, что в конечном итоге повысило безопасность и мобильность клиентов. По общему мнению, эта платформа имела успех. После двух лет работы у нас была возможность подвергнуть сомнению сделанные нами первоначальные предположения и узнать, что мы могли бы сделать еще лучше. Давайте посмотрим на некоторые примеры.

упорно работать

Возможно, наиболее ярким примером является то, как наша платформа обрабатывала изображения, записанные нашим испытательным парком. Конвейер приема данных получал видео, записанное различными камерами по всему парку, а затем извлекал из этого видео изображения низкого качества с низкой частотой дискретизации. Эти низкокачественные изображения, называемые изображениями с потерями, можно было быстро извлечь и дешево хранить, поэтому мы решили, что это эффективный способ заполнить каталог всех доступных изображений. Затем наши пользователи просматривали этот каталог, чтобы найти изображения, необходимые им для разработки модели, и запрашивали у платформы данных повторное извлечение тех же изображений с частотой дискретизации/качеством изображения, подходящим для обучения машинному обучению (МО). Мы называем эти изображения изображениями без потерь.

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

Преимущества и недостатки

Хотя подход, описанный выше, был расточительным, он все же имел некоторые преимущества. Это позволило нам сразу повысить ценность для наших пользователей, которым срочно нужно было начать взаимодействовать с данными.

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

Однако давайте подумаем о проблемах, которые создает этот подход. Прежде всего, это стоимость. Хранение сотен миллионов изображений на активном уровне хранения S3 недешево, равно как и стоимость запуска различных кластеров Electronic Map Reduce (EMR) для извлечения изображений, которые никому не интересны. Этот подход может работать для небольших наборов данных, но просто не соответствует будущим потребностям Woven Planet.

Кроме того, было бы непомерно дорого извлекать несколько комбинаций качества изображения/частоты дискретизации заранее, поэтому наши пользователи застряли только с одной комбинацией. Если частота кадров 1 FPS соответствует их потребностям, это здорово! Если нет, то им не повезло. На самом деле, когда вы начинаете отслеживать объекты на высоких скоростях, 1 FPS просто не помогает.

Умная работа

Наш подход «усердно работать» плохо масштабировался, поэтому давайте вместо этого рассмотрим подход «работа с умом». Проанализировав отчеты об использовании за два года, мы пришли к ключевому выводу. Мы непреднамеренно соединили обнаружение данных с извлечением данных.

Наш каталог метаданных сообщает нашим пользователям, какие данные у нас есть, предоставляя индексы для атрибутов карты, данных о погоде, времени суток и т. д. Затем каталог изображений связывает эти метаданные со всеми изображениями с потерями, поэтому наши пользователи могут использовать метаданные для поиска и просматривать изображения с потерями. Но, возможно, нет необходимости заранее создавать каталог изображений.

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

Преимущества и недостатки

Являясь владельцами платформы, очевидно, что основным преимуществом является стоимость. Переход к извлечению изображений по запросу позволяет нам выполнять наименьший объем работы, необходимой для удовлетворения потребностей наших пользователей. Это более эффективно с точки зрения ресурсов и затрат, чем подход «усердно работать».

Кроме того, это также дает пользователям значительно больший контроль над тем, какие изображения они хотят. Пользователь А может просмотреть каталог метаданных и запросить 1 кадр/с / с потерями / JPG, а пользователь Б может просмотреть те же метаданные и вместо этого запросить 10 кадров в секунду / без потерь / PNG. Отделяя наши метаданные от извлечения изображений, мы позволяем себе обслуживать нескольких пользователей с одними и теми же базовыми данными.

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

Уроки выучены

  1. Поначалу усердно работайте, но постоянно ищите способы работать с умом. Работать усердно часто легче, она быстро создает краткосрочную ценность для пользователей и дает ценные отзывы о правильности ваших предположений. Однако мы должны быть готовы использовать эту обратную связь для перехода к умной работе.
  2. Потратьте время, чтобы понять, какие данные у вас есть и как ваши пользователи хотят с ними взаимодействовать. Кроме того, разбейте варианты использования ваших пользователей и поймите, какие варианты использования составляют 99%, для которых вы хотите оптимизировать, а какие — 1%, который вы готовы отложить до будущей версии вашей платформы. Если бы мы знали, что 99% наших пользователей будет интересоваться лишь небольшим процентом наших данных, мы бы приняли совершенно другие решения на раннем этапе.
  3. Создавайте несвязанные компоненты, которые хорошо работают вместе. Отделив обнаружение данных от их извлечения, мы отказались от универсального подхода и вместо этого позволили нашим пользователям взаимодействовать с данными на их собственных условиях.
  4. Отделение обнаружения данных от извлечения данных также является важным первым шагом к нашему видению сетки данных. Когда в наш каталог добавляются новые фрагменты метаданных, пользователям не нужно ждать, пока будут добавлены все метаданные. Вместо этого мы видим мир, в котором пользователи могут нацеливаться на определенные метаданные, которые им интересны, и инициировать извлечение или даже другие действия на основе этих метаданных.

Следующие шаги

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