Inicio / Artículos

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.

Editor: REACTAPP.TOP5 min de lectura1118 palabras

Fuentes: Serving LLMs, Hands-On — Ollama, vLLM & TGI

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.