MinivLLM

用最小代码读懂 vLLM 推理内核

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 基础设施 🍴 复刻 181 🐛 待处理 19 👀 关注 6
GitHub ↗
GitHub 星标 ★ 1102
维护状态 维护中
是否开源 开源
定价模式 🏷️完全免费 开源免费,需自行部署

项目预览

MinivLLM 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类基础设施
开发团队Wenyueh
定价模式🏷️完全免费
价格说明开源免费,需自行部署
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议Apache-2.0
主要语言Python
GitHub 星标★ 1102
上线时间2025-12-29 00:00:00
代码更新2026-08-29
仓库体积459 KB
本站数据更新2026-11-03
维护状态维护中
收录时间2026-09-16
浏览次数1

项目介绍

MinivLLM 是一个基于 Nano-vLLM 的教学型推理引擎,用 Python 从零复现 vLLM 的核心机制,目标是让开发者用最小代码量读懂大模型推理服务的关键设计。它不依赖 vLLM 官方实现,自己实现了 PagedAttention 与 FlashAttention,把 KV Cache 分页管理、连续批处理、注意力计算等环节拆成可读代码,解决“vLLM 源码庞大、难以入门”的问题。核心能力包括:分页注意力显存管理,减少碎片并提升吞吐;自包含的 FlashAttention 前向实现,便于对照原理;轻量调度与批处理流程,可跑通小模型推理。适合想深入理解推理引擎内部、做二次实验或教学演示的场景,而不是直接替代生产级 vLLM。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-09-16 · 当前星标 ★ 1102

使用教程

ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。

难度:入门 约 10 分钟 部署方式:本地安装 5 步

环境要求

  • Python 环境(项目为 Python 编写,README 未指定具体版本)
  • uv 包管理器(README 通过官方脚本安装)
  • 可运行 PyTorch 的机器;README 提到多 GPU 时可调整 world_size
  • 网络可访问 astral.sh 以下载 uv 安装脚本

安装与启动步骤

  1. 1安装 uv 包管理器

    README 指定用 uv 管理依赖,先通过官方脚本安装,安装后新开终端使 uv 命令生效。

    curl -LsSf https://astral.sh/uv/install.sh | sh
  2. 2同步项目依赖

    在项目根目录执行 uv sync,按锁文件创建虚拟环境并安装全部依赖。

    uv sync
  3. 3运行主推理引擎

    执行 main.py 跑通完整推理流程:小尺寸 Qwen3 随机初始化 + 60 条对话提示 + 分页注意力解码。

    uv run python main.py
  4. 4运行预填充基准

    执行 benchmark_prefilling.py,测试 FlashAttention 在预填充阶段的表现。

    uv run python benchmark_prefilling.py
  5. 5运行解码基准

    执行 benchmark_decoding.py,测试 PagedAttention 在解码阶段的表现。

    uv run python benchmark_decoding.py

关键配置

配置项必填说明示例
world_size否在 main.py 的 config 中设置多 GPU 并行数量,大于 1 即多卡2

如何确认成功

执行 uv run python main.py 后终端正常打印推理输出、无报错退出,即说明引擎启动成功。

常见问题

Q:如何启用多 GPU 运行?

A:按 README 说明,在 main.py 的 config 中把 world_size 改为大于 1 的数值即可,无需其他改动。

Q:需要自己下载模型权重吗?

A:不需要。main.py 使用随机初始化的小尺寸 Qwen3 演示推理流程,README 未要求下载任何权重文件。

Q:想系统理解实现原理看哪里?

A:README 指向 HowToApproachvLLM.md,其中按层、模型、分页注意力、CUDA graphs、调度等环节给出分步实现指南。

Q:三个脚本分别做什么?

A:main.py 是主推理引擎示例,benchmark_prefilling.py 与 benchmark_decoding.py 分别做预填充的 FlashAttention 和解码的 PagedAttention 基准测试。

注意事项

  • 项目基于 Nano-vLLM 改造,自包含实现 PagedAttention 与 FlashAttention,不依赖 vLLM 官方代码。
  • main.py 会构造小尺寸 Qwen3 与 60 条提示(2 条基础提示各重复 30 次),最多生成 256 个 token,显存占用与真机部署模型不同。
  • README 未给出 Python 版本、CUDA 版本和显存要求,实际运行前请自行确认环境兼容性。

核心亮点

  • 自实现 PagedAttention 与 FlashAttention,代码量小、可逐行对照原理
  • 基于 Nano-vLLM 精简复现,适合教学与快速实验,上手门槛低
  • Python 实现,便于修改调度、缓存策略并观察性能变化

不足之处

  • 功能与性能远不及生产级 vLLM,缺少量化、分布式等能力
  • 社区与文档规模小,长期维护和生态支持待观察

适用场景

  • 学习大模型推理引擎内部原理的教学演示
  • 在小型模型上做注意力/缓存策略的对比实验
  • 作为二次开发原型,验证自定义调度或显存管理想法

替代项目

vLLM、Nano-vLLM

上一篇:flashinfer

下一篇:1Cat-vLLM

同类项目推荐

llm-d-inference-sim 开源

不装 GPU 不跑模型,秒起一个假 vLLM 服务

A lightweight, configurable, and real-time simulator designed to mimic the behavior ···

★ 230 2026-09-16
Strata 开源

一键把大模型装进自己电脑,本地 API 即开即用

Qwen3.8-Flash-Next on any consumer hardware: one-click install for Windows / Linux. ···

★ 39146 2026-10-13
MinerU 开源

把 PDF/Word 一键转成 AI 能读懂的 Markdown,让文档直接喂给大模型。

Transforms complex documents like PDFs and Office docs into LLM-ready markdown/JSON ···

★ 83049 2026-08-10
minio 开源

自建高性能 S3 对象存储,轻松兼容 AWS,秒级部署。

MinIO is a high-performance, S3 compatible object store, open sourced under GNU AGPL···

★ 61283 2026-08-29
vLLM-2080Ti-Definitive 开源

双2080Ti+NVLink跑Qwen 27B,单请求破100 tok/s

The definitive vLLM runtime for dual RTX 2080 Ti 22GB + NVLink, delivering Qwen 27B ···

★ 1200 2026-09-16
optimum-intel 开源

让 Hugging Face 模型在 Intel 芯片上跑得更快,几行代码实现加速。

Optimum Intel: Accelerate inference with Intel optimization tools

★ 624 2026-08-09
LLM-Tools 开源

输入模型参数,秒算 GPU 显存和硬件需求

Open-source calculator for LLM system requirements.

★ 183 2026-08-09
krasis 开源

显存不够也能跑大模型,混合推理榨干硬件性能

Krasis is a Hybrid LLM runtime which focuses on efficient running of larger models o···

★ 525 2026-08-09
tma1 开源

让 AI 代理读取自己的运行日志,自动优化下一轮决策。

Local-first observability your agent reads back. TMA1 records every LLM call, then r···

★ 124 2026-08-09