Синтетические данные закрывают дыры, которых нет в живых выгрузках: редкий дефект, отказ, который поддержка почти не пишет, язык, который есть в политике, но нет в заявках. Строки рождаю правилами или моделью и помечаю каждую как синтетическую. Synthetic data не подменяет живое распределение и не становится тихо всем обучающим набором.
Человек читает выборку до приёмки партии. Если генератор скопировал пример из validation, это мусор, а не подарок. Долю видно: сколько живых строк, сколько синтетических, какой класс они должны были поддержать. Персональные данные я не «обезличиваю» просьбой к модели выдумать похожего клиента.
Приёмка — заметка о генераторе, флаг synthetic на каждой строке, проверка выборки и счётчик по классам. Узкая партия часто занимает 2–4 недели. Разбиение всё равно не пускает синтетических близнецов в проверку — train, validation и test.
