finbot-slm

Modelo pequeño destilado en el Taller de destilación en pequeño del curso Tópicos Avanzados en IA 2 (Máster en IA, UAI). Un LLM grande (profesor, API de OpenAI) escribió pares pregunta-respuesta y un modelo de SmolLM2-360M-Instruct (estudiante) aprendió a imitarlos con LoRA, entrenado en CPU.

Autora: Inés Canales · Uso educativo.

Dominio

asistente que explica conceptos de inteligencia artificial generativa a ejecutivos de empresas chilenas, con ejemplos de negocio. Temas: Fundamentos de LLM, Ingeniería de prompts, RAG, Agentes de IA, Ajuste fino, Evaluación y LLMOps.

Es el dominio base del taller, definido por el profesor. El objetivo fue estudiar el ciclo de destilación (datos del profesor → examen antes → LoRA → examen después) y el efecto de cada hiperparámetro, no construir un asistente para producción.

Datos de entrenamiento

  • 60 pares pregunta-respuesta generados por el modelo profesor (OpenAI), en español.
  • Examen fijo de 12 preguntas que nunca se usó para entrenar.
  • Los datos no se publican en este repositorio.

Entrenamiento

Parámetro Valor
Modelo base HuggingFaceTB/SmolLM2-360M-Instruct
Método LoRA (r=16, alpha=32, dropout=0.05)
Módulos down_proj, gate_proj, k_proj, o_proj, q_proj, up_proj, v_proj
Épocas · lote · tasa de aprendizaje 3 · 4 · 0.001
Pasos 45
Pérdida inicial → final 2.7737 → 1.6909

Es la mejor de 5 corridas (cada una cambiaba una sola variable: tamaño del estudiante, épocas y tasa de aprendizaje).

Resultados en el examen fijo

Notas de 1 a 10 asignadas por un modelo juez (OpenAI) comparando con la referencia del profesor.

Antes (base) Después (destilado)
Nota media 1.25 2.42
Aprobación (nota ≥ 7) 0% 0%
Tema Antes Después
Ajuste fino 1.00 2.00
Ingeniería de prompts 1.33 3.00
RAG 1.00 3.00
Agentes de IA 1.67 2.33
Fundamentos de LLM 1.00 1.50

Uso

from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel

base = "HuggingFaceTB/SmolLM2-360M-Instruct"
tok = AutoTokenizer.from_pretrained(base)
m = PeftModel.from_pretrained(AutoModelForCausalLM.from_pretrained(base), "ijcv-ai/finbot-slm")

msgs = [{"role": "system", "content": "Eres un asistente experto en IA generativa. Responde en español, de forma clara y breve."},
        {"role": "user", "content": "¿Qué es RAG y cuándo le conviene a una empresa?"}]
enc = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt", return_dict=True)
out = m.generate(**enc, max_new_tokens=120)
print(tok.decode(out[0][enc["input_ids"].shape[1]:], skip_special_tokens=True))

Limitaciones y uso responsable

  • Tiene 360 M parámetros y se entrenó con 60 ejemplos. Repite, se equivoca e inventa: la nota media después de entrenar es 2.42/10 y ninguna respuesta del examen alcanzó la aprobación.
  • No usar para decisiones reales ni como fuente de información sobre IA para ejecutivos.
  • Las notas provienen de un juez automático (un LLM) sobre 12 preguntas: son ruidosas y no reemplazan una evaluación humana.
  • Los datos de entrenamiento los generó un LLM comercial (OpenAI). Sus términos restringen usar sus salidas para desarrollar modelos que compitan con OpenAI: este modelo es solo para fines educativos.
  • Licencia Apache 2.0, heredada de SmolLM2.
Downloads last month
24
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for ijcv-ai/finbot-slm

Adapter
(71)
this model