Asignaturas/Deep Learning/Diapositivas de la segunda parte/Demo rápida

Demo rápida: las cuatro cosas que se le hacen a un modelo

Cinco cuadernos de Jupyter que cogen un modelo de pesos abiertos y le aplican, en orden, RAG, MCP, SFT y LoRA. Todo el código se ejecuta de verdad y todo cabe en un portátil sin GPU. Los números que aparecen en el texto están medidos, no estimados: cuando un cuaderno dice que la ficha exacta pasa del 0 % al 100 %, es porque la celda de al lado lo imprime.


El hilo conductor

Los cinco cuadernos comparten una historia. Trabajamos para Banco Iberia, un banco inventado con su normativa, sus clientes y su buzón de incidencias. Que esté inventado es lo que hace la demo honesta: ningún modelo del mundo ha visto esos documentos durante el preentrenamiento, así que cuando acierta una cifra es porque la ha leído, no porque la recuerde. La pregunta que ordena los cuatro bloques es ésta: ¿el modelo falla porque no SABE algo, o porque no HACE lo que quieres? Lo primero se arregla con RAG y MCP, sin tocar un peso. Lo segundo exige moverlos: SFT y LoRA.

Los cuadernos
00
Bajarse un modelo libre y mirarlo por dentro
Qué hay dentro de un repositorio de Hugging Face y por qué safetensors y no .bin · dónde está el peso de un modelo, capa por capa · el tokenizador y lo que cuesta el español frente al inglés · el chat template, que es el texto que el modelo recibe de verdad · la distribución del siguiente token y el efecto de la temperatura · y la alucinación que motiva el cuaderno 01
01
RAG: que el modelo responda con tus documentos delante
Trocear, vectorizar, indexar, recuperar y generar · el espacio de embeddings proyectado a dos dimensiones · FAISS frente a un producto escalar en numpy · medir la recuperación antes que la generación: el mismo corpus pasa del 17 % al 83 % de acierto@1 sólo con cambiar de encoder · el modo de fallo que de verdad hace daño, que es recuperar bien y redactar mal · y por qué el umbral de similitud que todo el mundo propone aquí no separa nada
02
MCP: darle herramientas al modelo
El protocolo en crudo, línea a línea de JSON-RPC, contra un servidor escrito a mano y sin dependencias · el ciclo de vida de una sesión · el bucle del agente, con el modelo decidiendo qué función llamar y el host ejecutándola · la medida que importa: añadir «responde en dos o tres frases» al prompt de sistema hunde el uso de herramientas, y se ve en la probabilidad del token <tool_call> · seguridad e inyección de prompt · y cómo enchufar el mismo servidor a Claude Desktop
03
SFT: enseñarle una tarea con ejemplos resueltos
160 ejemplos, cinco minutos de CPU y la ficha exacta pasa del 0 % al 100 % · la máscara de etiquetas a -100, que es el único concepto nuevo y el error silencioso más caro · el bucle de entrenamiento escrito entero, sin Trainer · y el número honesto: ese 100 % se queda en 67 % con doce incidencias escritas a mano, que es el hueco de generalización · más el olvido catastrófico, medido antes y después
04
LoRA: el mismo ajuste moviendo el 3,5 % de los pesos
Una capa LoRA escrita a mano en veinte líneas, con la comprobación de que con B = 0 el modelo es byte a byte el original · peft y qué módulos elegir · la misma tarea del 03 con el 3,5 % de los parámetros y el mismo resultado · fusionar el adaptador y comprobar que los logits no cambian · 18,7 MB frente a 518 MB, que es el modelo de negocio entero del fine-tuning barato · y dónde está el ahorro de verdad, que es el estado de Adam y no el reloj
Para ejecutarlos
Zip
La carpeta completa
Los .ipynb sueltos no funcionan solos: importan el paquete comun/ y lanzan el servidor de mcp_demo/. Descargad el zip, descomprimid y abrid Jupyter desde dentro de la carpeta
Instalar
No hay que instalar nada a mano
La primera celda de cualquier cuaderno mira qué sistema operativo tenéis, comprueba qué falta y lo descarga: Windows, macOS y Linux, y también Google Colab. Si ya está todo, no hace nada. Lo único que hace falta antes es Python 3.10–3.13 y Jupyter. Si algo falla, ejecutad esa celda como instalar(verboso=True) y traed lo que imprima
Hardware
CPU y unos 5 GB de RAM libres
Con GPU no hay que cambiar nada, el código detecta el dispositivo solo. El 04 llega a un pico de 5,6 GB: cerrad el navegador antes de lanzarlo, porque cuando el sistema se queda sin memoria mata el kernel sin avisar. Los cinco cuadernos completos son unos 26 minutos en un portátil con 8 hilos y sin GPU
Modelos
Tres, todos de pesos abiertos y uso comercial libre
Qwen2.5-1.5B-Instruct para conversar (Apache 2.0), SmolLM2-135M-Instruct para entrenar (Apache 2.0) y multilingual-e5-small para vectorizar (MIT). Se descargan solos la primera vez, unos 3,7 GB en total
Qué no está aquí

Lo digo porque la frontera importa y porque son las preguntas que caen en clase. Preentrenamiento: se parte siempre de un modelo ya entrenado, porque entrenar uno desde cero cuesta millones. RLHF: queda fuera del temario de este curso, así que no hay cuaderno de modelo de recompensa, DPO ni policy gradient. Despliegue: nada de vLLM, cuantización en producción ni monitorización. Evaluación seria: los conjuntos de prueba tienen entre 5 y 40 ejemplos, sirven para ver el efecto y no para tomar una decisión, y cada cuaderno dice en voz alta dónde su número no se sostiene.

Relación con el examen

Esto es material de ampliación. Del examen sigue entrando lo que dicen las diapositivas de los temas A y B: qué es y para qué sirve cada técnica, con respuesta de manual, y como único cálculo la similitud coseno. El mecanismo interno (cómo se enmascaran las etiquetas en un SFT, cómo se descompone una matriz en LoRA, cómo viaja un mensaje de MCP) no se pregunta. Está aquí para quien quiera ver por dentro lo que en clase se cuenta por fuera, y para el proyecto final.

Eduardo C. Garrido-Merchán · ecgarrido@comillas.edu · Universidad Pontificia Comillas (ICADE) · Deep Learning para Business Analytics 2026–2027 · CC BY-NC-SA 4.0