Generazione dati sintetici
Genera dati sintetici utilizzando generatori casuali, algoritmi, modelli statistici e modelli LLM (Large Language Models) per simulare dati reali per sviluppare e testare soluzioni in modo efficace.
I dati sintetici possono essere uno strumento potente per lo sviluppo e il test di soluzioni, soprattutto quando i dati effettivi non esistono o non possono essere utilizzati. I dati sintetici o generati artificialmente possono avere molte delle caratteristiche dei dati reali. I dati sintetici vengono in genere creati utilizzando generatori casuali, algoritmi o modelli statistici per simulare le caratteristiche e le distribuzioni dei dati reali. Tuttavia, questo può essere complesso da produrre o fare affidamento su strumenti con caratteristiche di varia sofisticazione. Con la disponibilità di LLM (Large Language Models), possono essere generati dati più pertinenti e specifici dello schema che considerano le caratteristiche espresse in linguaggio naturale.
Argomenti
- Vantaggi della generazione di dati sintetici
La generazione di dati sintetici consente di popolare le copie dei metadati del database, supportando progetti di sviluppo, test e apprendimento automatico senza utilizzare dati riservati provenienti dalle tabelle originali. - Genera dati sintetici
Utilizzare la funzioneDBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA
per generare dati sintetici ed eseguire query sui dati utilizzando le azioni Seleziona AI. - Monitorare e risolvere i problemi relativi alla generazione dei dati sintetici
Quando si generano grandi quantità di dati in molte tabelle, Select AI suddivide i task di generazione dei dati sintetici in chunk più piccoli ed esegue i task in parallelo. Lo stato di ogni chunk viene tracciato nella tabellaSYNTHETIC_DATA$<operation_id>_STATUS
.
Vantaggi della generazione di dati sintetici
La generazione sintetica dei dati consente di popolare le copie dei metadati del database, supportando progetti di sviluppo, test e apprendimento automatico senza utilizzare dati riservati provenienti da tabelle originali.
-
Popolazione di copie di metadati con dati sintetici: una copia di metadati replica la struttura di un database o di uno schema senza includere dati effettivi. Select AI consente la generazione di dati sintetici per popolare queste copie, proteggendo i dati sensibili e consentendo allo stesso tempo lo sviluppo, il test e la creazione di modelli. Questo approccio supporta i test di performance e scalabilità.
-
Avvio di nuovi progetti: quando si avvia un nuovo progetto, i dati effettivi potrebbero non essere disponibili. I dati sintetici forniscono campioni realistici per aiutare a dimostrare i concetti e ottenere supporto per le proposte di progetto.
-
Convalida della user experience: i dati sintetici aiutano a testare le interfacce utente fornendo set di dati diversi per scoprire difetti di progettazione, prestazioni e problemi di scalabilità.
-
Supporto di progetti di AI e Machine Learning: i dati sintetici sono utili per la formazione di modelli di AI e Machine Learning quando i dati reali non sono disponibili o sono limitati. Gli LLM possono generare dati con pattern specifici per facilitare l'addestramento e il punteggio dei modelli.
Argomento padre: Generazione dati sintetici
Genera dati sintetici
Utilizzare la funzione DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA
per generare dati sintetici ed eseguire query sui dati utilizzando le azioni Seleziona AI.
Per ulteriori informazioni, vedere Funzione GENERATE_SYNTHETIC_DATA ed Esempio: generazione di dati sintetici.
Argomento padre: Generazione dati sintetici
Monitoraggio e risoluzione dei problemi di generazione dei dati sintetici
Quando si generano grandi quantità di dati in molte tabelle, Select AI suddivide i task di generazione dei dati sintetici in chunk più piccoli ed esegue i task in parallelo. Lo stato di ogni chunk viene tracciato nella tabella SYNTHETIC_DATA$<operation_id>_STATUS
.
Le operazioni di generazione dei dati sintetici vengono registrate nelle tabelle DBA_LOAD_OPERATIONS
e USER_LOAD_OPERATIONS
. Utilizzare queste tabelle per monitorare l'operazione DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA
. Per ulteriori dettagli, vedere Tenere traccia delle operazioni di caricamento DBMS_CLOUD.
USER_LOAD_OPERATION
utilizzando quanto riportato di seguito.SELECT max(id) FROM user_load_operations;
Per visualizzare le operazioni dei dati sintetici in esecuzione in un'altra sessione, utilizzare la vista DBA_LOAD_OPERATIONS
.
Visualizza stato generazione dati sintetici
La tabella di stato dell'operazione di generazione dei dati sintetici mostra l'avanzamento di ogni tabella e del relativo chunk corrispondente. La colonna STATUS_TABLE
in USER_LOAD_OPERATIONS
o DBA_LOAD_OPERATIONS
mostra il nome della tabella di stato. Il nome della tabella è SYNTHETIC_DATA$<operation_id>_STATUS
e contiene le colonne riportate di seguito.
Nome | Tipo di dati | descrizione; |
---|---|---|
|
|
Identificativo univoco del record. |
|
|
Nome qualificato della tabella, ad esempio "ADB_USER"."EMPLOYEES" |
|
|
Numero desiderato di record per questo task di generazione dati |
|
|
Numero effettivo di record generati. |
|
|
Valore iniziale per la chiave primaria durante questo task di generazione dati. |
|
|
Indicatore orario che indica l'ora dell'ultima modifica del record. |
|
|
Stato del task di generazione dati. I valori validi sono:
|
|
|
Codice di errore se il task di generazione dei dati non riesce. |
|
|
Messaggio di errore fornito se il task non riesce. |
|
|
Indicatore orario che segnala la fine del task di generazione dati. |
Per controllare il numero di record generati per ogni tabella, eseguire le operazioni riportate di seguito.
SELECT name, SUM(rows_loaded) FROM synthetic_data$<operation_id>_status group by name;
Eseguire la query ROWS_LOADED
per confermare il numero di righe caricate per ogni chunk e SUM(ROWS_LOADED)
per le righe per ogni tabella.
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
Argomento padre: Generazione dati sintetici