Instructions to use enriquehernandezg/slm-autonomo-lora with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use enriquehernandezg/slm-autonomo-lora with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("nvidia/Llama-3.1-Nemotron-Nano-4B-v1.1") model = PeftModel.from_pretrained(base_model, "enriquehernandezg/slm-autonomo-lora") - Transformers
How to use enriquehernandezg/slm-autonomo-lora with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="enriquehernandezg/slm-autonomo-lora")# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("enriquehernandezg/slm-autonomo-lora", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use enriquehernandezg/slm-autonomo-lora with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "enriquehernandezg/slm-autonomo-lora" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "enriquehernandezg/slm-autonomo-lora", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/enriquehernandezg/slm-autonomo-lora
- SGLang
How to use enriquehernandezg/slm-autonomo-lora with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "enriquehernandezg/slm-autonomo-lora" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "enriquehernandezg/slm-autonomo-lora", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "enriquehernandezg/slm-autonomo-lora" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "enriquehernandezg/slm-autonomo-lora", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use enriquehernandezg/slm-autonomo-lora with Docker Model Runner:
docker model run hf.co/enriquehernandezg/slm-autonomo-lora
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: Enrique Hernandez
- Contexto: Ejercicio de demostración del pipeline SLM autónomo (profesor + juez + estudiante local)
- Model type: Adaptador LoRA para modelo de lenguaje causal (decoder-only)
- Language(s): Español
- 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) - Qué se publica: solo el adaptador (≈ 120 MB); el modelo base se descarga desde Hugging Face
Dominio
Asistente experto en inteligencia artificial generativa aplicada a empresas. 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 = "enriquehernandezg/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 59 ejemplos (datos nuevos + 50 % de repaso; 1 descartado por el filtro).
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 (1 × 8 de acumulación) |
| Épocas por ronda | 1 |
| Pasos de optimización | 13 en total (5 en la ronda 1 + 8 en la ronda 2) |
| Largo máximo de secuencia | 256 tokens |
| Cuantización del modelo base | QLoRA, 4 bits NF4 (cómputo en bf16) |
¹ El log del entrenamiento reporta 1,13 % porque, con 4 bits, bitsandbytes cuenta los pesos empaquetados (2,68 B en lugar de 4,54 B).
Hardware y costo
- GPU NVIDIA GeForce RTX 3050 Laptop de 4 GB (Windows), 16,9 GB de RAM; memoria pico reportada de 6,9 GB durante el entrenamiento
- Tiempo de entrenamiento: 427 s (7 min 7 s) · corrida completa: ≈ 17 min (incluye generación y evaluación)
- Costo total de la API de OpenAI: US$ 0,27 (126 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,25 | — |
| 1 | promovido | 2,75 | +0,50 |
| 2 (este checkpoint) | promovido | 3,00 | +0,25 |
Mejora acumulada: +0,75 puntos (+33 % sobre la base). Aprobación (nota ≥ 7): 0 % en todas las rondas.
Detalle de la ronda 2 por criterio (base entre paréntesis): corrección 3,9 (3,8) · completitud 2,1 (1,4) · claridad 3,4 (3,1) · idioma y formato 7,0 (5,6).
Por tema en la ronda 2 (base entre paréntesis): Fundamentos de LLM 4,0 (2,5) · Evaluación y LLMOps 3,0 (2,0) · Ajuste fino y destilación 2,5 (2,0) · RAG y búsqueda semántica 2,5 (2,5).
Limitaciones
- Es una corrida de demostración corta (2 rondas, 59 ejemplos de la última ronda, 8 preguntas de evaluación), con un presupuesto de US$ 2. La nota mejora de forma sostenida, pero sigue muy 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), confusiones conceptuales (por ejemplo, expandir mal la sigla RAG o confundir búsqueda semántica con coincidencia de palabras) y planes demasiado genéricos en ajuste fino y destilación.
- El set de evaluación es pequeño (n = 8; desviación estándar de 0,71 en la ronda 2), así que las notas tienen una varianza alta y una diferencia de ±0,25 entre rondas puede ser ruido.
- 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.5.1+cu121 · bitsandbytes 0.50.2
- Downloads last month
- 23
Model tree for enriquehernandezg/slm-autonomo-lora
Base model
nvidia/Llama-3.1-Minitron-4B-Width-Base