Use Case: AI-generated synthetic data
Ce guide fournit les procédures étape par étape pour les données synthétiques générées par l'IA pour une seule table d'entité. synthétiques générées par l'IA pour une seule table d'entités.
Last updated
Ce guide fournit les procédures étape par étape pour les données synthétiques générées par l'IA pour une seule table d'entité. synthétiques générées par l'IA pour une seule table d'entités.
Last updated
Le diagramme ci-dessous illustre un flux de travail pour les données synthétiques générées par l'IA. Des informations détaillées sur chaque étape du diagramme sont fournies tout au long de cette page.
Avant de commencer le cas d'utilisation des données synthétiques générées par l'IA, consultez la vidéo ci-dessous qui fournit une brève introduction aux méthodes de génération de données.
Pour ce cas d'utilisation clé, une seule table, nommée censusqui contient des données de recensement, doit être synthétisé à l'aide de la génération de Syntho, alimentée par l'IA. La confidentialité maximale, ainsi que la génération de données hautement réalistes qui reflètent statistiquement l'ensemble de données d'origine, sont cruciales pour l'IA et l'analyse. L'étape initiale consiste à créer un espace de travail dans Syntho, lié à une base de données de recensement. Une fois établi, cet espace de travail comprendra les éléments suivants census exclusivement. Les colonnes du tableau et un échantillon des données qu'il contient sont présentés ci-dessous.
Créer un workspace comme décrit dans le [Create a workspace(../../setup-workspaces/create-a-workspace/).
L'espace de travail doit consister en un source et un destination base de données. La base de données destination doit avoir exactement les mêmes tables et colonnes, mais vides, que la base de données source base de données, avec accès en écriture.
Aligner les types de données : Veillez à ce que les types de données des colonnes dans les bases de données source et de destination représentent correctement leur contenu. Par exemple, date Les colonnes doivent être du type Date, integer les colonnes de type Integeret decimal les colonnes de type Decimal/Float.
Pour la génération de données synthétiques par l'IA, assurez-vous que vos données sont aptes à être synthétisées. Syntho s'attend à ce que vos données soient stockées dans un fichier de type entity table qui respecte des lignes directrices spécifiques :
Maintenir un minimum de column-to-row ratio of 1:500 pour le respect de la vie privée et la généralisation algorithmique. Avec 15 colonnes, il faut viser au moins 7 500 lignes ; notre exemple de base de données dépasse ce chiffre avec 48 842 lignes (voir l'illustration ci-dessous).
Décrire chaque entité en une seule ligne, afin de garantir l'indépendance des lignes sans informations séquentielles.
Utiliser generic column names pour éviter d'exposer des informations sensibles, remplacer les identifiants spécifiques des patients, comme "patient_a_médicaments", par une colonne de patients contenant les noms.
Éliminer les colonnes dérivées d'autres colonnes afin d'améliorer la modélisation et la qualité des données synthétiques.
Notre exemple de tableau répond parfaitement à ces critères.
Pour la synthèse, placez le census sous la table synthesize le mode de la table. Bien que Syntho mette par défaut les tables dans les modes appropriés, vous pouvez changer cela par glisser-déposer.
Sous Column settings > Generation Method, sélectionner AI-powered generation pour les modèles ML de Syntho afin de synthétiser les données. C'est aussi la méthode de génération par défaut, pour toutes les tables placées sous synthesize.
Cette fonction permet de masquer les observations sensibles ou rares, telles que des professions spécifiques dans la catégorie census en les remplaçant par une valeur définie par l'utilisateur, ce qui améliore la confidentialité des données. Ajuster les rare category protection threshold et replacement value en Column settings > Encoding type > Advanced settings.
Rare category protection threshold: Toutes les valeurs de la colonne dont la fréquence est égale ou inférieure au seuil de protection de la catégorie rare sont automatiquement remplacées.
Rare category replacement value: Toutes les valeurs de la colonne dont la fréquence est égale ou inférieure au seuil de protection de la catégorie rare sont automatiquement remplacées par cette valeur de remplacement.
Par exemple, les professions apparaissant as frequently or less than 15sera remplacé par le signe astérisque ou "*". Le nombre et la valeur de remplacement sont facultatifs et peuvent être définis à la demande de l'utilisateur (voir l'illustration ci-dessous).
Optional: Avec les tableaux de données synthétiques générés par l'IA, l'étiquetage et le remplacement manuel des colonnes PII sont facultatifs.
Clarification: L'analyseur d'IIP constitue un point de départ pour la détection des IIP. Les utilisateurs doivent procéder à des examens supplémentaires pour identifier et traiter toute autre donnée sensible qui pourrait ne pas être détectée par l'analyseur.
Dans le fichier PII tabVous pouvez ajouter de nouvelles colonnes à la liste des colonnes PII, soit manuellement, soit en utilisant la fonction Syntho PII scanner. Vous avez la possibilité d'étiqueter manuellement les colonnes contenant des IIP en sélectionnant le nom de la colonne et en choisissant éventuellement un simulateur à appliquer. En cliquant sur "Confirm"La colonne est marquée comme contenant des informations confidentielles et l'opération est confirmée. mocker sélection.
Vous pouvez également procéder à la détection automatique des IIP à l'aide de l'analyseur d'IIP. Lancez une analyse pour détecter les IIP dans toutes les colonnes de la base de données à partir de l'onglet IIP de l'application Job Configuration panneau. Notez que le scanner offre à la fois Shallow et Deep modes de balayage :
Le mode shallow scan évalue les colonnes en utilisant des règles d'expression régulière pour identifier les informations confidentielles, optimisées pour la vitesse mais avec une précision variable.
La deep scan examine à la fois les métadonnées et les données contenues dans les colonnes pour une identification complète des IIP.
Vous pouvez utiliser les simulateurs pour remplacer toutes les colonnes PII. Si ce n'est pas le cas, ces colonnes PII seront traitées comme des colonnes catégorielles et traitées par la fonction "Rare category protection" de Syntho.
Dans les paramètres du travail, sous les paramètres du tableau, vous pouvez ajuster les paramètres du générateur, y compris le nombre maximum de lignes pour l'entraînement afin d'optimiser la vitesse. En laissant ce paramètre à None utilise toutes les lignes. Les Take random sample permet l'échantillonnage :
On: Des lignes aléatoires sont sélectionnées pour la formation.
Off: Les lignes supérieures de la base de données sont utilisées.
Pour lancer la génération de données, vous pouvez procéder comme suit :
Sur l'écran Job Configuration panneau, drag le tableau correspondant sous Synthesize.
Faites glisser tous les autres tableaux sous De-identify ou Exclude.
Sur l'écran Job configuration sélectionner Generate.
Sur l'écran Job configuration summary panneau, ajuster les paramètres de génération comme souhaité.
Enfin, sélectionner Start generating.
Avant de lancer le processus de génération, vous avez la possibilité de modifier les paramètres du modèle. En voici un aperçu :
Read batch size: Le nombre de lignes lues dans chaque table source par lot.
Write batch size: Le nombre de lignes insérées dans chaque table de destination par lot.
N connections: Spécifie le nombre de connexions.
Les utilisateurs doivent manuellement TRUNCATE leurs tables dans les DESTINATION avant de lancer chaque nouvelle tâche de génération de données. Si la troncature est entravée par des contraintes existantes, celles-ci doivent être temporairement désactivées avant la troncature, puis réactivées par la suite. Par exemple, pour faciliter le processus de troncation lorsque des contraintes de clés étrangères l'empêchent, utilisez les commandes SQL suivantes : Tout d'abord, désactivez les contraintes en exécutant SET FOREIGN_KEY_CHECKS = 0;
, puis TRUNCATE la table, et enfin, ré-activer les contraintes avec SET FOREIGN_KEY_CHECKS = 1;
. Cette séquence permet de s'assurer que les tables sont correctement préparées pour la génération de données sans violation des contraintes.
SDMetrics est un open-source Python bibliothèque conçue pour évaluer les données synthétiques tabulaires afin de déterminer dans quelle mesure elles imitent les propriétés mathématiques des données réelles, ce que l'on appelle la fidélité des données synthétiques, par le biais d'une évaluation sélective des métriques, d'une explication détaillée des résultats, d'une visualisation des scores et de capacités de partage des rapports.
Pour obtenir des métriques et des informations complètes, veuillez consulter la documentation SDMetrics en cliquant sur ce lien.
Dans le carnet ci-dessous, nous comparons des données de démonstration réelles et synthétiques en utilisant SDMetrics basé sur le carnet original de SDMetrics. Vous trouverez également un rapport partageable, que vous pouvez utiliser pour découvrir des informations et créer des graphiques visuels.