1st Istanbul vLLM & llm-d Inference Meetup
17 June 2026 · İTÜ Taşkışla, Harbiye
Some days are not about the code, but about the people. On 17 June I attended the first Istanbul vLLM & llm-d Inference Meetup at İTÜ Taşkışla: a full afternoon gathered by Red Hat AI, NVIDIA, and BeyondGuard, all about scaling inference. 446 people had registered, and the room was full of people genuinely wrestling with keeping a model alive in production.
- Date
- 17.06.2026
- Venue
- İTÜ Taşkışla · Harbiye
- Attendance
- 446 registered
- Hosts
- Red Hat AI · NVIDIA · BeyondGuard
Topics on the table
- PagedAttention
- continuous batching
- speculative decoding
- Multi-LoRA
- quantization
- llm-d
- multimodal


How the day ran
- 14:00Welcome & intro to inferenceErkan Ercan · Red Hat Turkey
- 14:20Intro to vLLM, ecosystem and roadmapMichael Goin · vLLM Core Maintainer · Red Hat AI
- 15:00Scalable, distributed inference with llm-dEdoardo Vacchi · Principal ML Engineer · Red Hat AI
- 15:45Multi-LoRA servingMustafa Oğuz Cengiz · BeyondGuard
- 16:15Efficient inference with model optimizationMireille Fares · GenAI Solution Architect · NVIDIA
- 16:45Securing vLLM in productionTufan Küpeli · CTO · BeyondGuard
When the room filled up
Michael Goin's opening treated vLLM less as a library tour and more as an operating model: in production a model is not a single file, it's a system you have to keep standing. The rest of the day orbited that sentence.
Each speaker looked at the same picture from a different corner: one at memory, one at scheduling, one at the cluster, one at security. Below I tried to retell the ideas the way I enjoy most, by drawing them; each diagram card carries the essence of one session.
The waste of memory
The real bottleneck in serving a language model is often not compute, but how memory is managed. In a naive server, the KV cache for each request is reserved as one contiguous block sized for the maximum sequence length. Since most requests never reach that maximum, the bulk of expensive GPU memory sits idle 'just in case.'
Naive: one contiguous block
vLLM: PagedAttention pages
vLLM's fix is borrowed from operating systems: virtual memory and paging. The KV cache is split into small fixed-size pages instead of one huge contiguous block. Each sequence sees logical pages that may sit scattered across physical memory. Fragmentation drops to near zero.

In practice this means many more concurrent requests on the same GPU. Memory is spent on what's actually used, not on the worst case, and that small accounting change decides the capacity of the whole service.
Sharing a common prefix
Paging brings a bonus: requests that start the same way (say, all sharing one system prompt) physically share those pages. With prefix caching the same tokens aren't recomputed over and over; both memory and compute are paid once.
Picture a chat app: every request is preceded by the same long system instruction. Without sharing, it's reprocessed each time. In vLLM it's computed once, then everyone looks at the same pages. Below, the navy cells are that shared prefix, and each request's own-coloured cells are its unique continuation. Tap a legend item to highlight the shared prefix or a single request.
Two phases: prefill and decode
An inference request splits into two characters. In prefill the whole prompt is fed to the model at once; all tokens are processed in parallel (fast), and it saturates the GPU. In decode the answer is produced one token at a time: each token depends on the last, sequential and relatively slow.
prefill · all at once (parallel)
decode · one by one (sequential)
The split matters because the two phases have different appetites: one hungers for compute, the other for memory. That's exactly why systems like llm-d disaggregate them onto separate machines: give each job the hardware it loves.
Stopping the idle GPU
The second big idea is in scheduling. A fixed batch waits for its slowest request to finish; short answers complete early but the cores spin idle. vLLM instead rebuilds the batch at every decode step: a finished request leaves, a queued one takes its slot immediately.
fixed batch · idle steps
continuous · always full
This is called continuous batching, and its effect is striking: the GPU never waits for 'the batch to drain,' utilization stays high, and latency shrinks for everyone in the queue. The two diagrams below show it: first the gaps of a fixed batch, then how a single decode step is rebuilt.
Speculative decoding: two models, one speed
One of the most elegant speed tricks at the core of vLLM is speculative decoding. Token generation is inherently sequential and slow: each token waits for the previous one. Speculative decoding lets a small, fast 'draft' model guess several tokens ahead; the large 'target' model verifies all of them in a single pass.
The correct prefix is accepted as-is and cut at the first miss. When the draft guesses well you produce several tokens in one pass; when it guesses badly you lose nothing, because verification guarantees quality. The result: same output, fewer rounds. The slide on stage summed it up in three steps.
draft model proposes
target model verifies

Multi-LoRA: one base, many personalities
The second half of that session was Multi-LoRA serving. Instead of hosting a separate giant model per specialty, small LoRA adapters are attached on top of a single base model. vLLM can serve them at once: same GPU, same base weights, but each request is answered with its own adapter.
Cost of one model, flexibility of dozens. One request calls the 'code' adapter while another calls 'SQL', yet the base weights stay as a single copy in memory. It's the most practical way to keep dozens of specialized models alive on one GPU.

Model optimization: smaller, faster
On the NVIDIA side, Mireille Fares's session focused on lightening the model itself. Quantization represents weights with fewer bits: from FP16 to FP8, even INT4. Fewer bits means less memory and faster memory access.
memory per weight (relative)
The trick is keeping quality: smart quantization schemes shrink a model to half or a quarter with almost no loss of accuracy. A smaller model fits on more GPUs and answers faster, and combined with speculative decoding and PagedAttention, the gains compound.
llm-d: spreading inference across a cluster
Edoardo Vacchi stepped beyond a single GPU into the cluster. llm-d scales vLLM on Kubernetes: incoming requests pass through a KV-cache-aware router, prefill and decode workloads can be split onto separate nodes, and the cache is shared across replicas.
A model is no longer a process, it's a service topology. The router knows which request is close to which cache; so requests sharing a prefix land on the same replica and recomputation is avoided. Every trick of the single machine, now spread across the cluster.

What's next?
Goin's close showed where the ecosystem is heading: vLLM isn't just a fast engine, it's an evolving platform. The roadmap on stage pointed to five stops.
A direction running from the core engine to raw performance, to distributed serving, to multimodal models and online reinforcement learning. In other words, everything we discussed today is just the first few stops of a much larger story.

Once it ships: security
Tufan Küpeli (BeyondGuard) took the less-discussed but critical side: the moment you expose an LLM to production, you also expose an attack surface. As much as speed and capacity, what goes in and what comes out is an engineering problem too.
The talk gathered around three layers, and all three are the responsibility of the system, not the model.
Prompt injection defense
Stopping user input from hijacking the model.
Data protection
Keeping sensitive data out of prompts and responses.
Runtime policy
Rule enforcement and auditing at run time.
“A strong model is not enough if the system serving it cannot keep up.”
What it's really about: community
Across five sessions one sentence kept coming back: a model is no longer a single file, it's a system. But the most valuable part of the day wasn't the slides; it was the conversations in the breaks, the introductions, the energy of people wrestling with the same problem.
Seeing a community-driven inference meetup of this scale in Istanbul felt genuinely hopeful. Half the speakers had flown in, but all the questions were local; and the best ideas usually showed up at the coffee break, in front of a whiteboard.
What's left
What's left is a few slides, a few photos, and a full notebook. A good technical day is measured as much by who you learn with as by what you learn, and this one was generous with both.
