В работе часто встречаются долгие и однообразные задачи, для решения которых нужно много людей. Например, расшифровать несколько сотен аудиозаписей, разметить тысячи изображений или отфильтровать комментарии, число которых постоянно растет. Для этих целей можно содержать десятки штатных сотрудников. Но всех их нужно найти, отобрать, мотивировать, контролировать, обеспечить развитие и карьерный рост. А если объем работы сократится, их придется переобучать или увольнять.
Во многих случаях, особенно если не требуется специального обучения, такую работу могут взять на себя исполнители Толоки, краудсорсинговой платформы Яндекса. Эта система легко масштабируется: если заданий от одного заказчика станет меньше, толокеры пойдут к другому, если число задач увеличится, будут только рады.
Под катом – примеры того, как Толока помогает Яндексу и другим компаниям развивать свои продукты. Все заголовки кликабельны – ссылки ведут на записи докладов.
Поболтать с чат-ботами и выбрать лучшего: опыт МФТИ
МФТИ использовал Толоку для оценки качества чат-ботов в рамках проведения хакатона DeepHack.Chat. В нем участвовало 6 команд. Задача была разработать чат-бота, который может рассказывать о себе на основе данного ему профиля с кратким описанием личностных характеристик.
Толокеры и боты получали профили и должны были в диалоге притвориться человеком, чье описание там дано, рассказать о себе и больше узнать о собеседнике. Участники диалога не видели профили друг друга.
К заданию допускались только пользователи, прошедшие тест на знание английского языка, так как все чат-боты в рамках хакатона говорили по-английски. Организовать диалог с ботом напрямую через Толоку было нельзя, поэтому в задании давалась ссылка на Telegram-канал, где был запущен чат-бот.
После разговора с ботом пользователь получал ID диалога, который вместе с оценкой диалога вставлялся в Толоку в качестве ответа.
Чтобы исключить недобросовестных толокеров, нужно было проверить, насколько качественно пользователь говорил с ботом. Для этого создали отдельное задание, в рамках которого исполнители читали диалоги и оценивали поведение пользователя, то есть толокера из предыдущего задания.
В ходе хакатона команды загружали своих чат-ботов. В течение дня толокеры их тестировали, считали качество и сообщали командам счет, после чего разработчики редактировали поведение своих систем.
За четыре дня хакатона системы значительно улучшились. В первый день у ботов были неуместные и повторяющиеся ответы, на четвертый день ответы стали более адекватными и развернутыми. Боты научились не только отвечать на вопросы, но и задавать свои.
Пример диалога в первый день хакатона:
На четвертый день:
Статистика: оценка длилась 4 дня, в ней поучаствовало около 200 толокеров и обработали 1800 диалогов. На первое задание потратили 180 долларов, на второе – 15 долларов. Процент валидных диалогов оказался выше, чем при работе с волонтерами.
Как научить беспилотник распознавать окружающие объекты
Важная задача создателя беспилотника – научить его извлекать информацию об окружающих объектах из данных, которые он получает от сенсоров. Во время поездки автомобиль записывает все, что видит вокруг. Эти данные заливаются в облако, где делается первичная аналитика, а потом уходят на постобработку, которая включает в себя разметку. Размеченные данные отправляются алгоритмам машинного обучения, результат возвращается в машину, и цикл повторяется, улучшая качество распознавания объектов.
В городе много разнообразных объектов, все их нужно разметить. Эта задача требует определенных навыков и занимает много времени, а для обучения нейронной сети нужны десятки тысяч картинок. Их можно взять из открытых датасетов, но они собираются за границей, поэтому изображения не соответствуют российской действительности. Можно купить размеченные изображения по цене от 4 долларов, но выполнять разметку в Толоке оказалось примерно в 10 раз дешевле.
Так как в Толоке можно встроить любой интерфейс и передавать данные по API, разработчики вставили свой визуальный редактор, в котором есть слои, прозрачность, выделение, увеличение, деление на классы. Это в несколько раз увеличило скорость и качество разметки.
Кроме того, API позволяет автоматически дробить задания на более простые и собирать результат из кусочков. Например, прежде чем размечать картинку, можно отметить, какие объекты на ней есть. Это даст понимание, на какие классы разметить изображение.
После этого объекты на изображении можно классифицировать. Например, предложить толокерам подборку картинок, где есть люди, и попросить уточнить, пешеходы это, велосипедисты, мотоциклисты или кто-то еще.
Когда толокер выполнил разметку, его нужно проверить. Для этого создаются проверочные задания, которые предлагаются другим исполнителям.
Разметкой занимаются не только толокеры, но и нейронные сети. Некоторые из них уже научились справляться с этой задачей не хуже людей. Но качество их работы тоже нужно оценивать. Поэтому в заданиях кроме картинок, размеченных толокерами, встречаются и размеченные нейронной сетью.
Так Толока интегрируется непосредственно в процесс обучения нейронных сетей и становится частью pipeline всего машинного обучения.
Оценка качества поиска в интернет-магазине Ozon
Ozon использует Толоку для создания эталонной выборки. Это нужно для нескольких целей.
• Оценка качества нового поискового движка.
• Определение наиболее эффективной модели ранжирования.
• Повышение качества поискового алгоритма с помощью машинного обучения.
Первую тестовую выборку составили вручную – взяли 100 запросов и сами разметили их. Даже такая небольшая выборка помогла выявить проблемы поиска и определить критерии оценки. В компании хотели создать свой инструмент для оценки качества поиска, нанять асессоров и обучать их, но на это потребовалось бы слишком много времени, поэтому решили выбрать готовую краудсорсинговую платформу.
Самым сложным этапом подготовки задания для толокеров оказалось обучение – первое тестовое задание не смогли сделать даже сотрудники компании. Получив фидбэк от команды, разработали новый тест: выстроили обучение от простого к сложному и составили задания с учетом важных для компании качеств исполнителя.
Чтобы исключить ошибки, в Ozon провели тестовый запуск. Задание состояло из трех блоков – обучение, контроль с порогом 60% правильных ответов и основное задание с порогом 80% правильных ответов. Чтобы улучшить качество выборки, одно задание предлагали пяти исполнителям.
Статистика тестового запуска: 350 заданий за 40 минут. Бюджет составил 12 долларов. На первый этап пришли 147 исполнителей, 77 прошли обучение, 12 получили навык и выполняли основное задание.
Сценарий основного запуска усложнился: в нем участвовали не только новые толокеры, но и те, кто получил необходимый навык на тестовом этапе. Первые шли по стандартной цепочке, вторые сразу допускались к основным заданиям. В основном запуске добавились дополнительные навыки – процент правильных ответов в основной выборке и мнение большинства. Задание по-прежнему предлагали пяти исполнителям.
Статистика основного запуска: 40000 заданий за один месяц. Бюджет составил 1150 долларов. Пришли в проект 1117 толокеров, 18 получили навыки, 6 получили доступ к самому большому основному пулу и оценивают его.
Сейчас задание Ozon на Толоке выглядит так:
Исполнитель видит поисковый запрос и 9 товаров из выдачи. Его задача – выбрать одну из оценок – «подходит», «не подходит», «подходит на замену», «дополнительный», «не открывается». Последняя оценка помогает обнаружить технические проблемы на сайте. Чтобы максимально точно сымитировать поведение пользователя, разработчики через iframe воссоздали интерфейс интернет-магазина.
Параллельно с запуском задания на Толоке разметку поисковых запросов выполняли с помощью правил. Акцент при этом делался на популярных запросах, чтобы в первую очередь улучшить выдачу по ним.
Разметка правилами позволила быстрее получить данные на небольшом количестве запросов и показала хорошие результаты на топ-запросах. Но были и минусы: неоднозначные запросы невозможно оценить правилами, возникает много спорных ситуаций. Кроме того, в долгосрочной перспективе этот способ оказался достаточно дорогим.
Разметка с помощью людей перекрывает эти минусы. В Толоке можно собрать мнения большого количества исполнителей, оценка получается более градуированной, что позволяет глубже работать с выдачей. После первоначальной настройки платформа работает стабильно и перерабатывает большие объемы данных.
Ручной труд и механизмы искусственного интеллекта не противостоят друг другу. Чем больше развивается искусственный интеллект, тем больше ручного труда требуется для его обучения. С другой стороны, чем лучше обучены нейронные сети, тем больше рутинных задач можно автоматизировать, избавив от них человека.
Практически любое, даже объемное, задание можно разделить на множество мелких и построить на базе краудсорсинга. Большинство задач, которые решаются в Толоке, – первый шаг к тому, чтобы на собранных людьми данных обучать модели и автоматизировать процессы.
В следующей публикации на эту тему мы расскажем о том, как краудсорс применяется для обучения Алисы, модерации комментариев и контроля соблюдения правил в Яндекс.Автобусах.
Автор: Тимур Гаскаров