{"id":182,"date":"2026-05-23T00:05:26","date_gmt":"2026-05-22T22:05:26","guid":{"rendered":"https:\/\/atlaszn.com\/blog\/?p=182"},"modified":"2026-05-24T21:28:59","modified_gmt":"2026-05-24T19:28:59","slug":"runtimes-cuantizacion","status":"publish","type":"post","link":"https:\/\/atlaszn.com\/blog\/2026\/05\/23\/runtimes-cuantizacion\/","title":{"rendered":"Ejecuci\u00f3n Local de LLM: Runtimes,  Operaci\u00f3n y Cuantizaci\u00f3n"},"content":{"rendered":"\n<nav style=\"padding: 1em 1.5em; border-radius: 8px; margin-bottom: 2em;\">\n  <strong>\u00cdndice de contenido<\/strong><p><\/p>\n<ol style=\"margin: 0.5em 0 0 1.5em; padding: 0;\">\n<li><a href=\"#que-es-local\">Qu\u00e9 significa realmente \u00ablocal\u00bb<\/a><\/li>\n<li><a href=\"#cuantizacion\">Cuantizaci\u00f3n: precisi\u00f3n vs. memoria<\/a><\/li>\n<li><a href=\"#formatos-archivo\">Formatos de archivo y seguridad<\/a><\/li>\n<li><a href=\"#runtimes\">Runtimes y motores de inferencia<\/a><\/li>\n<li><a href=\"#modos-servicio\">Modos de servicio<\/a><\/li>\n<li><a href=\"#matematicas-vram\">Matem\u00e1ticas de VRAM<\/a><\/li>\n<li><a href=\"#niveles-hardware\">Niveles de hardware pr\u00e1cticos<\/a><\/li>\n<li><a href=\"#seleccion-modelo\">Selecci\u00f3n de modelo<\/a><\/li>\n<li><a href=\"#privacidad\">Privacidad y seguridad<\/a><\/li>\n<li><a href=\"#benchmarks\">Benchmarks que importan<\/a><\/li>\n<li><a href=\"#faq-ejecucion\">Preguntas frecuentes<\/a><\/li>\n<\/ol>\n<\/nav>\n\n\n\n<p class=\"wp-block-paragraph\">Un LLM local es un modelo cuyos pesos y su runtime de inferencia est\u00e1n bajo tu control. T\u00fa decides qu\u00e9 modelo se ejecuta, c\u00f3mo se ejecuta, qu\u00e9 datos procesa y qu\u00e9 sucede con las salidas. Esa libertad viene con responsabilidad operativa: descargas, actualizaciones, compatibilidad, l\u00edmites de memoria y seguridad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esta gu\u00eda cubre la capa de operaci\u00f3n local: qu\u00e9 significa ejecutar un modelo localmente, c\u00f3mo funciona la cuantizaci\u00f3n, qu\u00e9 formatos de archivo existen, c\u00f3mo elegir un runtime, qu\u00e9 nivel de hardware necesitas y c\u00f3mo medir el rendimiento real de tu configuraci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este art\u00edculo forma parte de una serie t\u00e9cnica sobre IA local.<\/p>\n\n\n\n<h2 id=\"que-es-local\" class=\"wp-block-heading\">\u00bfQu\u00e9 significa realmente \u00ablocal\u00bb?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u00abLocal\u00bb puede significar diferentes escalas:<\/p>\n\n\n\n<ul class=\"wp-block-list\" class=\"wp-block-list\">\n<li>Un modelo de 2B par\u00e1metros ejecut\u00e1ndose en un tel\u00e9fono.<\/li>\n\n\n\n<li>Un modelo de 7B a 14B ejecut\u00e1ndose en una GPU de consumo.<\/li>\n\n\n\n<li>Un modelo de 30B a 70B ejecut\u00e1ndose en una estaci\u00f3n de trabajo de gama alta.<\/li>\n\n\n\n<li>Un modelo MoE (Mixture of Experts) disperso ejecut\u00e1ndose en m\u00faltiples GPUs en un centro de datos.<\/li>\n\n\n\n<li>Un despliegue privado usando vLLM, SGLang, TensorRT-LLM, llama.cpp o un stack personalizado de PyTorch.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Local no significa autom\u00e1ticamente offline, privado, seguro o de c\u00f3digo abierto.<\/strong> Solo significa que t\u00fa est\u00e1s ejecutando el modelo. Una aplicaci\u00f3n local a\u00fan puede enviar telemetr\u00eda. Un modelo puede ser de pesos abiertos (<em>open-weight<\/em>) pero no ser de c\u00f3digo abierto. Un modelo puede ser local pero inseguro de cargar. Un modelo cuantizado puede caber en memoria pero responder mal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El intercambio vale la pena cuando necesitas privacidad, baja latencia, comportamiento personalizado, operaci\u00f3n offline o control de costes a escala. No vale la pena cuando necesitas la calidad absoluta de un modelo frontera y no tienes el hardware para igualarlo. En ese caso, una API alojada es la herramienta correcta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La ecuaci\u00f3n pr\u00e1ctica es:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00c9xito de un LLM local = ajuste del modelo + formato de prompt correcto + buen runtime + evaluaciones realistas<\/strong><\/p>\n\n\n\n<h2 id=\"cuantizacion\" class=\"wp-block-heading\">Cuantizaci\u00f3n: Precisi\u00f3n vs. memoria<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La cuantizaci\u00f3n almacena los pesos del modelo en una precisi\u00f3n num\u00e9rica menor para reducir la memoria requerida y, en algunos casos, mejorar el rendimiento (<em>throughput<\/em>).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Regla de oro de cuantizaci\u00f3n en 2026<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Nivel<\/th><th class=\"has-text-align-left\" data-align=\"left\">Calidad<\/th><th class=\"has-text-align-left\" data-align=\"left\">Uso recomendado<\/th><\/tr><\/thead><tbody><tr><td><strong>FP16\/BF16<\/strong><\/td><td>Mejor calidad<\/td><td>L\u00ednea base para evaluaci\u00f3n, cuando la memoria es abundante<\/td><\/tr><tr><td><strong>Q8 \/ INT8<\/strong><\/td><td>Casi sin p\u00e9rdida<\/td><td>VRAM disponible, p\u00e9rdida de calidad m\u00ednima<\/td><\/tr><tr><td><strong>Q6 \/ Q5<\/strong><\/td><td>Excelente calidad<\/td><td>Punto medio s\u00f3lido entre calidad y memoria<\/td><\/tr><tr><td><strong>Q4<\/strong><\/td><td>Buena calidad<\/td><td>\u00abSweet spot\u00bb para chat y documentos<\/td><\/tr><tr><td><strong>Q3 \/ Q2<\/strong><\/td><td>Degradaci\u00f3n notable<\/td><td>Solo cuando es imprescindible hacer caber un modelo grande<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">La cuantizaci\u00f3n de pesos no es lo mismo que la cuantizaci\u00f3n del cach\u00e9 KV. La cuantizaci\u00f3n de pesos reduce el tama\u00f1o del modelo almacenado. La cuantizaci\u00f3n del cach\u00e9 KV reduce la memoria del contexto activo en tiempo de ejecuci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El impacto de la cuantizaci\u00f3n aparece primero en: matem\u00e1ticas, razonamiento multietapa, correcci\u00f3n de c\u00f3digo, fiabilidad de uso de herramientas, adherencia a JSON\/esquemas y recuperaci\u00f3n de contextos largos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Un modelo m\u00e1s peque\u00f1o con mayor precisi\u00f3n puede superar a un modelo m\u00e1s grande cuantizado agresivamente.<\/strong> Un modelo de 7B en Q6 puede vencer a un modelo de 13B en Q2 en tareas de razonamiento mientras usa menos memoria y corre m\u00e1s r\u00e1pido. No adores el conteo de par\u00e1metros.<\/p>\n\n\n\n<h2 id=\"formatos-archivo\" class=\"wp-block-heading\">Formatos de archivo y seguridad<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La elecci\u00f3n del formato de archivo determina qu\u00e9 runtimes pueden cargar el modelo, qu\u00e9 cuantizaci\u00f3n puedes usar y qu\u00e9 tan r\u00e1pido se ejecuta.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Formatos principales<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Formato<\/th><th class=\"has-text-align-left\" data-align=\"left\">Uso principal<\/th><th class=\"has-text-align-left\" data-align=\"left\">Seguridad<\/th><\/tr><\/thead><tbody><tr><td><strong>safetensors<\/strong><\/td><td>PyTorch\/Transformers<\/td><td>Seguro (sin pickle)<\/td><\/tr><tr><td><strong>GGUF<\/strong><\/td><td>llama.cpp, LM Studio<\/td><td>Seguro<\/td><\/tr><tr><td><strong>ONNX<\/strong><\/td><td>Despliegue estandarizado<\/td><td>Seguro<\/td><\/tr><tr><td><strong>TensorRT-LLM<\/strong><\/td><td>NVIDIA, producci\u00f3n<\/td><td>Seguro<\/td><\/tr><tr><td><strong>EXL2 \/ GPTQ \/ AWQ<\/strong><\/td><td>Inferencia local en GPU<\/td><td>Seguro<\/td><\/tr><tr><td><strong>.bin (PyTorch)<\/strong><\/td><td>Legacy PyTorch<\/td><td><strong>Peligro: puede ejecutar c\u00f3digo<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Seguridad en la carga de modelos<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Regla n\u00famero uno de seguridad en IA local: no dejes que el archivo del modelo de un tercero se convierta en la ejecuci\u00f3n de c\u00f3digo de un tercero.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La carga basada en pickle de PyTorch puede ejecutar c\u00f3digo arbitrario durante la deserializaci\u00f3n. Usa <code>safetensors<\/code> siempre que sea posible, especialmente para modelos PyTorch\/Transformers. Evita archivos <code>.bin<\/code> aleatorios de fuentes no confiables.<\/p>\n\n\n\n<h2 id=\"runtimes\" class=\"wp-block-heading\">Runtimes y motores de inferencia<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Un runtime es el software que carga el modelo y realiza la inferencia. En 2026, el ecosistema de runtimes de LLM local est\u00e1 maduro, \u00fatil y fragmentado.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Selecci\u00f3n por caso de uso<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Runtime<\/th><th class=\"has-text-align-left\" data-align=\"left\">Mejor para<\/th><th class=\"has-text-align-left\" data-align=\"left\">Formato preferido<\/th><\/tr><\/thead><tbody><tr><td><strong>llama.cpp<\/strong><\/td><td>Portabilidad, CPU, Apple Silicon<\/td><td>GGUF<\/td><\/tr><tr><td><strong>LM Studio<\/strong><\/td><td>Escritorio, principiantes<\/td><td>GGUF<\/td><\/tr><tr><td><strong>Harbor<\/strong><\/td><td>Stack local completo<\/td><td>GGUF\/safetensors<\/td><\/tr><tr><td><strong>vLLM<\/strong><\/td><td>Servicio privado, producci\u00f3n<\/td><td>safetensors\/HF<\/td><\/tr><tr><td><strong>SGLang<\/strong><\/td><td>Servicio privado, alto throughput<\/td><td>safetensors\/HF<\/td><\/tr><tr><td><strong>TensorRT-LLM<\/strong><\/td><td>M\u00e1ximo rendimiento NVIDIA<\/td><td>ONNX\/motores TRT<\/td><\/tr><tr><td><strong>MLC \/ WebLLM<\/strong><\/td><td>Navegador, m\u00f3vil<\/td><td>MLC format<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">La elecci\u00f3n del runtime a menudo te vincula a un ecosistema de formatos. llama.cpp significa GGUF. vLLM y SGLang suelen significar safetensors o checkpoints de Hugging Face. TensorRT-LLM significa ONNX o motores optimizados. Elige el runtime primero, luego encuentra los modelos en el formato adecuado.<\/p>\n\n\n\n<h2 id=\"modos-servicio\" class=\"wp-block-heading\">Modos de servicio<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Existen tres modos de servicio pr\u00e1cticos:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Local para un solo usuario<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Una aplicaci\u00f3n de escritorio, un stack de CLI o un servidor de l\u00ednea de comandos para una persona. Harbor, LM Studio, llama.cpp server, ExLlama\/TabbyAPI y peque\u00f1os scripts de Transformers encajan aqu\u00ed. El objetivo es la iteraci\u00f3n r\u00e1pida: comparar comportamiento, velocidad, uso de memoria y formatos de prompt sin construir una plataforma de operaciones.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">API para equipo o privada<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Un endpoint compatible con OpenAI en una estaci\u00f3n de trabajo o servidor. vLLM, SGLang, TensorRT-LLM y llama.cpp server aparecen aqu\u00ed dependiendo de las necesidades de tama\u00f1o de modelo y rendimiento. Una vez que m\u00faltiples personas o trabajos comparten un modelo, necesitas monitoreo, gesti\u00f3n de prompts\/versiones, enrutamiento y mediciones realistas de latencia.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Servicio de producci\u00f3n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora la conversaci\u00f3n incluye: batching continuo, cach\u00e9 de prefijos, decodificaci\u00f3n especulativa, atenci\u00f3n paginada (<em>paged attention<\/em>), paralelismo de tensores, paralelismo de pipeline, servicio cuantizado, salidas estructuradas, balanceo de carga, utilizaci\u00f3n de GPU, percentiles de latencia, cach\u00e9 de prompts, control de admisi\u00f3n, registro (<em>logging<\/em>), tolerancia a fallos, privacidad y controles de costes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A escala de producci\u00f3n, la pregunta f\u00e1cil es \u00bfpuedo cargar el modelo? La pregunta dif\u00edcil es \u00bfpuedo servirlo de forma fiable bajo tr\u00e1fico real?<\/p>\n\n\n\n<h2 id=\"matematicas-vram\" class=\"wp-block-heading\">Matem\u00e1ticas de VRAM<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Existen tres consumidores principales de memoria:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Pesos del modelo<\/strong><\/li>\n\n\n\n<li><strong>Cach\u00e9 KV<\/strong><\/li>\n\n\n\n<li><strong>Sobrecarga del runtime<\/strong><\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">La f\u00f3rmula aproximada de la memoria de los pesos es:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>memoria_pesos \u2248 par\u00e1metros \u00d7 bytes_por_par\u00e1metro<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Aproximaciones \u00fatiles<\/h3>\n\n\n\n<ul class=\"wp-block-list\" class=\"wp-block-list\">\n<li>FP16\/BF16: Aproximadamente 2 bytes por par\u00e1metro<\/li>\n\n\n\n<li>INT8\/Q8: Aproximadamente 1 byte por par\u00e1metro<\/li>\n\n\n\n<li>Q4: Aproximadamente 0.5 bytes por par\u00e1metro, m\u00e1s la sobrecarga del formato<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Luego a\u00f1ade:<\/p>\n\n\n\n<ul class=\"wp-block-list\" class=\"wp-block-list\">\n<li>Sobrecarga del runtime: buffers del framework, overhead de CUDA, fragmentaci\u00f3n de memoria y tensores temporales<\/li>\n\n\n\n<li>Cach\u00e9 KV: crece con cada token en el contexto activo<\/li>\n\n\n\n<li>Memoria de batch\/concurrencia: cada solicitud concurrente necesita su propio cach\u00e9<\/li>\n\n\n\n<li>Memoria del codificador de visi\u00f3n: las im\u00e1genes tambi\u00e9n se convierten en tokens<\/li>\n\n\n\n<li>Memoria de decodificaci\u00f3n especulativa: modelos de borrador, cabezas de borrador o estructuras de verificaci\u00f3n extra<\/li>\n\n\n\n<li>Memoria de adaptadores: los adaptadores LoRA son peque\u00f1os, pero siguen siendo reales<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Una estimaci\u00f3n realista se ve as\u00ed:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>memoria_total = memoria_pesos + cach\u00e9_KV_para_contexto + sobrecarga_runtime + sobrecarga_batch_o_concurrencia + margen_de_seguridad<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>La trampa:<\/strong> Un modelo de 13B en Q4 puede caber f\u00e1cilmente con un contexto de 8K, y luego fallar a los 32K porque el cach\u00e9 KV se cuadruplic\u00f3. Los pesos no cambiaron. El contexto s\u00ed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deja un margen de seguridad del 10 al 20 por ciento. Ejecutar al 99 por ciento de utilizaci\u00f3n de VRAM es pedir errores de falta de memoria (OOM) y fallos de fragmentaci\u00f3n.<\/p>\n\n\n\n<h2 id=\"niveles-hardware\" class=\"wp-block-heading\">Niveles de hardware pr\u00e1cticos<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Estas son reglas de oro pr\u00e1cticas para 2026, asumiendo inferencia cuantizada y longitudes de contexto sensatas:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">VRAM<\/th><th class=\"has-text-align-left\" data-align=\"left\">Modelos viables<\/th><th class=\"has-text-align-left\" data-align=\"left\">Contexto pr\u00e1ctico<\/th><\/tr><\/thead><tbody><tr><td><strong>8-12 GB<\/strong><\/td><td>3B-7B en Q4<\/td><td>4K-8K tokens<\/td><\/tr><tr><td><strong>16 GB<\/strong><\/td><td>7B-14B en Q4\/Q5<\/td><td>8K-16K tokens<\/td><\/tr><tr><td><strong>24 GB<\/strong><\/td><td>14B-32B en Q4\/Q5<\/td><td>8K-32K tokens<\/td><\/tr><tr><td><strong>48 GB+<\/strong><\/td><td>32B-70B en Q4\/Q5<\/td><td>16K-64K tokens<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">El rendimiento depende del ancho de banda de memoria, los FLOPs de la GPU, la capacidad de VRAM, el tama\u00f1o del cach\u00e9 KV, la implementaci\u00f3n de atenci\u00f3n, la cuantizaci\u00f3n, el tama\u00f1o del batch, la longitud del prompt, la longitud generada y la madurez del runtime.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La decodificaci\u00f3n suele estar limitada por el ancho de banda de memoria: la GPU transmite los pesos del modelo repetidamente mientras realiza relativamente poca computaci\u00f3n por byte. El prefill es m\u00e1s limitado por la computaci\u00f3n porque puede procesar el prompt en paralelo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La configuraci\u00f3n local m\u00e1s dolorosa es aquella donde el modelo casi cabe y vuelca capas a la CPU. Puede funcionar t\u00e9cnicamente, pero la velocidad de los tokens puede colapsar. El offload a CPU es aceptable para experimentaci\u00f3n. No es una estrategia de rendimiento.<\/p>\n\n\n\n<h2 id=\"seleccion-modelo\" class=\"wp-block-heading\">Selecci\u00f3n de modelo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La pregunta pr\u00e1ctica no es \u00bfCu\u00e1l es el mejor modelo? Es \u00bfCu\u00e1l es el modelo m\u00e1s peque\u00f1o que gana en tu carga de trabajo real sobre tu hardware?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Empieza con un modelo instruct\/chat reciente que quepa c\u00f3modamente con la longitud de contexto que realmente necesitas. Usa esta puerta de memoria antes de enamorarte de un checkpoint:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>pesos + cach\u00e9_KV + sobrecarga_runtime \u2264 80-90% de la memoria disponible<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Luego ejecuta los mismos 20 a 50 prompts en varios candidatos. Incluye tus tareas reales: ediciones de c\u00f3digo, Q&amp;A de documentos, salida JSON, llamadas a herramientas, contexto largo. Mide calidad de respuesta, latencia, uso de memoria, fiabilidad de la plantilla y modos de fallo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una elecci\u00f3n de modelo pr\u00e1ctica suele reducirse a cinco comprobaciones:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Ajuste de tarea:<\/strong> Chat, c\u00f3digo, documentos, agentes, multimodal, edge o fine-tuning<\/li>\n\n\n\n<li><strong>Ajuste de memoria:<\/strong> Pesos, cach\u00e9 KV, sobrecarga del runtime y margen de seguridad<\/li>\n\n\n\n<li><strong>Ajuste de interfaz:<\/strong> Tokenizer, plantilla de chat, tokens de parada, esquema de herramientas y modo de razonamiento<\/li>\n\n\n\n<li><strong>Ajuste de runtime:<\/strong> \u00bfTu runtime soporta esta arquitectura, cuantizaci\u00f3n, longitud de contexto y modo de servicio bien?<\/li>\n\n\n\n<li><strong>Ajuste de licencia:<\/strong> \u00bfPuedes usarlo realmente donde planeas usarlo?<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Los leaderboards son \u00fatiles para el descubrimiento. No son un sustituto de tus propias evaluaciones. Tu carga de trabajo es el benchmark que importa.<\/p>\n\n\n\n<h2 id=\"privacidad\" class=\"wp-block-heading\">Privacidad y seguridad<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Los LLM locales mejoran la privacidad porque los prompts y las salidas pueden permanecer en tu hardware. Pero local no significa autom\u00e1ticamente seguro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Las amenazas incluyen: archivos de modelos maliciosos, carga de pesos basada en pickle, inyecci\u00f3n de prompts en documentos recuperados, abuso de llamadas a herramientas, fuga de secretos a trav\u00e9s de logs, telemetr\u00eda de aplicaciones de escritorio, extensiones o plugins de navegador, alucinaciones del modelo en entornos de alto riesgo, violaciones de licencias y contaminaci\u00f3n de datos durante el fine-tuning.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">L\u00ednea base de seguridad<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Carga con cuidado:<\/strong> Prefiere safetensors o GGUF de fuentes reputadas, evita archivos .bin no confiables y no habilites <code>trust_remote_code<\/code> casualmente<\/li>\n\n\n\n<li><strong>Ejecuta con l\u00edmites:<\/strong> Usa un usuario sin privilegios, contenedores o sandboxes para agentes, y acceso de red desactivado cuando la privacidad offline sea importante<\/li>\n\n\n\n<li><strong>Protege los secretos:<\/strong> Mant\u00e9n las credenciales fuera de los prompts e \u00edndices RAG, revisa la telemetr\u00eda de las aplicaciones de escritorio y valida las llamadas a herramientas antes de su ejecuci\u00f3n<\/li>\n\n\n\n<li><strong>Versiona lo que importa:<\/strong> Rastrea el modelo, el prompt, el adaptador, el runtime, la cuantizaci\u00f3n y el conjunto de evaluaciones, y registra lo suficiente para depurar sin crear un desastre de privacidad<\/li>\n<\/ol>\n\n\n\n<h2 id=\"benchmarks\" class=\"wp-block-heading\">Benchmarks que importan<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Haz benchmarks del stack que realmente vas a ejecutar. La puntuaci\u00f3n de un modelo en un leaderboard en BF16 no es tu realidad local en Q4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mide calidad, latencia, memoria, fiabilidad y ajuste operativo:<\/p>\n\n\n\n<ul class=\"wp-block-list\" class=\"wp-block-list\">\n<li><strong>Calidad:<\/strong> Correcci\u00f3n en tus tareas reales, no solo en benchmarks gen\u00e9ricos<\/li>\n\n\n\n<li><strong>Latencia:<\/strong> Tiempo hasta el primer token, tokens por segundo de decodificaci\u00f3n y tiempo de extremo a extremo<\/li>\n\n\n\n<li><strong>Memoria:<\/strong> Memoria de pesos, crecimiento del cach\u00e9 KV, pico de VRAM y margen de maniobra bajo carga<\/li>\n\n\n\n<li><strong>Formato:<\/strong> Correcci\u00f3n de la plantilla de chat, \u00e9xito en JSON\/esquemas, fiabilidad de llamadas a herramientas y comportamiento de tokens de parada<\/li>\n\n\n\n<li><strong>Recuperaci\u00f3n:<\/strong> Fidelidad de las citas, fundamentaci\u00f3n de la respuesta, comportamiento ante evidencia faltante e impacto del reranker<\/li>\n\n\n\n<li><strong>Operaciones:<\/strong> Tiempo de arranque, comportamiento de calentamiento, recuperaci\u00f3n de fallos, registro, privacidad y seguimiento de versiones<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Crea un peque\u00f1o conjunto de evaluaciones con 30 a 100 prompts representativos. Incluye respuestas esperadas o criterios de puntuaci\u00f3n, mediciones de latencia y memoria, categor\u00edas de fallo, comprobaciones de fundamentaci\u00f3n espec\u00edficas para RAG, comprobaciones de cumplimiento de JSON y revisi\u00f3n humana para tareas ambiguas.<\/p>\n\n\n\n<h2 id=\"faq-ejecucion\" class=\"wp-block-heading\">Preguntas frecuentes<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfQu\u00e9 es la cuantizaci\u00f3n en LLM?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La cuantizaci\u00f3n reduce la precisi\u00f3n num\u00e9rica de los pesos del modelo para ahorrar memoria. Un modelo de 7B en FP16 ocupa ~14 GB, pero en Q4 ocupa ~3.5 GB. La cuantizaci\u00f3n agresiva (Q2-Q3) puede degradar la calidad en matem\u00e1ticas, c\u00f3digo y tareas estructuradas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfGGUF o safetensors?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">GGUF es el formato de llama.cpp y LM Studio, optimizado para inferencia local. Safetensors es el formato seguro de PyTorch\/Transformers, usado por vLLM y SGLang. Elige seg\u00fan tu runtime.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfCu\u00e1nta VRAM necesito para un modelo de 7B?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">En Q4, un modelo de 7B ocupa ~3.5 GB en pesos. Con contexto de 8K y sobrecarga del runtime, necesitas ~6-8 GB de VRAM. Para 32K de contexto, considera 12-16 GB.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfEs seguro descargar modelos de internet?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Solo si usan formatos seguros como safetensors o GGUF de fuentes reputadas. Evita archivos .bin de PyTorch que pueden ejecutar c\u00f3digo arbitrario durante la carga.<\/p>\n\n\n<div class=\"acb-callout acb-callout--default\"><div class=\"acb-callout__content\"><strong>\u00bfQu\u00e9 sigue?<\/strong>\u00a0Ahora que entiendes c\u00f3mo ejecutar modelos localmente, el siguiente paso es aplicar esa infraestructura a casos de uso reales. En\u00a0<strong><a href=\"https:\/\/atlaszn.com\/blog\/?p=195\">Casos de Uso Avanzados: RAG, Agentes y Fine-tuning<\/a><\/strong>\u00a0cubrimos RAG, agentes locales, fine-tuning con LoRA\/QLoRA y multimodalidad. Para los fundamentos te\u00f3ricos, consulta\u00a0<strong><a href=\"https:\/\/atlaszn.com\/blog\/2026\/05\/22\/como-piensan-los-llm-fundamentos-de-inferencia\/\" data-type=\"link\" data-id=\"https:\/\/atlaszn.com\/blog\/2026\/05\/22\/como-piensan-los-llm-fundamentos-de-inferencia\/\">C\u00f3mo piensan los LLM: Fundamentos de Inferencia<\/a><\/strong>.<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Gu\u00eda completa sobre ejecuci\u00f3n local de LLM en 2026: runtimes (llama.cpp, vLLM, SGLang), cuantizaci\u00f3n (Q4-Q8), formatos de archivo (GGUF, safetensors), selecci\u00f3n de modelos y operaciones.<\/p>\n","protected":false},"author":1,"featured_media":166,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[50,6,24,37],"tags":[18,58,62,11,61,59,60],"class_list":["post-182","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fundamentos","category-ia-automatizacion","category-ia-local","category-software","tag-cuantizacion","tag-gguf","tag-hardware-ia","tag-llama-cpp","tag-privacidad","tag-runtimes","tag-vram"],"_links":{"self":[{"href":"https:\/\/atlaszn.com\/blog\/wp-json\/wp\/v2\/posts\/182","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atlaszn.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atlaszn.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atlaszn.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atlaszn.com\/blog\/wp-json\/wp\/v2\/comments?post=182"}],"version-history":[{"count":12,"href":"https:\/\/atlaszn.com\/blog\/wp-json\/wp\/v2\/posts\/182\/revisions"}],"predecessor-version":[{"id":266,"href":"https:\/\/atlaszn.com\/blog\/wp-json\/wp\/v2\/posts\/182\/revisions\/266"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/atlaszn.com\/blog\/wp-json\/wp\/v2\/media\/166"}],"wp:attachment":[{"href":"https:\/\/atlaszn.com\/blog\/wp-json\/wp\/v2\/media?parent=182"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atlaszn.com\/blog\/wp-json\/wp\/v2\/categories?post=182"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atlaszn.com\/blog\/wp-json\/wp\/v2\/tags?post=182"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}