File size: 2,915 Bytes
ee49dad
37eec49
 
 
 
 
 
 
 
 
 
 
ee49dad
 
37eec49
ee49dad
37eec49
ee49dad
37eec49
 
 
ee49dad
37eec49
ee49dad
37eec49
ee49dad
37eec49
ee49dad
37eec49
 
 
 
ee49dad
37eec49
ee49dad
37eec49
ee49dad
37eec49
 
 
 
 
 
ee49dad
37eec49
ee49dad
37eec49
ee49dad
37eec49
 
 
 
ee49dad
37eec49
ee49dad
37eec49
 
 
ee49dad
37eec49
 
 
 
ee49dad
37eec49
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
---
base_model: TinyLlama/TinyLlama-1.1B-Chat-v1.0
library_name: peft
license: apache-2.0
language:
- es
pipeline_tag: text-generation
tags:
- lora
- peft
- tinyllama
- rag
---

# DulceBot 路 TinyLlama-1.1B-Chat + LoRA

Adaptador LoRA **experimental** que ajusta TinyLlama-1.1B-Chat para responder con la voz y las pol铆ticas de DulceBot, el asistente de la panader铆a Antojo de Yanet. Es parte del Hackathon 1 (M贸dulo 1: IA Aplicada a Modelos Abiertos, curso 1-META_IA-A de DEV.F).

- Proyecto completo: https://github.com/MarioSimbron/antojo-yanet
- Reporte t茅cnico: https://github.com/MarioSimbron/antojo-yanet/blob/main/docs/DulceBot_Reporte_Tecnico.pdf
- Notebook de entrenamiento y evaluaci贸n: https://github.com/MarioSimbron/antojo-yanet/blob/main/notebooks/dulcebot_lora_tinyllama.ipynb

## Uso previsto

Experimento acad茅mico para medir si el fine-tuning mejora el tono, el formato y las pol铆ticas del asistente. **No est谩 pensado para producci贸n**: en la evaluaci贸n invent贸 datos con seguridad (por ejemplo, "env铆o gratis" cuando el env铆o cuesta $30). DulceBot en producci贸n obtiene los datos de RAG y de la base de datos, no de este modelo.

## Entrenamiento

- Modelo base: `TinyLlama/TinyLlama-1.1B-Chat-v1.0` (arquitectura Llama).
- LoRA: rango 16, alfa 32, dropout 0.05, sobre `q_proj`, `k_proj`, `v_proj` y `o_proj` (~4.5 M de par谩metros entrenables, 0.41 %).
- Datos: 56 ejemplos (14 temas del negocio 脳 4 par谩frasis), con el contexto RAG de los documentos reales en el prompt.
- 5 茅pocas, tasa de aprendizaje 1e-4, lote efectivo 4, p茅rdida calculada solo sobre la respuesta.

## Evaluaci贸n

14 preguntas no vistas en el entrenamiento, el mismo prompt para ambos modelos (instrucciones + 3 fragmentos de contexto RAG), m茅trica objetiva de datos clave y LLM como juez.

| Criterio | TinyLlama base | Con LoRA |
|---|---:|---:|
| Exactitud (1 a 5) | 2.07 | 3.00 |
| Tono (1 a 5) | 3.07 | 4.00 |
| Formato (1 a 5) | 2.29 | 5.00 |
| Datos clave mencionados | 50 % | 57 % |

M茅tricas de la corrida 2 documentada en el proyecto (juez `openai/gpt-oss-120b`). Estos pesos se reentrenaron con la misma configuraci贸n y semilla, sin repetir la evaluaci贸n.

## Limitaciones

- **Fluidez no es exactitud:** suena como DulceBot aunque se equivoque.
- **Plantillas cruzadas:** repite la frase de un tema en preguntas de otros temas.
- **No aprendi贸 a negarse:** responde preguntas ajenas a la panader铆a.
- 脷salo solo para estilo y siempre detr谩s de RAG o herramientas que aporten los datos.

## C贸mo cargarlo

```python
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel

base = AutoModelForCausalLM.from_pretrained("TinyLlama/TinyLlama-1.1B-Chat-v1.0")
modelo = PeftModel.from_pretrained(base, "Simbroncas/dulcebot-tinyllama-lora")
tokenizer = AutoTokenizer.from_pretrained("Simbroncas/dulcebot-tinyllama-lora")
```

Autor: Mario Simbron Gonzalez.