大数跨境

vLLM/SGLang/cuteDSL tutorial Github学习仓库介绍

vLLM/SGLang/cuteDSL tutorial Github学习仓库介绍 AI不止算法
2026-04-16
3

看到很多同行朋友弄了很多学习的仓库,本人也是技术知识分享的爱好者,手也痒痒,喜欢写一些技术文章,于是我也创建了一个Github学习仓库vLLM_SGLang_cuteDSL_tutorial,从名字可以看出,聚焦于vLLM_SGLang_cuteDSL,先这些,如果后期呼声高,我再增加。

Github学习仓库 vLLM_SGLang_cuteDSL_tutorial

仓库链接:https://github.com/RussWong/vLLM_SGLang_cuteDSL_tutorial,喜欢就点个⭐吧!

本仓库主要介绍vLLM, SGLang, cuteDSL等(更多待补充)领域相关知识,你可以明显看出,主要针对大模型推理引擎和Kernel Python DSL。

现今,最流行的开源大模型推理引擎依然是vLLM和SGLang,希望本仓库的jupyter notebook和一些python+cpp代码能帮助大家更好地使用和学习vLLM和SGLang。

另外,Kernel Python DSL是当今流行的kernel开发模式(agent除外),降低了传统高性能Kernel开发的门槛,其中,以cuteDSL为代表,cute cutlass一直是大家头疼的算子库项目,cuteDSL使得更多人都可以参与进来,探索cute layout algebra的乐趣,Enjoy!

vLLM notebook

注意:notebook链接请进入github参看,公众号无法解析成功这类外部链接

相关练习代码采用python语言,以notebook形式呈现,帮助读者快速了解或掌握相关内容。

📓 Notebook 链接
🧠 Notebook 主要内容
🧩 难度等级
⭐ 难度
vllm_local_single_gpu_quickstart.ipynb
vLLM 单卡本地快速部署,一行命令启动 OpenAI 兼容服务并完成最小 API 调用闭环。
入门
⭐⭐
vllm_multi_turn_memory_minimal_demo.ipynb
vLLM 多轮对话历史记忆实践,展示 messages 维护与最小历史裁剪策略。
入门-中级
⭐⭐⭐


SGLang notebook

注意:notebook链接请进入github参看,公众号无法解析成功这类外部链接

相关练习代码采用python语言,以notebook形式呈现,帮助读者快速了解或掌握相关内容。

📓 Notebook 链接
🧠 Notebook 主要内容
🧩 难度等级
⭐ 难度
sglang_async_generate_minimal_demo.ipynb
SGLang 异步并发入门,演示 engine.async_generate(...) 与 asyncio.gather(...) 的最小并发调用流程。
入门
⭐⭐
sglang_attention_backend_knobs_minimal_demo.ipynb
SGLang 注意力后端参数入门,比较统一后端与 prefill/decode 分离后端配置,并包含自动回退思路。
中级
⭐⭐⭐


cuteDSL


📓 Notebook 链接 🧠 Notebook 主要内容 🧩 难度等级 ⭐ 难度
cutedsl_layout_tensor_minimal_demo.ipynb cutedsl tensor入门,演示 cute.jit 与 cutlass.cute.runtime.from_dlpack 的最小并发调用流程。 入门 ⭐⭐


Notebook知识介绍


以下是个简单介绍,建议配合具体note


共同环境假设:Linux 优先(Windows 建议 WSL2)、Python 3.8+、NVIDIA GPU,首次运行会从 Hugging Face 拉模型,需网络或本地缓存。


1.sglang_async_generate_minimal_demo.ipynb


功能:从「同步一条条 generate」过渡到 Engine.async_generate + 事件循环并发。对齐官方异步离线推理思路(offline_batch_inference_async.py )。

安装与运行:

  1. 建虚拟环境并安装与 CUDA 匹配的 PyTorch(文档中给的是示例索引,需按本机 CUDA 改)。
  2. pip install -U sglang openai
    ,再 pip install jupyter
  3. 在 notebook 目录执行:jupyter-lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root。

默认模型:Qwen/Qwen2.5-1.5B-Instruct;建议你的GPU显存 8GB+。

技术要点:

  • 使用 sgl.Engine(...),参数偏保守:mem_fraction_static=0.70、max_running_requests=8、max_total_tokens=8192 等。
  • 对多条短 prompt 使用 asyncio.create_task + asyncio.gather 并发调用 await engine.async_generate(...),并打印总耗时与输出摘要。
  • Notebook 中直接用 await run_async_batch(),避免再套一层 asyncio.run(...) 触发事件循环冲突。
  • OOM 时可降低 max_running_requests / max_total_tokens 或换更小模型。

重点总结:异步 API 如何把多条请求交给运行时并发调度;通过这个notebook建立并发提交 vs 串行等待的感官直觉。

2.sglang_attention_backend_knobs_minimal_demo.ipynb


功能:聚焦 sgl.Engine 的attention backend旋钮:统一后端 vs prefill / decode 分离后端,并带候选列表自动回退作为backup,全部attention backend列表为"triton", "flashinfer", "fa3", "torch_native"


安装与运行:

  • 与前面相同:sglang + openai + jupyter。
  • 执行顺序:环境自检,Demo1统一后端 ,Demo2 分离后端(可选),关闭 split_engine 与 engine。

默认模型同样为 Qwen/Qwen2.5-1.5B-Instruct,显存紧张时建议降低 max_total_tokens。

技术要点:

  • 四个观察参数:attention_backend、prefill_attention_backend、decode_attention_backend、disable_flashinfer_autotune(示例里设为 True 便于观察、减少 autotune 干扰)。
  • Demo1:在 CUDA 上按顺序尝试 triton → flashinfer → fa3 → torch_native 建 Engine,成功则用 engine.generate 跑两条 prompt。
  • Demo2:尝试分离组合,如 (fa3, triton),失败则回退 (triton, triton)、(torch_native, torch_native);用独立 split_engine 再 generate。

重点总结:理解一个后端管全程和prefill/decode 各选后端的差别,以及硬件差异导致后端不可用时的回退策略

3.vllm_local_single_gpu_quickstart.ipynb


功能:单卡部署的最短路径,vllm serve 拉起 OpenAI 兼容 HTTP API,再用官方 openai Python SDK 调 chat.completions,不涉及多卡、KV 调优或改框架源码。

安装与运行:

  1. 虚拟环境。
  2. 安装带 CUDA 的 PyTorch(示例为 cu124,可按需改为其它cuda版本)。
  3. pip install "vllm>=0.6.0" "openai>=1.0.0" "httpx>=0.24.0",pip install jupyter。
  4. PS:如以上三步配置环境麻烦,则可选 Docker 一键环境:vllm/vllm-openai 镜像 + --gpus all 等(适合想跳过本机编译/依赖的用户)。
  5. 使用方式二选一:方式 A 终端先 vllm serve ...,Notebook 只跑客户端;方式 B 在 Notebook 里 subprocess.Popen 后台启动并轮询 /v1/models 直到就绪。

技术要点:
  • 环境自检:Python、torch、torch.cuda.is_available()、GPU 名称与显存。同样 Docker 一键快速安装环境也可。
  • 启动逻辑:shutil.which("vllm") 找到则用 CLI,否则回退 python -m vllm.entrypoints.openai.api_server;
  • 客户端:OpenAI(base_url="http://127.0.0.1:8000/v1", api_key="EMPTY"),chat.completions.create,打印回复与 usage。
  • 结束:对 Notebook 启动的子进程发 SIGTERM 释放显存;若服务在终端起,需终端 Ctrl+C。

重点总结:

建立完整链路:PyTorch + vLLM → OpenAI 兼容端点 → 与云端 OpenAI 相同的客户端写法,适合作为后续所有 vLLM 学习的baseline

4.vllm_multi_turn_memory_minimal_demo.ipynb


功能:在上一套部署能力之上,演示多轮对话记忆,用 messages 列表累积 user / assistant,并在每次请求前 trim_history,避免上下文无限变长。默认模型 Qwen/Qwen2.5-0.5B-Instruct,启动参数示例含 --max-model-len 2048、--gpu-memory-utilization 0.9 等。

安装与运行:

  • 环境与上一套类似:PyTorch(示例 cu124)+ vllm + openai + httpx + jupyter;同样 Docker 一键快速安装环境也可。
  • 方式 A / B:终端先起服务,或 Notebook 内 Popen 启动并把日志写入文件,轮询 /v1/models 就绪。
  • 顺序大致为:环境自检 → 启动 vLLM → 客户端初始化与 trim_history / chat_once → 多轮示例对话 → 停止进程。

技术要点:
  • conversation_history 含一条 system 角色设定。
  • trim_history(history, max_turns=6):保留 system,再只保留最近 6 轮(每轮约 2 条消息,即 max_turns * 2 条对话消息)。
  • chat_once:追加 user → 裁剪 → client.chat.completions.create → 追加 assistant → 再裁剪并 clear/extend 回写列表,防止列表无限膨胀。
  • 示例对话覆盖先记住偏好 → 再追问要结合历史的闭环。


关注我


https://github.com/RussWong/vLLM_SGLang_cuteDSL_tutorial,仓库链接, 喜欢就点个⭐吧!


知乎


不归牛顿管的熊猫


公众号


AI不止算法



【声明】内容源于网络
0
0
AI不止算法
AI-HPC/AI工程/AI推理加速/AI算子开发的技术分享和入门转行学习的全套解决方案提供
内容 101
粉丝 0
AI不止算法 AI-HPC/AI工程/AI推理加速/AI算子开发的技术分享和入门转行学习的全套解决方案提供
总阅读385
粉丝0
内容101