|
--- |
|
base_model: llama-3B |
|
tags: |
|
- text-generation |
|
- sql |
|
- peft |
|
- lora |
|
- rslora |
|
- unsloth |
|
- llama3 |
|
- instruction-tuned |
|
license: mit |
|
--- |
|
|
|
# SQLGenie - LoRA Fine-Tuned LLaMA 3B for Text-to-SQL Generation |
|
|
|
**SQLGenie** is a lightweight LoRA adapter fine-tuned on top of Unsloth’s 4-bit LLaMA 3 (3B) model. It is designed to convert natural language instructions into valid SQL queries with minimal compute overhead, making it ideal for integrating into data-driven applications,or chat interfaces. |
|
it has been trained over 100K types of text based on various different domains such as Education, Technical, Health and more |
|
|
|
## Model Highlights |
|
|
|
- **Base model**: `Llama3 3B` |
|
- **Tokenizer**: Compatible with `Llama3 3B` |
|
- **Fine tuned for**: Text to SQL Converter |
|
- **Accuracy**: > 85% |
|
- **Language**: English Natural Language Sentences fientuned |
|
- **Format**: `safetensors` |
|
|
|
|
|
## Model Dependencies |
|
|
|
- **Python Version**: `3.10` |
|
- **libraries**: `unsloth` |
|
- pip install unsloth |
|
|
|
### Model Description |
|
|
|
- **Developed by:** Merwin |
|
- **Model type:** PEFT adapter (LoRA) for Causal Language Modeling |
|
- **Language(s):** English |
|
- **Fine-tuned from model:** [unsloth/llama-3.2-3b-unsloth-bnb-4bit](https://huggingface.co/unsloth/llama-3.2-3b-unsloth-bnb-4bit) |
|
|
|
### Model Sources |
|
|
|
- **Repository:** https://huggingface.co/mervp/SQLGenie |
|
|
|
## Uses |
|
|
|
### Direct Use |
|
|
|
This model can be directly used to generate SQL queries from natural language prompts. Example use cases include: |
|
- Building AI assistants for databases |
|
- Enhancing Query tools with NL-to-SQL capabilities |
|
- Automating analytics queries in various domains |
|
|
|
|
|
## Bias, Risks, and Limitations |
|
|
|
While the model has been fine-tuned for SQL generation, it may: |
|
- Produce invalid SQL for a very few edge cases |
|
- Infer incorrect table or column names not present in prompt |
|
- Assume a generic SQL dialect (closer to MySQL/PostgreSQL Databases) |
|
|
|
|
|
### Recommendations |
|
- Always validate and test generated queries before execution in a production database. |
|
|
|
|
|
Thanks for visiting and downloading this model! |
|
If this model helped you, please consider leaving a 👍 like. Your support helps this model reach more developers and encourages further improvements if any. |
|
--- |
|
|
|
## How to Get Started with the Model |
|
|
|
```python |
|
from unsloth import FastLanguageModel |
|
|
|
model, tokenizer = FastLanguageModel.from_pretrained( |
|
model_name="mervp/SQLGenie", |
|
max_seq_length=2048, |
|
dtype=None, |
|
) |
|
|
|
prompt = """ You are an text to SQL query translator. |
|
Users will ask you questions in English |
|
and you will generate a SQL query based on their question |
|
SQL has to be simple, The schema context has been provided to you. |
|
|
|
|
|
### User Question: |
|
{} |
|
|
|
### Sql Context: |
|
{} |
|
|
|
### Sql Query: |
|
{} |
|
""" |
|
|
|
question = "List the names of customers who have an account balance greater than 6000." |
|
schema = """ |
|
CREATE TABLE socially_responsible_lending ( |
|
customer_id INT, |
|
name VARCHAR(50), |
|
account_balance DECIMAL(10, 2) |
|
); |
|
|
|
INSERT INTO socially_responsible_lending VALUES |
|
(1, 'james Chad', 5000), |
|
(2, 'Jane Rajesh', 7000), |
|
(3, 'Alia Kapoor', 6000), |
|
(4, 'Fatima Patil', 8000); |
|
""" |
|
|
|
inputs = tokenizer( |
|
[prompt.format(question, schema, "")], |
|
return_tensors="pt", |
|
padding=True, |
|
truncation=True |
|
).to("cuda") |
|
|
|
output = model.generate( |
|
**inputs, |
|
max_new_tokens=256, |
|
temperature=0.2, |
|
top_p=0.9, |
|
top_k=50, |
|
do_sample=True |
|
) |
|
|
|
decoded_output = tokenizer.decode(output[0], skip_special_tokens=True) |
|
|
|
if "### Sql Query:" in decoded_output: |
|
sql_query = decoded_output.split("### Sql Query:")[-1].strip() |
|
else: |
|
sql_query = decoded_output.strip() |
|
|
|
print(sql_query) |
|
|