Создание файла с заданиями
Обратите внимание
Документация на русском языке может быть устаревшей. Самые последние изменения доступны в документации на английском языке.
Задания загружаются в пул в файле с заданиями.
Скачайте шаблон файла для вашего проекта на странице пула. На основе шаблона подготовьте собственный файл с заданиями и загрузите его в пул.
Если вы хотите посмотреть, как ваш проект будет выглядеть после запуска, но у вас еще нет заданий для разметки, вы можете загрузить в пул готовый пример данных. Примеры данных доступны для шаблонов:
- Классификация изображений
- Релевантность поиска товаров
- Распознавание объектов и выделение областей
- Кликбейт или нет?
Нажмите Использовать пример данных справа от надписи Прикрепите подготовленный файл с данными. Это позволит избежать дополнительных действий с файлами.
После того, как вы поработали с примером данных и вас все устроило, подготовьте свои данные и загрузите их в пул.
Если в пул необходимо загрузить задания разных типов, загрузите несколько файлов, каждый из которых будет содержать задания одного типа.
Структура файла с заданиями
Первая строка файла содержит заголовки столбцов:
-
INPUT:<имя поля входных данных>
— входные данные заданий. -
GOLDEN:<имя поля выходных данных>
— ответы для контрольных заданий. -
HINT:text
— подсказка для обучающих заданий. Текст подсказки будет показан исполнителю в верхней части задания на красном фоне, если он в обучающем задании даст ответ, который отличается от указанного правильного. -
Координаты точки для полевых заданий:
-
Al:latitude
— широта. -
Al:longitude
— долгота.
-
Тип задания зависит от того, какие поля заполнены:
Чтобы создать основное задание, заполните столбцы с заголовком INPUT
.
Чтобы создать контрольное задание, добавьте:
-
входные данные для задания в столбцы с заголовком
INPUT
; -
правильные ответы в столбцы с заголовком
GOLDEN
.
Совет
Вы также можете добавить ответы при создании пула в режиме разметки заданий (для этого нужно использовать «умное смешивание» при загрузке заданий).
Чтобы создать обучающее задание, добавьте:
-
входные данные для задания в столбцы с заголовком
INPUT
; -
правильные ответы в столбцы с заголовком
GOLDEN
; -
подсказку в столбец
HINT:text
.
Для обучающих заданий удобно создавать специальный пул.
Совет
Вы также можете добавить ответы и подсказки при создании пула в режиме разметки заданий (для этого нужно использовать «умное смешивание» при загрузке заданий).
Задание, которое исполнитель выбирает на карте в мобильном приложении Толока.
Чтобы создать полевое задание, добавьте:
-
входные данные для задания в столбцы с заголовком
INPUT
; -
координаты в столбцы
Al:latitude
иAl:longitude
.
Столбцы с обязательными полями входных данных должны быть заполнены. Остальные столбцы можно удалить, если они пустые.
Работа с файлом
Популярные редакторы электронных таблиц позволяют импортировать и экспортировать данные в формате TSV и XLSX:
Для работы с файлами в формате JSON подойдет текстовый редактор (например, Блокнот на Windows или TextEdit на Mac OS).
Вы можете работать с данными в редакторе, а затем сохранить в требуемом формате:
-
Создайте электронную таблицу с нужными заголовками или скопируйте их из шаблона файла.
-
Добавьте данные для заданий.
-
Скопируйте всю таблицу. Вставьте ее в простой текстовый редактор (например, Блокнот на Windows или TextEdit на Mac OS).
-
Сохраните файл в кодировке UTF-8 с расширением
tsv
.
-
Создайте электронную таблицу с нужными заголовками или скопируйте их из шаблона файла.
-
Добавьте данные для заданий.
-
Сохраните файл в формате
xlsx
.
-
Скачайте шаблон файла в формате
json
. -
Откройте шаблон в текстовом редакторе и добавьте свои данные.
-
Сохраните файл.
Максимальный размер файла —100 Мб.
Экранирование
Экранирование — замена в тексте управляющих символов, которые используются для разметки, на соответствующие текстовые подстановки. Используется, когда необходимо отобразить управляющий символ в качестве обычного.
От типа входных данных зависит то, как экранируются управляющие символы. Определите тип данных и прочтите необходимый пункт. Возможные варианты:
Чтобы в поле с типом строка отобразить кавычки вида "
:
-
Каждую такую кавычку внутри текстовых данных дополните еще одной. Другие виды кавычек (
« »
и“ ”
) не экранируйте. -
Заключите поле в кавычки
" "
.
Неэкранированные кавычки будут удалены при обработке файла.
Данные | Пример передачи в файл | Статус | Что увидит исполнитель |
---|---|---|---|
монитор 24" купить |
"монитор 24"" купить" |
корректный |
монитор 24" купить |
книга "Все о собаках" |
книга "Все о собаках" |
корректный, но кавычки пропадут |
книга Все о собаках |
книга «Все о собаках» |
"книга «Все о собаках»" |
корректный |
книга «Все о собаках» |
монитор 24" купить |
монитор 24" купить |
ошибка загрузки |
-
Каждую кавычку вида
"
дополните еще одной. Другие виды кавычек (« »
и“ ”
) не экранируйте. -
Заключите поле в кавычки
" "
.
Данные | Пример передачи в файл | Статус | Что увидит исполнитель |
---|---|---|---|
{"query": "монитор 24 дюйма купить"} |
"{""query"": ""монитор 24 дюйма купить""}" |
корректный |
монитор 24 дюйма купить |
{"query": "монитор 24 дюйма купить"} |
"{"query": "монитор 24 дюйма купить"}" |
ошибка загрузки |
-
Дополните ее еще одной кавычкой
"
или обратной косой чертой и кавычкой\"
, в том случае, если обратной косой черты перед кавычкой не было. -
Заключите поле в кавычки
" "
.
Данные | Пример передачи в файл | Статус | Что увидит исполнитель |
---|---|---|---|
{"query": "монитор 24\" купить"} |
"{""query"": ""монитор 24\"" купить""}" |
корректный |
монитор 24" купить |
{"query": "монитор 24" купить"} |
"{""query"": ""монитор 24\"" купить""}" |
корректный |
монитор 24" купить |
{"query": "книга \"Все о собаках\""} |
"{""query"": ""книга \""Все о собаках\""""}" |
корректный |
книга "Все о собаках" |
{"query": "монитор 24\" купить"} |
"{""query"": ""монитор 24\"\" купить""}" |
ошибка загрузки |
|
{"query": "книга \"Все о собаках\""} |
"{"query": "книга \"Все о собаках\""}" |
ошибка загрузки |
-
Экранируйте ее дополнительной косой чертой
\
. -
Заключите поле в кавычки
" "
.
Данные | Пример передачи в файл | Статус | Что увидит исполнитель |
---|---|---|---|
{"query": "множество А\B"}``{"query": "array A\B"} |
"{""query"": ""множество A\\B""}"``"{""query"": ""array A\\B""}" |
корректru-ruный``correct |
множество A\B``array A\B |
{"query": "множество А\B"} |
"{""query"": ""множество A\B""}" |
ошибка загрузки |
-
Каждую кавычку типа
"
дополните еще одной кавычкой. Другие виды кавычек (« »
и“ ”
) не экранируйте. -
Внутри объекта добавьте обратную косую черту
\
, если ее не было, перед каждой запятой. Запятые разделяющие объекты внутри массива экранировать не нужно. -
Заключите поле в кавычки
" "
.
Данные | Пример передачи в файл | Статус | Что увидит исполнитель |
---|---|---|---|
[{"query": "монитор 24 дюйма купить"},{"query": "монитор 19 дюймов купить"}] |
"{""query"": ""монитор 24 дюйма купить""},{""query"": ""монитор 19 дюймов купить""}" |
корректный |
монитор 24 дюймов купить монитор 19 дюймов купить |
[{"query": "монитор 24 дюйма\, системный блок купить"},{"query": "монитор 17 дюймов\, системный блок купить"}] |
"{""query"": ""монитор 24 дюйма\, системный блок купить""},""query"": ""монитор 19 дюймов\, системный блок купить""}" |
корректный |
монитор 24 дюймов, системный блок купить монитор 19 дюймов, системный блок купить |
[{"query": "монитор 24 дюйма купить"},{"query": "монитор 19 дюймов купить"}] |
"{"query": "монитор 24 дюйма купить"},{"query": "монитор 19 дюймов купить"}" |
ошибка загрузки |
|
[{"query": "монитор 24 дюйма, системный блок купить"},"query": "монитор 17 дюймов, системный блок купить"}] |
"{""query"": ""монитор 24 дюйма, системный блок купить""},""query"": ""монитор 19 дюймов, системный блок купить""}" |
ошибка загрузки |
-
Дополните ее еще одной кавычкой
"
или обратной косой чертой и кавычкой\"
, в том случае, если обратной косой черты перед кавычкой не было. Другие виды кавычек (« »
и“ ”
) не экранируйте. -
Заключите поле в кавычки
" "
.
Данные | Пример передачи в файл | Статус | Что увидит исполнитель |
---|---|---|---|
[{"query": "монитор 24\" купить"},{"query": "монитор 19\" купить"}] |
"{""query"": ""монитор 24\"" дюйма купить""},{""query"": ""монитор 19\"" купить""}" |
корректный |
монитор 24" купить монитор 19" купить |
[{"query": "монитор 24\" купить"},{"query": "монитор 19\" купить"}] |
"{""query"": ""монитор 24\"" дюйма купить""},{""query"": ""монитор 19\" купить""}" |
ошибка загрузки |
-
Экранируйте ее двумя бэкслешами
\\
. -
Заключите поле в кавычки
" "
.
Данные | Пример передачи в файл | Статус | Что увидит исполнитель |
---|---|---|---|
[{"query": "множество A\B"},{"query": "множество C\B"}] |
"{""query"": ""множество A\\\B""},{""query"": ""множество C\D""}" |
корректный |
множество A\B множество C\D |
[{"query": "множество A\B"},{"query": "множество C\B"}] |
"{""query"": ""множество A\\B""},{""query"": ""множество C\\D"}" |
ошибка загрузки |
Что дальше
- Загрузите задания в пул.
- Прочитайте в блоге о том, как создать и подготовитьфайл с заданиями.
Решение проблем
Количество заданий зависит от сложности и длительности выполнения. Не делайте страницы заданий слишком большими: они неудобны для исполнителей (например, при сбоях в соединении с интернетом) и не пользуются спросом.
Чтобы посмотреть лог обработки, нажмите Подробнее об ошибках загрузки. Лог обработки записан в формате JSON. Объекты внутри result
соответствуют номеру строки загружаемого файла. Строки, обработанные с ошибкой, имеют статус "success": false
.
Примечание
Работать с большим логом удобнее, если скопировать его в текстовый редактор.
Ошибки в заголовках столбцов
Если заголовки столбцов некорректны, файл будет полностью отклонен. В остальных случаях указано количество заданий с ошибками обработки.
Таблицы ошибок обработки
"parsing_error_of": "https://tlk.s3.yandex.net/wsdm2020/photos/2d5f63a3184919ce7e3e7068cf93da4b.jpg\t\t",
"exception_msg": "the nameMapping array and the sourceList should be the same size (nameMapping length = 1, sourceList size = 3)"
Описание |
Как исправить |
Лишние знаки табуляции. Если в загружаемом файле после данных или ссылки стоит количество разделителей столбцов Например, когда во входных определен 1 столбец, а в файле после ссылки прописано ещё два знака табуляции |
Удалите лишние разделители столбцов, в приведенном выше примере ошибки — оба знака ( |
"exception_msg": "the nameMapping array and the sourceList should be the same size (nameMapping length = 4, sourceList size = 6)"
Описание |
Как исправить |
Не совпадает количество полей в заголовке и в строке. |
Проверьте, что:
|
"code": "VALUE_REQUIRED", "message": "Value must be present and not equal to null"
Описание |
Как исправить |
Не указано значение обязательного поля входных данных. |
Проверьте, что заполнены все столбцы с обязательными полями входных данных. |
"code": "INVALID_URL_SYNTAX", "message": "Value must be in valid url format"
Описание |
Как исправить |
Данные в поле с типом «ссылка» («url») некорректны. |
Проверьте, что:
|
"exception_msg": "unexpected end of file while reading quoted column beginning on line 2 and ending on line 4"
Описание |
Как исправить |
В строке стоит непарная кавычка. |
Проверьте, что все кавычки экранированы. |
Вы можете указать сколько заданий будет на странице при загрузке заданий в пул. Подробнее о способах распределения заданий по страницам можно узнать здесь.
Для загрузки файла используйте кнопку Загрузить результаты. Формат можно посмотреть здесь.
Проверка ответов выполняется в файле с заданиями.
Проверьте поле hint
. Для обычных заданий это поле должно быть пустым.
В файле с основными заданиями должны быть заполнены столбцы с заголовками INPUT
. Вы можете увидеть эти заголовки, если скачаете образец файла из пула.
Если создаете контрольные задания, то заполните столбцы с правильными ответами — GOLDEN
.
Если обучающие, то также понадобится заполнить столбец HINT:text
. Для основных заданий все столбцы кроме INPUT
не нужны, их можно удалить.
Формат файла должен быть TSV, XLSX или JSON, кодировка — UTF-8.
Если вы разместили файлы на Яндекс Диске, посмотрите видео, как указать ссылки на них в файле с заданиями.
Подробнее о создании файла в Руководстве. Если при загрузке возникают ошибки, поищите вашу ошибку на этой странице.
Ошибка будет возникать, если на вход ожидается тип URL, а приходит строка.
Причин может быть две:
-
Входное поле имеет тип "ссылка".
-
Пул работает на неактуальной версии проекта. То есть создан до того, как вы изменили тип входного поля.
Зависит от задания. Технически можно много.
Но, во-первых, исполнители неохотно берутся за задания, которые требуют много времени на выполнение. То есть, они скорее сделают 10 заданий по одной минуте, чем одно задание на 10 минут.
Во-вторых, при большом количестве заданий на странице может быть проблема с загрузкой файлов для разметки. Например, картинок.
Третий момент — контроль качества и оценка выполнения всей страницы. Если вы используете дооценку заблокированных исполнителей, то лучше дробить задание на более мелкие части, чтобы в переразметку отправлялось меньше заданий. Это позволит уложиться в бюджет.
Настройки умного смешивания указываются для файла — не для пула.
При первой загрузке файла указанные настройки будут применяться для всех файлов, загруженных в дальнейшем в этот пул.
Попробуйте выполнить задания сами, попросите своих друзей и коллег. Найдите среднее время выполнения и добавьте к нему 50%.
Task — это отдельное задание. Task suite — страница с заданиями. Исполнитель получает оплату за страницу заданий.
Одно и то же задание может попасть на разные страницы, если:
-
Существует динамическое перекрытие (incremental relabeling, IRL). Например на странице было 5 заданий, по 4-м из них ответы согласовались так, что общий ответ зачелся как верный. Пятое задание будет замешано в другой набор, поскольку оно не попало в финальный ответ и его необходимо «дооценить».
-
У разных заданий существует разное перекрытие. Те задания, у которых перекрытие указано больше, будут дополнительно показываться в наборах с другими оставшимися заданиями в пуле.
-
Если правило контроля качества меняет перекрытие у задания, то оно окажется в другом наборе.
Про подключение Яндекс Диска вы можете прочитать здесь.
В шаблоне проекта должно быть прописано, например, следующее:
<img src={{proxy img}} width="400">
, где img
— входное поле строкового формата.
Для тестирования используйте файл example.jpg
. Его URL вы можете найти в Профиль → Интеграция с внешними сервисами.
Каждое задание должно быть описано на отдельной строке в файле с заданиями. Подробнее об этом вы можете прочитать здесь.
Когда вы создадите пул, то в нем будет настройка количества заданий на странице.
Загрузить в пул задания с разными ответами через интерфейс невозможно. Можно только через API.
Если в настройках пула включена опция Сохранять порядок заданий, то разметка новых заданий начнется после того, как будут взяты в работу предыдущие. Если опция выключена, то нет и гарантии, что задания будут раздаваться последовательно.
Все значения записываются в один столбец. Не забудьте экранировать кавычки. Подробнее об экранировании кавычек для формата JSON можно узнать в Руководстве.
Массив строк во входных данных записывается через запятую. Например: INPUT:typestext1, text2, text3, text4
Порядок следования полей в файле значения не имеет. Можете делать так, как удобно.
Нет, если вы загрузите в пул файл с несуществующими заголовками, система выдаст ошибку загрузки. Все обязательные INPUT поля, используемые в спецификации должны быть в файле с заданиями. Лишних полей и столбцов быть не должно.
Если вы не хотите показывать какие-то данные исполнителям, но они вам нужны в файле, создайте для них необязательные скрытые входные поля в проекте.
Заэкранируйте запятые обратным слэшем \
.
Текст из поля hint
будет показан исполнителю в верхней части задания на красном фоне, если он в обучающем задании даст ответ, который отличается от указанного правильного.
Пример
Если текст из поля hint
необходимо отразить в несколько строк, то переносы добавляются в файл, а текст заключается в кавычки.
Add your text here — это подсказка, которая говорит о том, что текст в поле вы можете заменить на свои данные для задания. О структуре файла и его заполнении можно узнать здесь.
Из-за наличия кавычек в одном слове загружать ответ следует таким образом: "Сколько букв в слове ""Лихтенштейн"""
. Если внутри текста есть экранирование кавычками, то весь текст следует заключать в кавычки. Подробнее описано в Руководстве.
Текст в поле GOLDEN должен в точности совпадать с эталоном.
Обычно, если копировать ссылку из браузера на определенный сайт, они будут иметь одинаковый формат. Другое дело, если ссылка была обрезана или набрана на клавиатуре.
Проверьте ссылки, которые используете. Решить задачу с унификацией ссылок можно несколькими способами:
-
Добавить требования к формату ссылок в инструкцию и подсказки в обучении.
-
Обрезать полученные ссылки в js с помощью regexp и записать результат в новое выходное поле, а после сравнить полученное значение с эталоном.