iaen.es
Explicaciones sencillas · Octubre 2026Plain-language explainers · October 2026

IA en local: modelos, Ollama, embeddings y hardwareLocal AI: models, Ollama, embeddings and hardware

Qué significa ejecutar un modelo en tu propio ordenador, qué hace falta, a qué velocidad va, cómo se entrenan estos modelos y en qué se diferencian los de texto, imagen, vídeo y herramientas.What it means to run a model on your own computer, what you need, how fast it goes, how these models are trained, and how text, image, video and tool-using models differ.

01

Qué es "IA en local"What "local AI" means

Un modelo de IA es, al final, un archivo grande lleno de números. "En local" significa que ese archivo y el programa que lo ejecuta están en tu ordenador, no en el servidor de una empresa.An AI model is, in the end, a big file full of numbers. "Local" means that file, and the program that runs it, live on your computer instead of on a company's server.

Los modelos que se pueden descargar se llaman open-weight (pesos abiertos). Ojo: no siempre son "open source" en sentido estricto; cada uno trae su licencia y conviene leerla antes de usarlo en un producto.Models you can download are called open-weight. Careful: they are not always "open source" in the strict sense; each one has its own licence and it is worth reading before using it in a product.

En la nubeIn the cloud
Tu appYour app

envía el texto por internetsends the text over the internet

↓
Servidor del proveedorProvider's server

Modelo + GPUs enormes. Pagas por uso.Model + huge GPUs. You pay per use.

En localLocal
Tu ordenadorYour computer
Tu appYour app
↓ localhost
Modelo + tu GPUModel + your GPU

Los datos no salen. Sin coste por uso.Data never leaves. No per-use cost.

Por qué ejecutarlo en localWhy run it locally

  • Privacidad: tus documentos no salen de tu máquina.Privacy: your documents never leave your machine.
  • Coste: sin pagar por token, una vez comprado el hardware.Cost: no per-token fee once you own the hardware.
  • Control: versión fija, sin cambios sorpresa ni caídas ajenas, y funciona sin conexión.Control: a fixed version, no surprise changes or outages, and it works offline.

Qué te cuestaWhat it costs you

  • Hardware: la memoria de la GPU (o la memoria unificada de un Mac) decide qué modelos caben.Hardware: GPU memory (or a Mac's unified memory) decides which models fit.
  • Tamaño: los modelos que caben en casa suelen ser más pequeños que los mejores de pago.Size: models that fit at home are usually smaller than the best paid ones.
  • Mantenimiento: actualizar, elegir cuantización, configurar contexto: lo haces tú.Upkeep: updating, picking a quantisation, configuring context: that is on you.
02

Las piezas, de arriba abajoThe pieces, top to bottom

Cuando "usas un modelo local" intervienen cuatro capas. Cada una se apoya en la de debajo.When you "use a local model" four layers are involved. Each one rests on the one below.

1 · Tu aplicación1 · Your application
Un chat, un editor, un agente, tu propio código. Habla por HTTP.A chat, an editor, an agent, your own code. It talks over HTTP.
2 · Servidor local2 · Local server
Ollama, llama-server, LM Studio. Recibe peticiones y las pasa al motor.Ollama, llama-server, LM Studio. It receives requests and hands them to the engine.
3 · Motor de inferencia3 · Inference engine
llama.cpp, MLX, vLLM. Hace las matemáticas para producir cada token.llama.cpp, MLX, vLLM. It does the maths to produce each token.
4 · Modelo y hardware4 · Model and hardware
El archivo de pesos y la memoria rápida donde se carga.The weights file and the fast memory it gets loaded into.
Tu ordenadorYour computer
1 · Aplicación1 · Application

chat · editor · agentechat · editor · agent

↓ POST /v1/chat/completions
2 · Servidor local · puerto2 · Local server · port

Ollama :11434 · llama-server :8080

3 · Motor3 · Engine

llama.cpp · MLX

4 · Modelo (archivo GGUF)4 · Model (GGUF file)
PesosWeights

miles de millones de númerosbillions of numbers

TokenizadorTokenizer

texto ↔ númerostext ↔ numbers

PlantillaTemplate

formato del chatchat format

HardwareHardware

GPU (VRAM) · memoria unificada · RAM · CPUGPU (VRAM) · unified memory · RAM · CPU

La ventaja de una API comúnThe benefit of a common APICasi todos los servidores locales hablan el mismo formato que la API de OpenAI. Así, pasar de la nube a local suele reducirse a cambiar la dirección y el nombre del modelo en tu aplicación.Almost every local server speaks the same format as the OpenAI API. Moving from cloud to local often comes down to changing the address and the model name in your application.
curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-oss:20b",
       "messages":[{"role":"user","content":"HolaHello"}]}'
03

Ollama, llama.cpp, LM Studio, vLLM, MLX

Son las capas 2 y 3 de antes. Unas son el motor; otras son una comodidad que se pone encima del motor.These are layers 2 and 3 from before. Some are the engine; others are a convenience layer on top of an engine.

llama.cpp es el motor que empezó todo: un programa en C/C++ que corre casi en cualquier sitio (CPU, GPU, móvil) y definió el formato de archivo GGUF. Incluye llama-server, un servidor HTTP.llama.cpp is the engine that started it all: a C/C++ program that runs almost anywhere (CPU, GPU, phone) and defined the GGUF file format. It includes llama-server, an HTTP server.

Ollama envuelve ese motor para que todo sea un comando: descarga el modelo, lo carga y abre la API. Según una fuente, desde la versión 0.19 usa MLX en los Mac con chip Apple.Ollama wraps that engine so everything is one command: it downloads the model, loads it and opens the API. According to one source, since version 0.19 it uses MLX on Apple-silicon Macs.

Quién usa a quiénWho builds on whom
Ollama

CLI + API. Todo en un comando.CLI + API. Everything in one command.

llama.cpp

motorengine

LM Studio

Interfaz gráfica.Graphical interface.

llama.cpp
MLX
llama-server

El servidor que viene con llama.cpp.The server that ships with llama.cpp.

vLLM

Sistema aparte, para servir a muchos usuarios a la vez.A separate system, for serving many users at once.

MLX

Motor de Apple para sus chips.Apple's engine for its chips.

Qué esWhat it isFormatoFormatCuándo elegirloWhen to pick it
OllamaServidor + descarga de modelos en un comandoServer + model download in one commandGGUFEmpezar, prototipos, herramientas internas con pocos usuariosGetting started, prototypes, internal tools with few users
llama.cpp / llama-serverEl motor y su servidor, de bajo nivelThe engine and its low-level serverGGUFControl total, hardware raro, apps incrustadas, cuantización a medidaFull control, unusual hardware, embedded apps, custom quantisation
LM StudioAplicación con ventanas y buscador de modelosDesktop app with a model browserGGUF / MLXSi prefieres no usar terminal, o en Windows con GPU AMD/IntelIf you prefer no terminal, or on Windows with AMD/Intel GPUs
vLLMServidor de producción en PythonProduction server in PythonsafetensorsMuchos usuarios concurrentes en Linux con GPU de servidorMany concurrent users on Linux with server GPUs
MLXLibrería de Apple para sus chipsApple's library for its chipsMLXLa vía más rápida en Mac; también para afinar modelos allíFastest path on a Mac; also for fine-tuning there

Para un solo usuario, todos se sienten parecidos en el mismo hardware. La diferencia aparece con peticiones simultáneas: en una prueba citada, vLLM sirvió ≈ 793 tok/s frente a ≈ 41 de Ollama. Cifras de una única fuente.For a single user they all feel similar on the same hardware. The difference shows with simultaneous requests: in one cited test, vLLM served ≈ 793 tok/s against ≈ 41 for Ollama. Figures from a single source.

# Ollama: descargar y chatear# Ollama: download and chat
ollama pull qwen3-coder:30b
ollama run qwen3-coder:30b

# llama.cpp: servidor propio (-c contexto, -ngl capas en GPU, --jinja plantilla de chat)# llama.cpp: your own server (-c context, -ngl layers on GPU, --jinja chat template)
llama-server -m modelo.gguf -c 16384 -ngl 99 --port 8080 --jinja
04

Memoria y velocidad: las dos cuentasMemory and speed: the two calculations

Casi todas las dudas de hardware se resuelven con dos cuentas sencillas: ¿cabe? y ¿a qué velocidad va?Almost every hardware question comes down to two simple calculations: does it fit, and how fast will it run?

Cuenta 1 · ¿Cabe?Calculation 1 · Does it fit?

memoria ≈ parámetros × bytes por peso + caché de contextomemory ≈ parameters × bytes per weight + context cache

Un modelo "de 8B" tiene 8.000 millones de números (pesos). Guardado con 16 bits cada uno ocupa 2 bytes por peso. La cuantización reduce la precisión de cada número (a 8 o a unos 4,5 bits) para que ocupe menos, con una pérdida de calidad pequeña si no se exagera.An "8B" model has 8 billion numbers (weights). Stored with 16 bits each it takes 2 bytes per weight. Quantisation reduces each number's precision (to 8 or to about 4.5 bits) so it takes less space, with a small quality loss if you do not overdo it.

Ollama usa por defecto Q4_K_M (≈ 4,5 bits). Además del modelo hace falta la caché KV, la "memoria de trabajo" de la conversación: según una fuente, unos 2–6 GB con el contexto por defecto, y crece con contextos largos.Ollama defaults to Q4_K_M (≈ 4.5 bits). On top of the model you need the KV cache, the conversation's "working memory": according to one source about 2–6 GB at default context, growing with long contexts.

Modelo de 8B8B model

FP16 · 16 bit≈ 16 GB
Q8 · 8 bit≈ 8,5 GB
Q4_K_M · ~4,5 bit≈ 4,8 GB

Modelo de 32B32B model

FP16≈ 64 GB
Q8≈ 34 GB
Q4_K_M≈ 19 GB

Modelo de 70B70B model

FP16≈ 140 GB
Q8≈ 74 GB
Q4_K_M≈ 42 GB

Tamaños orientativos calculados a partir de los bits por peso; las fuentes dan ≈ 20 GB para un 32B en Q4 y ≈ 43 GB para un 70B en Q4.Indicative sizes computed from bits per weight; the sources give ≈ 20 GB for a 32B at Q4 and ≈ 43 GB for a 70B at Q4.

Cuenta 2 · ¿A qué velocidad?Calculation 2 · How fast?

tokens/s (máximo) ≈ ancho de banda de memoria ÷ GB que se leen por tokentokens/s (ceiling) ≈ memory bandwidth ÷ GB read per token

Para escribir cada palabra (token), el motor tiene que leer todos los pesos activos desde la memoria. Por eso, al generar, manda la velocidad de la memoria (ancho de banda), no tanto la potencia de cálculo. Es un techo teórico: en la práctica se llega a una parte.To write each word (token), the engine must read all the active weights from memory. So when generating, memory speed (bandwidth) matters more than raw compute. It is a theoretical ceiling: in practice you get a fraction.

Un token son unas tres cuartas partes de una palabra. A 30 tok/s generas más rápido de lo que se lee.A token is roughly three quarters of a word. At 30 tok/s the model writes faster than you can read.

CasoCaseCuentaMathsMedidoMeasured
RTX 5090 · 32B Q41.792 ÷ 19 ≈ 9457–59
Mac M4 Max · 70B Q4546 ÷ 43 ≈ 138–15
Strix Halo · 70B Q4212 ÷ 43 ≈ 53–5

Ancho de banda en GB/s. Los "medidos" proceden de pruebas de terceros con distintos programas y cuantizaciones: sirven como orden de magnitud.Bandwidth in GB/s. The "measured" figures come from third-party tests with different programs and quantisations: use them as an order of magnitude.

Por qué algunos modelos grandes van rápido: denso frente a MoEWhy some big models run fast: dense versus MoE

Un modelo denso usa todos sus pesos en cada token. Un modelo MoE (mezcla de expertos) está dividido en "expertos" y un enrutador elige solo unos pocos para cada token. El nombre 30B-A3B significa 30.000 M de parámetros en total y 3.000 M activos por token.A dense model uses all its weights on every token. A MoE (mixture of experts) model is split into "experts" and a router picks only a few for each token. The name 30B-A3B means 30 billion parameters in total and 3 billion active per token.

Consecuencia: ocupa memoria como uno de 30B, pero genera con la rapidez de uno de 3B. En una RTX 5090, un MoE 30B-A3B midió 234 tok/s frente a 60–90 de un denso de 30B.Consequence: it takes memory like a 30B model but generates about as fast as a 3B one. On an RTX 5090 a 30B-A3B MoE measured 234 tok/s against 60–90 for a dense 30B.

MoE 30B-A3B: 8 expertos de ejemploMoE 30B-A3B: 8 example experts
EnrutadorRouter

elige 2picks 2

1
2
3
4
5
6
7
8

Naranja = expertos que se leen en este token. Todos ocupan memoria; solo los activos cuestan tiempo.Orange = experts read for this token. All of them take memory; only the active ones cost time.

Dos fases: leer tu mensaje y escribir la respuestaTwo phases: reading your message and writing the answer

Prefill

Leer tu prompt.Reading your prompt. Se procesa todo a la vez; manda el cálculo. Miles de tokens por segundo (≈ 14.000 en una RTX 5090 con un 7B).Everything is processed at once; compute dominates. Thousands of tokens per second (≈ 14,000 on an RTX 5090 with a 7B).

Decode

Escribir la respuesta.Writing the answer. Token a token; manda el ancho de banda. Es lo que mides en tok/s. Y baja con contextos largos: un gpt-oss 120B pasó de 60,6 a 40,6 tok/s con 32K de contexto.Token by token; bandwidth dominates. It is what you measure in tok/s. And it drops with long contexts: a gpt-oss 120B went from 60.6 to 40.6 tok/s at 32K context.

Umbrales de uso (según una fuente)Usability thresholds (according to one source)Más de unos 30 tok/s se siente fluido en un chat. Entre 8 y 30 sirve para trabajo por lotes o tareas que puedes dejar corriendo. Por debajo de 8 es poco práctico.Above roughly 30 tok/s feels fluid in a chat. Between 8 and 30 suits batch work or tasks you can leave running. Below 8 is impractical.
05

Hardware

Lo que importa es, por este orden: cuánta memoria rápida tienes (decide qué cabe) y cuánto ancho de banda tiene (decide la velocidad).What matters, in this order: how much fast memory you have (decides what fits) and how much bandwidth it has (decides speed).

EquipoMachineMemoriaMemoryAncho de bandaBandwidthPrecio orient. (abr 2026)Approx. price (Apr 2026)Qué mueve bienWhat it handles well
RTX 4090 (segunda manoused)24 GB1.008 GB/s1.500–2.200 $ (solo GPUGPU only)Modelos de ~30B en Q4; el mejor valor si 24 GB bastan~30B models at Q4; best value if 24 GB is enough
RTX 509032 GB1.792 GB/s3.500–4.800 $ (solo GPUGPU only)Densos de ~30B a 60–90 tok/s; MoE a más de 200Dense ~30B at 60–90 tok/s; MoE above 200
RTX PRO 600096 GB1,8 TB/s8.000–9.200 $ (solo GPUGPU only)Un 70B en Q4 con mucho margenA 70B at Q4 with plenty of headroom
2 × RTX 509064 GBlimitado por PCIelimited by PCIe9.000–12.000 $ (equiposystem)Cabe un 70B, pero no más rápido que un Mac; mejor para 30–40BA 70B fits, but no faster than a Mac; best for 30–40B
Mac Studio M4 Max128 GB unificadaunified546 GB/s≈ 3.500 $Un 70B en Q4 a 8–15 tok/sA 70B at Q4 at 8–15 tok/s
Mac Studio M3 Ultra256 GB unificadaunified819 GB/s≈ 6.000 $Modelos enormes (405B en Q4)Huge models (405B at Q4)
AMD Strix Halo128 GB≈ 212 GB/s≈ 2.000 $ (completocomplete)Barato para MoE grandes; los densos de 70B van a 3–5 tok/sCheap for big MoE; dense 70B runs at 3–5 tok/s
NVIDIA DGX Spark128 GB273 GB/s≈ 4.700 $MoE grandes (gpt-oss 120B ≈ 60 tok/s); lento con densos grandesBig MoE (gpt-oss 120B ≈ 60 tok/s); slow with big dense models

Precios de una fuente de abril 2026; cámbialos por los actuales. Sin GPU potente también se puede: llama.cpp corre en CPU, solo que mucho más lento y con modelos pequeños.Prices from an April 2026 source; replace with current ones. You can also run without a strong GPU: llama.cpp runs on CPU, just much slower and with small models.

Velocidad medida de generación (tokens por segundo)Measured generation speed (tokens per second)

Cada grupo es un tamaño de modelo; compara dentro del grupo. Mezcla pruebas de terceros con distintos programas y cuantizaciones, algunas con rangos: úsalo como orden de magnitud.Each group is one model size; compare within a group. It mixes third-party tests with different programs and quantisations, some as ranges: use it as an order of magnitude.

Modelo pequeño (~8B)Small model (~8B)

RTX 5090 · Qwen3 8B145–185
RTX 5090 · Llama 3.1 8B150
DGX Spark · Llama 3.1 8B38

MoE mediano (gpt-oss 20B, 30B-A3B)Medium MoE (gpt-oss 20B, 30B-A3B)

RTX 5090 · 30B-A3B234
RTX 5090 · gpt-oss 20B205
DGX Spark · gpt-oss 20B50–61

Denso de ~27–32BDense ~27–32B

M5 Max · Qwen3.8 27B (MLX)65–69
RTX 5090 · Qwen3.8 27B59
RTX 5090 · QwQ 32B57
RTX 5090 · Gemma 3 27B47
DGX Spark · Gemma 3 27B11

Denso de 70BDense 70B

2 × RTX 5090≈ 27
Mac M4 Max8–15
DGX Spark4,4
Strix Halo3–5

MoE grande (gpt-oss 120B)Big MoE (gpt-oss 120B)

DGX Spark · contexto cortoshort context60,6
DGX Spark · 32K contextocontext40,6
06

Qué modelos populares caben en cada memoriaWhich popular models fit in each memory size

Lista según las etiquetas de Ollama a octubre de 2026 en una fuente de terceros. Los nombres y versiones cambian a menudo: úsala como mapa, no como lista cerrada.A list based on Ollama tags as of October 2026 from a third-party source. Names and versions change often: use it as a map, not a closed list.

8 GB
Pequeños y rápidosSmall and quick
Qwen 3.5 9B herramientastoolsLlama 3.1 8Bbonsai-2 9B visión + herramientas, 3,2 GBvision + tools, 3.2 GBQwen2.5-Coder 7B
16 GB
El punto de entrada cómodoThe comfortable entry point
gpt-oss 20B MoE · 14 GBQwen2.5-Coder 14BDevstral 24B código, 14 GBcode, 14 GBQwen3.6 35B-A3B con parte en CPUwith part on CPU
24 GB
La zona dulce de una GPU de gama altaThe sweet spot of a high-end GPU
Qwen3-Coder 30B MoE · 19 GBQwen 3.6 / 3.8 27B texto + imagentext + imageGemma 4 26B / 31B visión + audiovision + audioDeepSeek-R1 32B razonamientoreasoningGLM-4.7 Flash
32 GB
Lo mismo con más contexto, o cuantización mayorThe same with more context, or a higher quantisation
Nemotron 3.5 Bolt 74B-A9B visión, cuantizado fuertevision, heavily quantisedNemotron 3.5 Lightning 30B 1M de contexto1M context
64+ GB
Densos de 70B y MoE grandes70B dense and big MoE
Llama 3.3 70B 43 GBgpt-oss 120B MoE · ≈ 67–71 GB
96–128 GB
Mac o equipo de memoria unificadaMac or unified-memory machine
Nemotron 3.5 Super 120B-A12B 80–90 GBQwen3.8 Flash-Next 125B (MLX) ≈ 105 GB
256 GB
Estación de trabajo de gama muy altaVery high-end workstation
Llama 3.1 405B Q4 ≈ 235 GB

Algunas etiquetas (Mistral Large 4, GLM-5.3, Kimi K3…) solo existen como servicio en la nube y no se pueden ejecutar en local. Según la fuente, Qwen3-Coder 30B es el mejor equilibrio calidad/memoria para una GPU de 24–32 GB.Some tags (Mistral Large 4, GLM-5.3, Kimi K3…) exist only as cloud services and cannot be run locally. According to the source, Qwen3-Coder 30B is the best quality-per-memory balance for a 24–32 GB GPU.

Receta rápidaQuick recipeCon 16 GB, empieza por gpt-oss:20b. Con 24 GB, qwen3-coder:30b para código o un 27B para uso general. Si necesitas leer imágenes, elige uno de la lista marcado con visión. Y si el modelo no cabe entero en la memoria de la GPU, parte se descarga a la RAM y la velocidad cae en picado.With 16 GB, start with gpt-oss:20b. With 24 GB, qwen3-coder:30b for code or a 27B for general use. If you need to read images, pick one in the list marked with vision. And if the model does not fit entirely in GPU memory, part of it spills to RAM and speed collapses.
07

Embeddings

Un modelo de embeddings no escribe texto: convierte un texto en una lista de números (un vector) que representa su significado.An embedding model does not write text: it turns a text into a list of numbers (a vector) that represents its meaning.

Textos con significado parecido dan vectores cercanos, aunque no compartan palabras. Así se puede buscar "por significado" y no solo por palabras exactas. Cuanto más cerca están dos vectores, más se parecen.Texts with similar meaning give nearby vectors, even if they share no words. That lets you search "by meaning" and not just exact words. The closer two vectors are, the more alike they are.

Usos: búsqueda semántica, RAG, encontrar duplicados, clasificar y recomendar (por ejemplo, "cromos parecidos a este").Uses: semantic search, RAG, finding duplicates, classifying and recommending (for example, "cards similar to this one").

gatocat perrodog cachorropuppy cochecar camióntruck motobike pizzapizza pastapasta ★ "mascota pequeña"★ "small pet"
Mapa simplificado en 2 dimensiones (un vector real tiene cientos). La pregunta cae junto a "perro" y "cachorro".Simplified 2-D map (a real vector has hundreds of dimensions). The question lands next to "dog" and "puppy".

Cómo se usa en RAG (preguntar a tus documentos)How it is used in RAG (asking your documents)

01TrocearChunkPartir los documentos en trozos de 500–1.000 tokens, con solape del 10–20 %.Split documents into 500–1,000-token pieces with 10–20% overlap.
02VectorizarEmbedPasar cada trozo por el modelo de embeddings.Run each chunk through the embedding model.
03GuardarStoreGuardar los vectores en una base de datos.Save the vectors in a database.
04BuscarRetrieveVectorizar la pregunta y traer los trozos más cercanos.Embed the question and fetch the nearest chunks.
05RedactarGenerateEl modelo de chat contesta usando esos trozos como contexto.The chat model answers using those chunks as context.
06CitarCiteMostrar de qué trozos salió la respuesta.Show which chunks the answer came from.

Modelos de embeddings disponibles en OllamaEmbedding models available in Ollama

ModeloModelDim.Dim.TamañoSizeNotasNotes
nomic-embed-text768274 MBpunto de partida; 8.192 tokensstarting point; 8,192 tokens
EmbeddingGemma768622 MB2.048 tokens
mxbai-embed-large1.024670 MB512 tokens
bge-m31.0241,2 GBmás de 100 idiomas100+ languages
Qwen3-Embedding 0.6B1.0241,2 GBel más fuerte de la lista; 32.000 tokensstrongest on the list; 32,000 tokens

Reglas que evitan problemasRules that save trouble

  • No hacen falta GPU: corren bien en CPU; la GPU solo acelera indexar mucho texto.No GPU needed: they run fine on CPU; a GPU only speeds up indexing lots of text.
  • Mismo modelo para guardar y para preguntar: los vectores de modelos distintos no son comparables.Same model to store and to query: vectors from different models are not comparable.
  • Si cambias de modelo, hay que volver a vectorizar todo.If you change model, you must re-embed everything.
  • Los trozos deben caber en el límite del modelo: lo que pase se ignora sin avisar.Chunks must fit the model's limit: anything beyond it is silently ignored.
# Vectorizar un texto con Ollama# Embed a text with Ollama
ollama pull nomic-embed-text
curl http://localhost:11434/api/embed \
  -d '{"model":"nomic-embed-text","input":"mascota pequeñasmall pet"}'
08

Cómo se entrenan estos modelosHow these models are trained

Un modelo útil no sale de un solo entrenamiento: es una cadena de etapas. Cada etapa le añade algo distinto y solo algunas están al alcance de una persona.A useful model does not come out of a single training run: it is a chain of stages. Each stage adds something different and only some are within reach of an individual.

  1. 1Gran laboratorioBig lab

    PreentrenamientoPre-training

    Se enseña al modelo a adivinar la siguiente palabra (token) en cantidades enormes de texto, código e imágenes. Resultado: un modelo base. Sabe completar textos, pero no obedece instrucciones. Requiere clústeres de miles de GPUs durante semanas o meses (orden de magnitud general, no de las fuentes de esta guía).The model is taught to guess the next word (token) over enormous amounts of text, code and images. Result: a base model. It can continue texts but does not follow instructions. It takes clusters of thousands of GPUs for weeks or months (a general order of magnitude, not from this guide's sources).

  2. 2Gran laboratorioBig lab

    Ajuste con ejemplos (SFT)Instruction tuning (SFT)

    Se le muestran miles de ejemplos "pregunta → buena respuesta" en formato de chat. Resultado: un modelo instruct o de chat que entiende turnos y sigue instrucciones.It is shown thousands of "question → good answer" examples in chat format. Result: an instruct or chat model that understands turns and follows instructions.

  3. 3Gran laboratorioBig lab

    Preferencias y refuerzoPreferences and reinforcement

    Se premian las respuestas mejores, según valoraciones humanas o automáticas (RLHF, DPO). En los modelos de razonamiento se premia también acertar problemas con respuesta comprobable (matemáticas, tests de código), y así aprenden a "pensar" antes de responder.Better answers are rewarded, based on human or automatic ratings (RLHF, DPO). For reasoning models, solving problems with checkable answers (maths, code tests) is rewarded too, so they learn to "think" before answering.

  4. 4Gran laboratorioBig lab

    Entrenamiento con herramientasTool-use training

    Se le enseña con ejemplos a responder con una llamada estructurada (nombre de herramienta + argumentos) cuando hace falta. Es lo que separa un modelo que solo charla de uno que puede usar herramientas (sección 10).It is taught, with examples, to reply with a structured call (tool name + arguments) when needed. This is what separates a model that only chats from one that can use tools (section 10).

  5. 5Gran laboratorioBig lab

    DestilaciónDistillation

    Un modelo pequeño aprende imitando las respuestas de uno grande. Así se obtienen versiones que caben en casa; por ejemplo, deepseek-r1:32b es una versión destilada.A small model learns by imitating a large one's answers. That is how versions that fit at home are made; for example, deepseek-r1:32b is a distilled version.

  6. 6Tú o la comunidadYou or the community

    Cuantización y empaquetadoQuantisation and packaging

    Se reduce la precisión de los pesos (sección 04) y se guardan en un archivo como GGUF. Es lo que realmente descargas.Weight precision is reduced (section 04) and saved into a file such as GGUF. It is what you actually download.

  7. 7TúYou

    Afinado propio con LoRAYour own fine-tuning with LoRA

    En vez de reentrenar todos los pesos, se congela el modelo y se entrena un adaptador pequeño (LoRA) con tus ejemplos. Sirve para estilo, formato o un dominio concreto. En modelos de imagen, una fuente indica 12–16 GB de VRAM mínimos y 30–90 minutos en una RTX 4090. Para texto, QLoRA permite afinar modelos de unos 7–14B en GPUs de 16–24 GB (orden de magnitud general).Instead of retraining all weights, the model is frozen and a small adapter (LoRA) is trained on your examples. It suits style, format or a specific domain. For image models, one source gives 12–16 GB of VRAM minimum and 30–90 minutes on an RTX 4090. For text, QLoRA lets you tune ~7–14B models on 16–24 GB GPUs (a general order of magnitude).

¿Afinar o usar RAG?Fine-tune or use RAG?Para que el modelo conozca datos (documentos, notas, cambiantes) usa RAG. Para que se comporte de cierta forma (tono, formato, tarea repetitiva) considera afinar. Muchas veces basta un buen prompt y RAG.To make the model know data (documents, notes, things that change) use RAG. To make it behave a certain way (tone, format, a repetitive task) consider fine-tuning. A good prompt plus RAG is often enough.
09

Tipos de modelo: qué entra y qué saleTypes of model: what goes in and what comes out

La pregunta clave para distinguir un modelo es siempre la misma: ¿qué recibe y qué produce? Un modelo que entiende imágenes no tiene por qué saber dibujarlas.The key question to tell models apart is always the same: what does it take in and what does it produce? A model that understands images does not necessarily know how to draw them.

EntraIn

TextoText

→
LLM

Modelo de lenguajeLanguage model

→
SaleOut

TextoText

Texto → texto.Text → text. Chatea, escribe, programa, razona. Ejemplos: gpt-oss, Qwen, Llama, Devstral. Va palabra a palabra: cada token nuevo se añade y vuelve a entrar.Chats, writes, codes, reasons. Examples: gpt-oss, Qwen, Llama, Devstral. It goes word by word: each new token is appended and fed back in.

EntraIn

Imagen + textoImage + text

→
VLM

Visión-lenguajeVision-language

→
SaleOut

TextoText

Imagen + texto → texto.Image + text → text. "Interpreta" imágenes: describe una captura, lee un gráfico, localiza un error en una pantalla. Ejemplos de la lista: Gemma 4, Qwen 3.8, Nemotron Bolt. No genera imágenes."Interprets" images: describes a screenshot, reads a chart, spots an error on a screen. Examples from the list: Gemma 4, Qwen 3.8, Nemotron Bolt. It does not generate images.

EntraIn

AudioAudio

⇄
STT / TTS

VozSpeech

⇄
SaleOut

TextoText

Voz ⇄ texto.Speech ⇄ text. Transcribir (voz a texto) o hablar (texto a voz). Algunos modelos de texto ya aceptan audio de entrada, como Gemma 4 según la fuente.Transcribing (speech to text) or speaking (text to speech). Some text models already accept audio input, like Gemma 4 according to the source.

EntraIn

Texto (± imagen)Text (± image)

→
DifusiónDiffusion

Generador de imagenImage generator

→
SaleOut

ImagenImage

Texto → imagen.Text → image. Ejemplos: FLUX, Stable Diffusion 3.5, SDXL. No escribe palabra a palabra: parte de ruido y lo limpia en pasos guiado por tu texto (ver abajo).Examples: FLUX, Stable Diffusion 3.5, SDXL. It does not write word by word: it starts from noise and cleans it up in steps guided by your text (see below).

EntraIn

Texto o imagenText or image

→
VídeoVideo

Generador de vídeoVideo generator

→
SaleOut

ClipClip

Texto/imagen → vídeo.Text/image → video. Ejemplos: LTX-2, Wan 2.2, HunyuanVideo 1.5, CogVideoX. Es lo más exigente: genera muchos fotogramas coherentes entre sí.Examples: LTX-2, Wan 2.2, HunyuanVideo 1.5, CogVideoX. The most demanding: it generates many frames that must stay consistent with each other.

EntraIn

TextoText

→
Embedding

CodificadorEncoder

→
SaleOut

VectorVector

Texto → números.Text → numbers. No genera contenido: sirve para buscar y comparar (sección 07).It generates no content: it is for searching and comparing (section 07).

Dos formas de generar: palabra a palabra o desde el ruidoTwo ways of generating: word by word or from noise

Modelo de lenguajeLanguage model

Cada paso añade un token y el conjunto vuelve a entrar:Each step adds one token and the whole thing goes back in:

Elgatocomepescado.

Muchos pasos pequeños, uno por palabra. Por eso importa el ancho de banda de memoria.Many small steps, one per word. That is why memory bandwidth matters.

Modelo de difusiónDiffusion model
ruidonoise
→
paso 1step 1
→
paso 2step 2
→
imagenimage

Cada paso reduce un poco el ruido, guiado por tu texto, hasta que aparece la imagen. Suelen ser 20–50 pasos sobre toda la imagen.Each step removes a little noise, guided by your text, until the image appears. Typically 20–50 steps over the whole image.

Qué hardware piden los de imagen y vídeoWhat image and video models ask of your hardware

ModeloModelVRAMResultadoOutput
SDXL8 GBimagen 1024 px en menos de 10 s (estimado)1024 px image in under 10 s (estimate)
SD 3.5 Medium (2,5B)8 GBimagenimage
SD 3.5 Large (8B)11 GB (FP8) · 18 GB (FP16)imagen 1024 px: ≈ 18 s en RTX 5090, 34 s en 4090, 50 s en 3090, 55 s en 5070 Ti1024 px image: ≈ 18 s on RTX 5090, 34 s on 4090, 50 s on 3090, 55 s on 5070 Ti
FLUX Dev8–16 GB (FP8/NF4) · ≈ 24 GB (FP16)imagenimage
CogVideoX12 GBclips de 6 s a 480p6 s clips at 480p
HunyuanVideo 1.5 (8,3B)14 GB (con descarga a RAMwith offloading)clips de 5–10 s a 720p5–10 s clips at 720p
Wan 2.224 GB +vídeovideo
LTX-2 (19B)24 GB (optimizado) · 32 GB (completo)hasta 20 s, 4K a 50 fps, con audio sincronizadoup to 20 s, 4K at 50 fps, with synchronised audio

La fuente no da tiempos por clip de vídeo; en general el vídeo tarda mucho más que una imagen. Para afinar modelos de imagen con LoRA conviene 24 GB. Un mismo documento da cifras de FLUX que no cuadran entre sí (≈ 24 GB en FP16 frente a 8–16 GB cuantizado): comprueba antes de comprar.The source gives no times per video clip; in general video takes far longer than an image. For LoRA training of image models 24 GB is recommended. The same document gives FLUX figures that do not quite agree (≈ 24 GB in FP16 against 8–16 GB quantised): check before buying.

10

Modelos de chat y modelos que usan herramientasChat models and tool-using models

Un modelo nunca ejecuta nada por sí mismo. Lo único que hace es escribir texto. Un modelo "con herramientas" está entrenado para escribir, cuando conviene, un texto con un formato exacto que tu programa interpreta como "ejecuta esto".A model never runs anything by itself. All it does is write text. A "tool-using" model is trained to write, when it makes sense, text in an exact format that your program interprets as "run this".

Capas de comportamiento, de dentro hacia fueraLayers of behaviour, from the inside out

BaseBase
Completa texto. Si le escribes una pregunta, puede continuarla con otra pregunta.Completes text. If you write a question, it may continue it with another question.
Chat / instruct
Entiende turnos (usuario, asistente) y contesta lo que se le pide. Aprendido con ejemplos y preferencias.Understands turns (user, assistant) and answers what is asked. Learned from examples and preferences.
Con herramientasWith tools
Además, puede responder con una llamada estructurada a una función que tú le has descrito.Besides that, it can answer with a structured call to a function you described to it.
RazonamientoReasoning
Se toma un tiempo para "pensar" antes de responder o de llamar a una herramienta. Es una capacidad que se suma, no un tipo aparte.Takes some time to "think" before answering or calling a tool. It is an added ability, not a separate kind.
Modelo con herramientasTool-using model

Sabe pedir una función con JSONKnows how to ask for a function using JSON

Modelo de chatChat model

Sabe seguir una conversaciónKnows how to follow a conversation

Modelo baseBase model

Sabe continuar textoKnows how to continue text

Cada capa contiene a la anterior y añade una destreza (etapas 2 a 4 de la sección 08).Each layer contains the previous one and adds a skill (stages 2 to 4 of section 08).

Cómo funciona una llamada a herramienta, paso a pasoHow a tool call works, step by step

Tu programa (el harness)Your program (the harness)
Herramientas realesReal tools

get_weather()
read_file()
run_tests()

BucleLoop

repite hasta que el modelo ya no pida nadarepeats until the model asks for nothing more

↕
Modelo (solo texto)Model (text only)

Lee mensajes + lista de herramientas. Escribe texto o una petición de herramienta.Reads messages + the tool list. Writes text or a tool request.

  1. Envías el mensaje del usuario y la lista de herramientas: nombre, descripción y parámetros de cada una.You send the user's message and the tool list: name, description and parameters of each.
  2. El modelo responde con texto o con una petición, p. ej. get_weather con {"location":"Tokio"}.The model replies with text or with a request, e.g. get_weather with {"location":"Tokyo"}.
  3. Tu programa ejecuta la función de verdad y obtiene un resultado. El modelo no ha tocado nada.Your program runs the function for real and gets a result. The model touched nothing.
  4. Devuelves el resultado al modelo como un mensaje de rol tool.You send the result back to the model as a message with the tool role.
  5. El modelo redacta la respuesta final con ese dato. Si necesita otra herramienta, el ciclo se repite.The model writes the final answer using that data. If it needs another tool, the cycle repeats.
// Lo que devuelve el modelo en el paso 2 (formato tipo OpenAI)// What the model returns in step 2 (OpenAI-style format)
{ "role": "assistant",
  "tool_calls": [ { "function": {
      "name": "get_weather",
      "arguments": { "location": "Tokyo" } } } ] }

Esto es lo que ocurre dentro de agentes como los de la guía anterior: el harness es tu programa, y las herramientas pueden venir de servidores MCP. En local, con llama-server hay que arrancarlo con --jinja para que use la plantilla de chat del modelo, que es la que sabe escribir las llamadas.This is what happens inside agents like those in the previous guide: the harness is your program, and the tools can come from MCP servers. Locally, llama-server must be started with --jinja so it uses the model's chat template, which is the one that knows how to write the calls.

Modelos locales que suelen manejar bien las herramientasLocal models that usually handle tools well

  • Qwen 3.6 27B (denso) y 35B-A3B: las opciones principales para una GPU de 24 GB.Qwen 3.6 27B (dense) and 35B-A3B: the top picks for a 24 GB GPU.
  • Gemma 4 26B-A4B: funciona, pero hay que desactivar el "pensar" o la salida de la herramienta acaba en el campo equivocado.Gemma 4 26B-A4B: works, but thinking must be switched off or the tool output ends up in the wrong field.
  • Qwen 3.5 9B para 8 GB; Llama 3.1 8B (≈ 89 % de acierto en una tabla de la fuente).Qwen 3.5 9B for 8 GB; Llama 3.1 8B (≈ 89% accuracy in one of the source's tables).
  • Llama 3.3 70B: la más precisa listada (94 %+), pero necesita ≈ 42 GB.Llama 3.3 70B: the most accurate listed (94%+), but needs ≈ 42 GB.

Fallos típicos, y qué hacerTypical failures, and what to do

  • Inventa una herramienta que no existe: comprueba el nombre antes de ejecutar.Invents a tool that does not exist: check the name before running.
  • Llama a herramientas sin necesidad (peor en modelos pequeños).Calls tools needlessly (worse in small models).
  • Se atasca repitiendo una llamada fallida: pon un máximo de pasos.Gets stuck repeating a failed call: set a maximum number of steps.
  • Parámetros mal: valida los argumentos y devuelve un error claro para que reintente.Wrong parameters: validate the arguments and return a clear error so it can retry.
  • Demasiadas herramientas: cada definición gasta contexto; deja pocas.Too many tools: each definition eats context; keep few.
  • Contexto mayor que la VRAM: parte pasa a la RAM y empeora velocidad y fiabilidad.Context larger than VRAM: part spills to RAM and both speed and reliability suffer.
11

Ejemplos completosWorked examples

Cinco montajes reales, de menos a más exigente. Son ilustrativos: ajusta modelos y tamaños a lo que tengas.Five realistic setups, from least to most demanding. They are illustrative: adjust models and sizes to what you have.

Portátil con 16 GBLaptop with 16 GB

Un chat privadoA private chat

ollama run gpt-oss:20b

Cabe en ≈ 16 GB y, al ser MoE, genera rápido para su tamaño. Útil para resumir, redactar o preguntar sobre textos sin enviarlos a ningún sitio. Sin GPU potente irá más lento: prueba antes de contar con él.It fits in ≈ 16 GB and, being MoE, generates fast for its size. Useful for summarising, drafting or asking about texts without sending them anywhere. Without a strong GPU it will be slower: try it before relying on it.

GPU de 24 GB24 GB GPU

Un asistente de código localA local coding assistant

  1. Descargas qwen3-coder:30b (≈ 19 GB, MoE, 256K de contexto).Pull qwen3-coder:30b (≈ 19 GB, MoE, 256K context).
  2. Tu editor o tu herramienta de agentes apunta a http://localhost:11434/v1, como si fuera una API de OpenAI.Your editor or agent tool points to http://localhost:11434/v1, as if it were an OpenAI API.
  3. Subes el contexto lo justo: más contexto gasta VRAM y baja la velocidad.Raise the context only as much as needed: more context costs VRAM and lowers speed.

Una API compatible con OpenAI es lo que permite enchufar el modelo local en muchas herramientas, o detrás de tu propio gateway.An OpenAI-compatible API is what lets you plug the local model into many tools, or behind your own gateway.

Cualquier equipo con ≈ 16 GBAny machine with ≈ 16 GB

Preguntar a tus propios documentos (RAG)Asking your own documents (RAG)

  1. Troceas tus notas y las vectorizas con nomic-embed-text (274 MB, en CPU basta).Chunk your notes and embed them with nomic-embed-text (274 MB, CPU is enough).
  2. Guardas los vectores en una base de datos.Store the vectors in a database.
  3. Cuando preguntas, vectorizas la pregunta, traes 3–5 trozos y los pasas a un modelo de chat como contexto.When you ask, embed the question, fetch 3–5 chunks and pass them to a chat model as context.
  4. Muestras los trozos usados, para poder comprobar la respuesta.Show the chunks used, so the answer can be checked.
Tus documentosYour documents
Embeddings

nomic-embed-text

ChatChat

gpt-oss:20b

Dos modelos pequeños distintos: uno para buscar y otro para redactar.Two different small models: one to search and one to write.

GPU de 8–12 GB8–12 GB GPU

Generar imágenes con ComfyUIGenerating images with ComfyUI

ComfyUI es la interfaz más usada para modelos de difusión. Con 8 GB, SDXL a 1024 px tarda menos de 10 s (estimación de una fuente). Con 16 GB, SD 3.5 Large en FP8 o FLUX cuantizado. Si quieres un estilo propio, un LoRA de imagen necesita 12–16 GB como mínimo.ComfyUI is the most used interface for diffusion models. With 8 GB, SDXL at 1024 px takes under 10 s (one source's estimate). With 16 GB, SD 3.5 Large in FP8 or quantised FLUX. If you want your own style, an image LoRA needs 12–16 GB at minimum.

GPU de 24 GB24 GB GPU

Un agente con herramientas, todo localA tool-using agent, fully local

  1. Modelo: Qwen 3.6 27B (denso) o 35B-A3B.Model: Qwen 3.6 27B (dense) or 35B-A3B.
  2. Tu programa define 3–5 herramientas (leer fichero, buscar, ejecutar tests) y el bucle.Your program defines 3–5 tools (read file, search, run tests) and the loop.
  3. Pones un máximo de pasos, validas nombres y argumentos y no cuantizas la caché KV a 4 bits (reduce la precisión de las llamadas).Set a maximum number of steps, validate names and arguments, and do not quantise the KV cache to 4 bits (it reduces call accuracy).
  4. Para tareas delicadas, deja que un modelo mayor (en la nube o 70B) planifique y el local ejecute lo mecánico.For delicate tasks, let a bigger model (cloud or 70B) plan and the local one do the mechanical work.
12

GlosarioGlossary

Token
Trozo de texto (≈ ¾ de palabra) que el modelo lee y escribe. Todo se mide en tokens.A piece of text (≈ ¾ of a word) the model reads and writes. Everything is measured in tokens.
ContextoContext
La cantidad de tokens que el modelo puede tener delante a la vez (p. ej. 128K, 256K).The number of tokens the model can hold in view at once (e.g. 128K, 256K).
Pesos / parámetrosWeights / parameters
Los números aprendidos que forman el modelo. "7B" = 7.000 millones.The learned numbers that make up the model. "7B" = 7 billion.
GGUF
Formato de archivo de llama.cpp: pesos + tokenizador + plantilla en un solo archivo.llama.cpp's file format: weights + tokenizer + template in one file.
safetensors
Otro formato de pesos, el habitual para vLLM y herramientas de entrenamiento.Another weights format, usual for vLLM and training tools.
CuantizaciónQuantisation
Guardar los pesos con menos bits para que ocupen menos. Q4_K_M ≈ 4,5 bits.Storing weights with fewer bits so they take less space. Q4_K_M ≈ 4.5 bits.
VRAM
Memoria de la GPU. En un Mac, la memoria unificada hace el mismo papel.GPU memory. On a Mac, unified memory plays the same role.
Caché KVKV cache
Memoria de trabajo de la conversación. Crece con el contexto.The conversation's working memory. It grows with context.
Denso / MoEDense / MoE
Denso: usa todos los pesos por token. MoE: solo unos pocos "expertos".Dense: uses all weights per token. MoE: only a few "experts".
Prefill / decode
Leer el prompt (rápido, cálculo) y escribir la respuesta (más lento, ancho de banda).Reading the prompt (fast, compute) and writing the answer (slower, bandwidth).
tok/s
Tokens por segundo al generar. La medida de velocidad habitual.Tokens per second when generating. The usual speed measure.
Open-weight
Pesos descargables, con una licencia propia; no siempre equivale a "open source".Downloadable weights under their own licence; not always the same as "open source".
Embedding
Vector que representa el significado de un texto.A vector representing the meaning of a text.
RAG
Buscar trozos relevantes antes de responder y dárselos al modelo como contexto.Fetching relevant chunks before answering and giving them to the model as context.
LoRA
Afinado barato: se entrena un adaptador pequeño sobre un modelo congelado.Cheap fine-tuning: a small adapter is trained on top of a frozen model.
DestilaciónDistillation
Que un modelo pequeño aprenda imitando a uno grande.A small model learning by imitating a large one.
VLM
Modelo visión-lenguaje: lee imágenes y responde con texto.Vision-language model: reads images and answers with text.
DifusiónDiffusion
Técnica de los generadores de imagen y vídeo: limpiar ruido paso a paso.Technique behind image and video generators: cleaning noise step by step.
Tool calling
El modelo escribe una petición estructurada y tu programa ejecuta la función.The model writes a structured request and your program runs the function.
Plantilla de chatChat template
El formato exacto con que se convierten los mensajes en texto para el modelo. Cada modelo tiene la suya.The exact format used to turn messages into text for the model. Each model has its own.