Key takeaways
- Run vllm serve with a Hugging Face model name to start an OpenAI-compatible API server on your GPU.
- vLLM is an inference engine for running LLMs; an LLM is the model itself.
- Triton is a general model server that can use vLLM as a backend; LiteLLM is a gateway that routes to many providers.
- TensorRT-LLM compiles models for peak NVIDIA performance with more setup; vLLM is easier and broadly supported.
- vLLM has limited GGUF support; prefer Hugging Face weights or AWQ and GPTQ quantisation on GPUs.
To serve a model with vLLM, install it on a machine with a supported GPU and run vllm serve followed by a Hugging Face model name; vLLM downloads the model and starts an OpenAI-compatible API server that any OpenAI client can call by changing the base URL. vLLM is an inference engine, not a model. After fine-tuning models in FineTune Studio, choosing how to serve them is the next step, so this page covers setup and how serving works, and compares vLLM with LLMs, llama.cpp, Triton, LiteLLM and TensorRT-LLM, GGUF support, and VLMs.
How do I use vllm serve?
After installing vLLM, run vllm serve <model> with a Hugging Face model ID. It starts an HTTP server, by default on port 8000, exposing OpenAI-style endpoints for chat completions, completions and models.
Also asked as: how to vllm serve · how to setup vllm
pip install vllm
vllm serve Qwen/Qwen2.5-7B-Instruct --max-model-len 8192 --gpu-memory-utilization 0.9
Then call it with the OpenAI Python client by setting base_url="http://localhost:8000/v1". Useful options include --tensor-parallel-size for multiple GPUs, --quantization for supported formats, --api-key to require authentication, and --enable-lora to serve fine-tuned adapters. Check the documentation for options in your version. If the server fails to start with an out-of-memory error, reduce --max-model-len or choose a smaller or quantised model before buying bigger hardware.
How does vllm serve work?
vllm serve loads the model weights onto the GPU, allocates memory for the key-value cache using PagedAttention, and runs a scheduler that continuously batches incoming requests, so new requests join as others finish and the GPU stays busy.
Each request's tokens are processed in prefill, reading the prompt, and decode, generating tokens one by one, with responses streamed back over HTTP. Prefix caching reuses computation for shared prompt beginnings, such as system prompts. The OpenAI-compatible layer translates API requests into engine calls, which is why existing applications can switch to self-hosted models with minimal code changes.
How do I set up vLLM?
Use a Linux machine or container with a supported NVIDIA or AMD GPU and matching drivers, create a Python environment, install vLLM with pip or use the official Docker image, then start a server with a model that fits your GPU memory.
Setup checklist:
- Check GPU memory against model size and context length.
- Install drivers and the CUDA or ROCm version vLLM requires.
- Use the official Docker image to avoid dependency conflicts.
- Log in to Hugging Face for gated models.
- Start with a small model to verify the setup.
- Add authentication and a reverse proxy before exposing it.
Monitor GPU memory and throughput with vLLM's metrics endpoint.
What is the difference between vLLM and an LLM?
An LLM, large language model, is the trained neural network, such as Llama, Qwen or Mistral, defined by its architecture and weights. vLLM is software that runs LLMs efficiently, serving their predictions to applications.
Also asked as: difference between vllm and llm
Think of the LLM as the engine design and vLLM as the factory machinery that runs it at scale. The same LLM can be run with different inference engines, such as Hugging Face Transformers, vLLM, SGLang, llama.cpp or TensorRT-LLM, with different speed and memory trade-offs. The extra "v" in vLLM is part of the project name, not a type of model.
What is the difference between vLLM and llama.cpp?
vLLM targets GPU servers handling many concurrent users, using batching and memory management for high total throughput. llama.cpp targets efficient local inference of quantised GGUF models on CPUs, Macs and consumer GPUs, typically for one or a few users.
Use llama.cpp, or Ollama built on it, for laptops, desktops, edge devices and offline apps. Use vLLM for production APIs on GPU servers. llama.cpp's aggressive quantisation lets large models run on modest hardware; vLLM's strengths are throughput, OpenAI-compatible serving and multi-GPU scaling. Many teams prototype locally with Ollama and deploy with vLLM. Because both expose OpenAI-compatible APIs, application code can stay the same while the serving layer changes.
What is the difference between vLLM and Triton?
NVIDIA Triton Inference Server is a general-purpose model server supporting many frameworks, including TensorRT, PyTorch, ONNX and Python backends, with features for model versioning, ensembles and metrics. vLLM is specialised for LLM inference. Triton can even use vLLM as a backend.
Choose Triton when you serve many model types, such as vision, speech and language, under one platform with enterprise features. Choose vLLM directly for simpler, LLM-focused deployments. Triton adds configuration complexity but standardises operations across models; vLLM gives fast results for LLM serving with minimal setup.
What is the difference between vLLM and LiteLLM?
vLLM runs models on your hardware. LiteLLM is a Python SDK and proxy that provides one OpenAI-style interface to many providers and servers, such as OpenAI, Anthropic, Gemini, Bedrock and self-hosted vLLM, adding routing, fallbacks, budgets and logging.
They work together: deploy models with vLLM, then put LiteLLM in front to route traffic between your vLLM servers and external APIs, enforce rate limits and track costs per team. Multi-provider fallback, like the one in RAG.NextUpgrad, follows the same idea: if one provider fails, route to another, keeping the application running.
vLLM vs TensorRT-LLM: which is faster?
TensorRT-LLM, from NVIDIA, compiles models into optimised engines for NVIDIA GPUs and can deliver top performance, especially with FP8 and specific hardware. vLLM is easier to set up, supports more models quickly, and runs on NVIDIA and AMD GPUs with strong performance.
Also asked as: vllm vs tensorrt llm
Benchmarks vary by model, batch size, sequence lengths and hardware, and both projects improve rapidly. TensorRT-LLM suits teams willing to invest in build pipelines for maximum NVIDIA efficiency at scale; vLLM suits most teams wanting fast deployment and flexibility. Benchmark both on your workload before committing, measuring latency and throughput. Also count engineering time: a slightly slower engine your team can operate confidently may beat a faster one that is hard to maintain.
Can vLLM serve GGUF models?
vLLM has experimental support for loading GGUF files for some model architectures, but GGUF is designed for llama.cpp, and vLLM performs best with Hugging Face weights in safetensors format or GPU-oriented quantisation such as AWQ, GPTQ and FP8.
If you have a GGUF model, check vLLM's documentation for current support and limitations, such as needing the original tokenizer. For production GPU serving, prefer the original weights or GPU quantisation formats. For local use of GGUF files, llama.cpp, Ollama or LM Studio are more straightforward choices.
What is the difference between a VLM and an LLM?
An LLM, large language model, processes and generates text. A VLM, vision language model, also accepts images, and sometimes video, as input, combining a vision encoder with a language model to describe images, answer questions about them and read documents.
Also asked as: difference between vlm and llm
Examples of VLMs include multimodal versions of GPT, Claude, Gemini, Qwen-VL and LLaVA. They power document understanding, chart reading, visual question answering and UI agents. vLLM can serve many open VLMs too. For document AI, VLMs can read layouts that text-only pipelines miss, though dedicated OCR plus validation, as in DocuLens AI, remains important for exact extraction.




