Scaling GenAI Applications with vLLM for High-Throughput LLM Serving

linkedin · Tech · 2025 · source Agentic: no · promotional bias: low · source-backed · extracted with prompt 0.5.6 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: LLM inference serving at LinkedIn scale

LinkedIn needed high-throughput, low-latency LLM serving for dozens of real-time and offline GenAI applications.

Constraints:

Architecture

LinkedIn adopted vLLM as the inference engine for more than 50 GenAI use cases. The serving stack evolved from offline low-QPS mode to tuned v0.7/v1 engines and then a modular OpenAI-compatible architecture that decouples LinkedIn's custom gRPC server from the vLLM engine client.

Diagram confidence: explicit (topology described by the source).

flowchart LR
  A["LinkedIn GenAI applications"] --> B["Custom gRPC server"]
  B --> C["OpenAI-compatible API adapter"]
  C --> D["vLLM engine client"]
  D --> E["vLLM engine"]
  E --> F["GPU serving hosts"]
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
LinkedIn GenAI applications Hiring Assistant, AI Job Search, search enhancements, recommendations, and other GenAI products. Custom gRPC server
Custom gRPC server LinkedIn serving layer that receives requests and maps them to OpenAI-compatible API calls. LinkedIn GenAI applications, OpenAI-compatible API adapter
OpenAI-compatible API adapter Decoupling layer that lets LinkedIn evolve server and engine components independently. Custom gRPC server, vLLM engine client
vLLM engine client Client layer forwarding mapped requests into the vLLM serving engine. OpenAI-compatible API adapter, vLLM engine
vLLM engine Inference engine providing PagedAttention, prefix caching, scheduling, and high-throughput serving. vLLM engine client, GPU serving hosts
GPU serving hosts Thousands of hosts running vLLM-backed inference across LinkedIn's platform. vLLM engine

Data flow

LinkedIn applications send requests to a custom gRPC serving layer, which maps requests into OpenAI-compatible API calls and forwards them to the vLLM engine. vLLM uses efficient memory management and prefix caching for online products such as Hiring Assistant and AI Job Search and for offline embedding/document-processing workloads.

3 supporting quotes
“our custom gRPC server receives incoming requests, maps them to OpenAI-compatible API requests, and forwards them to the vLLM engine client.”article, stated
“Leveraging vLLM allowed us to create robust infrastructure that supports both online (real-time interactive experiences) and offline (large-scale data processing) GenAI applications.”article, stated
“vLLM reuses computation for the shared portion of the input instead of recalculating it for every request.”article, stated

Why this architecture

vLLM fits LinkedIn's need for efficient GPU memory use, prefix reuse, real-time and offline support, and modular serving extensibility without replicating vLLM server logic.

3 supporting quotes
“Its popularity comes from its ability to deliver high-throughput, low-latency serving for LLMs while keeping GPU memory usage efficient via techniques like PagedAttention.”article, stated
“This decoupling dramatically reduces maintenance burden, and allows us to support advanced features—like image generation—without replicating vLLM server logic.”article, stated
“over 50% of requests share prefix tokens, making them highly amenable to prefix caching optimizations.”article, stated

Models used: LLMs served by vLLM · embedding generation models · classification/explanation LLMs

Scale

Alternatives considered (roads not taken)

Offline mode only

Rejected because: Offline vLLM validated performance and accuracy but was suited mainly for low-QPS workloads.

“This allowed us to validate performance and accuracy, but concurrency was limited, making it better suited for low-QPS workloads.”article, stated

Tightly coupled server and engine

Rejected because: It limited independent component evolution and increased maintenance burden.

“Before, our serving tightly coupled the server and engine, which limited the flexibility in evolving individual components.”article, stated

Traditional NER models for AI Job Search query interpretation

Rejected because: NER models were brittle and costly to maintain as language and job taxonomies changed.

“Traditional systems using Named Entity Recognition (NER) models are brittle, costly to maintain, and adapt slowly to evolving language and job taxonomies.”article, stated

Patterns

latency-optimization (serving)

LinkedIn tuned vLLM scheduling and CUDA graph coverage to improve TPS, TPOT, and low-latency serving.

“This optimization yielded an overall 7% improvement in Time Per Output Token (TPOT).”article, stated

semantic-caching (serving)

vLLM prefix caching reuses computation for shared prompt prefixes in Hiring Assistant workloads.

“vLLM reuses computation for the shared portion of the input instead of recalculating it for every request. This dramatically cuts down prefill latency and GPU load, which is critical for our inputs spanning thousands of token inputs.”article, stated

structured-output-contract (application)

AI Job Search turns free-form queries into structured interpretations and facet suggestions.

“The core goal is to translate this free-form text into structured interpretations and facet suggestions by cohesively analyzing the user's query along with contextual cues, such as profile attributes.”article, stated

cost-aware-routing (serving)

GPU savings and efficient serving choices reduce the compute footprint of high-volume workloads.

“Both reached ~1245 tokens/sec under saturation (~10% higher than v0.6.1.post2), saving over 60 GPUs for this workload. We ultimately chose the v1 engine for future readiness, simplified configuration, and better scheduling efficiency at high QPS.”article, stated

Tradeoffs

Future serving engine

Chose vLLM v1 engine over staying on v0.7.0 with tuning.

Rationale: Both performed similarly under saturation, but v1 offered future readiness, simpler config, and better high-QPS scheduling efficiency.

“We ultimately chose the v1 engine for future readiness, simplified configuration, and better scheduling efficiency at high QPS.”article, stated

Serving API shape

Chose modular OpenAI-compatible architecture over custom tightly coupled serving logic.

Rationale: The adapter reduces maintenance and lets LinkedIn support advanced features without duplicating vLLM server behavior.

“This decoupling dramatically reduces maintenance burden, and allows us to support advanced features—like image generation—without replicating vLLM server logic.”article, stated

Gotchas (what bit them)

Offline inference mode did not support higher-concurrency serving.

Root cause: The initial LLM-class/engine.step deployment had limited concurrency.

Resolution: Evolve through vLLM engine versions, scheduler tuning, and modular serving architecture.

“Our initial production deployment ran v0.6.1.post2 in offline mode using the LLM class and engine.step() for basic inference. This allowed us to validate performance and accuracy, but concurrency was limited, making it better suited for low-QPS workloads.”article, stated

Tightly coupled serving layers slow feature evolution.

Root cause: Server and engine changes could not evolve independently.

Resolution: Decouple the gRPC server from the vLLM engine through an OpenAI-compatible API layer.

“This new design decouples our custom gRPC server from the vLLM engine, our custom gRPC server receives incoming requests, maps them to OpenAI-compatible API requests, and forwards them to the vLLM engine client.”article, stated

Hiring Assistant prompts are token-heavy.

Root cause: Classification plus explanations require nearly 1000 output tokens per candidate, with hundreds to thousands of candidates per hirer.

Resolution: Use prefix caching and vLLM serving optimizations to reduce prefill latency and GPU load.

“requires outputting a lot of tokens (nearly 1000 on average) per candidate and a single hirer may need to evaluate hundreds to thousands of candidates”article, stated

Evaluation

LinkedIn evaluates vLLM through TPS, tokens/sec under saturation, GPU savings, TPOT, p95 latency, QPS, and production use-case support.

Metrics: TPS improvement · tokens per second · GPU savings · TPOT · p95 latency · QPS · use cases supported

“Both reached ~1245 tokens/sec under saturation (~10% higher than v0.6.1.post2), saving over 60 GPUs for this workload.”article, stated
“This optimization yielded an overall 7% improvement in Time Per Output Token (TPOT).”article, stated

Outcomes

The system runs across thousands of hosts and serves both online and offline applications.

“Today, vLLM supports more than 50 different GenAI use cases at LinkedIn”article, stated
“It also runs on thousands of hosts across our platform, enabling everything from search enhancements to AI-powered recommendations—at scale and with efficiency.”article, stated