Generazione dati sintetici
Genera dati sintetici utilizzando generatori casuali, algoritmi, modelli statistici e LLM (Large Language Models) per simulare dati reali per sviluppare e testare soluzioni in modo efficace.
I dati sintetici possono essere uno strumento potente quando si sviluppano e si testano soluzioni, soprattutto quando i dati effettivi non esistono ancora 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 di dati reali. Tuttavia, questo può essere complesso per produrre o fare affidamento su strumenti con caratteristiche di varia sofisticazione. Con la disponibilità di modelli linguistici di grandi dimensioni (LLM), 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 machine learning senza utilizzare dati sensibili 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 intelligenza artificiale. - Monitoraggio e risoluzione dei problemi della generazione di 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 di dati sintetici consente di popolare le copie dei metadati del database, supportando progetti di sviluppo, test e machine learning senza utilizzare dati sensibili dalle tabelle originali.
-
Popolamento delle copie dei metadati con dati sintetici: una copia dei metadati replica la struttura di un database o di uno schema senza includere i dati effettivi. Select AI consente alla generazione di dati sintetici di popolare queste copie, proteggendo i dati sensibili abilitando allo stesso tempo lo sviluppo, il test e la creazione di modelli. Questo approccio supporta il test delle prestazioni e della scalabilità.
-
Avvio di nuovi progetti: quando si avvia un nuovo progetto, è possibile che i dati effettivi non siano disponibili. I dati sintetici forniscono campioni realistici per aiutare a dimostrare concetti e ottenere supporto per le proposte di progetto.
-
Convalida dell'esperienza utente: 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 intelligenza artificiale e machine learning: i dati sintetici sono utili per addestrare i modelli di intelligenza artificiale 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 di 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 GENERATE_SYNTHETIC_DATA Funzione ed Esempio: generazione di dati sintetici.
Argomento padre: Generazione di dati sintetici
Monitoraggio e risoluzione dei problemi della generazione di 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 Traccia 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 una sessione diversa, 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 il 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 seguenti:
Nome | Tipo di dati | Descrizione |
---|---|---|
|
|
Identificativo univoco del record. |
|
|
Nome qualificato della tabella, ad esempio "ADB_USER"."EMPLOYEES" |
|
|
Numero di record desiderato 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'ultima modifica del record. |
|
|
Stato del task di generazione dati. I valori validi sono:
|
|
|
Codice di errore, se il task di generazione dati non riesce. |
|
|
Messaggio di errore fornito se il task non riesce. |
|
|
Indicatore orario che contrassegna la fine del task di generazione dati. |
Per controllare il numero di record generati per ogni tabella, effettuare le operazioni riportate di seguito.
SELECT name, SUM(rows_loaded) FROM synthetic_data$<operation_id>_status group by name;
Eseguire una 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 di dati sintetici