Servicio práctico de LLM: Ollama, vLLM y TGI
La capa de servicio que convierte los archivos del modelo en una API de LLM: Ollama para uso local, vLLM y Hugging Face TGI para GPUs, y lo que carecen los transformers tradicionales.
Motores de servicio: la capa detrás de “simplemente llama al modelo”
Hasta ahora has estado llamando a modelos, generalmente a través de Ollama. Esta guía trata sobre el servidor de inferencia: carga los pesos, gestiona la memoria de la GPU, agrupa las tareas y transmite tokens para que muchos clientes puedan acceder a una misma API. Tres nombres que escucharás con frecuencia son: Ollama, vLLM y TGI (Text Generation Inference).
Los experimentos con Ollama funcionan bien en la CPU de una laptop. vLLM y TGI requieren una GPU; Colab o Kaggle son opciones si no la tienes. Considéralo como un ejercicio práctico: ejecuta los bloques y realiza los ejercicios.
Por qué transformers puro no es un servidor
Cargar un modelo y llamar a .generate() funciona para una solicitud lenta. Bajo carga, el sistema falla: no hay procesamiento por lotes continuo, una planificación de memoria deficiente y un streaming multiusuario problemático. Los motores de servicio existen para convertir los “archivos de modelo” en una “API”.
Ollama: primero local
Instálalo, descárgalo, ejecútalo y accede a la API HTTP:
ollama pull llama3.2
ollama serve # usually already running; serves on http://localhost:11434
from openai import OpenAI # pip install openai
client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama") # key is ignored locally
resp = client.chat.completions.create(
model="llama3.2",
messages=[{"role": "user", "content": "Explain KV cache in one sentence."}],
)
print(resp.choices[0].message.content)
Úsalo para aprender prompts y crear aplicaciones sin necesidad de claves en la nube. Conoce sus limitaciones cuando necesites programación a escala de flota.
vLLM: servicio en GPU adecuado para procesamiento por lotes
En un entorno de ejecución GPU:
pip install vllm
vllm serve meta-llama/Llama-3.1-8B-Instruct # OpenAI-compatible server on :8000
Los puntos clave son los endpoints compatibles con OpenAI y el procesamiento por lotes continuo. Controla la memoria de la GPU y las opciones de contexto máximo.
TGI: la pila de servicio de Hugging Face
docker run --runtime nvidia --gpus all \
-v ~/.cache/huggingface:/root/.cache/huggingface \
-p 8000:8000 --ipc=host \
vllm/vllm-openai:latest \
--model meta-llama/Llama-3.1-8B-Instruct
TGI se centra en el servicio de modelos de Hugging Face en entornos de producción, con funciones de streaming y seguimiento. Compara la latencia y la complejidad operativa con vLLM para tus modelos.
Modelo mental lado a lado
client = OpenAI(base_url="http://localhost:8000/v1", api_key="dummy") # ← base_url changed
resp = client.chat.completions.create(
model="meta-llama/Llama-3.1-8B-Instruct", # ← model changed
messages=[{"role": "user", "content": "Explain KV cache in one sentence."}],
)
print(resp.choices[0].message.content)
- Ollama: iteración local y en la nube
- vLLM: tokens/segundo en NVIDIA con concurrencia
- TGI: servicio de producción centrado en HF
Es su turno
docker run --gpus all --shm-size 1g -p 8080:80 \
-v ~/.cache/huggingface:/data \
ghcr.io/huggingface/text-generation-inference:latest \
--model-id meta-llama/Llama-3.1-8B-Instruct
Pruebe cada servidor con el mismo prompt, anote el tiempo de respuesta y los tokens/segundo, y luego indique qué motor se adapta mejor a su próximo proyecto: demo en portátil, equipo interno con GPU o API multiinquilino.
Haga que el despliegue sea sencillo: utilice comandos de composición, pruebas de estado y un único lugar para rotar modelos. La simplicidad es lo que permite a las herramientas internas sobrevivir al contacto con los horarios reales de atención al cliente.
Haga que el despliegue sea sencillo: utilice comandos de composición, pruebas de estado y un único lugar para rotar modelos. La simplicidad es lo que permite a las herramientas internas sobrevivir al contacto con los horarios reales de atención al cliente.
Mantenga la implementación sencilla: utilice Compose, pruebas de salud y un único lugar para rotar modelos. La sencillez es la forma en que las herramientas internas sobreviven al contacto con los horarios reales de atención al cliente.
Mantenga la implementación sencilla: utilice Compose, pruebas de salud y un único lugar para rotar modelos. La sencillez es la forma en que las herramientas internas sobreviven al contacto con los horarios reales de atención al cliente.
Mantenga la implementación sencilla: utilice Compose, pruebas de salud y un único lugar para rotar modelos. La sencillez es la forma en que las herramientas internas sobreviven al contacto con los horarios reales de atención al cliente.
Mantenga la implementación sencilla: utilice Compose, pruebas de salud y un único lugar para rotar modelos. La sencillez es la forma en que las herramientas internas sobreviven al contacto con los horarios reales de atención al cliente.
Mantenga la implementación sencilla: utilice Compose, pruebas de salud y un único lugar para rotar modelos. La sencillez es la forma en que las herramientas internas sobreviven al contacto con los horarios reales de atención al cliente.
Mantenga la implementación sencilla: utilice Compose, pruebas de estado y un único lugar para rotar modelos. La sencillez es la forma en que las herramientas internas sobreviven al contacto con los horarios reales de atención al cliente.
Mantenga la implementación sencilla: utilice Compose, pruebas de estado y un único lugar para rotar modelos. La sencillez es la forma en que las herramientas internas sobreviven al contacto con los horarios reales de atención al cliente.
Mantenga la implementación sencilla: utilice Compose, pruebas de estado y un único lugar para rotar modelos. La sencillez es la forma en que las herramientas internas sobreviven al contacto con los horarios reales de atención al cliente.
Mantenga la implementación sencilla: utilice Compose, pruebas de estado y un único lugar para rotar modelos. La sencillez es la forma en que las herramientas internas sobreviven al contacto con los horarios reales de atención al cliente.
Mantenga la implementación sencilla: utilice Compose, pruebas de estado y un único lugar para rotar modelos. La sencillez es la forma en que las herramientas internas sobreviven al contacto con los horarios reales de atención al cliente.
Mantenga la implementación sencilla: utilice Compose, pruebas de salud y un único lugar para rotar modelos. La sencillez es la forma en que las herramientas internas sobreviven al contacto con los horarios reales de atención al cliente.
Mantenga la implementación sencilla: utilice Compose, pruebas de salud y un único lugar para rotar modelos. La sencillez es la forma en que las herramientas internas sobreviven al contacto con los horarios reales de atención al cliente.
Mantenga la implementación sencilla: utilice Compose, pruebas de salud y un único lugar para rotar modelos. La sencillez es la forma en que las herramientas internas sobreviven al contacto con los horarios reales de atención al cliente.
Mantenga la implementación sencilla: utilice Compose, pruebas de salud y un único lugar para rotar modelos. La sencillez es la forma en que las herramientas internas sobreviven al contacto con los horarios reales de atención al cliente.
Mantenga la implementación sencilla: utilice Compose, pruebas de salud y un único lugar para rotar modelos. La sencillez es la forma en que las herramientas internas sobreviven al contacto con los horarios reales de atención al cliente.
Mantenga la implementación sencilla: utilice Compose, pruebas de estado y un único lugar para rotar modelos. La sencillez es la forma en que las herramientas internas sobreviven al contacto con los horarios reales de atención al cliente.
Mantenga la implementación sencilla: utilice Compose, pruebas de estado y un único lugar para rotar modelos. La sencillez es la forma en que las herramientas internas sobreviven al contacto con los horarios reales de atención al cliente.
Mantenga la implementación sencilla: utilice Compose, pruebas de estado y un único lugar para rotar modelos. La sencillez es la forma en que las herramientas internas sobreviven al contacto con los horarios reales de atención al cliente.
Mantenga la implementación sencilla: utilice Compose, pruebas de estado y un único lugar para rotar modelos. La sencillez es la forma en que las herramientas internas sobreviven al contacto con los horarios reales de atención al cliente.
Mantenga la implementación sencilla: utilice Compose, pruebas de estado y un único lugar para rotar modelos. La sencillez es la forma en que las herramientas internas sobreviven al contacto con los horarios reales de atención al cliente.
Mantenga el despliegue sencillo: utilice Compose, pruebas de salud y un único lugar para rotar modelos. La simplicidad es la clave para que las herramientas internas sobrevivan al contacto con los horarios reales de atención al cliente.
Mantenga el despliegue sencillo: utilice Compose, pruebas de salud y un único lugar para rotar modelos. La simplicidad es la clave para que las herramientas internas sobrevivan al contacto con los horarios reales de atención al cliente.
Mantenga el despliegue sencillo: utilice Compose, pruebas de salud y un único lugar para rotar modelos. La simplicidad es la clave para que las herramientas internas sobrevivan al contacto con los horarios reales de atención al cliente.