Разрешительная библиотека синтетических данных от Gretel.ai.
Если вы хотите быстро открыть для себя гретель-синтетику, просто нажмите кнопку ниже и следуйте инструкциям!
Дополнительные примеры смотрите здесь.
В этом разделе вы узнаете, как установить gretel-synthetics
и зависимости, которые не устанавливаются напрямую менеджером пакетов Python.
По умолчанию мы не устанавливаем определенные основные требования, следующие зависимости должны быть установлены вне установки gretel-synthetics
, в зависимости от того, какие модели вы планируете использовать.
Эти зависимости можно установить, выполнив следующие действия:
pip install tensorflow==2.12.1 # for LSTM
pip install sdv<0.18 # for ACTGAN
pip install torch==2.0 # for Timeseries DGAN
Чтобы установить настоящий пакет gretel-synthetics
, сначала клонируйте репозиторий, а затем...
pip install -U .
или
pip install gretel-synthetics
затем...
pip install jupyter
jupyter notebook
Когда пользовательский интерфейс запустится в вашем браузере, перейдите к examples/synthetic_records.ipynb
и приступайте к генерации!
Если вы хотите установить gretel-synthetics
локально и использовать графический процессор (рекомендуется):
conda
) conda create --name tf python=3.9
conda activate tf
./setup-utils/setup-gretel-synthetics-tensorflow24-with-gpu.sh
На последнем шаге будут установлены все необходимые пакеты программного обеспечения для использования графического процессора: tensorflow=2.8
и gretel-synthetics
. Обратите внимание, что этот скрипт работает только для Ubuntu 18.04. Возможно, вам придется изменить его для других версий ОС.
Модуль DGAN временных рядов содержит реализацию PyTorch модели DoppelGANger, оптимизированную для данных временных рядов. Как и в случае с tensorflow, вам нужно будет вручную установить pytorch:
pip install torch==1.13.1
В этом блокноте показано базовое использование небольшого набора данных о показаниях датчиков умного дома.
ACTGAN (Anyway CTGAN) — это расширение популярной реализации CTGAN, которое предоставляет некоторые дополнительные функции для улучшения использования памяти, автоматического обнаружения и преобразования столбцов и многого другого.
Чтобы использовать эту модель, вам необходимо вручную установить SDV:
pip install sdv<0.18
Имейте в виду, что при этом также будут установлены несколько зависимостей, таких как PyTorch, на которые опирается SDV, которые могут конфликтовать с версиями PyTorch, установленными для использования с другими моделями, такими как Timeseries DGAN.
Интерфейс ACTGAN является расширенной версией интерфейса CTGAN. Чтобы увидеть дополнительные функции, взгляните на демонстрационный блокнот ACTGAN в каталоге examples
этого репозитория.
Этот пакет позволяет разработчикам быстро погрузиться в генерацию синтетических данных с помощью нейронных сетей. Более сложные части работы с библиотеками, такими как Tensorflow и дифференциальная конфиденциальность, объединены в удобные классы и функции Python. Можно использовать два режима высокого уровня.
Простой режим будет обучать построчно входной текстовый файл. При генерации данных генератор создает пользовательский объект, который можно использовать различными способами в зависимости от вашего варианта использования. Этот ноутбук демонстрирует этот режим.
Эта библиотека изначально поддерживает CSV/DataFrames, используя «пакетный» режим DataFrame. Этот модуль представляет собой оболочку нашего простого режима, предназначенного для работы с табличными данными. Кроме того, он способен обрабатывать большое количество столбцов, разбивая входной DataFrame на «пакеты» столбцов и обучая модель на каждом пакете. В этом блокноте показан обзор использования этой библиотеки с DataFrames в исходном виде.
При использовании этой библиотеки следует учитывать четыре основных компонента.
Конфигурации. Конфигурации — это классы, специфичные для базового механизма машинного обучения, используемого для обучения и генерации данных. Примером может быть использование TensorFlowConfig
для создания всех необходимых параметров для обучения модели на основе TF. LocalConfig
является псевдонимом TensorFlowConfig
для обратной совместимости со старыми версиями библиотеки. Модель сохраняется в указанном каталоге, который при желании можно заархивировать и использовать позже.
Токенизаторы. Токенизаторы преобразуют входной текст в целочисленные идентификаторы, которые используются базовым механизмом машинного обучения. Эти токенизаторы можно создать и отправить на обучающий вход. Это необязательно, и если конкретный токенизатор не указан, будет использоваться токенизатор по умолчанию. Здесь вы можете найти пример, в котором используется простой посимвольный токенизатор для построения модели из входного CSV. При обучении в недифференцированном частном режиме мы предлагаем использовать токенизатор SentencePiece
по умолчанию, неконтролируемый токенизатор, который изучает единицы подслова (например, кодирование пар байтов (BPE) [Sennrich et al.]) и языковую модель униграмм [Kudo. ]) для более быстрого обучения и повышения точности синтетической модели.
Обучение. Обучение модели объединяет конфигурацию и токенизатор и создает модель, которая хранится в назначенном каталоге и может использоваться для создания новых записей.
Поколение. После обучения модели можно создать любое количество новых строк или записей. При желании можно предоставить средство проверки записей, чтобы гарантировать, что сгенерированные данные соответствуют всем необходимым ограничениям. См. наши блокноты с примерами валидаторов.
В дополнение к четырем основным компонентам пакет gretel-synthetics
также поставляется с набором утилит, которые полезны для обучения сложных синтетических моделей и оценки синтетических наборов данных.
Некоторые из этих функций имеют большие зависимости, поэтому они поставляются как дополнительные, называемые utils
. Чтобы установить эти зависимости, вы можете запустить
pip install gretel-synthetics[utils]
Дополнительные сведения см. в документации по API модуля Utility.
Поддержка дифференциальной конфиденциальности для нашего режима TensorFlow основана на огромной работе, проделанной командой Google TF и их библиотекой конфиденциальности TensorFlow.
При использовании DP в настоящее время мы рекомендуем использовать токенизатор символов, поскольку он создаст словарь только из отдельных токенов и устраняет риск запоминания конфиденциальных данных как реальных токенов, которые можно воспроизвести во время генерации.
Есть также несколько примечательных вариантов конфигурации, таких как:
predict_batch_size
должен быть установлен в 1.dp
должен быть включенlearning_rate
, dp_noise_multiplier
, dp_l2_norm_clip
и dp_microbatches
можно настроить для достижения различных значений эпсилон.reset_states
должен быть отключенПожалуйста, ознакомьтесь с нашим примером блокнота для обучения модели DP на основе набора данных Netflix Prize.