File size: 4,787 Bytes
c9448ac
 
 
 
 
5510dda
c9448ac
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5510dda
 
 
c9448ac
d556c2a
c9448ac
 
 
 
 
d556c2a
c9448ac
d556c2a
 
 
c9448ac
d556c2a
c9448ac
d556c2a
c9448ac
d556c2a
 
 
 
c9448ac
d556c2a
 
 
 
 
c9448ac
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
---
base_model: NousResearch/Meta-Llama-3-8B
tags:
- generated_from_trainer
model-index:
- name: LLAMA-3-8B-SQL-CREATE-CONTEXT
  results: []
---

<!-- This model card has been generated automatically according to the information the Trainer had access to. You
should probably proofread and complete it, then remove this comment. -->

[<img src="https://raw.githubusercontent.com/OpenAccess-AI-Collective/axolotl/main/image/axolotl-badge-web.png" alt="Built with Axolotl" width="200" height="32"/>](https://github.com/OpenAccess-AI-Collective/axolotl)
<details><summary>See axolotl config</summary>

axolotl version: `0.4.0`
```yaml
base_model: NousResearch/Meta-Llama-3-8B
model_type: LlamaForCausalLM
tokenizer_type: AutoTokenizer

load_in_8bit: false
load_in_4bit: false
strict: false

datasets:
  - path: b-mc2/sql-create-context
    type: context_qa.load_v2
dataset_prepared_path: last_run_prepared
val_set_size: 0.05
output_dir: ./out-llama8b-createcontext

sequence_len: 8192
sample_packing: true
pad_to_sequence_len: true

wandb_project: meta-llama-8b-sql-create-context
wandb_entity:
wandb_watch:
wandb_name:
wandb_log_model:

gradient_accumulation_steps: 8
micro_batch_size: 1
num_epochs: 3
optimizer: paged_adamw_8bit
lr_scheduler: cosine
learning_rate: 2e-5

train_on_inputs: false
group_by_length: false
bf16: auto
fp16:
tf32: false

gradient_checkpointing: true
gradient_checkpointing_kwargs:
  use_reentrant: false
early_stopping_patience:
resume_from_checkpoint:
logging_steps: 1
xformers_attention:
flash_attention: true

warmup_steps: 100
evals_per_epoch: 2
eval_table_size:
saves_per_epoch: 1
debug:
deepspeed:
weight_decay: 0.0
fsdp:
fsdp_config:
special_tokens:
  pad_token: <|end_of_text|>

```

</details><br>

# LLAMA 3 8B SQL CREATE CONTEXT

Thanks to [Redmond.ai](https://redmond.ai) for the GPU Support!

This model is a fine-tuned version of [NousResearch/Meta-Llama-3-8B](https://huggingface.co/NousResearch/Meta-Llama-3-8B) on the [b-mc2/sql-create-context](https://huggingface.co/datasets/b-mc2/sql-create-context) dataset.
It achieves the following results on the evaluation set:
- Loss: 0.0201

## Model description

The model is a text-to-SQL language model designed to generate SQL queries from natural language inputs. It takes as input a natural language question and a SQL CREATE TABLE statement as context, and outputs a SQL query that answers the question based on the provided table schema.

The model is trained on a dataset of 78,577 examples, which combines the WikiSQL and Spider datasets. The dataset is specifically designed to prevent hallucination of column and table names, a common issue in text-to-SQL models. The CREATE TABLE statement provides the necessary context for the model to generate accurate SQL queries without requiring actual rows of data.

The model is intended to be used in applications where the table schema is known, and the goal is to generate SQL queries that answer specific questions based on that schema. The model can be fine-tuned for specific use cases and SQL dialects.

## Intended uses & limitations

Intended uses:

Generating SQL queries from natural language inputs in applications where the table schema is known
Supporting data analysis and visualization tasks in various domains
Integrating with other language models or tools to provide a more comprehensive data analysis pipeline
Limitations:

The model relies on the accuracy of the provided CREATE TABLE statement and may not perform well if the schema is incomplete or incorrect
The model may not generalize well to unseen SQL dialects or table schemas
The model may not be able to handle complex queries that require multiple joins or subqueries
The model may not be able to handle queries that require external knowledge or common sense
The model may not be able to handle queries that are ambiguous or open-ended
## Training procedure

### Training hyperparameters

The following hyperparameters were used during training:
- learning_rate: 2e-05
- train_batch_size: 1
- eval_batch_size: 1
- seed: 42
- gradient_accumulation_steps: 8
- total_train_batch_size: 8
- optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
- lr_scheduler_type: cosine
- lr_scheduler_warmup_steps: 100
- num_epochs: 3

### Training results

| Training Loss | Epoch | Step | Validation Loss |
|:-------------:|:-----:|:----:|:---------------:|
| 0.7175        | 0.01  | 1    | 0.7699          |
| 0.055         | 0.51  | 35   | 0.0394          |
| 0.03          | 1.01  | 70   | 0.0231          |
| 0.0215        | 1.5   | 105  | 0.0203          |
| 0.0185        | 2.01  | 140  | 0.0193          |
| 0.0106        | 2.5   | 175  | 0.0201          |


### Framework versions

- Transformers 4.40.0.dev0
- Pytorch 2.2.2+cu121
- Datasets 2.15.0
- Tokenizers 0.15.0