slm-autonomo-lora

Adaptador LoRA para nvidia/Llama-3.1-Nemotron-Nano-4B-v1.1, entrenado con un pipeline autónomo de destilación: un LLM de OpenAI actúa como profesor (genera el currículo y las respuestas de referencia) y como juez (evalúa cada versión con una rúbrica), mientras el modelo pequeño (SLM) se ajusta localmente ronda a ronda.

Built with Llama.

Detalles del modelo

  • Developed by: Francisco Echeverría
  • Contexto: Trabajo académico — Magíster en Inteligencia Artificial, Universidad Adolfo Ibáñez (UAI), curso Tópicos Avanzados 2
  • Model type: Adaptador LoRA para modelo de lenguaje causal (decoder-only)
  • Language(s): Español (neutro, Chile)
  • License: NVIDIA Open Model License + Llama 3.1 Community License (heredadas del modelo base)
  • Finetuned from model: nvidia/Llama-3.1-Nemotron-Nano-4B-v1.1 (4,5 B parámetros)

Dominio

Asistente experto en inteligencia artificial generativa aplicada a empresas en Chile y Latinoamérica. Temas del currículo:

  • Fundamentos de LLM
  • RAG y búsqueda semántica
  • Ajuste fino y destilación
  • Evaluación y LLMOps

Cómo usarlo

from peft import AutoPeftModelForCausalLM
from transformers import AutoTokenizer

repo = "fechevic/slm-autonomo-lora"
model = AutoPeftModelForCausalLM.from_pretrained(repo, dtype="auto", device_map="auto")
tok = AutoTokenizer.from_pretrained("nvidia/Llama-3.1-Nemotron-Nano-4B-v1.1")

messages = [
    {"role": "system", "content": "detailed thinking off"},  # así se entrenó: sin razonamiento largo
    {"role": "user", "content": "¿Qué es RAG y cuándo conviene usarlo en una empresa?"},
]
inputs = tok.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)
out = model.generate(inputs, max_new_tokens=200, repetition_penalty=1.05)
print(tok.decode(out[0][inputs.shape[-1]:], skip_special_tokens=True))

El modelo base (~9 GB) se descarga automáticamente desde Hugging Face la primera vez.

Entrenamiento

Procedimiento (ciclo autónomo)

Ronda Qué ocurre
0 Taxonomía de temas → set de evaluación fijo (nunca se entrena con él) → nota base
r ≥ 1 Currículo adaptativo (más tareas en los temas débiles) → el profesor responde → entrenamiento LoRA con datos nuevos + repaso → el juez califica → se promueve, acepta o revierte el checkpoint

Datos

Pares instrucción–respuesta sintéticos generados por la API de OpenAI (profesor), con deduplicación y filtro de calidad: 40 tareas nuevas por ronda (30 % básicas, 50 % intermedias, 20 % avanzadas). El checkpoint publicado (ronda 2) se entrenó con 60 ejemplos (datos nuevos + 50 % de repaso).

Hiperparámetros

Parámetro Valor
LoRA r / alpha / dropout 16 / 32 / 0,05
Módulos q, k, v, o, gate, up, down (proyecciones)
Parámetros entrenables 30,4 M (0,67 % de 4,54 B)
Learning rate 2e-4 (warmup 5 %)
Batch efectivo 8 (4 × 2 de acumulación)
Épocas por ronda 1
Largo máximo de secuencia 512 tokens
Precisión bf16

Hardware y costo

  • Apple Silicon (MPS), 25,8 GB de memoria unificada; pico de 9,8 GB durante el entrenamiento
  • Tiempo de entrenamiento: 73 s · corrida completa: ~3 min
  • Costo total de la API de OpenAI: US$ 0,27 (125 llamadas)

Evaluación

Juez LLM con rúbrica de 4 criterios (1–10) contra la respuesta de referencia, sobre un set fijo de 8 preguntas.

Ronda Decisión Nota media Δ
0 (modelo base) — 2,13 —
1 promovido 2,50 +0,38
2 (este checkpoint) promovido 3,50 +1,00

Detalle de la ronda 2 por criterio: corrección 3,9 · completitud 2,4 · claridad 4,9 · idioma y formato 8,0.

Limitaciones

  • Es una corrida de demostración corta (2 rondas, 60 ejemplos, 8 preguntas de evaluación), con un presupuesto de US$ 2. La nota mejora de forma sostenida (+65 % sobre la base), pero sigue lejos del umbral de aprobación (7/10): no debe usarse en producción.
  • Debilidades que detectó el juez: respuestas incompletas o truncadas (límite de 160 tokens de generación) y confusiones conceptuales en destilación y en métricas de evaluación de RAG.
  • El set de evaluación es pequeño (n = 8), así que las notas tienen una varianza alta.
  • Hereda los sesgos y limitaciones del modelo base y del modelo profesor.

Uso responsable

  • Uso educativo. Los datos de entrenamiento se generaron con la API de OpenAI. Los términos de OpenAI restringen usar sus salidas para desarrollar modelos que compitan con OpenAI.
  • Distribuido bajo las licencias del modelo base: NVIDIA Open Model License y Llama 3.1 Community License.
  • No se usaron datos personales ni confidenciales.

Framework versions

  • PEFT 0.21.2 · Transformers 5.18.0 · PyTorch 2.14.1
Downloads last month
16
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for fechevic/slm-autonomo-lora