基于vLLM本地模型部署课程复现 #213
Labels
No Label
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: HswOAuth/llm_course#213
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
简介:vLLM是一个开源的LLM推理和服务引擎,简单、易用、支持主流模型。
vLLM支持主流模型的推理列表
vLLM官方文档
本次课程属于本地大模型部署【推理和优化】。
本文主要讲解vLLM的几种主流使用方式。
环境准备
镜像:z100-vllm
算法:vllm_deploy_04
数据集:huggingface-cache
离线推理(非交互式)
离线推理可以将模型生成当作一个批处理任务,常用在模型评测、RLHF微调训练的过程、以及需要大量内容生成的任务中。
使用单卡推理
当一个模型单卡可以放的下时,就可以使用单卡进行推理。执行python vllm_standalone.py。
基于ray做分布式多卡推理
启动ray
使用如下命令查看ray集群状态:
打开ray页面:
在vscode中点击端口转发可以打开ray的前端界面:
ray的dashboard:
多卡分布式推理
执行python vllm_distributed_ray.py
生成过程:
在线推理(交互式)
vllm也支持模拟openai api,调用本地模型可以直接使用openai的调用方式。
比如我们之前提到的xinference项目,就是将vLLM作为后端引擎集成进来。
这里使用Qwen1.5 0.5B的模型。
启用单卡推理
启动多卡推理
事实上vllm会默认在ray上启动一个任务:
使用OpenAI python SDK调用vllm部署的模型
兼容openai API,直接使用sdk就可以和模型交互。
推理结果:
开源模型的部署及tools使用
部署Qwen2-7B-Instruct
使用如下命令可以部署一个Qwen2-7B-Instruct模型,并模拟openai api对外提供服务
这里
<font style="color:rgb(6, 6, 7);">vllm.entrypoints.openai.api_server</font>
是 vLLM 框架提供的一个模块,用于启动一个兼容 OpenAI API 的 HTTP 服务器。vLLM 是一个高性能的大语言模型服务框架,它允许用户轻松地部署自己的 AI 聊天服务器,并且可以兼容 OpenAI 的 API,这意味着可以轻松地将 vLLM 集成到现有的使用 OpenAI API 的应用中。参数:
--model /dataset/Qwen2-7B-Instruct/
指定了模型文件的路径。--served-model-name Qwen2-7B-Instruct
设置了模型在服务器中的名称。--tensor-parallel-size 4
表明服务器将使用张量并行技术,并且并行大小为 4,这通常用于多 GPU 环境中以提高计算效率。--dtype float16
指定了数据类型为 float16,这有助于减少内存使用,但可能会影响计算精度。tools使用