File size: 5,593 Bytes
70a39e8
81add4c
 
 
70a39e8
 
 
 
 
 
 
81add4c
 
 
 
 
 
70a39e8
81add4c
70a39e8
 
 
63b8988
70a39e8
81add4c
70a39e8
 
 
 
 
 
 
81add4c
70a39e8
 
 
 
 
 
 
81add4c
70a39e8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
81add4c
70a39e8
 
81add4c
 
 
 
 
70a39e8
81add4c
70a39e8
81add4c
70a39e8
81add4c
70a39e8
81add4c
70a39e8
81add4c
 
 
70a39e8
81add4c
 
 
 
be1157e
 
 
 
 
 
 
 
 
 
 
81add4c
 
70a39e8
 
 
 
 
81add4c
 
 
 
70a39e8
81add4c
70a39e8
81add4c
 
 
70a39e8
 
 
 
 
81add4c
 
70a39e8
 
81add4c
 
 
 
 
70a39e8
81add4c
70a39e8
 
 
 
 
 
 
 
 
 
 
 
 
81add4c
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
---
library_name: transformers
base_model: meta-llama/Meta-Llama-3-8B-Instruct
license: llama3
language:
- pt
tags:
- code
- sql
- finetuned
- portugues-BR
co2_eq_emissions:
  emissions: 1450
  source: "Lacoste, Alexandre, et al. “Quantifying the Carbon Emissions of Machine Learning.” ArXiv (Cornell University), 21 Oct. 2019, https://doi.org/10.48550/arxiv.1910.09700."
  training_type: "fine-tuning"
  geographical_location: "Council Bluffs, Iowa, USA."
  hardware_used: "1 A100 40GB GPU"
---
# Lloro SQL

<img src="https://cdn-uploads.huggingface.co/production/uploads/653176dc69fffcfe1543860a/h0kNd9OTEu1QdGNjHKXoq.png" width="300" alt="Lloro-7b Logo"/>

Lloro SQL, developed by Semantix Research Labs, is a language Model that was trained to effectively transform Portuguese queries into SQL Code. It is a fine-tuned version of meta-llama/Meta-Llama-3-8B-Instruct,  that was trained on GretelAI public datasets.  The fine-tuning process was performed using the QLORA metodology on a GPU A100 with 40 GB of RAM.

## Model description

Model type: A 7B parameter  fine-tuned on GretelAI public datasets.

Language(s) (NLP): Primarily Portuguese, but the model is capable to understand English as well

Finetuned from model: meta-llama/Meta-Llama-3-8B-Instruct

## What is Lloro's intended use(s)?

Lloro is built for Text2SQL in Portuguese contexts .

Input : Text

Output : Text (Code)

## Usage

Using an OpenAI compatible inference server (like [vLLM](https://docs.vllm.ai/en/latest/index.html))

```python
from openai import OpenAI
client = OpenAI(
    api_key="EMPTY",
    base_url="http://localhost:8000/v1",
)
def generate_responses(instruction, client=client):
    
    chat_response = client.chat.completions.create(
    model=<model>,
    messages=[
        {"role": "system", "content": "Você escreve a instrução SQL que responde às perguntas feitas. Você NÃO FORNECE NENHUM COMENTÁRIO OU EXPLICAÇÃO sobre o que o código faz, apenas a instrução SQL terminando em ponto e vírgula. Você utiliza todos os comandos disponíveis na especificação SQL, como: [SELECT, WHERE, ORDER, LIMIT, CAST, AS, JOIN]."},
        {"role": "user", "content": instruction},
    ]
)
    
    return chat_response.choices[0].message.content

output = generate_responses(user_prompt)

```

## Params

Training Parameters
| Params                           | Training Data                             | Examples                        | Tokens     | LR     |
|----------------------------------|-------------------------------------------|---------------------------------|------------|--------|
| 8B                               | GretelAI public datasets + Synthetic Data | 102970                          | 18.654.222 | 2e-4   |

## Model Sources

GretelAI: <https://huggingface.co/datasets/gretelai/synthetic_text_to_sql>

## Performance

### Test Dataset

| Model          | LLM as Judge | Code Bleu Score | Rouge-L |  CodeBert- Precision | CodeBert-Recall | CodeBert-F1 | CodeBert-F3 |
|----------------|--------------|-----------------|---------|----------------------|-----------------|-------------|-------------|
| Llama 3 8B     | 65.48%       | 0.4583          | 0.6361  |  0.8815              | 0.8871          | 0.8835      | 0.8862      |
| Lloro - SQL    | 71.33%       | 0.6512          | 0.7965  |  0.9458              | 0.9469          | 0.9459      | 0.9466      |
| GPT - 3.5 Turbo| 67.52%       | 0.6232          | 0.9967  |  0.9151              | 0.9152          | 0.9142      | 0.9175      |

### Database Benchmark

| Model          | Score        |
|----------------|--------------|
| Llama 3 - Base | 35.55%       |
| Lloro - SQL    | 49.48%       |
| GPT - 3.5 Turbo| 46.15%       |

### Translated BIRD Benchmark - https://bird-bench.github.io/

| Model          | Score        |
|----------------|--------------|
| Llama 3 - Base | 33.87%       |
| Lloro - SQL    | 47.14%       |
| GPT - 3.5 Turbo| 42.14%       |

## Training Infos

The following hyperparameters were used during training:

| Parameter                 | Value                |
|---------------------------|----------------------|
| learning_rate             | 2e-4                 |
| weight_decay              | 0.001                |
| train_batch_size          | 16                   |
| eval_batch_size           | 8                    |
| seed                      | 42                   |
| optimizer                 | Adam - adamw_8bit    |
| lr_scheduler_type         | cosine               |
| num_epochs                | 4.0                  |

## QLoRA hyperparameters

The following parameters related with the Quantized Low-Rank Adaptation and Quantization were used during training:

| Parameter       | Value   |
|-----------------|---------|
| lora_r          | 64      |
| lora_alpha      | 128     |
| lora_dropout    | 0       |

## Experiments

| Model                 | Epochs | Overfitting | Final Epochs | Training Hours  | CO2 Emission (Kg) |
|-----------------------|--------|-------------|--------------|-----------------|-------------------|
| Llama 3 8B Instruct   | 5      | Yes         | 4            | 10.16           | 1.45              |

## Framework versions

| Library       | Version   |
|---------------|-----------|
| accelerate    | 0.21.0    |
| bitsandbytes  | 0.42.0    |
| Datasets      | 2.14.3    |
| peft          | 0.4.0     |
| Pytorch       | 2.0.1     |
| safetensors   | 0.4.1     |
| scikit-image  | 0.22.0    |
| scikit-learn  | 1.3.2     |
| Tokenizers    | 0.14.1    |
| Transformers  | 4.37.2    |
| trl           | 0.4.7     |