--- base_model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 library_name: peft pipeline_tag: text-generation license: mit language: - en datasets: - spider tags: - base_model:adapter:TinyLlama/TinyLlama-1.1B-Chat-v1.0 - lora - sft - transformers - trl - text-to-sql - sql - natural-language-processing metrics: - loss --- # Text-to-SQL TinyLlama LoRA Adapter A fine-tuned LoRA adapter that converts **natural language questions into SQL queries**. Built on top of [TinyLlama-1.1B-Chat-v1.0](https://huggingface.co/TinyLlama/TinyLlama-1.1B-Chat-v1.0) using Supervised Fine-Tuning (SFT) on the Spider benchmark dataset. ## Model Details ### Model Description This is a **LoRA (Low-Rank Adaptation) adapter** fine-tuned to generate SQL queries from natural language questions. Only 0.10% of the base model's parameters were trained, making it extremely lightweight (4.5 MB) while still achieving strong results. - **Developed by:** [Rj18](https://huggingface.co/Rj18) - **Model type:** Causal Language Model (LoRA Adapter) - **Language(s):** English - **License:** MIT - **Fine-tuned from:** [TinyLlama/TinyLlama-1.1B-Chat-v1.0](https://huggingface.co/TinyLlama/TinyLlama-1.1B-Chat-v1.0) ### Model Sources - **Repository:** [https://github.com/18-RAJAT/Interactive-Production-text2sql-Pipeline](https://github.com/18-RAJAT/Interactive-Production-text2sql-Pipeline) ## How to Use import torch from transformers import AutoModelForCausalLM, AutoTokenizer from peft import PeftModel # Load base model and tokenizer base_model = "TinyLlama/TinyLlama-1.1B-Chat-v1.0" adapter = "Rj18/text-to-sql-tinyllama-lora" tokenizer = AutoTokenizer.from_pretrained(adapter) model = AutoModelForCausalLM.from_pretrained(base_model, torch_dtype=torch.float16) model = PeftModel.from_pretrained(model, adapter) model.eval() # Generate SQL question = "How many employees are in each department?" prompt = f"[INST] Generate SQL for the following question.\nQuestion: {question} [/INST]\n" inputs = tokenizer(prompt, return_tensors="pt") with torch.no_grad(): outputs = model.generate(**inputs, max_new_tokens=128, temperature=0.1) sql = tokenizer.decode(outputs[0], skip_special_tokens=True) print(sql)