El lenguaje de consulta estructurado (SQL) es un lenguaje complejo que requiere comprensión de bases de datos y metadatos. Hoy, IA generativa puede habilitar a personas sin conocimientos de SQL. Esta tarea generativa de IA se llama texto a SQL, que genera consultas SQL a partir del procesamiento del lenguaje natural (NLP) y convierte el texto en SQL semánticamente correcto. La solución de esta publicación tiene como objetivo llevar las operaciones de análisis empresarial al siguiente nivel al acortar el camino hacia sus datos utilizando lenguaje natural.
Con la aparición de grandes modelos de lenguaje (LLM), la generación de SQL basada en PNL ha experimentado una transformación significativa. Al demostrar un rendimiento excepcional, los LLM ahora son capaces de generar consultas SQL precisas a partir de descripciones en lenguaje natural. Sin embargo, aún persisten desafíos. En primer lugar, el lenguaje humano es inherentemente ambiguo y depende del contexto, mientras que SQL es preciso, matemático y estructurado. Esta brecha puede resultar en una conversión inexacta de las necesidades del usuario en el SQL que se genera. En segundo lugar, es posible que necesite crear funciones de texto a SQL para cada base de datos porque los datos a menudo no se almacenan en un único destino. Es posible que deba volver a crear la capacidad de cada base de datos para permitir a los usuarios la generación de SQL basada en NLP. En tercer lugar, a pesar de la mayor adopción de soluciones de análisis centralizadas, como lagos y almacenes de datos, la complejidad aumenta con los diferentes nombres de tablas y otros metadatos que se requieren para crear el SQL para las fuentes deseadas. Por lo tanto, la recopilación de metadatos completos y de alta calidad también sigue siendo un desafío. Para obtener más información sobre las mejores prácticas y patrones de diseño de texto a SQL, consulte Generar valor a partir de datos empresariales: mejores prácticas para Text2SQL y la IA generativa.
Nuestra solución tiene como objetivo abordar esos desafíos utilizando lecho rocoso del amazonas y Servicios de análisis de AWS. Usamos Claude antrópico v2.1 en Amazon Bedrock como nuestro LLM. Para abordar los desafíos, nuestra solución primero incorpora los metadatos de las fuentes de datos dentro del Catálogo de datos de AWS Glue para aumentar la precisión de la consulta SQL generada. El flujo de trabajo también incluye un ciclo de evaluación y corrección final, en caso de que se identifique algún problema de SQL. Atenea amazónica, que se utiliza en sentido descendente como motor SQL. Athena también nos permite utilizar multitud de Puntos finales y conectores compatibles para cubrir un gran conjunto de fuentes de datos.
Después de seguir los pasos para crear la solución, presentamos los resultados de algunos escenarios de prueba con distintos niveles de complejidad de SQL. Finalmente, analizamos cómo es sencillo incorporar diferentes fuentes de datos a sus consultas SQL.
Resumen de la solución
Hay tres componentes críticos en nuestra arquitectura: recuperación de generación aumentada (RAG) con metadatos de base de datos, un bucle de autocorrección de varios pasos y Athena como nuestro motor SQL.
Utilizamos el método RAG para recuperar las descripciones de las tablas y las descripciones de los esquemas (columnas) del metastore de AWS Glue para garantizar que la solicitud esté relacionada con la tabla y los conjuntos de datos correctos. En nuestra solución, creamos los pasos individuales para ejecutar un marco RAG con el catálogo de datos de AWS Glue con fines de demostración. Sin embargo, también puedes utilizar bases de conocimiento en Amazon Bedrock para crear soluciones RAG rápidamente.
El componente de varios pasos permite al LLM corregir la precisión de la consulta SQL generada. Aquí, el SQL generado se envía en caso de errores de sintaxis. Usamos mensajes de error de Athena para enriquecer nuestro mensaje para el LLM y obtener correcciones más precisas y efectivas en el SQL generado.
Puede considerar los mensajes de error que ocasionalmente provienen de Athena como comentarios. Las implicaciones de costos de un paso de corrección de errores son insignificantes en comparación con el valor entregado. Incluso puede incluir estos pasos correctivos como ejemplos de aprendizaje reforzado supervisado para perfeccionar sus LLM. Sin embargo, no cubrimos este flujo en nuestra publicación por motivos de simplicidad.
Tenga en cuenta que siempre existe un riesgo inherente de tener imprecisiones, lo que naturalmente viene con las soluciones de IA generativa. Incluso si los mensajes de error de Athena son muy eficaces para mitigar este riesgo, puede agregar más controles y vistas, como comentarios humanos o consultas de ejemplo para realizar ajustes, para minimizar aún más dichos riesgos.
Athena no solo nos permite corregir las consultas SQL, sino que también nos simplifica el problema general porque sirve como centro, donde los radios son múltiples fuentes de datos. La gestión del acceso, la sintaxis SQL y más se gestionan a través de Athena.
El siguiente diagrama ilustra la arquitectura de la solución.
El flujo del proceso incluye los siguientes pasos:
- Cree el catálogo de datos de AWS Glue usando un rastreador de AWS Glue (o un método diferente).
- Usando el Modelo Titan-Text-Embeddings en Amazon Bedrock, convierta los metadatos en incrustaciones y guárdelos en un Amazon OpenSearch sin servidor tienda de vectores, que sirve como nuestra base de conocimientos en nuestro marco RAG.
En esta etapa el proceso está listo para recibir la consulta en lenguaje natural. Los pasos 7 a 9 representan un ciclo de corrección, si corresponde.
- El usuario ingresa su consulta en lenguaje natural. Puede utilizar cualquier aplicación web para proporcionar la interfaz de usuario del chat. Por lo tanto, no cubrimos los detalles de la interfaz de usuario en nuestra publicación.
- La solución aplica un marco RAG a través de búsqueda de similitud, que agrega el contexto adicional de los metadatos de la base de datos vectorial. Esta tabla se utiliza para encontrar la tabla, la base de datos y los atributos correctos.
- La consulta se fusiona con el contexto y se envía a Claude antrópico v2.1 en Amazon Bedrock.
- El modelo obtiene la consulta SQL generada y se conecta a Athena para validar la sintaxis.
- Si Athena proporciona un mensaje de error que menciona que la sintaxis es incorrecta, el modelo utiliza el texto de error de la respuesta de Athena.
- El nuevo mensaje agrega la respuesta de Athena.
- El modelo crea el SQL corregido y continúa el proceso. Esta iteración se puede realizar varias veces.
- Finalmente, ejecutamos SQL usando Athena y generamos resultados. Aquí, el resultado se presenta al usuario. Por motivos de simplicidad arquitectónica, no mostramos este paso.
Requisitos previos
Para esta publicación, debe completar los siguientes requisitos previos:
- Tener una Cuenta de AWS.
- Instalar las Interfaz de línea de comandos de AWS (CLI de AWS).
- Configura el SDK para Python (Boto3).
- Cree el catálogo de datos de AWS Glue usando un rastreador de AWS Glue (o un método diferente).
- Usando el Modelo Titan-Text-Embeddings en Amazon Bedrock, convierta los metadatos en incrustaciones y guárdelos en OpenSearch Serverless tienda de vectores.
Implementar la solución
Puedes usar lo siguiente Cuaderno Jupyter, que incluye todos los fragmentos de código proporcionados en esta sección, para crear la solución. Recomendamos usar Estudio Amazon SageMaker para abrir este cuaderno con una instancia ml.t3.medium con el kernel Python 3 (Ciencia de datos). Para obtener instrucciones, consulte Entrenar un modelo de aprendizaje automático. Complete los siguientes pasos para configurar la solución:
- Cree la base de conocimientos en OpenSearch Service para el marco RAG:
- Construya el mensaje (
final_question
) combinando la entrada del usuario en lenguaje natural (user_query
), los metadatos relevantes del almacén de vectores (vector_search_match
), y nuestras instrucciones (details
): - Invoque Amazon Bedrock para el LLM (Claude v2) y solicite que genere la consulta SQL. En el siguiente código, realiza varios intentos para ilustrar el paso de autocorrección:x
- Si se recibe algún problema con la consulta SQL generada (
{sqlgenerated}
) de la respuesta de Atenas ({syntaxcheckmsg}
), el nuevo mensaje (prompt
) se genera en función de la respuesta y el modelo intenta nuevamente generar el nuevo SQL: - Una vez generado el SQL, se invoca al cliente Athena para ejecutarlo y generar el resultado:
Prueba la solución
En esta sección, ejecutamos nuestra solución con diferentes escenarios de ejemplo para probar diferentes niveles de complejidad de consultas SQL.
Para probar nuestro texto a SQL, utilizamos dos conjuntos de datos disponibles en IMDB. Subconjuntos de datos de IMDb están disponibles para uso personal y no comercial. Puede descargar los conjuntos de datos y almacenarlos en Servicio de almacenamiento simple de Amazon (Amazon S3). Puede utilizar el siguiente fragmento de Spark SQL para crear tablas en AWS Glue. Para este ejemplo, utilizamos title_ratings
y title
:
Almacene datos en Amazon S3 y metadatos en AWS Glue
En este escenario, nuestro conjunto de datos se almacena en un depósito de S3. Athena tiene un conector S3 que le permite utilizar Amazon S3 como fuente de datos que se puede consultar.
Para nuestra primera consulta, proporcionamos la entrada “Soy nuevo en esto. ¿Puedes ayudarme a ver todas las tablas y columnas en el esquema imdb?
La siguiente es la consulta generada:
La siguiente captura de pantalla y el código muestran nuestro resultado.
Para nuestra segunda consulta, preguntamos "Muéstreme todos los títulos y detalles en la región de EE. UU. cuya calificación sea superior a 9.5".
La siguiente es nuestra consulta generada:
La respuesta es la siguiente.
Para nuestra tercera consulta, ingresamos “¡Excelente respuesta! Ahora muéstrame todos los títulos de tipo original que tengan calificaciones superiores a 7.5 y que no estén en la región de EE. UU.”.
Se genera la siguiente consulta:
Obtenemos los siguientes resultados.
Generar SQL autocorregido
Este escenario simula una consulta SQL que tiene problemas de sintaxis. Aquí, el SQL generado se autocorregirá según la respuesta de Athena. En la siguiente respuesta, Atenea dio una COLUMN_NOT_FOUND
error y menciono que table_description
no se puede resolver:
Usar la solución con otras fuentes de datos
Para utilizar la solución con otras fuentes de datos, Athena se encarga del trabajo por usted. Para ello, Atenea utiliza conectores de fuente de datos que se puede usar con consultas federadas. Puede considerar un conector como una extensión del motor de consultas de Athena. Existen conectores de fuentes de datos Athena prediseñados para fuentes de datos como Registros de Amazon CloudWatch, Amazon DynamoDB, Amazon DocumentDB (con compatibilidad con MongoDB)y Servicio de base de datos relacional de Amazon (Amazon RDS) y fuentes de datos relacionales compatibles con JDBC, como MySQL y PostgreSQL, bajo la licencia Apache 2.0. Después de configurar una conexión a cualquier fuente de datos, puede utilizar el código base anterior para ampliar la solución. Para obtener más información, consulte Consulta cualquier fuente de datos con la nueva consulta federada de Amazon Athena.
Limpiar
Para limpiar los recursos, puedes empezar por limpiando tu depósito S3 donde residen los datos. A menos que su aplicación invoque Amazon Bedrock, no generará ningún costo. En aras de las mejores prácticas de gestión de infraestructura, recomendamos eliminar los recursos creados en esta demostración.
Conclusión
En esta publicación, presentamos una solución que le permite utilizar PNL para generar consultas SQL complejas con una variedad de recursos habilitados por Athena. También aumentamos la precisión de las consultas SQL generadas a través de un ciclo de evaluación de varios pasos basado en mensajes de error de procesos posteriores. Además, utilizamos los metadatos del catálogo de datos de AWS Glue para considerar los nombres de las tablas solicitados en la consulta a través del marco RAG. Luego probamos la solución en varios escenarios realistas con diferentes niveles de complejidad de consultas. Finalmente, discutimos cómo aplicar esta solución a diferentes fuentes de datos respaldadas por Athena.
Amazon Bedrock está en el centro de esta solución. Amazon Bedrock puede ayudarle a crear muchas aplicaciones de IA generativa. Para comenzar con Amazon Bedrock, recomendamos seguir el inicio rápido a continuación Repositorio GitHub y familiarizarse con la creación de aplicaciones de IA generativa. También puedes probar bases de conocimiento en Amazon Bedrock para construir rápidamente este tipo de soluciones RAG.
Acerca de los autores
Panda Sanjeeb es ingeniero de datos y aprendizaje automático en Amazon. Con experiencia en IA/ML, ciencia de datos y Big Data, Sanjeeb diseña y desarrolla datos innovadores y soluciones de ML que resuelven desafíos técnicos complejos y logran objetivos estratégicos para los vendedores 3P globales que administran sus negocios en Amazon. Además de su trabajo como ingeniero de datos y aprendizaje automático en Amazon, Sanjeeb Panda es un ávido entusiasta de la comida y la música.
Burak Gozluklu es un arquitecto principal de soluciones especializado en IA/ML ubicado en Boston, MA. Ayuda a clientes estratégicos a adoptar tecnologías de AWS y específicamente soluciones de IA generativa para lograr sus objetivos comerciales. Burak tiene un doctorado en Ingeniería Aeroespacial de METU, una maestría en Ingeniería de Sistemas y un postdoctorado en dinámica de sistemas del MIT en Cambridge, MA. Burak sigue siendo un afiliado de investigación en el MIT. Burak es un apasionado del yoga y la meditación.
- Distribución de relaciones públicas y contenido potenciado por SEO. Consiga amplificado hoy.
- PlatoData.Network Vertical Generativo Ai. Empodérate. Accede Aquí.
- PlatoAiStream. Inteligencia Web3. Conocimiento amplificado. Accede Aquí.
- PlatoESG. Carbón, tecnología limpia, Energía, Ambiente, Solar, Gestión de residuos. Accede Aquí.
- PlatoSalud. Inteligencia en Biotecnología y Ensayos Clínicos. Accede Aquí.
- Fuente: https://aws.amazon.com/blogs/machine-learning/build-a-robust-text-to-sql-solution-generating-complex-queries-self-correcting-and-querying-diverse-data-sources/
- :posee
- :es
- :no
- :dónde
- $ UP
- 1
- 10
- 100
- 11
- 12
- 13
- 14
- 16
- 20
- 2024
- 22
- 23
- 29
- 30
- 32
- 39
- 50
- 500
- 521
- 7
- 8
- 9
- a
- Nuestra Empresa
- arriba
- de la máquina
- la exactitud
- preciso
- Lograr
- add
- Adicionalmente
- dirección
- Añade
- adoptar
- Adopción
- Aeroespacial
- Afiliación
- Después
- de nuevo
- AI
- AI / ML
- paquete de capacitación DWoVH
- Alinea
- Todos
- permite
- también
- alternativa
- hacerlo
- am
- Amazon
- RDS de Amazon
- Amazon Web Services
- an
- Analytics
- y
- https://www.youtube.com/watch?v=xB-eutXNUMXJtA&feature=youtu.be
- Antrópico
- cualquier
- APACHE
- aplicable
- Aplicación
- aplicaciones
- se aplica
- Aplicá
- arquitectónico
- arquitectura
- somos
- AS
- contacta
- At
- Atlanta
- intento
- Los intentos
- atributos
- aumentado
- autorizado
- Hoy Disponibles
- AWS
- Pegamento AWS
- fondo
- bases
- basado
- BE
- porque
- a continuación
- MEJOR
- y las mejores prácticas
- Big
- Big Data
- Bloquear
- Boston
- llevar
- build
- Construir la
- construido
- negocios
- pero
- by
- , que son
- Cambridge
- PUEDEN
- no puede
- capacidad
- capaz
- servicios sociales
- case
- catalogar
- Reubicación
- centralizado
- Reto
- retos
- chat
- comprobado
- comprobación
- limpia
- Cli
- cliente
- código
- base de código
- El cobro
- Columna
- Columnas
- combinar
- proviene
- viniendo
- en comparación con
- comparar
- compatibilidad
- completar
- integraciones
- complejidad
- componente
- componentes
- exhaustivo
- conexión
- conecta
- Considerar
- contexto
- continúa
- controles
- Conversión
- convertir
- correcta
- corregido
- correcciones
- Cost
- contar
- Protectora
- Para crear
- creado
- crea
- crítico
- Clientes
- datos
- Ciencia de los datos
- Base de datos
- bases de datos
- conjuntos de datos
- Fecha
- datetime
- liberado
- vas demostrando
- Diseño
- patrones de diseño
- deseado
- A pesar de las
- detalles
- desarrollar
- diagrama
- HIZO
- una experiencia diferente
- discutir
- discutido
- diverso
- do
- documentos
- documentos
- descargar
- durante
- dinámica
- Eficaz
- más
- aparición
- habilitar
- facilita
- Motor
- ingeniero
- Ingeniería
- enriquecer
- garantizar
- Participar
- Empresa
- Entra en
- entusiasta
- error
- Errores
- evaluación
- Incluso
- Cada
- ejemplo
- ejemplos
- Servicio
- ejecución
- existe
- existente
- Explicar
- ampliar
- extensión
- extra
- Fallidos
- false
- Caracteristicas
- realimentación
- final
- Finalmente
- la búsqueda de
- Nombre
- de tus señales
- seguir
- siguiendo
- siguiente
- Marco conceptual
- Desde
- promover
- brecha
- dio
- generar
- generado
- genera
- la generación de
- generación de AHSS
- generativo
- IA generativa
- obtener
- se
- Buscar
- Goals
- tiene
- Manijas
- Tienen
- es
- he
- ayuda
- ayuda
- esta página
- alta calidad
- altamente
- su
- Cómo
- Como Hacer
- Sin embargo
- HTML
- http
- HTTPS
- Bujes
- humana
- i
- no haber aun identificado una solucion para el problema
- if
- ilustrar
- ilustra
- implicaciones
- importante
- in
- incorrecto
- incluir
- incluye
- incorporar
- incorpora
- incorrecto
- aumente
- aumentado
- índice
- INSTRUMENTO individual
- info
- información
- EN LA MINA
- inherente
- inherentemente
- inicial
- interior
- originales
- Las opciones de entrada
- ejemplo
- Instrucciones
- dentro
- invocado
- invoca
- cuestiones
- IT
- iteración
- Trabajos
- únete
- jpg
- especialistas
- lagos
- idioma
- large
- mayores
- APRENDE:
- aprendizaje
- Nivel
- Licencia
- como
- LIMITE LAS
- línea
- LLM
- situados
- amar
- máquina
- máquina de aprendizaje
- para lograr
- HACE
- Management
- administrar
- muchos
- matemático
- Puede..
- me
- meditación
- mediano
- mencionado
- menciona
- mensaje
- la vida
- metadatos
- Método
- podría
- minimizar
- MIT
- Mitigar las
- ML
- modelo
- modelos
- MongoDB
- más,
- MS
- múltiples
- multitud
- Música
- mysql
- nombre
- nombres
- Natural
- Procesamiento natural del lenguaje
- ¿ Necesita ayuda
- Nuevo
- Next
- nlp
- no comercial
- cuaderno
- ahora
- número
- ,
- of
- a menudo
- on
- , solamente
- habiertos
- Operaciones
- or
- solicite
- reconocida por
- Otro
- nuestros
- salida
- afuera
- total
- pasado
- apasionado
- camino
- .
- Personas
- actuación
- realizado
- con
- Doctor en Filosofía
- Platón
- Inteligencia de datos de Platón
- PlatónDatos
- Por favor
- Publicación
- Postgresql
- prácticas
- anterior
- necesidad
- requisitos previos
- presente
- presentó
- Director de la escuela
- Problema
- en costes
- tratamiento
- ideas
- proporcionar
- previsto
- proporciona un
- fines
- Python
- consultas
- pregunta
- pregunta
- Búsqueda
- con rapidez
- citas
- trapo
- .
- Calificaciones
- Leer
- ready
- realista
- recepción
- recibido
- recomiendan
- remitir
- región
- relacionado
- permanecer
- permanece
- representar
- solicita
- Requisitos
- Requisitos
- requiere
- la investigación
- reside
- Resolvemos
- resuelto
- Recursos
- respeto
- respuesta
- resultado
- Resultados
- recuperación
- volvemos
- Derecho
- Se levanta
- Riesgo
- riesgos
- robusto
- FILA
- Ejecutar
- sabio
- sake
- mismo
- Sierra
- guión
- escenarios
- Ciencia:
- búsqueda
- Segundo
- Sección
- ver
- selecciona
- AUTO
- Vendedores
- expedido
- Sin servidor
- sirve
- de coches
- Servicios
- set
- tienes
- Mostrar
- demostración
- mostrado
- lado
- importante
- sencillos
- sencillez
- simplifica
- soltero
- retazo
- a medida
- Soluciones
- RESOLVER
- algo
- Fuente
- Fuentes
- Spark
- especialista
- específicamente
- Etapa
- comienzo
- fundó
- Estado
- Posicionamiento
- Estado
- paso
- pasos
- Sin embargo
- STORAGE
- tienda
- almacenados
- sencillo
- Estratégico
- Cordón
- estructurado
- tal
- Soportado
- seguro
- sintaxis
- SYS
- te
- Todas las funciones a su disposición
- mesa
- ¡Prepárate!
- Target
- Tarea
- Técnico
- Tecnologías
- test
- probado
- texto
- que
- esa
- El proyecto
- el centro
- su
- Les
- luego
- Ahí.
- por lo tanto
- Estas
- Código
- así
- aquellos
- Tres
- A través de esta formación, el personal docente y administrativo de escuelas y universidades estará preparado para manejar los recursos disponibles que derivan de la diversidad cultural de sus estudiantes. Además, un mejor y mayor entendimiento sobre estas diferencias y similitudes culturales permitirá alcanzar los objetivos de inclusión previstos.
- veces
- Título
- títulos
- a
- hoy
- try
- dos
- tipo
- tipos
- ui
- bajo
- experimentado
- comprensión
- a menos que
- Actualizar
- actualizado
- us
- utilizan el
- usado
- Usuario
- usuarios
- usos
- usando
- VALIDAR
- propuesta de
- variedad
- diversos
- variar
- vía
- vistas
- Wake
- caminar
- Camino..
- we
- web
- Aplicación web
- servicios web
- mientras
- que
- mientras
- cuyo
- seguirá
- dentro de
- sin
- Actividades:
- flujo de trabajo
- escribir
- la escritura
- X
- Yoga
- Usted
- tú
- a ti mismo
- zephyrnet