File size: 2,314 Bytes
d248a5e
a32a8d3
 
 
dd860c0
 
 
 
 
 
 
d248a5e
dd860c0
d248a5e
 
 
dd860c0
a32a8d3
dd860c0
a32a8d3
dd860c0
a32a8d3
dd860c0
 
d248a5e
dd860c0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a32a8d3
 
dd860c0
 
 
 
cb27661
dd860c0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d248a5e
 
dd860c0
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
---
license: apache-2.0
base_model: LiquidAI/LFM2.5-1.2B-Instruct
tags:
  - text2sql
  - sql
  - fine-tuned
  - lora
  - pytorch
datasets:
  - synthetic
language:
  - en
pipeline_tag: text-generation
---

# LFM2.5-1.2B-Text2SQL (PyTorch)

A fine-tuned version of [LiquidAI/LFM2.5-1.2B-Instruct](https://huggingface.co/LiquidAI/LFM2.5-1.2B-Instruct) for Text-to-SQL generation.

## Model Description

This model was fine-tuned on 2000 synthetic Text-to-SQL examples generated using a teacher model (DeepSeek V3).
The fine-tuning was performed using LoRA adapters with MLX on Apple Silicon, then fused into the base model.

### Training Details

- **Base Model**: LiquidAI/LFM2.5-1.2B-Instruct
- **Training Data**: 2000 synthetic examples
- **Training Method**: LoRA fine-tuning (FP16)
- **Iterations**: 5400
- **Hardware**: Apple Silicon (MLX)

## Performance

### Model Comparison

![Model Comparison](model_comparison.png)

| Metric | Teacher (DeepSeek V3) | Base Model | Fine-tuned |
|--------|----------------------|------------|------------|
| Exact Match | 60% | 48% | **72%** |
| LLM-as-Judge | 90% | 75% | 87% |
| ROUGE-L | 92% | 83% | **94%** |
| BLEU | 85% | 70% | **89%** |
| Semantic Similarity | 96% | 93% | **97%** |

### Training Progression

![Training Progression](training_progression.png)

The model shows consistent improvement across all checkpoints with no signs of overfitting.

## Usage

### PyTorch / Transformers

```python
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

model = AutoModelForCausalLM.from_pretrained(
    "hybridaione/LFM2.5-1.2B-Text2SQL",
    trust_remote_code=True,
    torch_dtype=torch.bfloat16,
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained("furukama/LFM2.5-1.2B-Text2SQL", trust_remote_code=True)

# Example query
prompt = '''CREATE TABLE employees (id INT, name VARCHAR, salary DECIMAL);

Question: What are the names of employees earning more than 50000?'''

messages = [{"role": "user", "content": prompt}]
inputs = tokenizer.apply_chat_template(messages, return_tensors="pt").to(model.device)
outputs = model.generate(inputs, max_new_tokens=256)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
```

## License

This model is released under the Apache 2.0 license, following the base model's license.