phi3-text2sql-lora / README.md
mrcmilo's picture
Update README: correct Modelfile template and add ollama example
c82b290 verified
---
tags:
- gguf
- llama.cpp
- unsloth
license: mit
datasets:
- b-mc2/sql-create-context
language:
- en
metrics:
- accuracy
base_model:
- microsoft/Phi-3-mini-4k-instruct
---
This is a specialized **Text-to-SQL** model fine-tuned from the **Microsoft Phi-3-mini-4k-instruct** architecture. It has been optimized using **Unsloth** to provide high-accuracy SQL generation while remaining lightweight enough to run on consumer hardware.
## Key Features
- **Architecture:** Phi-3-mini (3.8B parameters)
- **Quantization:** Q4_K_M GGUF & Q5_K_M
- **Training Technique:** Fine-tuned using Lora with [Unsloth](https://github.com/unslothai/unsloth).
- **Format:** GGUF (Ready for Ollama, LM Studio, and llama.cpp)
- **phi-3-mini-4k-instruct.Q4_K_M.gguf**
- **phi-3-mini-4k-instruct.Q5_K.gguf**
## Usage Instructions
### Ollama (Recommended)
To deploy locally:
1. Download the `.gguf` file (Q4 or Q5).
2. Create the Modelfile with the following instructions
```Dockerfile
FROM ./phi-3-mini-4k-instruct.Q4_K_M.gguf
TEMPLATE """<s><|user|>
Schema: {{ .System }}
Question: {{ .Prompt }}<|end|>
<|assistant|>
"""
# Parameters for SQL stability
PARAMETER stop "<|end|>"
PARAMETER stop "<s>"
PARAMETER stop "</s>"
PARAMETER temperature 0.0
```
3. Run ```ollama create phi3-sql-expert -f Modelfile```
5. Run ```ollama run phi3-sql-expert "schema: CREATE TABLE table_name_7 (nba_draft VARCHAR, school VARCHAR) question: What was the NBA draft status for Northeast High School?"```
6. The answer should be ```SELECT nba_draft FROM table_name_7 WHERE school = "Northeast"```
## Evaluation Data
The model was fine-tuned on the [sql-create-context dataset](https://huggingface.co/datasets/b-mc2/sql-create-context), focusing on:
- Mapping natural language to SQL queries with SELECT, WHERE, and JOIN statements.
- Understanding table schemas provided in the prompt.
- Maintaining strict SQL syntax in the response.
## Recommended Settings
Temperature: 0.0 or 0.1 (SQL requires deterministic output).
Stop Tokens: Ensure <|end|> is set as a stop sequence to prevent "infinite looping" generation.
Context Window: 2048 tokens.
**Model Developer**: [msquared](https://github.com/mrcmilano)
Base Model: [Phi-3-mini-4k-instruct](https://huggingface.co/microsoft/Phi-3-mini-4k-instruct)