Sobre MíQué hagoProyectosLabContacto

Notas sobre machine learning

Apuntes técnicos escritos mientras aprendo: evaluación honesta, fugas de datos, despliegue, aplicaciones con LLMs y los errores que hay detrás de cada lección. Salen de los proyectos de esta web, con el código a un clic.

transformers.js, ONNX Runtime Web y tfjs: comparé los tres motores de ML del navegador con números reales
MLOps·12/07/2026·6 min

transformers.js, ONNX Runtime Web y tfjs: comparé los tres motores de ML del navegador con números reales

Monté un benchmark propio para medir transformers.js, ONNX Runtime Web y tfjs corriendo la misma tarea de embeddings de frases, más una MLP idéntica en los dos runtimes que pueden ejecutarla de verdad. WASM le ganó a WebGPU en las dos tareas, el backend que elige tfjs importó más que el runtime elegido, y por el camino encontré un backend que ni siquiera arrancaba por defecto en esta máquina.

Leer artículo
BM25 contra embeddings: le añadí búsqueda semántica a mi buscador (con números)
RAG·12/07/2026·7 min

BM25 contra embeddings: le añadí búsqueda semántica a mi buscador (con números)

Le puse un interruptor opcional a Ask que reordena los resultados de BM25 con embeddings de MiniLM. Antes de dejarlo encendido por defecto probé 15 preguntas reales en los dos idiomas: ganó claramente en 1, ayudó un poco en 2, empató en 8 y perdió en 1, y en 3 fallaron los dos. Esta es la cuenta completa, sin redondear para arriba.

Leer artículo
Papers en cristiano: LoRA
LLMs·12/07/2026·5 min

Papers en cristiano: LoRA

El paper de 2021 que hizo barata la adaptación de modelos gigantes cabe en una idea: en vez de tocar todos los pesos, aprender solo un atajo de bajo rango y sumarlo. Segunda entrega de la serie, con un experimento real: un GPT diminuto entrenado en Shakespeare y adaptado al Quijote de cinco formas distintas para medir cuánto cuesta cada una y cuánto olvida.

Leer artículo
Comparé mi tokenizador BPE con tiktoken y BERT: los números no fueron amables
LLMs·12/07/2026·5 min

Comparé mi tokenizador BPE con tiktoken y BERT: los números no fueron amables

Reentrené el BPE de transformer-from-scratch a un vocabulario de 8.000 y lo enfrenté a cl100k_base, o200k_base, GPT-2 y BERT multilingüe sobre los mismos corpus de inglés, español y código. La brecha en español fue peor de lo que esperaba, y el motivo real no fue el que había supuesto.

Leer artículo
Todo lo que pasa cuando pulsas Enter en mi buscador
RAG·12/07/2026·3 min

Todo lo que pasa cuando pulsas Enter en mi buscador

La versión técnica: del evento de teclado al ranking, con el índice de 735 fragmentos, BM25 con k1=1,5 y b=0,75, el empujón por idioma y las decisiones que tomé por el camino. Para quien ya leyó la versión sin jerga y quiere ver los engranajes.

Leer artículo
Correr modelos en el navegador: lo que aprendí montando un lab entero
MLOps·11/07/2026·3 min

Correr modelos en el navegador: lo que aprendí montando un lab entero

Este porfolio tiene más de veinte demos de ML corriendo en tu navegador sin ningún servidor: redes que entrenan en vivo, un transformer generando texto, difusión, una GAN. Esta es la guía práctica que me habría ahorrado semanas: formatos, tamaños, trampas y qué técnica usar para qué.

Leer artículo
Papers en cristiano: Attention is all you need
LLMs·11/07/2026·2 min

Papers en cristiano: Attention is all you need

El paper de 2017 que está debajo de todos los chatbots actuales cabe en una idea: dejar que cada palabra decida a qué otras palabras mirar. Primera entrega de una serie donde leo papers clásicos y los cuento como me habría gustado que me los contaran.

Leer artículo
Post-mortem: doce días desplegando una web rota sin saberlo
MLOps·10/07/2026·3 min

Post-mortem: doce días desplegando una web rota sin saberlo

Del 29 de junio al 11 de julio esta web no se desplegó ni una sola vez, y yo convencido de que sí. La historia completa del límite de 3 MB de Cloudflare, cómo lo encontré, cómo lo arreglé y las tres lecciones que me llevo.

Leer artículo
Cómo me encuentra el buscador de esta web (sin servidores)
Sin jerga·10/07/2026·2 min

Cómo me encuentra el buscador de esta web (sin servidores)

Abajo a la derecha hay un botón que responde preguntas sobre este porfolio. No llama a ningún servidor: puntúa 600 fragmentos de texto en tu navegador con una fórmula de los años 90 que sigue ganando batallas. Así funciona, sin jerga.

Leer artículo
¿Cómo aprende una máquina? Explicado sin una sola fórmula
Sin jerga·09/07/2026·2 min

¿Cómo aprende una máquina? Explicado sin una sola fórmula

Mi madre me preguntó qué estudio exactamente. Este artículo es la respuesta: cómo aprende una máquina, contado sin jerga y con un experimento aquí dentro para que lo compruebes tú.

Leer artículo
Dibujas un 7 y te lo reconoce: qué pasa por dentro
Sin jerga·09/07/2026·2 min

Dibujas un 7 y te lo reconoce: qué pasa por dentro

Un dibujo tuyo se convierte en 784 números, los 784 números en diez probabilidades, y la más alta gana. El recorrido completo, sin jerga, con el experimento dentro del artículo.

Leer artículo
Por qué el ordenador sabe que perro y gato se parecen
Sin jerga·08/07/2026·2 min

Por qué el ordenador sabe que perro y gato se parecen

Las palabras se convierten en listas de números, y las listas parecidas acaban cerca. Ese truco sostiene medio internet, de tu buscador a los asistentes que responden preguntas. Sin jerga, con mapa interactivo dentro.

Leer artículo
Probabilidades calibradas: cuando un 0,7 tiene que significar un 70%
Modelado·07/07/2026·2 min

Probabilidades calibradas: cuando un 0,7 tiene que significar un 70%

Un clasificador puede ordenar bien y mentir con los números: decir 0,9 donde la frecuencia real es 0,6. Si alguien va a decidir con esa probabilidad, hay que calibrarla, comprobarlo con la curva de fiabilidad y el Brier score, y solo entonces elegir umbral.

Leer artículo
Lo que aprendí implementando un transformer desde cero
Modelado·04/07/2026·2 min

Lo que aprendí implementando un transformer desde cero

Atención multi-cabeza, máscara causal y un tokenizador BPE escritos a mano en PyTorch, sin torch.nn.Transformer. Tres lecciones que ningún curso me había dado, incluida una sorpresa en las ablaciones.

Leer artículo
Publicar diez CLIs en PyPI: lo que no te cuentan
MLOps·01/07/2026·2 min

Publicar diez CLIs en PyPI: lo que no te cuentan

Nombres ya ocupados, un limite de proyectos nuevos que no aparece en la documentación y por qué el nombre del paquete no tiene que coincidir con el del comando. Notas de publicar una suite completa de herramientas.

Leer artículo
Tu eval bajó del 90 al 89%: ¿regresión real o ruido?
Evaluación·20/06/2026·2 min

Tu eval bajó del 90 al 89%: ¿regresión real o ruido?

Un modelo nuevo puntúa 89,4% donde el anterior daba 90,0% sobre 1.000 ejemplos. Parece una regresión. En ese tamaño de muestra es ruido. Cómo distinguir una cosa de la otra antes de bloquear un despliegue.

Leer artículo
Fugas entre train y test: el error que infla todas tus métricas
Datos·13/06/2026·2 min

Fugas entre train y test: el error que infla todas tus métricas

Una fila que aparece en entrenamiento y en test hace que el modelo parezca mejor de lo que es. Es fácil de introducir sin querer y difícil de ver a ojo. Dónde se cuela y cómo detectarlo antes de creerte tus números.

Leer artículo
Del notebook a una API de inferencia que aguanta producción
MLOps·06/06/2026·2 min

Del notebook a una API de inferencia que aguanta producción

Un modelo entrenado en un notebook no es un producto. Convertirlo en un servicio que valida su entrada, responde con latencia predecible y se puede monitorizar es el trabajo que separa una demo de un sistema.

Leer artículo
¿Cuándo vale la pena usar un LLM y cuándo no?
LLMs·15/05/2026·2 min

¿Cuándo vale la pena usar un LLM y cuándo no?

Los LLMs resuelven ciertos problemas mejor que cualquier otro enfoque. Otros los resuelven peor que un clasificador de tres líneas. La pregunta que hay que hacerse antes de abrir la API de OpenAI.

Leer artículo
Cómo evaluar si un modelo de ML funciona de verdad
Evaluación·08/05/2026·2 min

Cómo evaluar si un modelo de ML funciona de verdad

Un modelo que tiene un 95% de accuracy puede ser completamente inútil. Un modelo que parece peor en validación puede ser el que de verdad funcione en producción. Lo que separa la evaluación honesta de la que infla resultados.

Leer artículo
Por qué el umbral de decisión importa más que el modelo
Modelado·01/05/2026·2 min

Por qué el umbral de decisión importa más que el modelo

Cambiar el umbral de decisión de 0,5 al valor correcto para el coste de tu negocio puede mejorar el resultado operativo más que pasar de regresión logística a XGBoost. Por qué nadie lo explica así.

Leer artículo
RAG: respuestas verificables sobre documentos propios
RAG·03/05/2026·2 min

RAG: respuestas verificables sobre documentos propios

Cómo funciona la generación aumentada por recuperación: indexado, recuperación semántica, chunking y evaluación. Por qué cada respuesta debe poder citar de dónde viene …

Leer artículo
MLOps: la diferencia entre un modelo en un notebook y uno en producción
MLOps·21/04/2026·2 min

MLOps: la diferencia entre un modelo en un notebook y uno en producción

Un notebook es un entorno de exploración, no un sistema. Lo que hace falta para que un modelo funcione en producción, se mantenga solo y no se degrade en silencio.

Leer artículo
Drift: cómo detectar que tu modelo se está degradando
MLOps·02/03/2026·2 min

Drift: cómo detectar que tu modelo se está degradando

El modelo no cambia. Los datos sí. Y si nadie está mirando, el modelo puede llevar semanas dando predicciones malas sin que nadie lo sepa. Cómo monitorizar drift de forma práctica.

Leer artículo

¿Conectamos?

Hablemos: feedback, colaboración o una oportunidad.

Puedes escribirme por un proyecto, una duda técnica, para darme feedback o por unas prácticas o un primer puesto junior. Respondo siempre.

Escríbeme

hola@jmwebsoluciones.com