使用vllm部署大语言模型

vLLM是一个快速且易于使用的库,用于LLM(大型语言模型)推理和服务。通过PagedAttention技术,vLLM可以有效地管理注意力键和值内存,降低内存占用和提高计算效率。vLLM能够将多个传入的请求进行连续批处理,从而提高整体处理速度。

环境

Lniux操作系统,2张3090,cuda版本是12.2
在这里插入图片描述

安装vllm

通过pip安装比较简单:

# 这里先创建一个conda虚拟环境,没安装conda也可忽略
conda create -n myenv python=3.10 -y
conda activate myenv
# 正式安装
pip install vllm

启动vllm的http服务

python3 -m vllm.entrypoints.openai.api_server --host 0.0.0.0 --port 8900  --model /home/xxxx/model/Baichuan2-13B-Chat --trust-remote-code  --tensor-parallel-size 2    --gpu-memory-utilization 0.90

参数解释

  • host和port指定监听的地址和端口
  • –model指定模型路径
  • –tensor-parallel-size指定显卡数量
  • –gpu-memory-utilization指定显存占用比例

访问服务

POST访问的url: http://10.20.xx.xx:8900/v1/completions
IP替换成实际的就行。json参数

{
 "prompt": "你好",
 "model": "/home/xxx/model/Baichuan2-13B-Chat",
 "max_tokens": 1024,
 "stream": false
}

测试代码

import requests
import json

url = "http://10.20.xx.xx:8900/v1/completions"

data = {
 "prompt": "你好",
 "model": "/home/xxx/model/Baichuan2-13B-Chat",
 "max_tokens": 512,
#  "temperature": 0.2,
#  "top_k": 5,
#  "top_p": 0.95,
 "stream": False
}

response = requests.post(url, json=data, stream=True)
if response.status_code != 200:
    print(f"failed:status_code={response.status_code}")
else:
    json_response=json.loads(response.text)
    print(f"json_response:{json_response}")
    result_str=json_response["choices"][0]["text"]
    print(f"result_str:{result_str}")

post请求的body中的"model"字段值,需要与启动openai.api_server服务指定的model字段一致。

参考资料

vllm github

vllm在线文档

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值