vllm的使用方式,入门教程

vLLM是一个由伯克利大学LMSYS组织开源的大语言模型推理框架,旨在提升实时场景下的大语言模型服务的吞吐与内存使用效率。以下是详细的vLLM使用方式和入门教程:

1. 前期准备

在开始使用vLLM之前,建议先掌握一些基础知识,包括操作系统原理、网络编程、数据库管理等。这些知识有助于理解vLLM的工作机制,并为后续深入学习奠定基础。

2. 安装vLLM

2.1 环境配置
  • 操作系统:Linux或Windows(推荐Linux)
  • Python版本:3.8及以上
  • CUDA版本:7.0及以上(推荐12.1)
  • GPU:至少7.0计算能力的GPU(如V100、T4、RTX40xx、A100、L4、H100等)
2.2 安装步骤
  1. 创建conda环境(可选):
bash 复制代码
   conda create --name myenv python=3.9 -y
   conda activate myenv
  1. 安装vLLM
bash 复制代码
   pip install vllm
  1. 检查CUDA版本
bash 复制代码
   nvcc --version
  1. 验证安装
    运行以下命令检查vLLM是否安装成功:
python 复制代码
   import vllm
   print(vllm.__version__)

3. 启动vLLM服务器

3.1 启动本地服务器

使用以下命令启动vLLM服务器:

bash 复制代码
python -m vllm.entrypoints.openai_server --model lmsys/vicuna-7b-v1.3 --server-kind local

此命令会启动一个本地服务器,监听指定的模型和端口。

3.2 启动云平台服务器

如果使用OpenBayes云平台,可以直接在平台上操作,跳过本地安装步骤。具体步骤如下:

  1. 登录OpenBayes平台。
  2. 在"公共教程"中选择"vLLM 入门零基础分步指南"教程。
  3. 克隆教程到自己的容器中。
  4. 按照教程中的步骤进行操作。

4. 发出请求

4.1 使用Python代码发送请求
python 复制代码
import vllm

prompts = ["Hello, my name is", "The capital of France is"]
model = vllm.LLM(model="lmsys/vicuna-7b-v1.3")
outputs = model.generate(prompts)

for output in outputs:
    print(output.text)

此代码会生成指定提示词的文本输出。

4.2 使用OpenAI API兼容方式

vLLM支持与OpenAI API兼容的查询格式,可以通过以下命令启动服务:

bash 复制代码
python - m vllm.entrypoints.openai_server --model lmsys/vicuna-7b-v1.3 --server-kind openai

然后使用Python请求库或OpenAI客户端向vLLM服务器发送请求,获取模型输出。

5. 安全设置

默认情况下,vLLM服务器没有身份验证。为了安全起见,建议设置API密钥,并在请求中包含该密钥。

6. 高级特性

6.1 PagedAttention

vLLM采用了全新的注意力算法「PagedAttention」,有效管理注意力键和值,提升了吞吐量和内存使用效率。PagedAttention使得vLLM在吞吐量上比HuggingFace Transformers高出24倍,文本生成推理(TGI)高出3.5倍。

6.2 连续批处理输入请求

vLLM支持连续批处理输入请求,进一步优化了推理性能。

6.3 模型微调与优化

vLLM支持模型微调和优化,包括量化、剪枝等技术,以减少运行模型所需的内存空间。

7. 实践案例

通过实际案例加深理解:

  1. 本地部署:在本地环境中安装和运行vLLM,测试不同模型的性能。
  2. 云平台部署:在OpenBayes等云平台上部署vLLM,体验云原生环境下的高效推理。
  3. 集成应用:将vLLM与Hugging Face模型无缝集成,开发个性化的大语言模型应用。

8. 总结

vLLM是一个强大且易于使用的推理框架,适用于多种场景。通过上述步骤,您可以快速上手并开始使用vLLM进行大语言模型推理。如果遇到问题,可以参考官方文档或社区资源进行解决。

vLLM支持多种模型微调和优化技术,具体包括以下几种:

  1. 全参数微调(Full-Parameter Fine-Tuning)

    • vLLM支持对预训练模型进行全参数微调,以适应特定任务或数据集。这种方法通过调整所有模型参数来优化性能,适用于需要大量数据和计算资源的场景。
  2. LoRA(Low-Rank Adaptation)

    • LoRA是一种高效、快速且参数效率高的微调方法,特别适用于资源有限的环境,如移动应用或边缘设备。LoRA通过矩阵降维技术更新模型权重,显著提高内存和计算效率,减少参数数量。
  3. 量化(Quantization)

    • vLLM支持多种量化技术,包括GPTQ、AWQ、SqueezeLLM和FP8 KV缓存。这些技术通过将模型参数转换为低精度数据类型(如8位或4位)来减少内存使用和加快计算速度。
  4. Paged Attention

    • vLLM采用Paged Attention技术,有效管理KV Cache内存,支持动态批处理请求,优化CUDA内核以充分利用GPU计算能力。
  5. 混合精度训练(Mixed Precision Training)

    • vLLM支持混合精度训练,通过使用半精度(FP16)和浮点(FP32)模型加速训练过程,同时保持较高的计算效率。
  6. 多模态支持

    • vLLM支持多模态输入,可以处理文本和图像等多模态数据。例如,MiniCPM-V模型可以在vLLM框架下进行微调,以适应视觉语言任务。
  7. 指令微调(Instruction Tuning)

    • vLLM支持指令微调,通过调整模型以更好地理解和执行特定的指令。这种方法在自然语言处理任务中非常有效。
  8. 前缀微调(Prefix Tuning)

    • 前缀微调是一种通过添加固定长度的前缀向量来调整模型的方法,适用于需要快速适应新任务的场景。
  9. 提示微调(Prompt Tuning)

    • 提示微调通过调整输入提示来优化模型的响应能力,适用于对话系统和其他需要灵活生成文本的任务。
  10. 混合专家(MoE, Mixture of Experts)

  • vLLM支持混合专家模型,通过将模型分解为多个专家模块,每个模块处理特定类型的输入,从而提高模型的性能和效率。
  1. 多卡部署和GPU+CPU混合部署
  • vLLM支持多卡部署和GPU+CPU混合部署,以充分利用硬件资源,提高推理速度和吞吐量。
  1. 流式输出(Streaming Output)
  • vLLM支持流式输出,适用于实时文本处理场景,可以连续处理接收到的请求,而不需要一次性加载所有数据。
  1. 兼容性与集成
  • vLLM与Hugging Face模型无缝集成,支持多种解码算法和分布式推理,兼容OpenAI API服务器接口。

vLLM通过多种微调和优化技术,提供了高效、灵活且强大的模型推理和服务能力,适用于各种应用场景。

在实际应用中,最常用于vLLM的微调技术是LoRA(Low-Rank Adaptation)。LoRA是一种参数高效微调(PEFT)方法,通过训练小型调整器来适应特定任务,从而显著减少计算资源和内存需求,同时保持模型质量。

LoRA微调技术的优势在于其高效性和灵活性。它允许在少量参数的情况下进行微调,这使得它特别适合于资源受限的环境和大规模模型的部署。例如,LoRA可以将大型基础模型的参数减少到原始模型的1%左右,同时在推理阶段共享基础模型的权重,从而实现高效的推理和部署。

LoRA微调技术还被广泛应用于多种场景,包括视觉语言模型(VLM)的安全性改进、多模态任务的优化以及特定领域的模型定制。例如,在安全性改进方面,通过LoRA微调可以显著提高视觉语言模型的安全性。在多模态任务中,LoRA也被用于优化视觉问答(VQA)任务的性能。

LoRA微调技术因其高效性、灵活性和广泛的应用场景,成为实际应用中最常用于vLLM的微调技术。

相关推荐
@Mr_LiuYang1 小时前
状态栏动态上下文信息追加到Agent --《深入理解 AI Agent :设计原理与工程实践》实验2-8
人工智能·大模型·动态上下文·状态栏信息追加
小七-七牛开发者6 小时前
Codex 实践系列 Vol.04:用 Goal 和 Plan 管住一个长任务
ai·大模型·agent·claude·token·工作流·claudecode·ai coding
熊猫钓鱼>_>7 小时前
AI 3D 虚拟盲盒工坊:用腾讯云混元3D + TTS Skills 打造会说话的三维收藏品
人工智能·大模型·llm·agent·tts·混元3d·多skill协同
thesky1234569 小时前
27届大模型面试准备(二十五):推理服务化与投机解码——vLLM、PagedAttention、Medusa 与连续批处理
大模型·vllm·eagle·pagedattention·medusa·推理服务化·投机解码
NutShell Wang9 小时前
国产全模态开源潮:从语言模型到视频模型,中国开源生态再升级
人工智能·语言模型·开源·大模型·音视频·多模态·vibe coding
赵大仁10 小时前
Tool Calling 工程化:Schema 设计、鉴权、失败重试
ai·大模型·agent·工程化·tool calling
码字的特恩10 小时前
微软确认暂不为 Windows 11 加入透明效果自定义功能,建议用户使用第三方工具
人工智能·windows·算法·microsoft·计算机·大模型·编程
程序猿编码11 小时前
不用PyTorch,不用CUDA,我用C++手写了一个能跑GPT和Whisper的推理库
c++·pytorch·gpt·大模型·whisper
AI大佬的小弟12 小时前
大模型名词精讲06:Top-P(核采样)
大模型·top-p·temperature·ai入门·核采样·采样策略·ai调参