Génération de données synthétiques
Générez des données synthétiques à l'aide de générateurs aléatoires, d'algorithmes, de modèles statistiques et de grands modèles de langage (LLM) pour simuler des données réelles afin de développer et de tester efficacement des solutions.
Les données synthétiques peuvent être un outil puissant lors du développement et du test de solutions, en particulier lorsque les données réelles n'existent pas encore ou ne sont pas autorisées à être utilisées. Les données synthétiques, ou artificiellement générées, peuvent avoir de nombreuses caractéristiques de données réelles. Les données synthétiques sont généralement créées à l'aide de générateurs aléatoires, d'algorithmes ou de modèles statistiques pour simuler les caractéristiques et les distributions des données réelles. Cependant, cela peut être complexe à produire ou à s'appuyer sur des outils avec des caractéristiques de sophistication variable. Avec la disponibilité des grands modèles de langage (LLM), des données plus pertinentes et spécifiques au schéma peuvent être générées qui tiennent compte des caractéristiques exprimées en langage naturel.
Sujets
- Avantages de la génération de données synthétiques
La génération de données synthétiques permet de remplir des clones de métadonnées de base de données, de prendre en charge des projets de développement, de test et d'apprentissage automatique sans utiliser de données sensibles provenant de tables d'origine. - Génération de données synthétiques
Utilisez la fonctionDBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA
pour générer des données synthétiques et interroger les données à l'aide des actions Sélectionner une IA. - Surveillance et dépannage de la génération de données synthétiques
Lors de la génération de grandes quantités de données dans de nombreuses tables, Select AI divise les tâches de génération de données synthétiques en blocs plus petits et exécute les tâches en parallèle. Le statut de chaque bloc est suivi dans la tableSYNTHETIC_DATA$<operation_id>_STATUS
.
Avantages de la génération de données synthétiques
La génération de données synthétiques permet de remplir des clones de métadonnées de base de données, de prendre en charge des projets de développement, de test et de machine learning sans utiliser de données sensibles provenant de tables d'origine.
-
Renseigner des clones de métadonnées à l'aide de données synthétiques : un clone de métadonnées réplique la structure d'une base de données ou d'un schéma sans inclure de données réelles. Select AI permet à la génération de données synthétiques de remplir ces clones, protégeant les données sensibles tout en activant le développement, les tests et la création de modèles. Cette approche prend en charge les tests de performances et d'évolutivité.
-
Démarrer de nouveaux projets : lors du démarrage d'un nouveau projet, les données réelles peuvent ne pas être disponibles. Les données synthétiques fournissent des échantillons réalistes pour aider à démontrer les concepts et obtenir un soutien pour les propositions de projet.
-
Validation de l'expérience utilisateur : les données synthétiques permettent de tester les interfaces utilisateur en fournissant divers ensembles de données pour détecter les défauts de conception, les performances et les problèmes d'évolutivité.
-
Prise en charge des projets d'IA et de machine learning : les données synthétiques sont utiles pour entraîner des modèles d'IA et de machine learning lorsque les données réelles sont indisponibles ou restreintes. Les LLM peuvent générer des données avec des modèles spécifiques pour faciliter l'entraînement et le scoring des modèles.
Rubrique parent : Génération de données synthétiques
Générer des données synthétiques
Utilisez la fonction DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA
pour générer des données synthétiques et interroger les données à l'aide des actions Select AI.
Pour en savoir plus, reportez-vous à Fonction GENERATE_SYNTHETIC_DATA et à Exemple : génération de données synthétiques.
Rubrique parent : Génération de données synthétiques
Surveiller et résoudre les problèmes liés à la génération de données synthétiques
Lorsque vous générez de grandes quantités de données dans de nombreuses tables, Select AI divise les tâches de génération de données synthétiques en blocs plus petits et exécute les tâches en parallèle. Le statut de chaque bloc est suivi dans la table SYNTHETIC_DATA$<operation_id>_STATUS
.
Les opérations de génération de données synthétiques sont journalisées dans les tables DBA_LOAD_OPERATIONS
et USER_LOAD_OPERATIONS
. Utilisez ces tables pour surveiller l'opération DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA
. Pour plus d'informations, reportez-vous à la section Track DBMS_CLOUD Load Operations.
USER_LOAD_OPERATION
à l'aide des éléments suivants :SELECT max(id) FROM user_load_operations;
Pour visualiser les opérations de données synthétiques exécutées dans une autre session, utilisez la vue DBA_LOAD_OPERATIONS
.
Afficher le statut de la génération de données synthétiques
La table d'état de l'opération de génération de données synthétiques indique la progression de chaque table et le bloc correspondant. La colonne STATUS_TABLE
dans USER_LOAD_OPERATIONS
ou DBA_LOAD_OPERATIONS
indique le nom de la table de statut. Le nom de la table est SYNTHETIC_DATA$<operation_id>_STATUS
et comporte les colonnes suivantes :
Nom | Type de données | Description |
---|---|---|
|
|
Identifiant unique de l'enregistrement. |
|
|
Nom qualifié de la table, tel que "ADB_USER"."EMPLOYEES" |
|
|
Nombre d'enregistrements souhaité pour cette tâche de génération de données |
|
|
Nombre réel d'enregistrements générés. |
|
|
Valeur de début de la clé primaire pendant cette tâche de génération de données. |
|
|
Horodatage indiquant à quel moment l'enregistrement a été modifié en dernier. |
|
|
Statut de la tâche de génération de données. Les valeurs valides sont les suivantes :
|
|
|
Code d'erreur, si la tâche de génération de données échoue. |
|
|
Message d'erreur fourni en cas d'échec de la tâche. |
|
|
Horodatage marquant la fin de la tâche de génération de données. |
Pour vérifier le nombre d'enregistrements générés pour chaque table, exécutez la commande suivante :
SELECT name, SUM(rows_loaded) FROM synthetic_data$<operation_id>_status group by name;
Interrogez ROWS_LOADED
pour vérifier le nombre de lignes chargées pour chaque bloc et SUM(ROWS_LOADED)
pour les lignes de chaque table.
BEGIN
DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
profile_name => 'GENAI',
object_list => '[{"owner": "ADB_USER", "name": "DIRECTOR","record_count":150},
{"owner": "ADB_USER", "name": "MOVIE_ACTOR","record_count":300},
{"owner": "ADB_USER", "name": "CLASSES", "user_prompt":"all in fall semester","record_count":5},
{"owner": "ADB_USER", "name": "ACTOR","record_count":220},
{"owner": "ADB_USER", "name": "MOVIE","record_count":50}]'
);
END;
/
-- Check loaded rows for each chunk
SQL> SELECT name, rows_loaded FROM synthetic_data$141_status order by name;
NAME ROWS_LOADED
------------------------------------------
"ADB_USER"."ACTOR" 188
"ADB_USER"."ACTOR" 32
"ADB_USER"."CLASSES" 5
"ADB_USER"."DIRECTOR" 150
"ADB_USER"."MOVIE" 50
"ADB_USER"."MOVIE_ACTOR" 38
"ADB_USER"."MOVIE_ACTOR" 114
"ADB_USER"."MOVIE_ACTOR" 148
-- Check loaded rows for each table
SQL> SELECT name, SUM(rows_loaded) FROM synthetic_data$141_status group by name;
NAME SUM(ROWS_LOADED)
------------------------------------------
"ADB_USER"."DIRECTOR" 150
"ADB_USER"."MOVIE_ACTOR" 300
"ADB_USER"."CLASSES" 5
"ADB_USER"."ACTOR" 220
"ADB_USER"."MOVIE" 50
Rubrique parent : Génération de données synthétiques