Pustaka data sintetis permisif dari Gretel.ai
Jika Anda ingin segera menemukan gretel-sintetik, cukup klik tombol di bawah dan ikuti tutorialnya!
Lihat contoh tambahan di sini.
Bagian ini akan memandu Anda melalui instalasi gretel-synthetics
dan dependensi yang tidak diinstal secara langsung oleh manajer paket Python.
Secara default, kami tidak menginstal persyaratan inti tertentu, dependensi berikut harus diinstal di luar instalasi gretel-synthetics
, bergantung pada model mana yang ingin Anda gunakan.
Dependensi ini dapat diinstal dengan melakukan hal berikut:
pip install tensorflow==2.12.1 # for LSTM
pip install sdv<0.18 # for ACTGAN
pip install torch==2.0 # for Timeseries DGAN
Untuk menginstal paket gretel-synthetics
yang sebenarnya, pertama-tama kloning repo dan kemudian...
pip install -U .
atau
pip install gretel-synthetics
Kemudian...
pip install jupyter
jupyter notebook
Saat UI diluncurkan di browser Anda, navigasikan ke examples/synthetic_records.ipynb
dan mulai menghasilkan!
Jika Anda ingin menginstal gretel-synthetics
secara lokal dan menggunakan GPU (disarankan):
conda
) conda create --name tf python=3.9
conda activate tf
./setup-utils/setup-gretel-synthetics-tensorflow24-with-gpu.sh
Langkah terakhir akan menginstal semua paket perangkat lunak yang diperlukan untuk penggunaan GPU, tensorflow=2.8
dan gretel-synthetics
. Perhatikan bahwa skrip ini hanya berfungsi untuk Ubuntu 18.04. Anda mungkin perlu memodifikasinya untuk versi OS lainnya.
Modul DGAN deret waktu berisi implementasi PyTorch dari model DoppelGANger yang dioptimalkan untuk data deret waktu. Mirip dengan tensorflow, Anda perlu menginstal pytorch secara manual:
pip install torch==1.13.1
Notebook ini menunjukkan penggunaan dasar pada kumpulan data kecil pembacaan sensor rumah pintar.
ACTGAN (Pokoknya CTGAN) adalah perpanjangan dari implementasi CTGAN populer yang menyediakan beberapa fungsi tambahan untuk meningkatkan penggunaan memori, deteksi otomatis dan transformasi kolom, dan banyak lagi.
Untuk menggunakan model ini, Anda perlu menginstal SDV secara manual:
pip install sdv<0.18
Perlu diingat bahwa ini juga akan menginstal beberapa dependensi seperti PyTorch yang diandalkan oleh SDV, yang mungkin bertentangan dengan versi PyTorch yang diinstal untuk digunakan dengan model lain seperti Timeseries DGAN.
Antarmuka ACTGAN adalah superset dari antarmuka CTGAN. Untuk melihat fitur tambahan, silakan lihat demo notebook ACTGAN di direktori examples
repo ini.
Paket ini memungkinkan pengembang dengan cepat mendalami pembuatan data sintetis melalui penggunaan jaringan saraf. Bagian yang lebih kompleks dari pekerjaan dengan perpustakaan seperti Tensorflow dan privasi diferensial digabungkan ke dalam kelas dan fungsi Python yang mudah digunakan. Ada dua mode tingkat tinggi yang dapat dimanfaatkan.
Mode sederhana akan melatih baris per baris pada file input teks. Saat membuat data, generator akan menghasilkan objek khusus yang dapat digunakan dengan berbagai cara berdasarkan kasus penggunaan Anda. Buku catatan ini mendemonstrasikan mode ini.
Pustaka ini mendukung CSV/DataFrames secara asli menggunakan mode "batch" DataFrame. Modul ini menyediakan pembungkus seputar mode sederhana kami yang ditujukan untuk bekerja dengan data tabular. Selain itu, ia mampu menangani kolom dalam jumlah besar dengan memecah input DataFrame menjadi "kumpulan" kolom dan melatih model pada setiap kumpulan. Buku catatan ini memperlihatkan gambaran umum penggunaan pustaka ini dengan DataFrames secara asli.
Ada empat komponen utama yang harus diperhatikan saat menggunakan perpustakaan ini.
Konfigurasi. Konfigurasi adalah kelas yang khusus untuk mesin ML dasar yang digunakan untuk melatih dan menghasilkan data. Contohnya adalah penggunaan TensorFlowConfig
untuk membuat semua parameter yang diperlukan untuk melatih model berdasarkan TF. LocalConfig
alias TensorFlowConfig
untuk kompatibilitas dengan versi perpustakaan yang lebih lama. Model disimpan ke direktori yang ditentukan, yang secara opsional dapat diarsipkan dan digunakan nanti.
Tokenizer. Tokenizer mengonversi teks masukan menjadi ID berbasis bilangan bulat yang digunakan oleh mesin ML yang mendasarinya. Tokenizer ini dapat dibuat dan dikirim ke input pelatihan. Ini opsional, dan jika tidak ada tokenizer spesifik yang ditentukan maka tokenizer default akan digunakan. Anda dapat menemukan contoh di sini yang menggunakan tokenizer char-by-char sederhana untuk membuat model dari input CSV. Saat berlatih dalam mode privat non-diferensial, kami menyarankan untuk menggunakan tokenizer SentencePiece
default, tokenizer tanpa pengawasan yang mempelajari unit subkata (misalnya, byte-pair-encoding (BPE) [Sennrich et al.]) dan model bahasa unigram [Kudo. ]) untuk pelatihan yang lebih cepat dan peningkatan akurasi model sintetik.
Pelatihan. Melatih model menggabungkan konfigurasi dan tokenizer serta membangun model, yang disimpan di direktori yang ditentukan, yang dapat digunakan untuk menghasilkan catatan baru.
Generasi. Setelah model dilatih, sejumlah baris atau catatan baru dapat dihasilkan. Secara opsional, validator rekaman dapat disediakan untuk memastikan bahwa data yang dihasilkan memenuhi segala batasan yang diperlukan. Lihat buku catatan kami untuk contoh validator.
Selain empat komponen utama, paket gretel-synthetics
juga dilengkapi dengan serangkaian utilitas yang berguna untuk melatih model sintetik tingkat lanjut dan mengevaluasi kumpulan data sintetik.
Beberapa fungsi ini membawa ketergantungan yang besar, sehingga dikirimkan sebagai tambahan yang disebut utils
. Untuk menginstal dependensi ini, Anda dapat menjalankan
pip install gretel-synthetics[utils]
Untuk detail tambahan, lihat dokumen API modul Utilitas.
Dukungan privasi diferensial untuk mode TensorFlow kami dibangun berdasarkan kerja keras yang dilakukan oleh tim Google TF dan pustaka Privasi TensorFlow mereka.
Saat menggunakan DP, saat ini kami merekomendasikan penggunaan tokenizer karakter karena ini hanya akan membuat kosakata token tunggal dan menghilangkan risiko data sensitif diingat sebagai token sebenarnya yang dapat diputar ulang selama pembuatan.
Ada juga beberapa opsi konfigurasi yang penting seperti:
predict_batch_size
harus disetel ke 1dp
harus diaktifkanlearning_rate
, dp_noise_multiplier
, dp_l2_norm_clip
, dan dp_microbatches
dapat disesuaikan untuk mencapai berbagai nilai epsilon.reset_states
harus dinonaktifkanSilakan lihat contoh Notebook kami untuk melatih model DP berdasarkan kumpulan data Netflix Prize.