Основные понятия
Наборы данных и разбиение
Как Skynet читает ваши примеры и делит их на обучающую, валидационную и тестовую выборки.
Набор данных — это таблица примеров. Каждая строка — один пример. Skynet выполняет ваш артефакт на примерах, оценивает каждый выход и по оценкам сравнивает версии. На этой странице объясняется, как Skynet читает примеры, что делают роли столбцов и как примеры делятся на обучающую, валидационную и тестовую выборки.
Загрузка данных
На шаге мастера Входные данные есть два варианта:
- Загрузите файл CSV, JSON или Excel. Skynet принимает файлы
.csv,.json,.xlsxи.xls. - Выбрать из библиотеки. Используйте набор данных, который вы сохранили ранее.
В запуске может быть не больше 200 000 примеров.
Как управлять сохранёнными наборами данных, описано в разделе Подготовка набора данных.
Роли столбцов
В разделе Как читать данные назначьте каждому столбцу одну роль:
| Роль | Что Skynet делает со столбцом |
|---|---|
| Вход | Помещает значение в input, который получает ваш код запуска |
| Выход | Помещает значение в expected, который получает ваша метрика |
| Пропустить | Не использует столбец |
У каждого столбца также есть тип: Текст или Изображение.
Роль «Выход» может быть только у одного столбца. Если назначить роль «Выход» второму столбцу, первый переключится на «Пропустить».
Что получает ваш код
Для каждой строки Skynet формирует один пример:
input— словарь. В нём по одному ключу на каждый столбец с ролью «Вход».expected— словарь с одним ключом: именем столбца с ролью «Выход».
Для такой таблицы:
| message | label | id |
|---|---|---|
| I was charged twice | billing | 17 |
с ролями message = Вход, label = Выход и id = Пропустить ваш код получит:
{"message": "I was charged twice"}{"label": "billing"}Режимы данных
Роли задают режим данных запуска:
| Режим | Когда | Что происходит |
|---|---|---|
| Пары | Один столбец имеет роль «Выход» | Каждая строка — пример с входом и ожидаемым значением. Нужно не меньше 2 строк. |
| Одиночный | Нет столбца с ролью «Выход» | Запуск использует только столбцы «Вход» первой строки. Это один пример без ожидаемого значения. |
В одиночном режиме Skynet использует единственный пример для обучения, отбора и отчёта. Ничего не откладывается.
Разбиение
В режиме пар Skynet делит примеры на три выборки:
| Выборка | Для чего она |
|---|---|
| Обучающая | Движок предлагает и проверяет версии на этих примерах. |
| Валидационная | Skynet выбирает лучшую версию на этих примерах. |
| Тестовая | Skynet сообщает итоговую оценку на этих примерах. |
Разбиение по умолчанию
| Число пар | Обучающая | Валидационная | Тестовая |
|---|---|---|---|
| 5 или больше | 70% | 15% | 15% |
| Меньше 5 | 85% | 15% | 0% |
Если пар меньше 5, Skynet не выделяет тестовую выборку.
Как Skynet считает примеры
Skynet переводит доли в целое число примеров методом наибольших остатков. Сумма всегда равна числу примеров. Выборка с долей больше нуля получает хотя бы один пример. Выборка с нулевой долей не получает примеров.
Перед разбиением Skynet перемешивает примеры. Перемешивание использует сид запуска. Если сид не задан, Skynet вычисляет его по примерам, цели и артефакту. Поэтому при повторной отправке того же запуска вы получите то же разбиение.
Запасные варианты
- Если пар меньше 5, Skynet убирает тестовую выборку и масштабирует обучающую и валидационную так, чтобы в сумме они давали 1.
- Если обучающая выборка пуста, Skynet использует валидационные примеры как обучающие.
- Если валидационной выборки нет, Skynet выбирает версию на обучающих примерах.
- Если тестовой выборки нет, Skynet сообщает оценку на валидационной. Если нет и валидационной, оценка сообщается на обучающей.
Изменение разбиения
В разделе разбиения показано Рекомендованное разбиение. У него два режима:
- Использовать рекомендацию: Skynet использует разбиение по умолчанию, описанное выше.
- Ручной выбор: вы сами задаёте Обучающая, Валидационная и Тестовая.
В ручном режиме каждое поле принимает долю от 0 до 1 с шагом 0.05. Рядом с каждым полем показано, сколько примеров оно получает. Сумма трёх долей должна быть равна 1. Иначе мастер показывает сообщение «Сумма долей разбиения должна быть равна 1.»
Примеры для проверки контракта
Проверка контракта на шаге Метрика и запуск запускает ваш код на 3 примерах. Skynet берёт их только из обучающей и валидационной выборок, никогда из тестовой.