Комплексная платформа для аннотации данных для машинного обучения

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

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

Многие команды пошли по пути наименьшего сопротивления: электронные таблицы. Электронные таблицы, которые легко создавать и публиковать, представляют собой простой, но неоптимальный интерфейс для аннотаторов, ограниченных табличными и текстовыми данными. Мы изучали коммерческие решения, такие как MTurk, Figure Eight, Scale.ai и другие, но проблемы конфиденциальности данных и доменная специфика наших данных усложнили задачу для неспециалистов. Мы хотим инвестировать в создание качественных наборов данных с внутренними аннотаторами, которые являются экспертами в предметной области, а не в долгосрочную опору на внешних аннотаторов, которых нам придется время от времени переучивать. Мы также рассмотрели проекты с открытым исходным кодом, которые могли бы поддерживать интересующие нас типы данных, но многие в то время были сосредоточены только на данных компьютерного зрения. Подходящим вариантом был Prodigy от Spacy .io, но в нем отсутствовала возможность совместной работы нескольких аннотаторов над одним набором данных.

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

Ключевая особенность

DAML разработан для включения предписывающего процесса аннотации данных со следующими функциями:

  • Интуитивно понятный пользовательский интерфейс, позволяющий сосредоточиться на одной задаче и позволяющий быстро добавлять аннотации.
  • Управление данными: форматы ввода и экспорта соответствуют лучшим практикам, чтобы обеспечить бесшовную интеграцию со структурами машинного обучения. Данные доступны аннотаторам, владельцам проектов и пользователям сервисов, и вы можете в любой момент удалить или добавить новые наборы данных в свои проекты аннотаций.
  • Управление проектами: владелец проекта может изменять существующие проекты (добавлять или удалять данные из проекта, редактировать владельцев проектов и аннотаторов и т. д.), экспортировать и передавать данные пользователям службы, а также полностью просматривать выполнение аннотаций и разрешение конфликтов данных (например, аннотаторы помечают запись как не подходящую для каких-либо меток).
  • Активное обучение: по мере того, как аннотаторы продвигаются по набору данных, DAML обучает модель активного обучения, работающую вместе с вашими аннотаторами, путем непрерывного обучения и совершенствования с использованием самых последних аннотированных данных. Модель активного обучения запрашивает у аннотаторов маркировку данных, которые имеют наибольшее значение, с использованием выборки на основе пула, тем самым сокращая объем помеченных данных для достижения успешного моделирования.
  • API: пользовательский интерфейс Swagger предоставляет площадку для набора общих API-интерфейсов для управления вашими проектами аннотации данных. Вы можете использовать API-интерфейсы для базового CRUD или для программной маркировки ваших данных.

Быстрый старт

Настроить DAML легко, выполнив несколько шагов по настройке каждого компонента:

git clone https://github.com/vmware/data-annotator-for-machine-learning.git

DAML включает три компонента:

  • приложение-аннотация: клиентская сторона, пользовательский интерфейс на основе браузера для управления проектами, управления данными и аннотирования данных. Написано на Angular.
  • annotation-service: приложение узла для внутренних служб.
  • служба активного обучения: служба Django, предоставляющая API активного обучения, который полагается на поддержку библиотеки modAL для выборки неопределенности на основе пула для ранжирования немаркированных данных.

DAML использует AWS S3 для сохранения наборов данных и SQS для больших наборов данных. Просто следуйте инструкциям по быстрой установке и настройке из README, и вы будете готовы к работе через несколько минут.

Теперь давайте посмотрим, как можно использовать DAML для сквозного выполнения проекта аннотации

Создать новый проект аннотации

Для начала вы можете выбрать поддерживаемый тип данных, в том числе: Текст, Изображения, Табличный, NER и Журналы. Идите вперед и создайте новый проект для NER. Перед созданием проекта DAML запросит у вас несколько деталей проекта:

  • Название проекта и инструкции
  • Загрузите свой файл данных или выберите существующий
  • Предварительный просмотр ваших данных и установка ваших данных
  • Добавляйте новые метки и назначайте аннотаторов. Все ваши аннотаторы получат электронные письма с просьбой начать комментировать.

Аннотирование ваших данных

Теперь вы готовы (вместе со всеми, кто участвует в проекте) приступить к аннотированию! Перейдите на вкладку Аннотации и нажмите Начать для своего проекта.

В интерфейсе аннотации вы увидите следующее:

  • Детали аннотации для каждого проекта
  • Переключение между проектами
  • Индикатор выполнения для аннотаторов, чтобы отслеживать их собственный прогресс
  • Полная история помеченных примеров (вы можете щелкнуть по ним, чтобы вернуться к предыдущему элементу)

Один щелчок мыши запишет этикетку. Вы можете пропустить и вернуться к предыдущему элементу в любое время (вы также можете сделать это, щелкнув тикет в разделе «Ход выполнения»).

Управляйте своим проектом аннотации данных

Как владелец проекта вы имеете возможность:

  • Редактировать детали проекта
  • Скачать данные проекта
  • Поделитесь данными проекта
  • Отслеживайте прогресс вашего проекта аннотации

DAML объединяет все метки в реальном времени. Если у вас есть несколько назначенных аннотаторов, вы можете просмотреть ход выполнения проекта, щелкнув имя проекта на вкладке «Проекты». Вы увидите детали проекта, # аннотаций для каждого пользователя, # аннотаций для каждой категории, а также табличное представление всех ярлыков.

Экспорт и обмен данными

Когда вы будете готовы экспортировать помеченные данные для экспериментов, вы можете создать файл для загрузки на вкладке "Проекты". Поддерживаются следующие форматы загрузки:

  • Стандартный: CSV-файл включает столбцы проекта и добавляет новый столбец для каждой категории вместе с табулированными счетчиками.
  • Верхний ярлык: CSV включает только столбцы проекта и верхний ярлык.
  • Вероятностный: CSV-файл включает столбцы проекта и соотношение ярлыков к общему количеству.

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

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

Что дальше

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

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

Это первый из многих блогов, которые мы будем публиковать по данным и машинному обучению в VMware, поэтому вернитесь к этим публикациям, чтобы получать последние обновления!