Skip to content
BotServBotServ
vLLMAgente de IAAlto rendimientoBatch ProcessingOpenAI API

Ejecutar Agentes de IA con vLLM

Ejecutar agentes de IA con vLLM. Inference de alto rendimiento, batch processing, API compatible con OpenAI.

S

schutzgeist

4 min read
Ejecutar Agentes de IA con vLLM

Ejecutar agentes de IA con vLLM

Qué cubre este artículo sobre vLLM

  • Cómo ejecutar agentes de IA con vLLM.
  • Por qué vLLM es mejor para producción y muchas solicitudes paralelas.
  • Configuración, selección de modelos y API compatible con OpenAI.
  • Ejemplos prácticos para agentes de alto rendimiento.
  • Mejores prácticas para procesamiento por lotes y escalado.

Introducción: vLLM para agentes explicado de forma clara

vLLM es un servidor de inferencia de alto rendimiento para LLMs. Utiliza PagedAttention para una gestión eficiente de memoria y admite procesamiento por lotes para muchas solicitudes paralelas. Para agentes, esto significa respuestas más rápidas, más agentes en paralelo y mejor utilización de recursos.

Este artículo está dirigido a usuarios avanzados que quieren ejecutar agentes con vLLM. Encontrarás los fundamentos en vLLM y Ejecutar agentes de IA localmente.

¿Por qué necesito vLLM para agentes?

Imagina que tienes 10 agentes trabajando simultáneamente. Ollama procesa solicitudes secuencialmente, lentamente. vLLM agrupa solicitudes en lotes: todos los 10 agentes reciben respuestas al mismo tiempo. Para producción con muchos agentes, vLLM es la opción superior.

vLLM para agentes resumido

vLLM = Servidor LLM de alto rendimiento con PagedAttention y procesamiento por lotes. API compatible con OpenAI para frameworks de agentes. Para muchos agentes paralelos y producción.

La idea central es esta: más rápido, más agentes en paralelo, mejor utilización de GPU.

Para quién está dirigido este artículo

  • Equipos de producción que ejecutan muchos agentes en paralelo.
  • Especialistas en rendimiento que quieren optimizar el uso de GPU.
  • Equipos de escalado que ejecutan agentes para muchos usuarios.
  • Usuarios avanzados que utilizan vLLM para agentes.

Términos importantes

  • vLLM - Inferencia de alto rendimiento. Cuándo es útil: para producción.
  • PagedAttention - Optimización de memoria. Cuándo es útil: para eficiencia.
  • Procesamiento por lotes - Muchas solicitudes simultáneamente. Cuándo es útil: para agentes paralelos.
  • Ollama - Alternativa. Cuándo es útil: para configuración simple.
  • API de OpenAI - API estándar. Cuándo es útil: para frameworks.

Configuración

1. Instalar vLLM

pip install vllm

2. Iniciar el servidor

# Modelo único
python -m vllm.entrypoints.openai.api_server \
    --model meta-llama/Llama-3.1-8B-Instruct \
    --port 8000

# Con GPU
python -m vllm.entrypoints.openai.api_server \
    --model meta-llama/Llama-3.1-8B-Instruct \
    --tensor-parallel-size 2 \
    --port 8000

3. Conectar con framework de agentes

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8000/v1",
    api_key="not-needed"
)

# Bucle de agente (como en LM Studio)
response = client.chat.completions.create(
    model="meta-llama/Llama-3.1-8B-Instruct",
    messages=[{"role": "user", "content": "Task"}],
    tools=tools,
    tool_choice="auto"
)

Ejemplo práctico: Agentes paralelos

import asyncio
from openai import AsyncOpenAI

client = AsyncOpenAI(
    base_url="http://localhost:8000/v1",
    api_key="not-needed"
)

async def run_agent(agent_id, task):
    """Agente individual"""
    response = await client.chat.completions.create(
        model="meta-llama/Llama-3.1-8B-Instruct",
        messages=[{"role": "user", "content": task}],
        tools=tools,
        tool_choice="auto"
    )
    return response.choices[0].message

async def run_parallel_agents():
    """10 agentes en paralelo"""
    tasks = [f"Task {i}" for i in range(10)]
    agents = [run_agent(i, task) for i, task in enumerate(tasks)]
    results = await asyncio.gather(*agents)
    return results

# Todos los agentes se ejecutan en paralelo
results = asyncio.run(run_parallel_agents())

vLLM vs. Ollama

AspectovLLMOllama
Rendimiento⭐⭐⭐⭐⭐⭐⭐⭐
Lotes⭐⭐⭐⭐⭐⭐⭐
Configuración⭐⭐⭐⭐⭐⭐⭐⭐
GUI❌❌ (CLI)
Múltiples modelos⭐⭐⭐⭐⭐⭐⭐
Producción⭐⭐⭐⭐⭐⭐⭐⭐
Mejor paraMuchas solicitudes paralelasConfiguración simple

Consideraciones de seguridad

  • API sin autenticación: La API de OpenAI no está protegida. Usa firewall para acceso externo.
  • Memoria GPU: vLLM utiliza mucha memoria GPU. Se requiere monitoreo.
  • Seguridad del modelo: Los modelos pueden ejecutar inyección de prompts. Consulta Inyección de prompts.

Trampas comunes

  • Configuración más compleja: vLLM es más técnico que Ollama. Para configuración simple: Ollama.
  • Memoria GPU: vLLM requiere mucha VRAM para procesamiento por lotes. Dimensiona adecuadamente.
  • Formato de modelo: vLLM requiere formato HF, no GGUF. Diferentes modelos que Ollama.
  • Sin GUI: vLLM es solo CLI/API. Para GUI: LM Studio.
  • Sobredimensionado para configuraciones pequeñas: Para 1-2 agentes, Ollama es más simple.

Enlaces relacionados

Puntos clave:

  • vLLM = Inferencia de alto rendimiento con PagedAttention y procesamiento por lotes.
  • Mejor que Ollama para muchos agentes paralelos y producción.
  • API compatible con OpenAI para frameworks de agentes.
  • Configuración más compleja, pero mejor rendimiento.
  • Para 1-2 agentes: Ollama es más simple.

Preguntas frecuentes

¿Qué es vLLM?

Un servidor de inferencia de alto rendimiento para LLMs con PagedAttention y procesamiento por lotes. Para muchas solicitudes paralelas y producción.

¿vLLM u Ollama?

vLLM para producción y muchos agentes paralelos. Ollama para configuración simple y pocos agentes. vLLM es más rápido, Ollama es más simple.

¿Cuánto más rápido es vLLM?

2-10x más rápido para solicitudes paralelas gracias al procesamiento por lotes. Para solicitudes individuales, es similar a Ollama.

¿Qué modelos puedo usar?

Todos los modelos de HuggingFace en formato HF. llama3.1, qwen2.5, mistral, etc. Sin formato GGUF (eso es para Ollama/LM Studio).

¿Cuánta VRAM necesito?

Más que Ollama para procesamiento por lotes. llama3.1:8b: ~10 GB para una sola instancia, ~20 GB para lotes. Para muchos agentes paralelos: se requiere más VRAM.

¿Soporta vLLM tool-calling?

Sí, si el modelo lo soporta. La API compatible con OpenAI admite tool_calls como OpenAI.

¿Permanecen mis datos privados?

Sí, completamente. vLLM procesa todo localmente. Ningún dato se envía a servidores externos.

¿Cómo escalo vLLM?

Tensor-Parallel para múltiples GPUs, múltiples servidores para escalado horizontal. Kubernetes para orquestación. Para muchos agentes: vLLM es la mejor opción.

Fuentes y lecturas adicionales

Volver al blog
Share:

Entradas relacionadas