Брайан Мур, соучредитель и технический директор Voxel51, недавно выступил на Virtual MLOps and Kubeflow Meetup, чтобы рассказать, как Voxel51 помогает инженерам и ученым в области компьютерного зрения и машинного обучения обучать более совершенные модели с более качественными данными.

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

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

Если у вас есть дополнительные вопросы о машинном обучении, ориентированном на данные, FiftyOne, FiftyOne Teams или других темах компьютерного зрения, присоединяйтесь к нашему сообществу Slack, чтобы задавать вопросы и получать ответы или следить за обсуждением.

Видео повтор

Чтобы погрузиться в презентацию встречи, посмотрите эту запись и/или продолжите чтение основных моментов ниже:

Основные моменты презентации

Представляем Voxel51

Брайан открывает презентацию встречи кратким рассказом о происхождении Voxel51, который был задуман, когда он встретил Джейсона Корсо в Мичиганском университете. Возникла идея восполнить пробел в инструментах машинного обучения, чтобы внедрить модели компьютерного зрения в производство. Так родились Voxel51 и проект FiftyOne с открытым исходным кодом.

Представляем машинное обучение, ориентированное на данные

В основе готовых к производству моделей лежит машинное обучение, ориентированное на данные. Что такое ориентированное на данные машинное обучение? Брайан объясняет, что самая большая проблема при внедрении модели компьютерного зрения в производство сегодня — это не архитектура модели, потому что существует множество архитектур, которые вы можете использовать, и отличные инструменты, которые помогут вам их обучать. Скорее, самая большая проблема заключается в том, как улучшить качество ваших данных.

Визуальные наборы данных сегодня огромны, сейчас они достигают сотен миллионов образцов, и у вас нет времени просеять их все, чтобы отловить какие-либо ошибки. Может быть, вы можете довольно легко достичь точности 80% в своем наборе данных или с некоторой дополнительной работой вы даже можете достичь 90%, но этого недостаточно, потому что это может привести к огромным проблемам на серверной части системы из-за таких проблем, как предвзятость предсказания или пограничные случаи реального мира, которые просто не будут работать для продукта, который вы выпускаете в мир.

Когда у вас есть модель, обученная на данных низкого качества, это также может привести к значительному снижению производительности этой модели, потому что данные, которые вы ей подавали, были некачественными. Итак, как вы можете улучшить качество своих визуальных наборов данных, чтобы получить модели с более высокой производительностью?

Куда вписывается FiftyOne

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

FiftyOne в действии

Затем Брайан показывает живую демонстрацию (начиная примерно с 12:00 в воспроизводимом видео) FiftyOne, которая проведет вас через:

  • Как установить последнюю стабильную версию FiftyOne через pip
  • Как загрузить набор данных, в том числе:
     – общие наборы данных, такие как COCO и ActivityNet, с использованием FiftyOne Dataset Zoo
     – наборы данных, использующие стандартные форматы данных, такие как формат COCO
     – пользовательские наборы данных в вашем собственном формате.
    — Наборы данных изображений, а также наборы видеоданных
  • Как визуализировать набор данных в графическом интерфейсе или коде, в том числе:
    – как фильтровать и просматривать конкретные данные, представляющие интерес
    – как гибко взаимодействовать с вашими данными через графический интерфейс и/или код
  • Как импортировать FiftyOne Brain для поиска данных по визуальному сходству, уникальности, вычислению собственных вложений и т. д.
  • Как работать с FiftyOne в интерактивной оболочке Python
  • Как работать с FiftyOne в блокнотах Jupyter
  • Как на практике работать с данными в блокнотах Jupyter, в том числе как провести эксперимент с набором данных рукописных цифр, чтобы найти ошибки в аннотациях и автоматически или полуавтоматически аннотировать наборы данных.
  • Еще один пример практического использования данных в блокнотах Jupyter, в том числе использование вложений моделей из Model Zoo вместе с возможностями визуализации в эксперименте с использованием BDD100K для поиска выбросов и ошибок в аннотациях.

FiftyOne: ресурсы и дальнейшие шаги

Брайан делится некоторыми ресурсами и дальнейшими шагами, которые помогут вам начать работу и внести свой вклад в проект FiftyOne с открытым исходным кодом:

Легкое чтение:

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

Благодарность FiftyOne Teams

Для тех из вас, кто интересуется, как мы зарабатываем деньги, Брайан объясняет, что мы продаем версию FiftyOne под названием FiftyOne Teams. Teams — это версия FiftyOne с открытым исходным кодом, предназначенная для организаций, которые хотят использовать FiftyOne в качестве единственного источника достоверных данных. Это SaaS-развертывание FiftyOne с централизованной базой данных. У вас может быть несколько рабочих процессов с использованием Python параллельно для загрузки данных как локально, так и в облаке. Вы можете визуализировать свои наборы данных через веб-портал, даже не используя Python, что делает его более подходящим для нетехнических рабочих процессов. Если вы хотите узнать больше о Teams, просто заполните эту форму, и мы свяжемся с вами.