Skip to content

77z-zhou/mirco-vLLM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

miniVLLM

自定义实现的vLLM推理引擎,基于nano-vLLM 和 mini-vLLM. 添加了chunked prefill 、Pageattention、FlashAttention的代码实现. 之后会不断在此基础上像vLLM靠拢, 实现其他的一些关键特性如:Speculative Decoding, DP分离, KVTransfer等等同时也会实现一些BenchMark用于对这些关键特性的性能对比!

对于算子开发使用的是 OpenAI Triton (对python玩家友好) 对于模型方面, 目前仅适配了Qwen3-0.6B, 之后会考虑适配其他模型 如MoE, MLA, mHC 等等

声明: 这是一个学习项目不适用于生产级, 欢迎同学们多多提issue, 大家共同学习.

快速开始

# windows系统 可以下载WSL, 使用Ubuntu系统
# powshell 执行 (完成后可以使用vscode 连接wsl)
wsl --install Ubuntu
wsl --set-default Ubuntu
wsl --shutdown

# wsl命令行中执行  
sudo apt update
apt install  -y build-essential clang

# git clone拉取本项目后, 执行以下命令
# 安装 uv package manager
curl -LsSf https://astral.sh/uv/install.sh | sh

# 同步依赖
uv sync

# 运行推理引擎
uv run python main.py

项目结构

mircovLLM/
├── src/
│   └──├── models/       # 模型实现
│      ├── engine/       # LLM引擎逻辑 包括Continuous Batching, Chunked Prefill, KV Cache的块管理,
│      ├── layers/       # 模型组件    包括各种算子实现
│      ├── utils/        # 全局变量    
│      └── sampling_parameters.py 
├── main.py              # 推理演示

运行环境

  • Python ≥3.11, < 3.12
  • CUDA-capable GPU
  • 依赖: transformers, torch, xxhash (使用uv进行管理)

About

在nano-vLLM 和 mini-vLLM 基础上实现了Chunked Prefill 以及PagedAttention. 目标像vLLM的更多关键特性对齐.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors