Три гипотезы о разметке данных, которые мы опровергли

Разметка — подготовка данных для машинного обучения. Мы познакомились с разными подходами к ней, развивая ML-проекты в Яндексе и изучая опыт других компаний. Проверили гипотезы, на которых основаны эти подходы, и отказались от некоторых из них. От каких и почему — рассказывает руководитель Яндекс.Толоки Ольга Мегорская.

Ольга Мегорская
Ольга Мегорская

Гипотеза № 1. Главное — алгоритмы, а данные вторичны

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

На самом деле: необученная ML-модель подобна ребёнку, познающему мир. Ей нужны примеры оценок и решений, чтобы не ошибаться.

  • Беспилотный автомобиль «увидит» пешеходов, только если показать ему сотни тысяч изображений людей на улицах. Поэтому беспилотные автомобили Яндекса, оснащённые камерами, ездят по дорогам в любое время суток, при любой погоде и уже преодолели около 9 миллионов километров.
<p>Беспилотным автомобилям нужно учиться, чтобы начать «видеть» объекты на дороге</p>

Беспилотным автомобилям нужно учиться, чтобы начать «видеть» объекты на дороге

  • Голосовой помощник поймёт, что от него хотят, если изучит тысячи диалогов на разные темы. Потому Алиса «освоила» огромную базу текстов: книги, диалоги из фильмов, посты и комментарии в соцсетях.

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

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

Важно, чтобы размеченные датасеты не содержали ошибок. Обученная на неверных примерах модель и работать будет неправильно. И желательно, чтобы данных было много. Как в обучении людей: чем больше практики — тем совершеннее полученный навык. Даже модели, которым не нужно много данных для решения новых задач, работают в основном благодаря предварительному обучению на больших массивах хорошо размеченных объектов. Например, модель научится классифицировать заявки в техподдержку на небольшом количестве примеров, только если она уже умеет классифицировать тексты в целом.

Наш вывод: не меньше, чем от алгоритмов, качество модели зависит от количества и качества данных, на которых она тренируется. Разметка данных заслуживает и внимания, и ресурсов.

Гипотеза № 2. Для разметки данных не нужны подрядчики, всё надо делать внутри компании

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

На самом деле: самостоятельная разметка отнимает время, которое можно потратить на решение других задач. По расчётам компании Cognilytica, при разработке проектов на базе искусственного интеллекта до 80% времени уходит на подготовку данных и построение процессов для работы с ними.

Разработка ML-модели — исследовательская задача, требующая высокой квалификации и таланта. Нужно знать языки программирования и основы математической статистики, понимать принципы машинного обучения, разбираться в англоязычной документации. Сбор и подготовка данных — задача более простая и монотонная. Снять фото или короткое видео по чёткому ТЗ, расшифровать аудио, оценить картинку — работа, которая выполняется строго по инструкции. Рациональнее тратить время разработчиков не на эту рутину, а на эксперименты и творчество — построение и совершенствование моделей.

<p>Расшифровка коротких аудиозаписей — несложная задача</p>

Расшифровка коротких аудиозаписей — несложная задача

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

В 2008 году для сортировки результатов поиска в Яндексе стали использовать машинное обучение. Тогда у нас появились асессоры — сотрудники, которые оценивали качество поисковой выдачи. Количество проектов с ML росло: к задачам поиска по веб-страницам добавились задачи поиска по картинкам и видео, компьютерного зрения, машинного перевода, голосовых технологий. Требовалось всё больше и больше данных, а значит, нужно было больше людей, которые бы их размечали.

И вот здесь начались трудности: людей надо отбирать, нанимать, контролировать, мотивировать. Нужны руководители, кураторы, HR-менеджеры. В результате за большим количеством управленческих вопросов главная задача — разметка данных — стала отходить на второй план. Мы пришли к выводу, что нам нужны внешние исполнители, и стали искать способы передать разметку им.

Наш вывод: как бы ни хотелось держать всё под личным контролем, разметку данных можно, а с определённого этапа даже нужно делегировать.

Гипотеза № 3. На рынке нет подходящих решений: они или сложные, или некачественные, или и то, и другое

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

На самом деле: ответа два — аутсорсинг и краудсорсинг.

Разметка данных с помощью аутсорсинговой компании похожа на заказ любых других услуг. Обсуждение, договор, ожидание, результат — стандартные этапы процесса. Яндексу не подошёл такой способ — во-первых, из-за сроков. Заключение договора, объяснение задачи, согласование ТЗ требуют времени. Во-вторых, этот процесс также сложно масштабировать. Объём данных, который способна обработать аутсорсинговая компания, ограничен размерами её штата, а наши потребности в разметке постоянно растут.

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

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

У краудсорсинга тоже есть риски: при работе с большим количеством удалённых разметчиков может пострадать качество. Оплата сдельная, и исполнители будут стремиться делать как можно больше за максимально короткое время — спешить и, скорее всего, ошибаться. Чтобы сократить вероятность ошибок, мы построили в Толоке систему контроля качества. Она включает:

  • обучение и экзамены, от результатов которых зависит, допустят ли исполнителя к разметке;
  • защиту от попыток обмана;
  • возможность отстранить пользователей, которые допускают ошибки;
  • возможность передать задачи отстранённых пользователей другим, добросовестным;
  • распределение заданий с помощью ML. Особенность открытой платформы — в неограниченном количестве задач и исполнителей. В Толоке зарегистрировались уже более 9 миллионов человек, а число выполненных ими заданий превысило 5 миллиардов. Используя накопленные знания о действиях исполнителей, мы научили алгоритмы предсказывать, с какими задачами конкретный толокер справляется лучше других. Толока автоматически рекомендует задания тем исполнителям, кто обеспечит заказчику более высокое качество разметки. Для толокеров это тоже плюс: алгоритм предлагает им то, в чём они могут проявить себя и больше заработать.
<p>Настройки контроля качества</p>

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

Создание контрольных, то есть проверочных заданий
Создание контрольных, то есть проверочных заданий

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

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

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

Это сервис, с помощью которого можно заказать разметку данных и получить результат, даже не регистрируясь в Толоке. Заказчик заполняет форму, даёт ссылку на данные, рассказывает, что с ними делать, и оплачивает счёт, который выставит Лаборатория. Остальное — создание и запуск краудсорсингового проекта, поиск исполнителей — происходит благодаря автоматизированным процессам. Когда толокеры разметят все данные, заказчик получит готовый датасет.

<p>Работа с Лабораторией Яндекс.Толоки строится так</p>

Работа с Лабораторией Яндекс.Толоки строится так

Сейчас Лаборатория выполняет три вида разметки:

  • Классификация изображений. Например, можно рассортировать фотографии товаров: это красное платье, это синее, а это белое.
  • Классификация текстов. Например, можно распределить обращения в техподдержку по категориям: заказ техники, запрос консультации, жалоба на баг, пожелание, прочее.
  • Выделение объектов на картинке прямоугольниками. Например, можно обвести дорожные знаки на стоп-кадрах с видеорегистратора.

В планах — автоматизация других востребованных процессов: расшифровки аудиозаписей, модерации контента, съёмки фото и видео.

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

Наш вывод: в зависимости от задач и объёмов данных, заказчик может выбрать аутсорсинговое или краудсорсинговое решение. Разметку с помощью краудсорсинга можно организовать самостоятельно, а можно использовать автоматизированные процессы или обратиться к опытным специалистам.

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

1111
15 комментариев

Эх, такой громкий заголовок, а в итоге одна реклама. 

9
Ответить

Я решил не тратить время на текст и ограничился только фотографией)

2
Ответить

Почему бы не делегировать за 0.0001$

2
Ответить

Многобукф. Расскажите лучше про такси яндексплюс.

2
Ответить

Вы лучше про Яндекс.Плюс расскажите, и как с ним такси становится только дороже)

2
Ответить

Че там с Плюсом? 

2
Ответить

Я бы ...

Ну, вы поняли. 

1
Ответить