Генерация документов, лиц и даже симуляция целых атак: как далеко можно зайти в создании и использовании синтетических данных?
В этой статье Артур Казукевич, Data Science Engineer в Data Light, расскажет, почему синтетика становится крупнейшей тенденцией в сфере ML, как такие данные можно использовать и какие ограничения для генерации существуют, а также поделится своим опытом.
Небольшое введение: что такое синтетические данные?
Синтетические данные — это искусственно созданные данные, которые отражают особенности реальных наблюдений и используются для обучения моделей машинного обучения в случаях, когда получить реальные данные сложно или дорого. Такие данные отличаются от аугментированных и рандомизированных данных, но где именно проходят границы между ними? Давайте рассмотрим простейший пример генерации изображений лиц.
Допустим, у нас есть набор данных с фотографиями настоящих людей. Аугментация данных — это процесс, при котором к набору добавляются слегка измененные копии уже существующих элементов. Если применить аугментацию к нашему набору, мы получим те же лица, но с небольшими изменениями, например, с разными оттенками глаз или кожи, с шумами на фото и цветовым фильтром.
Рандомизация, в отличие от этого, лишь перемешивает элементы внутри набора данных, не создавая новых. Так, используя рандомизацию, мы могли бы «поменять местами» черты лиц: взять волосы одного человека, рот другого и глаза третьего. В итоге мы получаем новые лица, не тратя ресурсы на сбор дополнительных данных.
Синтетические данные не копируют реальные данные, а создают новые примеры, основанные на характеристиках оригинала. Они как бы «переосмысливают» реальность, улавливая её основные черты и закономерности, но генерируя совершенно новые, уникальные экземпляры. Представьте, что вы описываете художнику портрет: он не скопирует фотографию, а напишет новую картину, передающую суть человека, сохраняя при этом индивидуальный стиль. Так и синтетические данные — это не копии, а новая интерпретация реальности, сохраняющая её статистические свойства и структуру.
Почему выбирают именно синтетические данные? 6 главных причин
Нам кажется, про синтетические данные недостаточно говорят в индустрии. А ведь это мощный инструмент и один из главных трендов в ML на ближайшие годы. Он не просто позволяет решить проблему нехватки данных, делая обучение моделей и анализ данных проще, дешевле и эффективнее, но и отвечает требованиям конфиденциальности, устраняя риски, связанные с использованием реальных данных.
А когда сбор реальных данных затруднен или небезопасен, синтетические данные могут стать настоящей находкой. Представьте себе ситуацию, в которой организации необходимо провести анализ рисков события, которое случается очень редко, или которое происходит в условиях, в настоящий момент недоступных, или опасных для здоровья человека. Синтетические данные позволяют создавать такие сценарии без риска для существующих систем или без угрозы здоровью реальных людей.
Вот 6 главных причин использовать такие данные:
-
Кастомизация данных. Специалисты могут адаптировать синтетические данные под конкретные требования, даже когда с реальными данными это невозможно. Например, для тестирования ПО можно создать уникальные сценарии, охватывающие редкие или критические ситуации, которые сложно собрать из реальных данных.
-
Экономичность. Очевидно, что стоимость создания синтетических данных значительно ниже, чем сбор и обработка реальных данных, например, в некоторых отраслях. К примеру, в автомобилестроении, где необходимо моделировать аварии, или испытывать новые, часто неотлаженные технологии, это может стоить миллионы долларов.
-
Разметка данных. Разметка для синтетических данных может быть выполнена уже на этапе генерации этих данных, часто в автоматическом режиме, что сильно ускоряет ввод в эксплуатацию (Но все-таки не забываем про валидацию созданных данных)
-
Быстрота генерации. Реальные данные требуют времени для сбора и обработки, а синтетические могут быть созданы мгновенно с помощью соответствующих алгоритмов и программных решений.
-
Конфиденциальность данных. Синтетические данные не содержат информации, по которой можно идентифицировать реальных людей или события. Это делает их отличным вариантом для использования в, к примеру, медицинской или финансовой областях
-
Полный контроль. Вы можете настраивать параметры данных в соответствии с задачами, изменять частоту событий, распределение объектов. Только представьте, какую свободу это дает в моделировании!
Как используются синтетические данные
Чтобы синтетические данные приносили пользу, они должны качественно имитировать оригинальные данные и быть адаптированными под конкретные задачи, в которых их планируется использовать. Приведем примеры применения синтетических данных в разных сферах:
-
Тестирование. В тестировании ПО (кстати, как и в анализе данных) синтетические данные могут использоваться для создания условий, сценарий которых будет гибко подстроен под конкретные задачи. Это обеспечивает высокую реалистичность таких условий.
-
Обучение AI/ML моделей. Использование синтетических данных в обучении моделей машинного обучения становится стандартом. Такие данные увеличивают обучающую выборку, расширяют вариативность (часто решая проблему дисбаланса классов) благодаря возможности моделировать более редкие сценарии. Это позволяет избежать предвзятость моделей к отдельным классам и в целом улучшить их производительность.
-
Соблюдение законодательства о конфиденциальности. В условиях жестких требований к конфиденциальности синтетические данные становятся идеальным решением, позволяя использовать данные, не нарушая законы и обеспечивая защиту персональных данных.
-
Медицина и конфиденциальность. В медицине синтетические данные могут использоваться для моделирования профиля пациента, что позволяет проводить исследования без угрозы конфиденциальности.
Синтетические данные уже сейчас используются компаниями по всему миру:
-
Erste Bank применил синтетические тестовые данные для разработки успешного мобильного банковского приложения.
-
JPMorgan использует “песочницу” с синтетическими данными для ускорения пилотных проектов, требующих большого объема данных, с внешними поставщиками.
-
Anthem и American Express внедряют синтетические данные, чтобы определить мошенничество и персонализацию обслуживания клиентов.
Кейсы Data Light: Как наши клиенты применяют синтетические данные
Про создание синтетических данных уже написано множество отличных статей — например, очень советуем ознакомиться с переводом статьи от Marcus Sena, где описываются методы от scikit-learn до Synthetic Data Vault (SDV). А мы хотели подробнее рассказать о нашем опыте: когда нашими клиентами применялись синтетические данные, а когда было рациональнее самостоятельно собрать и разметить данные.
Создание синтетических паспортов и документов для клиентов
Один из недавних проектов включал создание синтетических паспортов Объединенных Арабских Эмиратов. Наш клиент столкнулся с проблемой: ему нужно было обучить модель на документах, но их сбор противоречил бы законодательству. Изначально работа велась вручную: требовалось закрасить нужные поля, самостоятельно подбирать шрифты и координаты полей, а после подставлять из таблички Excel сгенерированные данные.
Генерация позволила ускорить этот процесс. С помощью специальных шаблонов в формате PSD мы настроили содержимое: поля заполняются текстом, сгенерированным через языковые модели, и вставляются искусственно созданные фотографии.
Так мы смогли создать реалистичные, детализированные копии документов: паспорта, визы, удостоверения личности, водительские права и даже паспорта животных. Это решение удобно, безопасно и позволяет избежать использования реальных персональных данных.
Генерация синтетических лиц для анонимных данных
Генерация изображений лиц — один из самых востребованных запросов наших клиентов. Многие приходят к нам с одинаковой проблемой: когда надо сгенерировать, например, миллион фотографий разных людей. Если написать только один запрос, естественно, по этому запросу будут генерироваться очень похожие, если не одинаковые фотографии. А вот в нашем случае решением стал wildcard.
Мы использовали метод «шаблонов-паттернов», когда мы, вместо строго определенного слова в промпте (инструкции для генерации) указывали нужную характеристику со специальным синтаксисом, который автоматически подставлял рандомное значение из наших, заранее подготовленных сборников шаблонов.
Например, мы добавили слово-шаблон «age», который при каждой генерации динамически подменялся на рандомный возраст. С его помощью система автоматически создает фотографии людей различных возрастов, национальностей и стилей.
Так мы можем настраивать этнос, эмоции, а также фон, прически, одежду, макияж и аксессуары, это позволяет создавать обширные и разнообразные базы данных. Например, если требуется только определённая этническая группа, мы подбираем модели и параметры для точного соответствия требованиям клиента. Такой подход идеально подходит для задач в сфере биометрии, анонимизации данных и создания обучающих наборов данных.
Когда синтетики недостаточно?
Но не всегда синтетические данные могут быть полезны. Несколько раз клиенты приходили к нам с запросом на синтетические данные, но мы понимали, что проще будет собрать самостоятельно. Например, один из клиентов пришел к нам с необычным запросом: Нужно было сгененировать машины с разных углов, с открытой одной, двумя, четырьмя дверьми. Детали машины были принципиально важны.
В случае таких специфических данных, в которых принципиальны детали и повторяемость модели (т.е. там важно было, чтобы машина была на серии фоток одна и та же, вот это было основной проблемой), легче бывает просто организовать сбор данных.
Бывали и другие сложности с генерацией лиц: иногда требуются специфические группы людей, которые бывает сложно найти. Недавно, например, был проект, в котором требовался большой объем исключительно взрослых чернокожих, но не пожилых и не слишком молодых.
В итоге изображения получались довольно однотипными — потому, что большинство генеративных моделей были обучены на небольшом количестве изображений людей этой расы и теперь она лучше справляется с людьми из Азии и Индии, которых в обучающих данных встречалось значительно больше.
А если ваш бизнес нуждается в высококачественных и безопасных наборах данных, мы будем рады обсудить задачи и предложить решение. Свяжитесь с нами, чтобы узнать, как Data Light может помочь в достижении ваших целей с использованием синтетических данных.
Артур Казукевич
Data Science Engineer
ссылка на оригинал статьи https://habr.com/ru/articles/860310/
Добавить комментарий