finbot-slm

Modelo pequeño destilado en el taller Destilación en pequeño (Máster en IA · UAI · Tópicos Avanzados en IA 2): adaptador LoRA de HuggingFaceTB/SmolLM2-1.7B-Instruct entrenado con las respuestas de un LLM profesor (destilación de caja negra).

Dominio

Asistente que explica conceptos de inteligencia artificial generativa (fundamentos de LLM, ingeniería de prompts, RAG, agentes, ajuste fino y LLMOps) a ejecutivos de empresas chilenas, con ejemplos de negocio como bancos y retail. Responde en inglés de EE. UU.: con los mismos datos en español el estudiante llegó solo a 2,9/10, y en inglés a 6,0/10, porque SmolLM2 se preentrenó principalmente en inglés.

Datos de entrenamiento

  • 200 pares pregunta-respuesta escritos por el profesor gpt-6-luna (API de OpenAI), en inglés de Estados Unidos (US English), con respuestas de máximo 50 palabras.
  • 12 preguntas de examen fijo, separadas del entrenamiento (nunca se entrenó con ellas).
Tema Entrenamiento Examen
Fundamentos de LLM 32 2
Ingeniería de prompts 32 3
RAG 33 2
Agentes de IA 34 3
Ajuste fino 34 2
Evaluación y LLMOps 35 0

Entrenamiento

SFT con LoRA (solo se aprende la respuesta; la pregunta se enmascara): rango r = 16, alpha = 32, dropout = 0.05, módulos down_proj, gate_proj, k_proj, o_proj, q_proj, up_proj, v_proj · 3 épocas · lote 4 · tasa de aprendizaje 0.001 · pérdida 2.9918 → 0.6351.

Resultados en el examen fijo

Juez gpt-6-luna con rúbrica 1–10 contra la respuesta de referencia del profesor, sobre las 12 preguntas del examen fijo.

Antes (modelo base) Después (destilado)
Nota media 4.50 7.08
Aprobación (nota ≥ 7) 2/12 9/12

Uso

from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer

tok = AutoTokenizer.from_pretrained("HuggingFaceTB/SmolLM2-1.7B-Instruct")
modelo = PeftModel.from_pretrained(AutoModelForCausalLM.from_pretrained("HuggingFaceTB/SmolLM2-1.7B-Instruct"), "Fofiguer/finbot-slm")
mensajes = [{"role": "system", "content": "You are an expert assistant in generative AI. Answer in English, clearly and briefly."},
            {"role": "user", "content": "How can RAG help a Chilean bank answer questions with internal documents?"}]
enc = tok.apply_chat_template(mensajes, add_generation_prompt=True, return_tensors="pt", return_dict=True)
salida = modelo.generate(**enc, max_new_tokens=120, do_sample=False, repetition_penalty=1.15)
print(tok.decode(salida[0, enc["input_ids"].shape[1]:], skip_special_tokens=True))

Limitaciones y uso responsable

  • Inventa siglas y definiciones con seguridad: en la demostración definió LoRA como "Language-Oriented Recurrent Architecture" y RAG como "Reoutheastern Asia Gross Domestic Product".
  • Fuera del dominio inventa detalles (recomendó un restaurante inexistente); ahí el modelo base respondió mejor.
  • Responde en inglés aunque se le pregunte en español.
  • El examen es pequeño (12 preguntas) y el juez es otro LLM: la nota varía ≈ ±0,25 entre ejecuciones.
  • Uso educativo e interno: no usar para decisiones reales de negocio sin revisión humana.
  • Licencias: el modelo base SmolLM2 es Apache 2.0. Los datos de entrenamiento son salidas de la API de OpenAI, cuyos términos restringen usarlas para desarrollar modelos que compitan con OpenAI; revisar los términos vigentes antes de cualquier uso fuera del curso.
Downloads last month
19
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Fofiguer/finbot-slm

Adapter
(70)
this model