5 ms·
Nano-vLLM: How a vLLM-style inference engine works
- jbarrow 8mo agoThe whole thing feels AI written, generated from the codebase.* *this is incorrect per the author’s response, my apologies. For instance, it goes into (nano)vLLM internals and doesn’t mention PagedAttention once (one of the core ideas that vLLM is based on)[1]. Also mentions that Part 2 will cover dense vs MoE’s, which is weird because nanovllm hardcodes a dense Qwen3 into the source. Here are better (imo) explainers about how vLLM works: - https://hamzaelshafie.bearblog.dev/paged-attention-from-first-principles-a-view-inside-vllm/ https://hamzaelshafie.bearblog.dev/paged-attention-from-firs... - https://www.aleksagordic.com/blog/vllm https://www.aleksagordic.com/blog/vllm - https://huggingface.co/blog/continuous_batching https://huggingface.co/blog/continuous_batching Aleksa’s blog is a bit in the weeds for my taste but it’s really worth working through. A lot of the magic of vLLM happens in the PagedAttention kernels, which are really succinctly implanted in nanovllm. And the codebase is great and readable by itself! — 1. https://arxiv.org/abs/2309.06180 https://arxiv.org/abs/2309.06180
- lukax 8mo agoNot really in the PagedAttention kernels. Paged attention was integrated into FlashAttention so that FlashAttention kernels can be used both for prefill and decoding with paged KV. The only paged attention specific kernels are for copying KV blocks (device to device, device to host and host to device). At least for FA2 and FA3, vLLM maintained a fork of FA with paged attention patches.
- yz-yu 8mo agoHi jbarrow, thanks for your feedback and the links you shared—they're great readings for me (and likely others too). That said, I need to clarify: the content was not written by AI, and certainly not generated from a database in one shot. If there's some agent + prompt that can produce what I wrote, I'd love to learn it—it would've saved me two weekends :) Before addressing your questions further, some context: I'm a developer with no ML background but plenty of Cloud Infra experience. I'm currently building an open-source AI Infra project, which is why I studied nano-vllm. So my writing reflects some gaps in ML knowledge. To your specific points: > it goes into (nano)vLLM internals and doesn't mention PagedAttention once I didn't find any explicit "paged attention" naming in nano-vllm. After reading the first article you linked—specifically the "Paged KV Caching" section—I believe the block management logic and CPU/GPU block mapping it describes is exactly what I covered in both posts. It may not be the full picture of paged attention, but I interpreted what I saw in the code and captured the core idea. I think that's a reasonable outcome. > Part 2 will cover dense vs MoE's, which is weird because nanovllm hardcodes a dense Qwen3 into the source This reflects my learning approach and background. Same as point 1—I may not have realized the block design was the famous PagedAttention implementation, so I didn't name it as such. For point 2, seeing a dense Qwen3 naturally made me wonder how it differs from the xx-B-A-yy-B MoE models I'd seen on Hugging Face—specifically what changes in the decoder layers. That curiosity led me to learn about MoE and write it up for others with the same questions. --- I completely understand that in this era, people care more about whether what they're reading is AI-generated—no one wants to waste time on low-effort slop with no human involvement. But as I explained above—and as my hand-drawn Excalidraw diagrams show (I haven't seen an LLM produce diagrams with logic that satisfies me)—this is the result of learning shaped by my own knowledge background and preferences.
- jacquesm 8mo agoFunny, this reads even more AI written than the article itself.
- yz-yu 8mo agoCool, humans hallucinate too. — AI
- marcellus23 8mo agoIt really doesn't.
- Juvination 8mo agoThe em dashes really aren't helping their case.
- _alternator_ 8mo agoWait—do people here really think the em dash was nonexistent before LLMs? It’s widely used by people like me who care about writing style. The reason LLMs use it is because they reflect care and concern about writing style.
- CodeMage 8mo agoYeah, people do seem to think that em dashes are an indicator of GenAI. I have been accused of using AI to write my posts on a forum, precisely because of em dashes. That's how I found out about that particular sniff test people use. Hasn't made me change the way I write, though. Especially because I never actually type an em dash character myself. Back when I started using computers, we only had ASCII, so I got used to writing with double dashes. Nowadays, a lot of software is smart enough to convert a double dash into an em dash. Discourse does that and that's how I ended up being accused of being an AI bot.
- 1718627440 8mo agoShouldn't a double dash result in an en dash and only a triple in an em dash?
- WhitneyLand 8mo agoActually I thought it was a great example clarity, focus, and economy of words that AI is not capable of at this point in time.
- yz-yu 8mo agoSince HN only allows one link per submission, dropping Part 2 here. https://www.neutree.ai/blog/nano-vllm-part-2 https://www.neutree.ai/blog/nano-vllm-part-2
- OsamaJaber 8mo agoGreat job! This is the kind of project that should exist for every complex system Systems like vLLM's codebase are massive and hard to follow Would love to see the same approach for other infra (a nano-Kubernetes, nano Postgres.....
- vitaelabitur 8mo agoShameless plug for my structured LLM outputs handbook which is written in a similar spirit: https://nanonets.com/cookbooks/structured-llm-outputs/ https://nanonets.com/cookbooks/structured-llm-outputs/
- baalimago 8mo agoThe concept of a thing which is "Nano"-"Large" just seems counter-intuitive to me. Would they not cancel out?
- ruhith 8mo ago[dead]