SQLNova - LoRA Fine-Tuned Deepseek 8B for Text-to-SQL Generation

SQLNova is a lightweight LoRA adapter fine-tuned on top of Unsloth’s Architecture. It is designed to convert natural language instructions into valid SQL queries with minimal compute overhead, making it ideal for integration into data-driven applications or chat interfaces.

The model was trained on over 100,000 natural language-to-SQL pairs spanning diverse domains, including Education, Technical, Healthcare, and more.


Model Dependencies

  • Python Version: 3.10
  • libraries: unsloth
  • pip install unsloth

Model Highlights

  • Base model: Deepseek R1 8B Distilled Llama
  • Tokenizer: Compatible with Deepseek R1 8B Distilled Llama
  • Fine tuned for: Text to SQL Converter
  • Accuracy: > 85%
  • Language: English Natural Language Sentences finetuned
  • Format: safetensors

General Information

  • Model type: Text Generation
  • Language: English
  • License: MIT
  • Base model: DeepSeek R1 distilled on Llama3 8B

Model Repository


💡 Intended Uses

Applications

  • Generating SQL queries from natural language prompts
  • Powering AI assistants for databases
  • Enhancing SQL query builders or no-code data tools
  • Automating analytics workflows

Limitations

While SQLNova performs well in many real-world scenarios Since its a Reasoning Model, there are some limitations:

  • It may produce invalid SQL for rare or malformed inputs in rarest cases.
  • Assumes a generic SQL dialect, resembling MySQL/PostgreSQL syntax.

Recommendation for Use of Model

  • Always validate generated SQL before executing in production.
  • Include schema context in prompts to improve accuracy.
  • Use with human-in-the-loop review for critical applications.

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 Use the Model

from unsloth import FastLanguageModel

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name="mervp/SQLNova",
    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)
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support