diff --git "a/04.MindSpore_LLM_Infer_Course/MindSpore Transformers & vLLM\351\203\250\347\275\262\344\270\216\350\257\204\346\265\213.pdf" "b/04.MindSpore_LLM_Infer_Course/MindSpore Transformers & vLLM\351\203\250\347\275\262\344\270\216\350\257\204\346\265\213.pdf" new file mode 100644 index 0000000..90f1f47 Binary files /dev/null and "b/04.MindSpore_LLM_Infer_Course/MindSpore Transformers & vLLM\351\203\250\347\275\262\344\270\216\350\257\204\346\265\213.pdf" differ diff --git a/04.MindSpore_LLM_Infer_Course/README.md b/04.MindSpore_LLM_Infer_Course/README.md index cbf3a71..4ea2b73 100644 --- a/04.MindSpore_LLM_Infer_Course/README.md +++ b/04.MindSpore_LLM_Infer_Course/README.md @@ -1,15 +1,15 @@
-(1-2句话点名项目核心价值)项目仓介绍。 +本课程旨在帮助开发者快速掌握基于MindSpore Transformers和vLLM-MindSpore的大模型推理部署技术,涵盖从环境搭建、服务化启动到高级特性配置的全流程实践。 ## 📢 最新消息 -- 2025-10-21 「课程更新」:新增XXX课程,包含完整视频、课件及代码案例。([查看详情](xxxx)) -- 2025-10-18 「功能优化」:项目仓完成重构,查找课程资源更清晰,新增PR检查门禁,合入内容更规范。([查看详情](xxx)) -- 2025-10-10 「Bug修复」:修复xxxxxx问题,感谢@username的PR贡献。([查看详情](xxxx)) +- 2025-12-21 「课程更新」:新增vLLM-MindSpore服务化部署课程,支持Multi-LoRA与Function Call特性。([查看详情](#)) +- 2025-12-18 「功能优化」:项目仓完成重构,优化文档结构,新增混合并行部署示例。([查看详情](#)) +- 2025-12-10 「Bug修复」:修复vLLM-MindSpore启动脚本中的参数解析问题,感谢社区贡献。([查看详情](#)) ## 前置知识 @@ -42,21 +42,260 @@ pip install requirements.txt ## 课程内容 -| 序号 | 课节 | 简介 | 课程资源 | 能力认证入口 | -| :-- | :------ | :--------------- | :----------------------- | :---------- | -| 1 | xxx | xxx | [PPT](跳转链接) · [代码](跳转链接) · [视频](跳转链接) · [云沙箱实验](跳转链接) · [学习路径](跳转链接) | | -| 2 | xxx | xxx | [PPT](跳转链接) · [代码](跳转链接) · [视频](跳转链接) · [云沙箱实验](跳转链接) · [学习路径](跳转链接) | [初级认证入口](xxxx) | -| 3 | xxx | xxx | [PPT](跳转链接) · [代码](跳转链接) · [视频](跳转链接) · [云沙箱实验](跳转链接) · [学习路径](跳转链接) | | -| 4 | xxx | xxx | [PPT](跳转链接) · [代码](跳转链接) · [视频](跳转链接) · [云沙箱实验](跳转链接) · [学习路径](跳转链接) | [中级认证入口](xxxx) | +| 序号 | 课节 | 简介 | 视频 | +| :-- | :------ | :--------------- | :----------------------- | +| 1 | vLLM-MindSpore服务化部署 | 学习vLLM-MindSpore的安装、启动及参数配置。 | [观看](https://www.bilibili.com/video/BV1Ys1aBxEFD/?share_source=copy_web&vd_source=fd4588b77d7b0209a532d9279088f606) | +| 2 | 大模型推理高级特性 | 深入理解Chunked Prefill、Prefix Caching等优化技术。 | [观看](https://www.bilibili.com/video/BV1Ys1aBxEFD/?share_source=copy_web&vd_source=fd4588b77d7b0209a532d9279088f606) | +| 3 | 混合并行与量化推理 | 掌握混合并行部署及模型量化推理的最佳实践。 | [观看](https://www.bilibili.com/video/BV1Ys1aBxEFD/?share_source=copy_web&vd_source=fd4588b77d7b0209a532d9279088f606) | + +# 服务化部署与评测指导 + +## 目录 +- [安装部署](#安装部署) +- [服务化启动参数](#服务化启动参数) +- [关键特性配置](#关键特性配置) + - [Prefix Caching](#prefix-caching) + - [Chunked Prefill](#chunked-prefill) + - [Multi-LoRA](#multi-lora) + - [Function Call](#function-call) +- [混合并行服务化部署示例](#混合并行服务化部署示例) +- [量化推理](#量化推理) +- [评测工具使用](#评测工具使用) + - [精度评测](#精度评测) + - [性能评测](#性能评测) +- [启动服务](#启动服务) +- [发送请求](#发送请求) + + +## 安装部署 + +详细安装步骤请参考官方文档:[安装指南](https://www.mindspore.cn/vllm_mindspore/docs/zh-CN/master/getting_started/installation/installation.html) + + +## 关键特性配置 + +### Prefix Caching + +#### 示例命令 +```bash +python -m vllm.entrypoints.openai.api_server \ +--model /path/to/model \ +--tensor-parallel-size=2 \ +--enable-prefix-caching +``` + +### Chunked Prefill + +#### 示例命令 + +```bash +export VLLM_USE_V1=0 + +vllm-mindspore serve Qwen3-8B \ + --trust-remote-code \ + --max-num-seqs 32 \ + --max-model-len 16384 \ + --block-size 128 \ + --gpu-memory-utilization 0.9 \ + --max-num-batched-tokens 2048 \ + --enable-chunked-prefill +``` + +### Multi-LoRA +#### Multi-LoRA服务化部署示例 + +**启动服务** +```bash +vllm-mindspore serve /home/ckpt/qwen2.5-7b-hf \ +--tensor_parallel_size=1 \ +--gpu-memory-utilization=0.9 \ +--max_model_len=800 \ +--enable-lora \ +--lora-modules lora1='/home/ckpt/qwen2.5-7b-lora-law' lora2='/home/ckpt/qwen2.5-7b-lora-medical' \ +--max_loras=3 \ +--max_lora_rank=64 +``` + +**服务化示例** +```bash +# 请求1 +curl http://localhost:8000/v1/completions -H "Content-Type: application/json" -d \ +'{"model": "/home/ckpt/qwen2.5-7b-hf", "prompt": "违章停车与违法停车是否有区别?", \ +"model": "lora1", "max_tokens": 20, "temperature": 0, "top_p": 1.0, "top_k": -1, \ +"repetition_penalty": 1.0}' + +# 请求2 +curl http://localhost:8000/v1/completions -H "Content-Type: application/json" -d \ +'{"model": "/home/ckpt/qwen2.5-7b-hf", "prompt": "血液有哪些成分?", "model": "lora2", \ +"max_tokens": 20, "temperature": 0, "top_p": 1.0, "top_k": -1, \ +"repetition_penalty": 1.0}' +``` + +### Function Call +#### Function Call 服务化部署示例 + +**启动服务** +```bash +vllm-mindspore serve /hf_quant_ckpt/V3-0324-A8W8 \ +--trust_remote_code \ +--tensor_parallel_size=16 \ +--max-num-seqs=192 \ +--max_model_len=65536 \ +--max-num-batched-tokens=4096 \ +--block-size=128 \ +--gpu-memory-utilization=0.9 \ +--quantization golden-stick \ +--enable-chunked-prefill \ +--enable-auto-tool-choice \ +--tool-call-parser deepseek_v3 \ +--chat-template tool_chat_template.jinja +``` + +## 混合并行服务化部署示例 + +#### 示例1:Ray启动 +**Step1:主节点启动ray** +```bash +ray start --head --port=