Tiny-vLLM、C++とCUDAでLLM inferenceを作りながら学ぶ小さな実装

Tiny-vLLMは、C++とCUDAで書かれた小さなLLM inference engineだ。Llama 3.2 1B InstructをSafetensorsから読み込み、prefillとdecode、KV cache、static batching、continuous batching、online softmax、FlashAttention系の考え方、PagedAttentionまで扱う。さらにリポジトリ全体がcourse形式のREADMEとして構成されている。

注目点は、実装範囲と説明が同じ場所にあることだ。LLM inferenceを学ぼうとすると、論文、巨大なフレームワーク、断片的なブログに分かれがちだ。Tiny-vLLMはモデルファイルを読むところから、tensor shape、bfloat16、CUDA kernel、cuBLAS、attention、Paged KV cacheへ順番に進める。APIで隠すのではなく、仕組みを見える大きさに縮める設計になっている。

Hacker Newsの議論でも、READMEの読みやすさが何度も挙がった。作者は、コードを全部読む前に有用なメンタルモデルを作れるよう文書を書いたと説明している。コメントでは、lesson形式がCUDAとLLM inferenceを初めて結びつける人に向いているという声が目立った。初期のllama.cppを思い出すという反応もあり、小さなコードベースが大きな概念を近づける好例になっている。

もちろん範囲は絞られている。特定のモデルとNVIDIA CUDA環境を前提にしており、運用向けserving stackの機能をすべて持つわけではない。それでもKV cache、batching、PagedAttentionの意味を手で確かめたい開発者には、抽象的な解説より強い入口になる。