File size: 4,824 Bytes
af0f3fe
 
 
 
 
 
 
 
 
82dbca0
af0f3fe
 
82dbca0
c4225a4
af0f3fe
 
108741c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c4225a4
108741c
 
 
c4225a4
108741c
 
 
 
c4225a4
108741c
 
 
c4225a4
108741c
 
c4225a4
 
 
108741c
c4225a4
108741c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c4225a4
108741c
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
---
language: 
  - "en"
thumbnail: "https://raw.githubusercontent.com/LuisMiSanVe/LuisMiSanVe/refs/heads/main/Resources/LangToSQL/LangToSQLLLM_banner.png"
tags:
- sql
- text-to-sql
- llm
- fine-tuning
- gguf
license: "apache-2.0"
datasets:
- xlangai/spider
base_model: "Qwen/Qwen2.5-Coder-1.5B-Instruct"
---

> [Ver en ingles/See in english](https://huggingface.co/Komma-LuisMiSanVe/LangToSQL/blob/main/README.md)

<img src="https://raw.githubusercontent.com/LuisMiSanVe/LuisMiSanVe/refs/heads/main/Resources/LangToSQL/LangToSQLLLM_banner.png" style="width: 100%; height: auto;" alt="LangToSQL LLM Banner">

# 🤖 Modelo de IA para sentencias PostgreSQL
[![image](https://img.shields.io/badge/postgres-%23316192.svg?style=for-the-badge&logo=postgresql&logoColor=white)](https://www.postgresql.org/)
[![image](https://img.shields.io/badge/json-5E5C5C?style=for-the-badge&logo=json&logoColor=white)](https://www.newtonsoft.com/json)
[![image](https://img.shields.io/badge/Visual_Studio_Code-0078D4?style=for-the-badge&logo=visual%20studio%20code&logoColor=white)](https://code.visualstudio.com/)
[![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](https://www.python.org/)
[![PyTorch](https://img.shields.io/badge/PyTorch-%23EE4C2C.svg?style=for-the-badge&logo=PyTorch&logoColor=white)](https://pytorch.org/)
[![NumPy](https://img.shields.io/badge/numpy-%23013243.svg?style=for-the-badge&logo=numpy&logoColor=white)](https://numpy.org/)
[![HuggingFace](https://img.shields.io/badge/Hugging%20Face-%23000040.svg?style=for-the-badge&logo=Hugging%20Face&logoColor=ffdf00)](https://huggingface.co/Komma-LuisMiSanVe)

>[!NOTE]
> Dale un vistazo a las otras versiones del programa:
>- [WinForms](https://github.com/LuisMiSanVe/LangToSQL/tree/main)
>- [REST API](https://github.com/LuisMiSanVe/LangToSQL_API/tree/main) 
>- [ChatBot](https://github.com/LuisMiSanVe/LangToSQL_ChatBot/tree/main)
>- [NuGet](https://github.com/LuisMiSanVe/LangToSQL_NuGet/tree/main)
>- [Android](https://github.com/LuisMiSanVe/GeminiLiteSQL/tree/main)

El modelo de IA ha sido entrenado para convertir lenguaje natural a sentencias de PostgreSQL.

## 📝 Explicación de Tecnología
El modelo usa [Gwen Coder](https://huggingface.co/Qwen/Qwen2.5-Coder-1.5B-Instruct) de base y refinado con los datasets de [Spider](https://yale-lily.github.io/spider).

El dataset en archivo `JSON` contiene `train_spider.json` de **Spider**, ya que es el dataset principal.

El modelo se ha exportado a `GGUF` con [llama.cpp](https://github.com/ggml-org/llama.cpp) para que puedas usarlo en programas como [LM Studio](https://lmstudio.ai/).

## 🛠️ Instalación
Para ejecutar el script de entrenamiento por tu cuenta, primero necesitas instalar [Python](https://www.python.org/) y ejecuta este comando:
```
pip install transformers datasets peft accelerate bitsandbytes trl==1.0.0
```
Dependiendo en la versión, es posible que necesites usar este en su lugar:
```
py -m pip install transformers datasets peft accelerate bitsandbytes trl==1.0.0
```

>[!IMPORTANT]
>Asegurate que la libreria `TRL` está en la versión `1.0.0`, ya que es la única version compatible con el script de entrenamiento.

## 📂 Archivos
Este repositorio incluye los archivos del modelo LLM entrenado, su script de entrenamiento, el dataset para entrenar y un script para probar el modelo `.safetensors`.

Puedes descargar el `GGUF` final desde los [Lanzamientos](https://github.com/LuisMiSanVe/LangToSQL_LLM/releases).

## 🚀 Lanzamientos
Una versión será lanzada solo cuando se cumplan los siguientes puntos:\
Nuevas funciones importantes y arreglos de fallos criticos causarán la salida inmediata de una nueva versión, mientras que otros cambios/arreglos menores deberán esperar una semana desde que se incluyeron en el repositorio antes de ser incluidos en la nueva versión, para que otros posibles cambios puedan ser añadidos tambien.
>[!NOTE]
>Estos posibles nuevos cambios no alargarán la espera de la salida de la nueva versión a más de una semana.

El número de la versión seguirá este formato: \
\[Añadido Importante\].\[Añadido Menor\].\[Arreglos de Errores\]

## 💻 Tecnologías usadas
- Lenguaje de programación: [Python](https://www.python.org/)
- Librerías:
  - [transformers](https://pypi.org/project/transformers/)
  - [datasets](https://pypi.org/project/datasets/)
  - [peft](https://pypi.org/project/peft/)
  - [acceletare](https://pypi.org/project/accelerate/)
  - [bitsandbytes](https://pypi.org/project/bitsandbytes/)
  - [trl](https://pypi.org/project/trl/)
- Otros:
  - [llama.cpp](https://lmstudio.ai/)
  - [Gwen Coder](https://huggingface.co/Qwen/Qwen2.5-Coder-1.5B-Instruct)
  - [Spider](https://yale-lily.github.io/spider)
- IDE Recomendado: [VS Code](https://code.visualstudio.com/)