File size: 2,290 Bytes
d314d07
 
 
92757ad
 
 
 
d314d07
92757ad
 
 
 
 
d314d07
 
92757ad
d314d07
92757ad
d314d07
92757ad
d314d07
92757ad
 
 
 
d314d07
92757ad
 
d314d07
92757ad
 
 
d314d07
92757ad
 
d314d07
92757ad
d314d07
92757ad
 
d314d07
92757ad
 
 
 
 
 
 
d314d07
92757ad
 
d314d07
92757ad
 
d314d07
92757ad
 
d314d07
92757ad
d314d07
92757ad
d314d07
92757ad
 
 
 
368ea63
 
 
 
 
 
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
---
base_model: unsloth/gemma-2b-it-bnb-4bit
tags:
- text-generation-inference
- text-to-sql
- sql
- gemma
- unsloth
- lora
- peft
license: gemma
language:
- en
---

# Gemma SQL Copilot (LoRA)

This is a fine-tuned version of Google's **Gemma 2B-IT** model designed specifically for **Text-to-SQL** generation. It translates natural English instructions into properly formatted SQL queries. 

The model was fine-tuned using [Unsloth](https://github.com/unslothai/unsloth) for efficient 4-bit quantization and LoRA (Low-Rank Adaptation), meaning it is highly memory efficient and can be run locally on consumer GPUs (like an RTX 3050 6GB) with minimal VRAM.

## 🛠️ Intended Use
- **Task:** Natural Language to SQL (Text-to-SQL)
- **Use Case:** Helping data analysts, developers, and business users query databases simply by asking questions in plain English.
- **Environment:** Designed for fast, low-memory inference using `unsloth`.

## ✍️ Prompt Format
This model was trained on a specific prompt structure. To get the best results, you **must** wrap your question in the following format:

```text
### Instruction:
Write a SQL query to find all users who signed up in 2023.

### Response:
<leave this blank for the model to generate the SQL>

💻 Example Usage

# pip install unsloth
from unsloth import FastLanguageModel

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "Noor201/gemma-sql-copilot-lora",
    max_seq_length = 2048,
    dtype = None,
    load_in_4bit = True, 
)
FastLanguageModel.for_inference(model)

prompt = """### Instruction:
Write a SQL query to find the names of all employees in the 'Sales' department who earn more than 50000.

### Response:
"""

inputs = tokenizer([prompt], return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=128)

print(tokenizer.batch_decode(outputs, skip_special_tokens=True)[0])

⚙️ Training Details

Base Model: google/gemma-2b-it
Training Framework: Unsloth (PEFT/LoRA)
Precision: 4-bit (QLoRA)
Hardware: Trained on a single NVIDIA T4 GPU via Google Colab.

## 📊 Training Results
During the fine-tuning process, the model achieved the following performance metrics on the dataset:
- **Final Training Loss:** 0.0006
- **Final Validation Loss:** 9.3803
- **Epochs:** 2