Generación de datos sintéticos
Genere datos sintéticos utilizando generadores aleatorios, algoritmos, modelos estadísticos y modelos de lenguaje grande (LLM) para simular datos reales para desarrollar y probar soluciones de manera efectiva.
Los datos sintéticos pueden ser una herramienta poderosa al desarrollar y probar soluciones, especialmente cuando los datos reales aún no existen o no se permite su uso. Los datos sintéticos o generados artificialmente pueden tener muchas de las características de los datos reales. Los datos sintéticos se crean típicamente usando generadores aleatorios, algoritmos o modelos estadísticos para simular las características y distribuciones de los datos reales. Sin embargo, esto puede ser complejo de producir o confiar en herramientas con características de sofisticación variable. Con la disponibilidad de modelos de lenguaje grande (LLM), se pueden generar datos más relevantes y específicos del esquema que tengan en cuenta las características expresadas en lenguaje natural.
Temas
- Ventajas de la generación de datos sintéticos
La generación de datos sintéticos permite rellenar clones de metadatos de base de datos, soportar proyectos de desarrollo, prueba y aprendizaje automático sin utilizar datos confidenciales de tablas originales. - Generación de datos sintéticos
Utilice la funciónDBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA
para generar datos sintéticos y consultar los datos mediante las acciones Seleccionar IA. - Supervisión y solución de problemas de generación de datos sintéticos
Al generar grandes cantidades de datos en muchas tablas, Select AI divide las tareas de generación de datos sintéticos en fragmentos más pequeños y ejecuta tareas en paralelo. Se realiza un seguimiento del estado de cada fragmento en la tablaSYNTHETIC_DATA$<operation_id>_STATUS
.
Ventajas de la generación de datos sintéticos
La generación de datos sintéticos permite rellenar clones de metadatos de base de datos, soportar proyectos de desarrollo, prueba y aprendizaje automático sin utilizar datos confidenciales de tablas originales.
-
Relleno de clonaciones de metadatos con datos sintéticos: una clonación de metadatos replica la estructura de una base de datos o esquema sin incluir datos reales. Select AI permite la generación de datos sintéticos para rellenar estos clones, protegiendo los datos confidenciales al tiempo que permite el desarrollo, las pruebas y la creación de plantillas. Este enfoque admite pruebas de rendimiento y escalabilidad.
-
Inicio de nuevos proyectos: al iniciar un nuevo proyecto, puede que los datos reales no estén disponibles. Los datos sintéticos proporcionan muestras realistas para ayudar a demostrar conceptos y obtener apoyo para las propuestas de proyectos.
-
Validación de la experiencia del usuario: los datos sintéticos ayudan a probar las interfaces de usuario proporcionando diversos conjuntos de datos para detectar fallos de diseño, problemas de rendimiento y escalabilidad.
-
Soporte de proyectos de IA y aprendizaje automático: los datos sintéticos son útiles para entrenar modelos de IA y aprendizaje automático cuando los datos reales no están disponibles o están restringidos. Los LLM pueden generar datos con patrones específicos para facilitar el entrenamiento y la puntuación de modelos.
Tema principal: Generación de datos sintéticos
Generar datos sintéticos
Utilice la función DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA
para generar datos sintéticos y consultar los datos mediante las acciones Select AI.
Para obtener más información, consulte Función GENERATE_SYNTHETIC_DATA y Ejemplo: generación de datos sintéticos.
Tema principal: Generación de datos sintéticos
Supervisión y resolución de problemas de la generación de datos sintéticos
Al generar grandes cantidades de datos en muchas tablas, Select AI divide las tareas de generación de datos sintéticos en fragmentos más pequeños y ejecuta tareas en paralelo. Se realiza un seguimiento del estado de cada fragmento en la tabla SYNTHETIC_DATA$<operation_id>_STATUS
.
Las operaciones de generación de datos sintéticos se registran en las tablas DBA_LOAD_OPERATIONS
y USER_LOAD_OPERATIONS
. Utilice estas tablas para supervisar la operación DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA
. Consulte Seguimiento de operaciones de carga de DBMS_CLOUD para obtener más información.
USER_LOAD_OPERATION
mediante lo siguiente:SELECT max(id) FROM user_load_operations;
Para ver las operaciones de datos sintéticos que se ejecutan en una sesión diferente, utilice la vista DBA_LOAD_OPERATIONS
.
Ver estado de generación de datos sintéticos
La tabla de estado de la operación de generación de datos sintéticos muestra el progreso de cada tabla y su fragmento correspondiente. La columna STATUS_TABLE
de USER_LOAD_OPERATIONS
o DBA_LOAD_OPERATIONS
muestra el nombre de la tabla de estado. El nombre de la tabla es SYNTHETIC_DATA$<operation_id>_STATUS
y tiene las siguientes columnas:
Nombre | Tipo de Dato | Descripción |
---|---|---|
|
|
Identificador único del registro. |
|
|
Nombre cualificado de la tabla, como "ADB_USER"."EMPLOYEES" |
|
|
Número deseado de registros para esta tarea de generación de datos |
|
|
Número real de registros generados. |
|
|
Valor inicial para la clave primaria durante esta tarea de generación de datos. |
|
|
Registro de hora que indica cuándo se modificó por última vez el registro. |
|
|
Estado de la tarea de generación de datos. Los valores válidos son:
|
|
|
Código de error, si falla la tarea de generación de datos. |
|
|
Mensaje de error proporcionado si la tarea falla. |
|
|
Registro de hora que marca el final de la tarea de generación de datos. |
Para comprobar el número de registros generados para cada tabla, emita lo siguiente:
SELECT name, SUM(rows_loaded) FROM synthetic_data$<operation_id>_status group by name;
Consulte ROWS_LOADED
para confirmar el número de filas que se cargan para cada fragmento y SUM(ROWS_LOADED)
para las filas de cada tabla.
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
Tema principal: Generación de datos sintéticos