Поділ train / validation / test чесний лише тоді, коли один користувач, документ або фото не сидить на обох боках. Групую за одиницею, яка витекла б: акаунт, ланцюжок заявок, вихідний файл, кластер майже-дублів із дедуплікації. Train, validation і test — заморожені файли, а не новий випадковий розріз на кожному прогоні.
Баланс класів перевіряю, а не загадую. Рідкісний клас стратифікую, коли лічильники дозволяють; коли ні, у звіті написано, що тестовий зріз занадто малий, щоб йому вірити. Задачі з часом ріжу за часом, а не перемішуванням, за якого наступний тиждень вчиться на вчорашньому дні. Синтетичні близнюки лишаються зі своїм живим батьком на одному боці.
Приймання — маніфест поділу, ключ групування, лічильники за зрізами і класами і перевірка витоку, яка падає, якщо нормалізований близнюк перетнув межу. Поділ уже чистого корпусу часто займає 1–2 тижні. Цифри потім входять у контроль якості датасету.
