--- license: apache-2.0 tags: - text-to-sql - llama3 - lora - sql-generation - code-generation library_name: transformers base_model: unsloth/Meta-Llama-3.1-8B pipeline_tag: text-generation --- # Llama3 SQL Translator **Llama3 SQL Translator** is a LoRA fine-tuned version of the 8B parameter Llama 3.1 model. It is designed to translate natural language database queries into executable SQL statements and provide human-readable explanations. The model streamlines query generation for structured databases and enables non-technical users to interact with relational data more effectively. ## Table of Contents 1. [Model Details](#model-details) 2. [Intended Uses](#intended-uses) 3. [Limitations & Warnings](#limitations--warnings) 4. [Training Overview](#training-overview) 5. [Evaluation](#evaluation) 6. [Usage Example](#usage-example) 7. [Technical Specifications](#technical-specifications) 8. [Citation & Contact](#citation--contact) ## Model Details - **Model Type:** Causal language model - **Architecture:** Llama 3.1 (8B parameters) - **Fine-Tuning Method:** Parameter-efficient fine-tuning (LoRA) - **Base Model:** unsloth/Meta-Llama-3.1-8B - **Language:** English - **Tokenizer:** Llama 3 tokenizer (compatible with Meta's original) ## Intended Uses ### Primary Use - Translating natural language prompts into valid SQL queries. - Providing explanations of the generated SQL logic. ### Example Input ```text Database schema: CREATE TABLE employees (id INT, name TEXT, salary FLOAT); Prompt: List all employees with salary over 50000. ``` ### Example Output ```text SQL: SELECT name FROM employees WHERE salary > 50000; Explanation: This query retrieves all employee names where the salary is greater than 50000. ``` ### Not Intended For - General chat, Q&A, or non-database related tasks. - Use without human review in critical systems or production databases. ## Limitations & Warnings - **Schema Dependency:** The model relies heavily on accurate and complete schema descriptions. - **SQL Safety:** The output SQL should not be executed without manual validation. Injection risks must be mitigated. - **Complex Queries:** Deeply nested subqueries, advanced joins, or vendor-specific SQL dialects may produce suboptimal results. ## Training Overview - The model was trained on a large-scale synthetic dataset containing pairs of natural language instructions, database schemas, corresponding SQL queries, and their step-by-step explanations. The dataset covers a wide range of relational data scenarios and query types, including filtering, aggregation, joins, and nested logic. - Fine-tuned on a single A100 GPU using: - `max_seq_length=1024` - `batch_size=2`, `gradient_accumulation_steps=2` - LoRA with 4-bit quantization - `packing=True` to maximize throughput - Trained for 1 epoch (~5 hours) ## Evaluation | Metric | Result | |-------------------------|----------------| | SQL compilation success | > 95% | | Manual output quality | ~90%+ | | Explanation clarity | High | *Note: Evaluation was based on random sampling and manual review. Formal benchmarks will be added later.* ## Usage Example ```python from transformers import AutoTokenizer, AutoModelForCausalLM model_id = "happyhackingspace/llama3-sql-translator" tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained(model_id) prompt = """Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request. ### Instruction Database schema: CREATE TABLE sales (id INT, product TEXT, price FLOAT); ### Input: Prompt: Show all products priced over 100. ### Response:""" inputs = tokenizer(prompt, return_tensors="pt") outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0], skip_special_tokens=True)) ``` ## Technical Specifications - **Architecture:** Llama 3.1 - 8B - **Quantization:** 4-bit via bitsandbytes - **Fine-tuning:** LoRA - **Frameworks:** Transformers, TRL, PEFT, Unsloth ## Citation & Contact ```bibtex @misc{llama3_sql_translator_2025, title = {Llama3 SQL Translator}, author = {happyhackingspace}, year = {2025}, howpublished = {\url{https://huggingface.co/happyhackingspace/llama3-sql-translator}} } ``` **Contact:** For questions or contributions, feel free to open an issue on the Hugging Face model page.