Instructions to use mangc95/finbot-slm with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use mangc95/finbot-slm with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-1.5B-Instruct") model = PeftModel.from_pretrained(base_model, "mangc95/finbot-slm") - Notebooks
- Google Colab
- Kaggle
finbot-slm
Modelo pequeño destilado en el taller Destilación en pequeño (CPU) del Máster en IA de la Universidad Adolfo Ibáñez
(Tópicos Avanzados en IA II). Un LLM grande actuó como profesor (gpt-6-luna, API de OpenAI) y generó
preguntas y respuestas de un dominio acotado; un modelo pequeño (estudiante, Qwen/Qwen2.5-1.5B-Instruct) se ajustó con LoRA
sobre esas respuestas, en CPU y en menos de una hora. Es un adaptador LoRA (≈ 74 MB) que se carga con peft sobre el modelo base Qwen/Qwen2.5-1.5B-Instruct; solo contiene las capas que se entrenaron (r = 16, α = 32, sobre q_proj, o_proj, k_proj, up_proj, v_proj, down_proj, gate_proj). Necesitas descargar el base por separado (lo hace from_pretrained automáticamente).
finbot-slmes el nombre genérico que usa el taller para el modelo publicado; el dominio real de este modelo es el que se describe a continuación.
Dominio
Asistente que explica conceptos de inteligencia artificial generativa a ejecutivos de empresas chilenas, con ejemplos de negocio. El caso de uso es un asistente de apoyo a la formación ejecutiva: gerentes y directores de empresas chilenas que necesitan entender qué es un LLM, RAG, un agente o el ajuste fino para decidir inversiones, sin bajar a código. Las respuestas buscan ser breves (unas 90 palabras), en español neutro y con ejemplos de negocio locales (minería, retail, banca, isapres), tal como las escribió el profesor durante la destilación.
Temas cubiertos: Fundamentos de LLM, Ingeniería de prompts, RAG, Agentes de IA, Ajuste fino, Evaluación y LLMOps. Idioma: español neutro (Chile).
Datos de entrenamiento
- 60 pares pregunta-respuesta generados por el profesor
gpt-6-luna(OpenAI), con respuestas de hasta 90 palabras, repartidos por tema: Evaluación y LLMOps (12), Ajuste fino (10), RAG (10), Fundamentos de LLM (10), Agentes de IA (9), Ingeniería de prompts (9). - 12 preguntas de examen fijo, del mismo dominio, que nunca se usaron para entrenar. Las respondió
el estudiante antes y después del ajuste, y el mismo LLM (
gpt-6-luna) las calificó como juez de 1 a 10 contra la respuesta de referencia del profesor. - Los datos no se publican en este repositorio. Fueron generados por un LLM comercial: los términos de OpenAI restringen usar sus salidas para desarrollar modelos que compitan con OpenAI, así que revísalos antes de cualquier uso que no sea educativo o interno.
- No se usaron datos personales ni documentos de ninguna empresa.
Resultados en el examen fijo
| Antes (base) | Después (destilado) | |
|---|---|---|
| Nota media del juez (1–10) | 4.17 | 6.08 |
| Aprobación (nota ≥ 7) | 8 % (1/12) | 33 % (4/12) |
| Pérdida de entrenamiento (entropía cruzada) | 2.6878 (paso 1) | 0.8347 (paso 45) |
Nota media por tema (n = preguntas del examen en ese tema):
| Tema | Antes | Después | n |
|---|---|---|---|
| Agentes de IA | 4.0 | 6.0 | 3 |
| Ajuste fino | 4.0 | 5.0 | 2 |
| Fundamentos de LLM | 5.5 | 6.0 | 2 |
| Ingeniería de prompts | 5.0 | 7.0 | 3 |
| RAG | 2.0 | 6.0 | 2 |
Lectura honesta: es una sola corrida (semilla 42) sobre 12 preguntas, calificadas por un LLM, no por personas. Diferencias de ±1 punto por tema entran en el ruido. La mejora más clara está en el formato: el modelo base contestaba con listas largas que se cortaban; el destilado responde en prosa breve, al estilo del profesor. En contenido sigue cometiendo errores (ver Limitaciones).
Uso
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
base = "Qwen/Qwen2.5-1.5B-Instruct"
tok = AutoTokenizer.from_pretrained(base)
modelo = PeftModel.from_pretrained(AutoModelForCausalLM.from_pretrained(base), "mangc95/finbot-slm")
modelo.eval()
SISTEMA = "Eres un asistente experto en IA generativa. Responde en español, de forma clara y breve."
pregunta = "¿Qué es RAG y cuándo le conviene a una empresa de retail chilena usarlo?"
msgs = [{"role": "system", "content": SISTEMA}, {"role": "user", "content": pregunta}]
texto = tok.apply_chat_template(msgs, tokenize=False, add_generation_prompt=True)
entrada = tok(texto, return_tensors="pt", add_special_tokens=False)
salida = modelo.generate(**entrada, max_new_tokens=230, do_sample=False,
repetition_penalty=1.15, pad_token_id=tok.eos_token_id)
print(tok.decode(salida[0][entrada["input_ids"].shape[1]:], skip_special_tokens=True))
Usa el mismo mensaje de sistema y decodificación voraz con repetition_penalty=1.15, que es como se entrenó y
evaluó. Corre en CPU (≈ 6 GB de RAM en float32); en GPU carga con dtype=torch.bfloat16.
Entrenamiento
| Parámetro | Valor |
|---|---|
| Método | LoRA con peft 0.21.2 (r = 16, α = 32, dropout 0.05) |
| Módulos adaptados | q_proj, o_proj, k_proj, up_proj, v_proj, down_proj, gate_proj |
| Épocas · lote · tasa de aprendizaje | 3 · 4 · 0.0005 |
| Pasos de optimización | 45 |
| Largo máximo por ejemplo / respuesta | 320 / 230 tokens |
| Hardware · tiempo | CPU (sin GPU) · 41.7 min de entrenamiento (52.7 min la corrida completa con los dos exámenes) |
| Precisión | float32 |
El código del taller (destila.py) genera los datos, evalúa antes, entrena, evalúa después y compara; este
repositorio solo contiene el resultado.
Limitaciones y uso responsable
- Es un ejercicio educativo, no un producto. Qwen2.5-1.5B-Instruct tiene 1,5 mil millones de parámetros y se ajustó con solo 60 ejemplos: repite, se equivoca e inventa. El juez anotó en el examen respuestas genéricas que omiten lo que se pregunta, explicaciones confusas y afirmaciones incorrectas dichas con seguridad (por ejemplo, que el ajuste fino reduce el sobreajuste, o que un agente es menos flexible que un chat). La nota media de 6.1/10 lo dice: dos de cada tres respuestas siguen bajo el umbral de aprobación.
- No lo uses para decisiones reales de inversión, tecnología, legales o de personas. Si quieres usarlo para apoyar formación, haz que una persona revise cada respuesta.
- Solo conoce el dominio de la tarjeta y responde en español. Fuera de él (otros idiomas, matemática, código, hechos actuales) se comporta como el modelo base o peor.
- Hereda los sesgos del modelo base y del profesor (OpenAI). Los ejemplos de negocio reflejan el contexto chileno.
- Sin filtros de seguridad adicionales a los del base.
Licencia y origen
- Modelo base
Qwen/Qwen2.5-1.5B-Instruct: Apache 2.0. Este derivado se redistribuye con la misma licencia. - Datos de entrenamiento generados con la API de OpenAI (
gpt-6-luna): sujetos a los términos de uso de OpenAI; no se incluyen en el repositorio. - Autor: mangc95, Máster en IA, Universidad Adolfo Ibáñez (2026). Publicado con
subir_hf.pydesde Claude Code.
- Downloads last month
- 14
