File size: 8,018 Bytes
ed704cc
 
 
 
 
 
 
 
 
 
5ef70d8
 
 
ed704cc
 
5ef70d8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4604ff1
5ef70d8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4604ff1
5ef70d8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ed704cc
 
 
 
 
 
 
 
5ef70d8
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
---
base_model: unsloth/Qwen3-8B-unsloth-bnb-4bit
tags:
- text-generation-inference
- transformers
- unsloth
- qwen3
- trl
license: apache-2.0
language:
- es
datasets:
- somosnlp-hackathon-2025/gastronomia-hispana-dpo
---

# Qwen3 8B Gastronomía Hispana DPO

<div align="center">

![Model](https://img.shields.io/badge/Model-Qwen3%208B-blue)
![Training](https://img.shields.io/badge/Training-DPO-green)
![Language](https://img.shields.io/badge/Language-Spanish-red)
![License](https://img.shields.io/badge/License-Apache%202.0-yellow)

</div>

## Descripción del Modelo

**Qwen3 8B Gastronomía Hispana DPO** es un modelo de lenguaje especializado en cocina internacional, específicamente optimizado para la gastronomía hispana mediante Direct Preference Optimization (DPO). Este modelo ha sido entrenado para ser un experto en ingredientes, técnicas culinarias, recetas tradicionales y sustituciones apropiadas en diferentes culturas gastronómicas del mundo hispanohablante.

### Características Principales

- **Especialización**: Experto en gastronomía hispana e internacional
- **Idioma**: Respuestas exclusivamente en español
- **Conocimientos**: Ingredientes, técnicas de cocción, recetas tradicionales, sustituciones culinarias
- **Optimización**: Entrenado con DPO para respuestas de mayor calidad y preferencia humana
- **Base**: Qwen3 8B unsloth bnb 4bit con optimizaciones de Unsloth

## Detalles Técnicos

| **Parámetro** | **Valor** |
|---------------|-----------|
| **Modelo Base** | `unsloth/Qwen3-8B-unsloth-bnb-4bit` |
| **Método de Entrenamiento** | Direct Preference Optimization (DPO) |
| **Dataset** | `somosnlp-hackathon-2025/gastronomia-hispana-dpo` |
| **LoRA Rank** | 64 |
| **LoRA Alpha** | 64 |
| **Épocas** | 1 |
| **Learning Rate** | 2e-7 |
| **Batch Size** | 4 (con gradient accumulation = 8) |
| **Secuencia Máxima** | 2,500 tokens |
| **Template de Chat** | ChatML |
| **Precisión** | bfloat16 |

## Uso del Modelo

### Instalación

```bash
pip install transformers torch accelerate
```

### Carga del Modelo

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

# Cargar modelo y tokenizer
model_name = "somosnlp-hackathon-2025/Qwen3-8B-gastronomia-hispana-dpo"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype=torch.bfloat16,
    device_map="auto"
)
```

### Ejemplo de Uso

```python
def generar_respuesta_culinaria(pregunta):
    messages = [
        {
            "role": "system", 
            "content": "Eres un experto en ingredientes de cocina internacional, conoces sus propiedades, usos tradicionales y sustituciones apropiadas en diferentes culturas gastronómicas del mundo."
        },
        {
            "role": "user", 
            "content": pregunta
        }
    ]
    
    # Aplicar template de chat
    input_text = tokenizer.apply_chat_template(
        messages, 
        tokenize=False, 
        add_generation_prompt=True
    )
    
    # Tokenizar
    inputs = tokenizer(input_text, return_tensors="pt", truncation=True)
    
    # Generar respuesta
    with torch.no_grad():
        outputs = model.generate(
            **inputs,
            max_new_tokens=512,
            do_sample=True,
            temperature=0.7,
            top_p=0.9,
            pad_token_id=tokenizer.eos_token_id
        )
    
    # Decodificar respuesta
    response = tokenizer.decode(outputs[0], skip_special_tokens=True)
    return response.split("assistant")[-1].strip()

# Ejemplo de consulta
pregunta = "¿Cómo puedo preparar un sofrito auténtico para paella valenciana?"
respuesta = generar_respuesta_culinaria(pregunta)
print(respuesta)
```

### Uso con Unsloth (Recomendado para Inferencia Rápida)

```python
from unsloth import FastLanguageModel

# Cargar con Unsloth para inferencia 2x más rápida
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name="somosnlp-hackathon-2025/Qwen3-8B-gastronomia-hispana-dpo",
    max_seq_length=2500,
    dtype=None,  # Auto-detección
    load_in_4bit=True
)

# Habilitar inferencia rápida
FastLanguageModel.for_inference(model)
```

## Casos de Uso

### Casos de Uso Ideales

- **Consultas sobre ingredientes**: Propiedades, orígenes, usos tradicionales
- **Técnicas culinarias**: Métodos de cocción, tiempos y temperaturas
- **Recetas tradicionales**: Platos típicos de la gastronomía hispana
- **Sustituciones culinarias**: Alternativas para ingredientes no disponibles
- **Maridajes**: Combinaciones de sabores y bebidas
- **Consejos culinarios**: Tips para mejorar preparaciones

### Limitaciones

- **Idioma**: Solo responde en español
- **Especialización**: Enfocado principalmente en gastronomía hispana
- **Información médica**: No proporciona consejos médicos sobre dietas
- **Información actualizada**: Conocimiento limitado a datos de entrenamiento

## Rendimiento

El modelo ha sido optimizado mediante DPO para generar respuestas que:
- ✅ Son cultural y gastronómicamente precisas
- ✅ Incluyen contexto cultural relevante
- ✅ Proporcionan sustituciones apropiadas
- ✅ Mantienen un tono experto pero accesible
- ✅ Respetan las tradiciones culinarias regionales

## Ejemplos de Interacción

**Usuario**: "¿Qué tipo de harina se utiliza para hacer los crackers de los canapés con crema de salmón?"

**Asistente**: "Para preparar los crackers de los canapés con crema de salmón, la receta especifica el uso de **harina de fuerza**. Esta harina, también conocida como harina fuerte o harina de panadería, es ideal para este tipo de preparaciones debido a su alto contenido de gluten (generalmente entre un 12-14%)..."

---

**Usuario**: "¿Cuáles son los ingredientes principales del Motepillo?"

**Asistente**: [Respuesta detallada sobre este plato tradicional ecuatoriano con maíz tostado, huevos y especias]

## Dataset y Entrenamiento

- **Dataset**: Especializado en gastronomía hispana con pares de preferencias
- **Tamaño**: 7,092 ejemplos de entrenamiento
- **Método**: Direct Preference Optimization (DPO) con β=0.8
- **Validación**: Split 95%/5% para entrenamiento/validación
- **Hardware**: NVIDIA L40S (44.4GB VRAM)

## 🏆 Hackathon SomosNLP 2025

Este modelo fue desarrollado como parte del **Hackathon SomosNLP 2025**, enfocado en crear modelos de IA especializados para la comunidad hispanohablante.

### Equipo de Desarrollo

- Especialización en gastronomía hispana e internacional
- Optimización con técnicas de entrenamiento avanzadas (DPO)
- Enfoque en preservación cultural gastronómica

## 📄 Licencia

Este modelo se distribuye bajo la **Licencia Apache 2.0**, permitiendo uso comercial y modificación con atribución apropiada.

## 🔗 Enlaces Relacionados

- **Modelo Base**: [Qwen3 8B unsloth bnb 4bit](https://huggingface.co/unsloth/Qwen3-8B-unsloth-bnb-4bit)
- **Framework**: [Unsloth](https://github.com/unslothai/unsloth)
- **Dataset**: [Gastronomía Hispana DPO](https://huggingface.co/datasets/somosnlp-hackathon-2025/gastronomia-hispana-dpo)
- **SomosNLP**: [Comunidad](https://somosnlp.org/)

## 🙏 Agradecimientos

Agradecemos a:
- **SomosNLP** por organizar el hackathon y promover la IA en español
- **Unsloth** por las optimizaciones de entrenamiento
- **Qwen AI** por el modelo base
- **Cohere AI** por la API para el dataset
- **Hugging Face** por la infraestructura y herramientas

---

<div align="center">

**¡Disfruta cocinando con IA! 👨‍🍳🤖**

*Desarrollado con ❤️ para la comunidad hispanohablante*

</div>

# Uploaded  model

- **Developed by:** somosnlp-hackathon-2025
- **License:** apache-2.0
- **Finetuned from model :** unsloth/Qwen3-8B-unsloth-bnb-4bit

This qwen3 model was trained 2x faster with [Unsloth](https://github.com/unslothai/unsloth) and Huggingface's TRL library.

[<img src="https://raw.githubusercontent.com/unslothai/unsloth/main/images/unsloth%20made%20with%20love.png" width="200"/>](https://github.com/unslothai/unsloth)