Update README.md
Browse files
README.md
CHANGED
@@ -1,6 +1,67 @@
|
|
1 |
---
|
2 |
-
|
|
|
|
|
3 |
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
## Training procedure
|
5 |
|
6 |
|
|
|
1 |
---
|
2 |
+
license: apache-2.0
|
3 |
+
language:
|
4 |
+
- es
|
5 |
---
|
6 |
+
|
7 |
+
# Implementar LLM y SQL para interactuar con una base de datos en espa帽ol en un enfoque multimodal
|
8 |
+
|
9 |
+
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.
|
10 |
+
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.
|
11 |
+
Sin embargo, existen varios problemas como son
|
12 |
+
- Estas soluciones se encuentran en idioma ingl茅s
|
13 |
+
- 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.
|
14 |
+
|
15 |
+
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
|
16 |
+
|
17 |
+
## Detalles del modelo
|
18 |
+
|
19 |
+
### Descripcion
|
20 |
+
|
21 |
+
En este proyecto se busco hacer fine-tuning a 2 modelos diferentes:
|
22 |
+
- Mistral 7B
|
23 |
+
- Code Llama
|
24 |
+
Para ver cual arrojaba mejores resultados como base
|
25 |
+
|
26 |
+
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
|
27 |
+
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
|
28 |
+
|
29 |
+
|
30 |
+
![image/png](https://cdn-uploads.huggingface.co/production/uploads/6529beddd78452c474eacc37/IKuxLT3JFnZyaPd1Hqccz.png)
|
31 |
+
|
32 |
+
## Notebook
|
33 |
+
|
34 |
+
Aqui se muestra un link al github con los los notebooks de entreamiento de cada modelo
|
35 |
+
|
36 |
+
Primeramente se hizo un fine-tuning al modelo Code Llama para ver los resultados que nos daria
|
37 |
+
- [CodeLlama](https://github.com/Asis41/LLM_SQL_BaseDatosEspanol/blob/main/CodeLlamaFinTunSQL.ipynb)
|
38 |
+
|
39 |
+
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
|
40 |
+
|
41 |
+
- [Mistral](https://github.com/Asis41/LLM_SQL_BaseDatosEspanol/blob/main/trainer-llm-detect-ai-comp-mistral-7b%20(1).ipynb)
|
42 |
+
|
43 |
+
# Dataset
|
44 |
+
|
45 |
+
[Link al Dataset](https://huggingface.co/datasets/somosnlp/LLM_SQL_BaseDatosEspanol)
|
46 |
+
|
47 |
+
# Modelos/Adpter
|
48 |
+
|
49 |
+
[Link al modelo de mistral](https://huggingface.co/somosnlp/LLM_SQL_BaseDatosEspanol_Mistral)
|
50 |
+
|
51 |
+
## Resutlados
|
52 |
+
|
53 |
+
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%
|
54 |
+
|
55 |
+
## Contribuciones
|
56 |
+
|
57 |
+
Nuestras contribuciones se listan a continuaci贸n:
|
58 |
+
- Generar consultas por medio de audio o texto a una base de datos personalizada.
|
59 |
+
- Entrenamiento de un modelo con texto en espa帽ol para realizar consultas en SQL.
|
60 |
+
- Entregar respuestas a consultas utilizando un enfoque multimodal (texto, audio o im谩genes).
|
61 |
+
- Validaci贸n de la calidad de las respuestas con mecanismos de autocorrecci贸n
|
62 |
+
|
63 |
+
|
64 |
+
|
65 |
## Training procedure
|
66 |
|
67 |
|