| --- |
| 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) |
| |