Яндекс.Толока. Презентация участников

26
Динамическое контроль разметки пула Yandex.Toloka Маршалкин Никита руководитель Артем Григорьев (Яндекс) 1 / 11

Upload: cs-center

Post on 11-Jan-2017

98 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Яндекс.Толока. Презентация участников

Динамическое контроль разметкипула

Yandex.Toloka

Маршалкин Никитаруководитель Артем Григорьев (Яндекс)

1 /11

Page 2: Яндекс.Толока. Презентация участников

Как это работает

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

2 /11

Page 3: Яндекс.Толока. Презентация участников

Терминология

▶ Заказчик - размещает задания▶ Толокер - выполняет задания▶ Пул - набор заданий, которые объединеныобщими свойствами

▶ Перекрытие - количество пользователей,которые выполняют одно и то же задание

▶ Ханипот - задания с правильными ответами.Используются для контроля качества ответов.

3 /11

Page 4: Яндекс.Толока. Презентация участников

Разметка спама

ЗадачаРазметить письма на СПАМ/НЕ СПАМ качественно идешево

Решения

▶ Загрузить каждое задание в одном экземпляре

▶ Хорошо: дешево▶ Плохо: неясно, как оценивать качество

▶ Загрузить каждое задание с перекрытием 3

▶ Хорошо: majority vote▶ Плохо: в 3 раза дороже

Можем лучше!

4 /11

Page 5: Яндекс.Толока. Презентация участников

Разметка спама

ЗадачаРазметить письма на СПАМ/НЕ СПАМ качественно идешево

Решения▶ Загрузить каждое задание в одном экземпляре

▶ Хорошо: дешево▶ Плохо: неясно, как оценивать качество

▶ Загрузить каждое задание с перекрытием 3

▶ Хорошо: majority vote▶ Плохо: в 3 раза дороже

Можем лучше!

4 /11

Page 6: Яндекс.Толока. Презентация участников

Разметка спама

ЗадачаРазметить письма на СПАМ/НЕ СПАМ качественно идешево

Решения▶ Загрузить каждое задание в одном экземпляре

▶ Хорошо: дешево▶ Плохо: неясно, как оценивать качество

▶ Загрузить каждое задание с перекрытием 3

▶ Хорошо: majority vote▶ Плохо: в 3 раза дороже

Можем лучше!

4 /11

Page 7: Яндекс.Толока. Презентация участников

Разметка спама

ЗадачаРазметить письма на СПАМ/НЕ СПАМ качественно идешево

Решения▶ Загрузить каждое задание в одном экземпляре

▶ Хорошо: дешево▶ Плохо: неясно, как оценивать качество

▶ Загрузить каждое задание с перекрытием 3

▶ Хорошо: majority vote▶ Плохо: в 3 раза дороже

Можем лучше!

4 /11

Page 8: Яндекс.Толока. Презентация участников

Разметка спама

ЗадачаРазметить письма на СПАМ/НЕ СПАМ качественно идешево

Решения▶ Загрузить каждое задание в одном экземпляре

▶ Хорошо: дешево▶ Плохо: неясно, как оценивать качество

▶ Загрузить каждое задание с перекрытием 3▶ Хорошо: majority vote▶ Плохо: в 3 раза дороже

Можем лучше!

4 /11

Page 9: Яндекс.Толока. Презентация участников

Разметка спама

ЗадачаРазметить письма на СПАМ/НЕ СПАМ качественно идешево

Решения▶ Загрузить каждое задание в одном экземпляре

▶ Хорошо: дешево▶ Плохо: неясно, как оценивать качество

▶ Загрузить каждое задание с перекрытием 3▶ Хорошо: majority vote▶ Плохо: в 3 раза дороже

Можем лучше!

4 /11

Page 10: Яндекс.Толока. Презентация участников

2+1

1. Загружаем с перекрытием 2

2. Если 2 ответа сошлись - закрываем задание3. Если нет - загрузим еще раз4. Majority voteДля этого необходимо on-the-fly следить за пулом иподливать задания

5 /11

Page 11: Яндекс.Толока. Презентация участников

2+1

1. Загружаем с перекрытием 22. Если 2 ответа сошлись - закрываем задание

3. Если нет - загрузим еще раз4. Majority voteДля этого необходимо on-the-fly следить за пулом иподливать задания

5 /11

Page 12: Яндекс.Толока. Презентация участников

2+1

1. Загружаем с перекрытием 22. Если 2 ответа сошлись - закрываем задание3. Если нет - загрузим еще раз

4. Majority voteДля этого необходимо on-the-fly следить за пулом иподливать задания

5 /11

Page 13: Яндекс.Толока. Презентация участников

2+1

1. Загружаем с перекрытием 22. Если 2 ответа сошлись - закрываем задание3. Если нет - загрузим еще раз4. Majority vote

Для этого необходимо on-the-fly следить за пулом иподливать задания

5 /11

Page 14: Яндекс.Толока. Презентация участников

2+1

1. Загружаем с перекрытием 22. Если 2 ответа сошлись - закрываем задание3. Если нет - загрузим еще раз4. Majority voteДля этого необходимо on-the-fly следить за пулом иподливать задания

5 /11

Page 15: Яндекс.Толока. Презентация участников

Comrade

ЦельСпроектировать и разработать сервис длядинамических операций над пулом

6 /11

Page 16: Яндекс.Толока. Презентация участников

Идеи

Основная сущность: скрипт на Groovy

ВходCобытия, произошедшие в Толоке за δtТолокер открыл задание, закрыл, выполнил, выполнилверно (ХП), неверно, пул разметился

ВыходОперации над пуломДозалить задание, изменить перекрытие, закрыть пул,выдать бонус работнику, отправить сообщениеработнику, создать новый пул

7 /11

Page 17: Яндекс.Толока. Презентация участников

Идеи

Основная сущность: скрипт на GroovyВходCобытия, произошедшие в Толоке за δtТолокер открыл задание, закрыл, выполнил, выполнилверно (ХП), неверно, пул разметился

ВыходОперации над пуломДозалить задание, изменить перекрытие, закрыть пул,выдать бонус работнику, отправить сообщениеработнику, создать новый пул

7 /11

Page 18: Яндекс.Толока. Презентация участников

Идеи

Основная сущность: скрипт на GroovyВходCобытия, произошедшие в Толоке за δtТолокер открыл задание, закрыл, выполнил, выполнилверно (ХП), неверно, пул разметился

ВыходОперации над пуломДозалить задание, изменить перекрытие, закрыть пул,выдать бонус работнику, отправить сообщениеработнику, создать новый пул

7 /11

Page 19: Яндекс.Толока. Презентация участников

Псевдокод

1 Operation[] onEvent(TolokaEvent[] events) {2 Operation[] result = new Operation[];3 for (task : events.toTasks) {4 if (not enough information) {5 result.add(new UploadTaskOperation(task));6 } else {7 //таска разметилась, ничегонеделаем8 }9 }

10 return result;11 }

8 /11

Page 20: Яндекс.Толока. Презентация участников

Архитектура

Пулов много -> асинхронность

Три независимых очереди:1. Походов в Толоку за новыми событиями2. Выполнения скрипта на новых событиях3. Применения операций над пулом

9 /11

Page 21: Яндекс.Толока. Презентация участников

Архитектура

Пулов много -> асинхронностьТри независимых очереди:

1. Походов в Толоку за новыми событиями2. Выполнения скрипта на новых событиях3. Применения операций над пулом

9 /11

Page 22: Яндекс.Толока. Презентация участников

Архитектура

Пулов много -> асинхронностьТри независимых очереди:1. Походов в Толоку за новыми событиями

2. Выполнения скрипта на новых событиях3. Применения операций над пулом

9 /11

Page 23: Яндекс.Толока. Презентация участников

Архитектура

Пулов много -> асинхронностьТри независимых очереди:1. Походов в Толоку за новыми событиями2. Выполнения скрипта на новых событиях

3. Применения операций над пулом

9 /11

Page 24: Яндекс.Толока. Презентация участников

Архитектура

Пулов много -> асинхронностьТри независимых очереди:1. Походов в Толоку за новыми событиями2. Выполнения скрипта на новых событиях3. Применения операций над пулом

9 /11

Page 25: Яндекс.Толока. Презентация участников

Стек

▶ Java▶ Spring Framework▶ Apache CXF▶ JOOQ▶ Flyway▶ Maven▶ ...

10 /11

Page 26: Яндекс.Толока. Презентация участников

Толока

WikiТоло́ка (новг.-псков., твер. толо́ка; юж.-рус. тало́ка;сев.-рус. по́мочь) — форма деревенскойвзаимопомощи в России, на Украине, в Белоруссии,Эстонии, Латвии и Литве. Её организовывали вдеревне для выполнения срочных работ,требующих большого количества работников: сборурожая, вырубка леса, сооружение домов и т. д.

11 /11