--- 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.