<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Vllm on Le Site de François</title><link>https://lesitedefrancois.be/en/tags/vllm/</link><description>Recent content in Vllm on Le Site de François</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© 2026 François</copyright><atom:link href="https://lesitedefrancois.be/en/tags/vllm/index.xml" rel="self" type="application/rss+xml"/><item><title>Decode</title><link>https://lesitedefrancois.be/en/ai/decode/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lesitedefrancois.be/en/ai/decode/</guid><description>&lt;p&gt;&lt;strong&gt;Decode&lt;/strong&gt; is the second stage of &lt;strong&gt;LLM inference&lt;/strong&gt;: after &lt;strong&gt;prefill&lt;/strong&gt; has stored keys and values for the prompt, the model generates &lt;strong&gt;one new token per forward pass&lt;/strong&gt;, appends it to the sequence, extends the &lt;strong&gt;KV cache&lt;/strong&gt;, and repeats until a stop condition (EOS token, max length, or API limit). Its objective is fluent continuation—answer text, code, or tool-call JSON—at acceptable &lt;strong&gt;inter-token latency&lt;/strong&gt; and cluster &lt;strong&gt;throughput&lt;/strong&gt; (tokens per second across many concurrent sessions). Decode drives the “typing” experience in chat UIs; prefill drives how long users wait before the first character appears.&lt;/p&gt;</description></item><item><title>Inference</title><link>https://lesitedefrancois.be/en/ai/inference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lesitedefrancois.be/en/ai/inference/</guid><description>&lt;p&gt;&lt;strong&gt;Inference&lt;/strong&gt; is the operational phase of machine learning where a &lt;strong&gt;trained model&lt;/strong&gt; is applied to new inputs to produce outputs: next tokens in an LLM, bounding boxes in vision, embeddings for search, or scores in tabular models. Its objective is reliable &lt;strong&gt;serving&lt;/strong&gt; at scale—honoring latency targets (time to first token, p99 completion time), throughput (requests or tokens per second), availability, and cost per query—rather than improving weights. In generative AI, inference splits into &lt;strong&gt;prefill&lt;/strong&gt; (processing the prompt in one or few forward passes) and &lt;strong&gt;decode&lt;/strong&gt; (autoregressive generation of each output token), each with different bottlenecks. Production inference adds API gateways, auth, rate limiting, observability, model versioning, A/B tests, and guardrails; the model file is read-mostly while &lt;strong&gt;KV cache&lt;/strong&gt; and batch state are ephemeral per session.&lt;/p&gt;</description></item><item><title>KV cache (Key-Value Cache)</title><link>https://lesitedefrancois.be/en/ai/kv-cache/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lesitedefrancois.be/en/ai/kv-cache/</guid><description>&lt;p&gt;The &lt;strong&gt;KV cache (key-value cache)&lt;/strong&gt; is the stored result of the &lt;strong&gt;attention&lt;/strong&gt; layers for tokens already processed in a sequence. During &lt;strong&gt;autoregressive decode&lt;/strong&gt;, each new token only needs a forward pass that depends on prior context; recomputing keys and values for all earlier tokens every step would be wasteful. The cache therefore holds, per layer and per sequence, the &lt;strong&gt;K&lt;/strong&gt; and &lt;strong&gt;V&lt;/strong&gt; tensors produced when those tokens were first seen (during &lt;strong&gt;prefill&lt;/strong&gt; for the prompt, then extended one token at a time during decode). The objective is lower &lt;strong&gt;time per output token&lt;/strong&gt; and lower FLOPs; the cost is &lt;strong&gt;GPU memory&lt;/strong&gt;: cache size grows with batch × layers × heads × sequence_length × head_dim, and is often the limit on concurrent sessions or context length before model weights fill VRAM.&lt;/p&gt;</description></item><item><title>llm-d</title><link>https://lesitedefrancois.be/en/ai/llm-d/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lesitedefrancois.be/en/ai/llm-d/</guid><description>&lt;p&gt;&lt;strong&gt;llm-d&lt;/strong&gt; is an open-source &lt;strong&gt;distributed inference serving stack&lt;/strong&gt; for production LLM workloads on &lt;strong&gt;Kubernetes&lt;/strong&gt;. Its objective is not to replace model servers such as &lt;strong&gt;vLLM&lt;/strong&gt; or SGLang but to sit above them and fix cluster-scale problems: which replica should receive the next request, how to split &lt;strong&gt;prefill&lt;/strong&gt; (compute-heavy) from &lt;strong&gt;decode&lt;/strong&gt; (memory-bandwidth-heavy), how to share or tier &lt;strong&gt;KV cache&lt;/strong&gt; state, and how to scale MoE models with wide expert parallelism. llm-d publishes “well-lit path” guides—benchmarked Helm recipes and architectures—so teams reach strong time-to-first-token and throughput without hand-rolling schedulers. The project is a &lt;strong&gt;CNCF sandbox&lt;/strong&gt; effort with contributors including &lt;strong&gt;Red Hat&lt;/strong&gt;, IBM, Google, and cloud partners.&lt;/p&gt;</description></item><item><title>Prefill</title><link>https://lesitedefrancois.be/en/ai/prefill/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lesitedefrancois.be/en/ai/prefill/</guid><description>&lt;p&gt;&lt;strong&gt;Prefill&lt;/strong&gt; is the first stage of &lt;strong&gt;LLM inference&lt;/strong&gt; after a user (or &lt;strong&gt;RAG&lt;/strong&gt; pipeline) submits a prompt: the model runs a forward pass over &lt;strong&gt;all input tokens at once&lt;/strong&gt; (or in chunked blocks for very long contexts) to compute hidden states and populate the &lt;strong&gt;KV cache&lt;/strong&gt; for every layer. Its objective is to prepare context the model will attend to during generation; the user-visible metric is often &lt;strong&gt;time to first token (TTFT)&lt;/strong&gt;, which is dominated by prefill for long prompts. Prefill is &lt;strong&gt;compute-intensive&lt;/strong&gt; (large matrix multiplies across the full sequence) compared with &lt;strong&gt;decode&lt;/strong&gt;, which adds one token at a time. In chat, each new user message typically triggers a new prefill over the accumulated conversation (unless caching optimizations apply).&lt;/p&gt;</description></item><item><title>Quantization</title><link>https://lesitedefrancois.be/en/ai/quantization/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lesitedefrancois.be/en/ai/quantization/</guid><description>&lt;p&gt;&lt;strong&gt;Quantization&lt;/strong&gt; is the process of representing a model’s &lt;strong&gt;weights&lt;/strong&gt; and/or &lt;strong&gt;activations&lt;/strong&gt; with fewer bits than full &lt;strong&gt;FP32&lt;/strong&gt; training precision—commonly &lt;strong&gt;FP16&lt;/strong&gt;, &lt;strong&gt;BF16&lt;/strong&gt;, &lt;strong&gt;FP8&lt;/strong&gt;, &lt;strong&gt;INT8&lt;/strong&gt;, or &lt;strong&gt;INT4&lt;/strong&gt; (GPTQ, AWQ, GGUF-style formats). The objective is lower &lt;strong&gt;GPU memory&lt;/strong&gt; (larger models or more concurrent sessions per card), higher &lt;strong&gt;throughput&lt;/strong&gt;, and sometimes faster kernels on hardware with native low-precision units, at the cost of possible quality degradation if pushed too aggressively. Quantization can be applied &lt;strong&gt;post-training&lt;/strong&gt; (calibration on a sample dataset) or during &lt;strong&gt;training&lt;/strong&gt; (quantization-aware training). For &lt;strong&gt;inference&lt;/strong&gt;, serving engines &lt;strong&gt;vLLM&lt;/strong&gt; and &lt;strong&gt;NIM&lt;/strong&gt; load quantized checkpoints and dispatch to vendor libraries (TensorRT-LLM, CUTLASS, etc.) that implement fused low-precision matmuls.&lt;/p&gt;</description></item><item><title>vLLM</title><link>https://lesitedefrancois.be/en/ai/vllm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lesitedefrancois.be/en/ai/vllm/</guid><description>&lt;p&gt;&lt;strong&gt;vLLM&lt;/strong&gt; is an open-source library and serving stack for &lt;strong&gt;large language model (LLM) inference&lt;/strong&gt;. Its objective is to turn a trained model into a production service that sustains many concurrent users with low latency and high &lt;strong&gt;tokens per second&lt;/strong&gt; per GPU. vLLM targets the inference phase (prefill + decode), not training: it loads weights onto accelerators, batches incoming prompts, schedules decode steps, and streams completions back to clients over HTTP/gRPC (often via an OpenAI-compatible API). It has become a de facto engine behind many private and cloud AI gateways because it ships integrations for Hugging Face models, LoRA adapters, tensor parallelism, pipeline parallelism, speculative decoding, and quantization (GPTQ, AWQ, FP8).&lt;/p&gt;</description></item></channel></rss>