Safetensors
mistral
code
python
sql
data-science
File size: 3,503 Bytes
642ef3d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
---
license: mit
datasets:
- sahil2801/CodeAlpaca-20k
- code_instructions_122k 
base_model:
- mistralai/Mistral-7B-Instruct-v0.3
tags:
- code
---
# Code Specialist 7B  

[![Hugging Face](https://img.shields.io/badge/🤗-Model%20Card-yellow.svg)](https://huggingface.co/)  [![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)](https://www.python.org/)  [![Transformers](https://img.shields.io/badge/Transformers-4.56.0+-purple.svg)](https://huggingface.co/docs/transformers)  

## Descripción  

**Code Specialist 7B** es un modelo de lenguaje basado en **Mistral-7B-Instruct-v0.3**, adaptado mediante **SFT (Supervised Fine-Tuning)** con datasets especializados en **Python y SQL**.  
El entrenamiento fue realizado por **Ricardo Urdaneta**, con el objetivo de mejorar la capacidad del modelo en **resolución de problemas de programación, data science y desarrollo de software**.  

Este modelo mantiene la arquitectura original de **7B parámetros**, pero incorpora un ajuste fino orientado a código, lo que lo hace más robusto en generación de funciones, queries SQL y respuestas técnicas.  

---

## Modelo base  

- [Mistral-7B-Instruct-v0.3](https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.3)  
- Arquitectura: Transformer Decoder-only  
- Parámetros: ~7B  

---

## Dataset utilizado para SFT  

- [CodeAlpaca-20k](https://huggingface.co/datasets/sahil2801/CodeAlpaca-20k)  
- [code_instructions_122k (alpaca-style)](https://huggingface.co/datasets/TokenBender/code_instructions_122k_alpaca_style)  

Ambos datasets fueron **filtrados a ejemplos de Python y SQL**, con formato de prompts estilo **Alpaca/Mistral**.  

Ejemplo de formato aplicado:  

```
[INST] Escribe una función en Python que sume dos números. [/INST]  
def add(a, b):  
    return a + b  
```

---

## Entrenamiento  

- **Método:** LoRA + QLoRA → Merge final de pesos (merge_and_unload)  
- **Frameworks:** transformers, trl, peft, bitsandbytes  
- **Hardware:** GPU 12GB VRAM (cuantización en 4-bit para entrenamiento)  
- **Hiperparámetros principales:**  
  - per_device_train_batch_size=2  
  - gradient_accumulation_steps=4  
  - learning_rate=2e-4  
  - num_train_epochs=1  
  - max_seq_length=1024  

---

## Uso  

```python
from transformers import AutoTokenizer, AutoModelForCausalLM  

model_id = "Ricardouchub/Code-Specialist-7B"  
tok = AutoTokenizer.from_pretrained(model_id)  
mdl = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")  

prompt = "[INST] Escribe una función en Python que calcule la media de una lista. [/INST]"  
inputs = tok(prompt, return_tensors="pt").to(mdl.device)  

out = mdl.generate(**inputs, max_new_tokens=256)  
print(tok.decode(out[0], skip_special_tokens=True))  
```

---

## Benchmarks iniciales  

- **Eval simple (Python tasks):** mejora en tareas básicas de programación comparado con el modelo base.  
- Diseñado para uso en **data analysis, SQL queries y snippets Python**.  
- Se recomienda evaluar en HumanEval / MBPP para métricas reproducibles.  

---

## Autor  

**Ricardo Urdaneta**  
- [LinkedIn](https://www.linkedin.com/in/ricardourdanetacastro/)  
- [GitHub](https://github.com/Ricardouchub)  

---

## Limitaciones  

- El modelo **no garantiza exactitud 100%** en código complejo.  
- Puede generar respuestas incoherentes en prompts ambiguos.  
- No ha sido entrenado para seguridad/ciberseguridad.

---

## Licencia  

El modelo se publica con la misma licencia que **Mistral-7B-Instruct-v0.3**: **MIT**