Implementar LLM y SQL para interactuar con una base de datos en español en un enfoque multimodal

El desafío de generar SQL preciso para las consultas de los usuarios ha persistido durante mucho tiempo, ya que exige una comprensión profunda tanto de la consulta como de la base de datos. Existen soluciones se basan en las capacidades de los grandes modelos de lenguaje (LLM) para generar SQL que se alinee con el esquema de la base de datos y recupere con precisión los datos requeridos.
Sin embargo, existen varios problemas como son

  • Estas soluciones se encuentran en idioma inglés
  • Hay algunos conocimientos necesarios que no están incluidos explícitamente en el esquema de la base de datos ni han sido aprendidos por los LLM.

Por lo que se propone una herramienta que sea capaz de interactuar en español con una base de datos utilizando un enfoque multimodal, como primer paso se creó un conjunto de datos personalizado para posteriormente entrenarlo apoyados por PEFT (parameter-efficient fine-tuning) y por medio de comandos de voz poder generar instrucciones y que sus correspondientes respuestas puedan entregar resultados ya sea por respuesta de voz, texto o imagen según sea la respuesta

Detalles del modelo

Descripcion

En este proyecto se busco hacer fine-tuning a 2 modelos diferentes:

  • Mistral 7B
  • Code Llama Para ver cual arrojaba mejores resultados como base

Metodología como primer paso es generar un set de datos a partir de datos donde se incluya la pregunta y su SQL correspondiente, el segundo paso consiste en augmentar los datos utilizando diferentes técnicas, una vez generados los datos procedemos a una fase de entrenamiento Después de entrenar el modelo procedemos a una fase de pruebas se colocan instrucciones ya sean por voz o texto en caso de existir inconsistencias procedemos a una fase de corrección y obtenemos de manera multimodal el resultado esperado, en caso de ser una respuesta corta se darán los resultados con voz y si son muy grades se presentaran en forma de tablas o imagenes

image/png

Notebook

Aqui se muestra un link al github con los los notebooks de entreamiento de cada modelo

Primeramente se hizo un fine-tuning al modelo Code Llama para ver los resultados que nos daria

Como segundo modelo se utilizo Mistral7b este se hizo un fine-tuning con el modelo quantizado a 4bits para que pueda ser ejectuado en una mayor cantidad de equipos

Dataset

Link al Dataset

Modelos/Adpter

Link al adapter de CodeLLama

Demo

Link al demo

Resultados

Después de aplicar la herramienta se logró que en un 80 % de los datos se entregaron sentencias favorables y al aplicar la auto-corrección se logro una cifra del 87%

Contribuciones

Nuestras contribuciones se listan a continuación:

  • Generar consultas por medio de audio o texto a una base de datos personalizada.
  • Entrenamiento de un modelo con texto en español para realizar consultas en SQL.
  • Entregar respuestas a consultas utilizando un enfoque multimodal (texto, audio o imágenes).
  • Validación de la calidad de las respuestas con mecanismos de autocorrección

Integrantes

  • Asis Heriberto Rangel Ortiz
  • Emmanuel Alexis Zarazua Rubio
  • Néstor Emmanuel Briones Ramirez
  • Ventura Rivera Robles
  • Fernando Morales Flores
Downloads last month
60
Safetensors
Model size
3.95B params
Tensor type
F32
·
U8
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.