Создание проекта маркировки данных и экспорт меток

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

Возможности маркировки данных

Важно!

Данные изображений или текст должны быть доступны в хранилище данных BLOB-объектов Azure. (Если у вас нет хранилища данных, вы можете отправлять файлы при создании проекта.)

Данные изображений могут представлять собой файлы любого из следующих типов: JPG, JPEG, PNG, JPE, JFIF, BMP, TIF, TIFF, DCM, DICOM. Каждый файл является элементом, которому нужно назначить метку.

Текстовые данные могут быть файлами ".txt" или ".csv".

  • Для файлов ".txt" каждый файл представляет один элемент, который должен быть помечен.
  • Для файлов ".csv" каждая строка файла является одним элементом для метки.

Маркировка данных Машинного обучения Azure служит централизованным расположением для создания, администрирования и мониторинга проектов добавления меток:

  • Координируйте данные, метки и работу команды, чтобы эффективно управлять задачами добавления меток.
  • При этом отслеживается ход выполнения задач присвоения меток и поддерживаются очереди незавершенных задач.
  • Запускайте и останавливайте проект, а также управляйте ходом выполнения маркировки.
  • Просматривайте помеченные данные и экспортируйте их в формате COCO или в качестве набора данных Машинного обучения Azure.

Предварительные требования

Создание проекта маркировки данных

Проекты добавления меток администрируются в Машинном обучении Azure. Управлять проектами можно на странице Labeling projects (Проекты маркировки).

Если данные уже размещены в хранилище BLOB-объектов Azure, перед созданием проекта добавления меток сделайте данные доступными в виде хранилища данных. Пример использования хранилища данных см. в руководстве по созданию проекта маркировки классификации изображений.

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

Проект добавления меток для изображений

  • Выберите Изображение, чтобы создать проект добавления меток для изображений.

    Создание проекта добавления меток для изображений

    • Выберите тип Классификация изображений с множеством классов, если в проекте вам нужно применить к каждому изображению одну метку из набора меток.
    • Выберите тип Классификация изображений с множеством меток, если в проекте вам нужно применить к каждому изображению одну или несколько меток из определенного набора меток. Например, фотографии собаки можно одновременно присвоить метки dog (собака) и daytime (день).
    • Выберите тип Object Identification (Bounding Box) (Идентификация объекта (ограничивающий прямоугольник)), если в проекте вам нужно присвоить метку и ограничивающий прямоугольник каждому объекту на изображении.
    • Выберите тип Сегментация экземпляра (многоугольник) для проекта, если вам нужно присвоить метку и нарисовать многоугольник вокруг каждого объекта на изображении.
  • Щелкните Далее, когда будете готовы продолжать работу.

Проект добавления меток для текста (предварительная версия)

Важно!

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

  • Выберите Текст, чтобы создать проект добавления меток для текста.

    Создания проекта добавления меток для текста

    • Выберите тип Классификация текста с множеством классов (предварительная версия) , если в проекте вам нужно применить к каждому отрывку текста одну метку из набора меток.
    • Выберите тип Классификация текста с множеством меток (предварительная версия) , если в проекте вам нужно применить к каждому отрывку текста одну или несколько меток из набора меток.
  • Щелкните Далее, когда будете готовы продолжать работу.

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

Если вы уже создали набор данных, который содержит нужные данные, его можно выбрать из раскрывающегося списка Select an existing dataset (Выбрать существующий набор данных). Либо щелкните Создать набор данных, чтобы выбрать существующее хранилище Azure или отправить локальные файлы.

Примечание

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

Создание набора данных из хранилища данных Azure

Во многих случаях достаточно просто отправить локальные файлы. Но Обозреватель службы хранилища Azure предоставляет более быстрый и надежный способ для перемещения большого объема данных. Мы рекомендуем по умолчанию использовать Обозреватель службы хранилища для перемещения файлов.

Чтобы создать набор данных на основе данных, которые вы уже сохранили в хранилище BLOB-объектов Azure, сделайте следующее:

  1. Щелкните Создать набор данных > From datastore (Из хранилища данных) .
  2. Введите имя для набора данных.
  3. Выберите тип набора данных. Для изображений поддерживаются только наборы данных файлового типа. Для проекта добавления меток для текста выполните указанные ниже действия.
    • Если вы используете CSV-файл, в котором каждая строка является ответом, щелкните Табличная.
    • Если вы используете отдельные TXT-файлы для каждого ответа, щелкните Файл.
  4. Выберите хранилище данных.
  5. Если данные находятся во вложенной папке в хранилище BLOB-объектов, щелкните Обзор и выберите нужный путь.
    • Вы также можете добавить символы "/**" в конце пути, чтобы включить все файлы во вложенных папках выбранного пути.
    • Добавьте символы "* / .*", чтобы включить все данные в текущем контейнере и вложенных папках.
  6. Введите описание набора данных.
  7. Выберите Далее.
  8. Подтвердите введенные данные. Щелкните Назад, чтобы изменить параметры или Создать, чтобы создать новый набор данных.

Создание набора данных из отправленных данных

Чтобы отправить данные напрямую, сделайте следующее:

  1. Щелкните Создать набор данных > From local files (Из локальных файлов) .
  2. Введите имя для набора данных.
  3. Выберите тип набора данных. Для изображений поддерживаются только наборы данных файлового типа. Для проекта добавления меток для текста выполните указанные ниже действия.
    • Если вы используете CSV-файл, в котором каждая строка является ответом, щелкните Табличная.
    • Если вы используете отдельные TXT-файлы для каждого ответа, щелкните Файл.
  4. Необязательно. Щелкните Дополнительные параметры, чтобы настроить хранилище данных, контейнер и путь к данным.
  5. Щелкните Обзор, чтобы выбрать локальные файлы для отправки.
  6. Введите описание набора данных.
  7. Выберите Далее.
  8. Подтвердите введенные данные. Щелкните Назад, чтобы изменить параметры или Создать, чтобы создать новый набор данных.

Данные отправляются в хранилище больших двоичных объектов по умолчанию ("workspaceblobstore") в рабочей области Машинного обучения.

Настройка добавочного обновления

Если вам нужно добавить новые файлы в набор данных проекта, используйте добавочное обновление. Когда включено добавочное обновление, набор данных периодически проверяется для добавления новых изображений. Частота зависит от скорости маркировки. Проверка на наличие новых данных прекращается, если проект содержит максимальное число файлов (500 000).

Чтобы добавить в проект дополнительные файлы, отправьте данные в соответствующую папку в хранилище BLOB-объектов с помощью Обозревателя службы хранилища Azure.

Установите флажок Enable incremental refresh (Включить добавочное обновление), если нужно, чтобы в хранилище данных для проекта постоянно отслеживалось появление новых данных. При включенном параметре эти данные будут извлекаться в проект один раз в день. Поэтому на появление данных в вашем проекте после их добавления в хранилище данных требуется некоторое время. Метку времени для последнего обновления данных можно просмотреть в разделе Incremental refresh (Добавочное обновление) на вкладке Details (Подробные сведения) для вашего проекта.

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

Указание классов меток

На странице Label classes (Классы меток) укажите набор классов для категоризации данных. Точность и скорость работы маркировщиков зависят от их способности правильно выбрать класс. Например, вместо полных наименований видов и родов растений или животных используйте кодовые или сокращенные наименования.

Каждую метку указывайте на отдельной строке. Нажмите кнопку + , чтобы добавить новую строку. Если число меток больше 3-4, но меньше 10, можно добавить к именам префиксы ("1:", "2:"), чтобы маркировщики могли ускорить работу с помощью числовых клавиш.

Описание задачи маркировки данных

Важно четко объяснить задачу добавления меток. Страница Labeling instructions (Инструкции по маркировке) позволяет указать ссылку на внешний сайт с информацией о добавлении меток или предоставить инструкции в поле ввода на странице. Инструкции должны описывать конкретные задачи понятным для целевой аудитории образом. Обдумайте следующие вопросы:

  • Какие метки увидят пользователи и как сделать выбор между метками? Есть ли справочный текст, которым можно пользоваться?
  • Что делать, если ни одна метка не подходит?
  • Что делать, если подходят несколько меток?
  • Какой уровень достоверности следует применять к метке? Нужно ли указывать лучший из предполагаемых вариантов, если нет уверенности?
  • Что делать с частично перекрытыми объектами?
  • Что делать, если объект обрезается краем изображения?
  • Что делать, если после отправки метки оказывается, что допущена ошибка?

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

  • Как для этой задачи задается ограничивающий прямоугольник? Должен ли он размещаться полностью внутри объекта или полностью снаружи? Нужно ли обрезать его как можно точнее или допустим некоторый зазор?
  • Какой уровень точности и согласованности ожидается при определении ограничивающих прямоугольников?
  • Как пометить объект, частично показанный на изображении?
  • Как пометить объект, частично перекрытый другим объектом?

Примечание

Не забудьте указать, что маркировщик может выбрать первые 9 меток с помощью цифровых клавиш 1–9.

Использование маркировки данных с применением машинного обучения

На странице ML assisted labeling (Маркировка с использованием машинного обучения) можно активировать автоматические модели машинного обучения, чтобы ускорить выполнение задач маркировки. Это доступно только для меток изображений. Функция автоматической маркировки не поддерживает медицинские изображения (DCM-файлы).

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

Выберите Enable ML assisted labeling (Включить маркировку с помощью машинного обучения) и укажите GPU, чтобы включить полуавтоматическую маркировку, которая состоит из двух этапов:

  • Кластеризация (для меток изображений)
  • Предварительная маркировка

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

Поскольку итоговые метки по-прежнему зависят от входных данных, предоставленных маркировщиком, эта технология иногда называется маркировкой с участием человека.

Примечание

Служба маркировки данных, использующая Машинное обучение Azure, не поддерживает учетные записи хранения, используемые по умолчанию и защищенные за границей виртуальной сети. Для маркировки данных с помощью машинного обучения необходимо использовать учетную запись хранения, не используемую по умолчанию. Учетная запись хранения, не используемая по умолчанию, может быть защищена виртуальной сетью.

Кластеризация

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

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

Стадия кластеризации не отображается для моделей обнаружения объектов или классификации текста.

Предварительная маркировка

После отправки достаточного количества меток для прогнозирования тегов используется модель классификации. Или модель обнаружения объектов используется для прогнозирования ограничивающих прямоугольников. Теперь для маркировщика отображаются страницы, где каждый элемент уже содержит предполагаемые метки. Для обнаружения объектов также показаны прогнозируемые поля. Следующая задача — просмотреть эти прогнозирования и исправить все неправильно маркированные изображения перед отправкой страницы.

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

Инициализация проекта маркировки данных

После инициализации проекта добавления меток вы не сможете изменить некоторые его аспекты. Например, нельзя изменить тип задачи или набор данных. Но вы можете изменять метки и URL-адрес с описанием задачи. Внимательно проверьте параметры перед созданием проекта. После отправки проекта вернитесь на стартовую страницу Метки данных, где для этого проекта отображается состояние Инициализация.

Примечание

Эта страница может не обновляться автоматически. Поэтому подождите немного и вручную обновите страницу. Состояние проекта должно измениться на Создано.

Запуск и мониторинг проекта.

После инициализации проекта в Azure начнется его выполнение. Выберите проект на главной странице Маркировка данных, чтобы увидеть сведения о проекте.

Чтобы приостановить или перезапустить проект, переключите статус Выполняется в правом верхнем углу. Данные можно помечать только в выполняемом проекте.

Панель мониторинга

На вкладке Панель мониторинга отображается ход выполнения задачи добавления меток.

Панель маркировки данных

Диаграмма хода выполнения показывает, сколько элементов помечено и сколько осталось непомеченных элементов. Возможно, ожидающие элементы:

  • еще не добавлены в задачу;
  • включены в задачу, которая присваивается создателю меток, но еще не завершена;
  • в очереди задач, которые еще не назначены.

В среднем разделе показана очередь задач, которые еще нужно назначить. Если маркировка с помощью ML отключена, в этом разделе будет отображатся количество назначаемых вручную задач. Если маркировка с помощью ML включена, также будет показано:

  • задачи, содержащие кластерные элементы в очереди;
  • задачи, содержащие предварительно помеченные элементы в очереди.

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

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

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

Вкладка с данными

На вкладке Данные можно просмотреть набор данных и помеченные данные. Если данные помечены неправильно, выберите их и щелкните Отклонить, чтобы удалить метки и поместить эти данные обратно в очередь данных без меток.

Вкладка "Подробные сведения"

Просмотр сведений о проекте. На этой вкладке можно выполнить следующие действия:

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

Доступ до маркировщиков

Любой пользователь, имеющий доступ к вашей рабочей области, может пометить данные в проекте. Кроме того, вы можете настроить разрешения для маркировщиков, чтобы у них был доступ к маркировке, но не к другим частям рабочей области или к проекту маркировки. Дополнительные сведения см. в статьях Управление доступом к рабочей области Машинного обучения Azure, а также узнайте, как создатьпользовательскую роль маркировщика.

Добавление нового класса меток в проект

При маркировке данных вы можете обнаружить, что для классификации изображений необходимы дополнительные метки. Например, чтобы указать непонятные изображения, может потребоваться добавить метку "Неизвестное" или "Прочее".

Чтобы добавить одну или несколько меток в проект, выполните следующие действия.

  1. Выберите проект на главной странице Метки данных.
  2. В правом верхнем углу страницы измените статус с Выполняется на Приостановлено, чтобы остановить маркировщики.
  3. Выберите вкладку Сведения.
  4. В меню слева выберите пункт Label classes (Классы меток).
  5. В верхней части списка выберите + Add Labels (+ Добавление метки) Добавить метку.
  6. Добавьте новую метку в форме и выберите способ продолжения. Поскольку вы изменили доступные метки, вы выбираете, как обрабатывать уже помеченные данные.
    • Начать заново, удалив всех существующих меток. Выберите этот параметр, если необходимо начать добавление меток сначала с полным набором меток.
    • Начать заново, сохраняя все существующие метки. Выберите этот параметр, чтобы пометить все данные как не помеченные, но оставьте существующие метки в качестве тега по умолчанию для изображений, которые были помечены ранее.
    • Продолжайте, сохраняя все существующие метки. Выберите этот параметр, чтобы сохранить все данные уже помеченными как есть, и начните использовать новую метку для данных, которые еще не помечены.
  7. При необходимости измените страницу инструкции для новых меток.
  8. После добавления всех новых меток в правом верхнем углу страницы измените статус с Приостановлено на Выполняется, чтобы перезапустить проект.

Экспорт меток.

Используйте для этого кнопку Экспорт на странице Сведения о проекте для проекта добавления меток. Вы можете в любое время экспортировать данные меток для эксперимента машинного обучения.

Вы можете обращаться к экспортированному набору данных Машинного обучения Azure через раздел Наборы данных в Машинном обучении. На странице сведений о наборе данных есть пример кода для доступа к меткам из Python.

Экспортированный набор данных

Устранение неполадок

Воспользуйтесь этими советами при возникновении следующих проблем.

Проблема Решение
Можно использовать только наборы данных, созданные в хранилищах BLOB-объектов. Это известное ограничение текущего выпуска.
После создания проект длительное время отображает состояние "Инициализация". Вручную обновите страницу. Инициализация должна выполняться со скоростью примерно 20 точек данных в секунду. Отсутствие автообновления является известной проблемой.
При просмотре изображений новые помеченные изображения не отображаются. Чтобы загрузить все помеченные изображения, нажмите кнопку Первая. Кнопка Первая вернет вас к началу списка, при этом будут загружены все помеченные данные.
Нажатие клавиши ESC при присвоении метки для обнаружения объектов создает метку нулевого размера в левом верхнем углу. Отправка меток в этом состоянии завершается ошибкой. Удалите метку, щелкнув значок крестика рядом с ней.
Не удалось назначить набор задач указанному маркировщику. Это известное ограничение текущего выпуска.

Дальнейшие действия