Skip to content

晚上下班不刷手机,学点什么。系列二:从 0 手写大模型推理框架,完成 Qwen3-4B 模型的本地单卡部署和 GPU 推理优化,显存不够可用 Qwen3-0.5B。

Notifications You must be signed in to change notification settings

muyuuuu/LLM-Inference

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

大模型推理

由于好奇大模型推理的原理,学习了 tiny-llm 课程并将苹果芯片相关代码适配 Nvidia 芯片,遂有了本仓库。实现主要技术,完成 Qwen3-4B 模型的本地部署和推理优化。显存不够可以考虑 Qwen3-0.5B,主要是学技术。

pre-requirements

  • 需要 Nvidia 显卡,安装 cuda 环境,以及 pytorch
  • 为测试代码准性,需要安装 torchao 和 torchtune
  • 为了加载 huggingface 的 Qwen3 model,需要安装 transformers。如果网络失败,需要 export HF_ENDPOINT=https://hf-mirror.com

我的版本:

torch                     2.6.0+cu126
torchao                   0.15.0
torchtune                 0.6.1
transformers              4.57.6
triton                    3.2.0

QWen3 实现与本地部署

任务 测试命令
✅ Task 1: 实现 scaled_dot_product_attention python -m unittest llm.test.attention_test.TestScaleDotAttention
✅ Task 2: 实现 MultiHeadAttention python -m unittest llm.test.attention_test.TestMultiHeadAttention
✅ Task 3: 实现 RoPE 旋转位置编码 python -m unittest llm.test.rope_test
✅ Task 4: 实现 RMSNorm 标准化 python -m unittest llm.test.norm_test
✅ Task 5: 实现千问的 MLP python -m unittest llm.test.mlp_test
✅ Task 6.1: scaled_dot_product_attention 添加 GQA 支持 python -m unittest llm.test.attention_test.TestScaleDotAttention
✅ Task 6.2: MultiHeadAttention 添加 GQA 支持 python -m unittest llm.test.attention_test.TestGroupedMultiHeadAttention
✅ Task 7: 实现 tied embedding python -m unittest llm.test.tie_embedding_test.TestTieEmbedding
✅ Task 8: 实现 Qwen3 TransformerBlock 暂时没想到测试方法
✅ Task 9: 加载 Qwen3 模型,简单推理 python -m llm.executor.run_model 执行推理

工程优化

优化 测试命令
✅ Task 1.1: 解决重复生成问题,实现 TopK 采样 python -m llm.executor.run_model --topk 100
✅ Task 1.2: 解决重复生成问题,实现 TopN 采样 python -m llm.executor.run_model --topp 0.7
  • key-value cache
  • flash attention
  • continuous batching

服务设计

......

参考

About

晚上下班不刷手机,学点什么。系列二:从 0 手写大模型推理框架,完成 Qwen3-4B 模型的本地单卡部署和 GPU 推理优化,显存不够可用 Qwen3-0.5B。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages