LLM大模型推理加速 vLLM;Qwen vLLM使用案例

news2024/11/29 11:56:41

参考:
https://github.com/vllm-project/vllm
https://zhuanlan.zhihu.com/p/645732302

https://vllm.readthedocs.io/en/latest/getting_started/quickstart.html ##文档

1、vLLM

这里使用的cuda版本是11.4,tesla T4卡
在这里插入图片描述

加速原理:
PagedAttention,主要是利用kv缓存
在这里插入图片描述

2、qwen测试使用:

##启动正常api服务
python -m vllm.entrypoints.api_server  --model  ./qwen-6b-model --swap-space 16  --disable-log-requests --host 192***.14 --port 10860 --max-num-seqs 
256 --trust-remote-code --tensor-parallel-size 2  



##启动openai形式  api服务
python -m vllm.entrypoints.openai.api_server  --model  ./qwen-6b-model --swap-space 16  --disable-log-requests --host 1***.14 --port 10860 --max-nu
m-seqs 256 --trust-remote-code --tensor-parallel-size 2    




在这里插入图片描述

api访问(服务端用的正常api服务第一个):

import requests
import json
# from vllm import LLM, SamplingParams

headers = {"User-Agent": "Test Client"}
pload = {
        "prompt": "<|im_start|>system\n你是一个人工智能相关的专家,名字叫小杰.<|im_end|>\n<|im_start|>user\n介绍下深度学习<|im_end|>\n<|im_start|>assistant\n",
        "n": 2,
        "use_beam_search": True,
        "temperature": 0,
        "max_tokens": 16,
        "stream": False,
        "stop": ["<|im_end|>", "<|im_start|>",]
    }
response = requests.post("http://1***:10860/generate", headers=headers, json=pload, stream=True)
print(response)
print(response.content)
print(response.content.decode())

在这里插入图片描述
如果要只输出一个答案(注释掉# “use_beam_search”: True,),答案长一些( “max_tokens”: 800,)等,需要更改请求参数:

import requests
import json
# from vllm import LLM, SamplingParams

headers = {"User-Agent": "Test Client"}
pload = {
        "prompt": "<|im_start|>system\n你是一个人工智能相关的专家,名字叫小杰.<|im_end|>\n<|im_start|>user\n介绍下深度学习<|im_end|>\n<|im_start|>assistant\n",
        "n": 1,
        # "use_beam_search": True,
        "temperature": 0,
        "max_tokens": 800,
        "stream": False,
        "stop": ["<|im_end|>", "<|im_start|>",]
    }
response = requests.post("http://192.168.19.14:10860/generate", headers=headers, json=pload, stream=True)
print(response)
# print(response.content)
print(response.content.decode())

在这里插入图片描述

问题

1、现在中文qwen模型运行返回的基本都是乱码,不知道是不是vLLM支持的问题?

在这里插入图片描述
解决方法:(qwen需要构造输入格式)
https://github.com/vllm-project/vllm/issues/901

qwen_vllm1.py

from vllm import LLM, SamplingParams
from transformers import AutoModelForCausalLM, AutoTokenizer
import time

model_path=r"/mnt/data/loong/qwen-6b-model"
model = LLM(model=model_path, tokenizer=model_path,tokenizer_mode='slow',tensor_parallel_size=2,trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained(model_path, legacy=True, trust_remote_code=True)
sampling_params = SamplingParams(temperature=0.9,stop=["<|im_end|>", "<|im_start|>",],max_tokens=400)
start=time.time()
prompt_before = '<|im_start|>system\n你是一个人工智能相关的专家,名字叫小杰.<|im_end|>\n<|im_start|>user\n'
prompt_after = '<|im_end|>\n<|im_start|>assistant\n'
prompts = ["你好!","介绍下深度学习","写一个python快排算法","以中秋节写一首诗"]
prompts = [prompt_before + x + prompt_after for x in prompts]

outputs = model.generate(prompts, sampling_params)
end = time.time()
for output in outputs:
    prompt = output.prompt
    generated_text = output.outputs[0].text
    length = len(generated_text)
    print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
    print(end-start)
    cost = end-start
    print(f"{length/cost}tokens/s")

运行:python qwen_vllm1.py
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/975449.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

项目招标投标公众号小程序开源版开发

项目招标投标公众号小程序开源版开发 以下是一个招标投标公众号小程序的功能列表&#xff1a; 用户注册与登录&#xff1a;用户可以注册账号并登录公众号小程序。项目发布&#xff1a;用户可以发布招标项目的详细信息&#xff0c;包括项目名称、招标单位、项目描述、招标要求…

巨人互动|游戏出海H5游戏出海规模如何?

H5游戏出海是指将H5游戏推广和运营扩展到国外市场的行为&#xff0c;它的规模受到多个因素的影响。本文小编讲一些关于H5游戏出海规模的详细介绍。 1、市场规模 H5游戏出海的规模首先取决于目标市场的规模。不同国家和地区的游戏市场规模差异很大&#xff0c;有些市场庞大而成…

error:03000086:digital envelope routines::initialization error

项目背景 前端vue项目启动突然报错error:03000086:digital envelope routines::initialization error 我用的开发工具是vscode&#xff0c;node版本是v18.17.0 前端项目版本如下↓ 具体报错如下↓ 报错原因 node版本过高 解决方法 1输入命令 $env:NODE_OPTIONS"--op…

cron介绍

cron表达式在线生成 在使用定时调度任务的时候&#xff0c;我们最常用的&#xff0c;就是cron表达式了。通过cron表达式来指定任务在某个时间点或者周期性的执行。 cron表达式的组成 cron表达式是一个字符串&#xff0c;由6到7个字段组成&#xff0c;用空格分隔。其中前6个字…

融云观察:国内外社交应用差异分析,如何更快补齐功能和切换交互?

9 月 21 日&#xff0c;融云直播课 社交泛娱乐出海最短变现路径如何快速实现一款 1V1 视频社交应用&#xff1f; 欢迎点击上方小程序报名~ 本文中&#xff0c;我们将通过对 WhatsApp、微信、Telegram、Discord 几大社交软件的主要功能和交互体验对比&#xff0c;解析社交软件…

【AIGC专题】Stable Diffusion 从入门到企业级应用0414

一、前言 本文是《Stable Diffusion 从入门到企业级应用实战》系列的第四部分能力进阶篇《Stable Diffusion ControlNet v1.1 图像精准控制》的第0414篇 利用Stable Diffusion ControlNet 法线贴图模型精准控制图像生成。本部分内容&#xff0c;位于整个Stable Diffusion生态体…

融云出海:社交泛娱乐出海,「从 0 到 1」最全攻略

9 月 21 日&#xff0c;融云直播课社交泛娱乐出海最短变现路径如何快速实现一款 1V1 视频社交应用&#xff1f; 欢迎点击上方小程序报名~ 本期我们翻到《地图》的实践篇&#xff0c;从赛道/品类选择、目标地区适配、用户增长、变现模式、本地化运营、跨国团队管理等方面完整描绘…

大健云仓:股价正在艰难反弹,被严重低估了

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 业务和基本面 大健云仓&#xff08;GCT)是一家从事大型家居、家用电器、健身器材和园艺等国际大件商品出口的B2B交易平台&#xff0c;是全球领先的国际贸易数字化服务商。依靠国际化商业架构&#xff0c;自有全球化物流仓储…

Ubuntu20.04同时安装ROS1和ROS2

Ubuntu20.04同时安装ROS1和ROS2 Excerpt 每版的Ubuntu系统版本都有与之对应ROS版本的&#xff0c;每一版ROS都有其对应版本的Ubuntu版本&#xff0c;不可随便装&#xff0c;ubuntu20.04对应ROS1 noetic和ROS2 foxy版本。_ros1和ros2共存 Ubuntu20.04同时安装ROS1和ROS2共存 文…

MES管理系统对电子企业来说有什么优点

引言&#xff1a;在电子制造企业中&#xff0c;MES管理系统已经成为提高生产效率、降低成本、提高订单履行速度和准确性的重要工具。电子企业MES管理系统是一套集成的信息系统&#xff0c;用于监控和控制电子企业的生产过程。本文将探讨MES管理系统对于电子企业来说有哪些优点。…

多线程场景下谨慎使用@Transactional注解,你不信我也没办法

最近遇到一个很诡异的bug&#xff0c;觉得很有趣也很值得分享&#xff0c;于是想写篇文章记录下来&#xff0c;希望有缘人看到以后少踩坑~ 先简单说下场景&#xff1a;有个任务平台&#xff0c;功能很多但我们只关注 提交任务和取消任务 两个功能&#xff0c;并且取消任务后会有…

全民拼购模式:美妆行业的新机遇和挑战

美妆是一个充满创意和变化的行业&#xff0c;每个人都想拥有自己独特的美丽风格。但是&#xff0c;美妆产品的价格和品质却不尽相同&#xff0c;很多消费者在购买时会遇到困惑和不满。有没有一种方法&#xff0c;可以让消费者以更低的价格买到更好的美妆产品&#xff0c;同时还…

八个针对高级职位的高级 JavaScript 面试题

JavaScript 是一种功能强大的语言&#xff0c;是网络的主要构建块之一。这种强大的语言也有一些怪癖。例如&#xff0c;您是否知道 0 -0 的计算结果为 true&#xff0c;或者 Number("") 的结果为 0&#xff1f; 问题是&#xff0c;有时这些怪癖会让你摸不着头脑&…

了解 glTF 2.0 格式

推荐&#xff1a;使用 NSDT场景编辑器快速搭建3D应用场景 介绍 glTF 代表 GL 传输格式。 glTF 是一种用于存储和加载 3D 场景的标准化文件格式&#xff0c;其基本目的是由 3D 创建工具轻松生成并被任何图形应用程序使用&#xff0c;无论使用何种 API&#xff0c;处理最少。 …

软考(1)-面向对象的概念

目录 一. 软考基本信息 1. 软考时间&#xff1a; 2. 软考科目&#xff1a; 3.专业知识介绍 -- 综合知识考点分布 4. 专业介绍 -- 软件设计考点分布 二. 面向对象概念 1. 封装 考点一&#xff1a;对象 考点二&#xff1a;封装private 2. 继承 考点三&#xff1a;类 考…

python初阶

基本类型 int float str bool list--列表 [1,2,3] tuple--元组 (1,2,3) set---集合 {1,2,3} dict---字典 {1&#xff1a;”python","acwing":2,3:4.0}int支持高精度&#xff0c;没有大小限制 赋值 a3 b3.0 c‘s’ d“asdf” 单引号和双引号是没有区别…

macos 不支持svn安装

macos 10.13可能不支持svn命令,所以要安装 xcode-select --install 弹窗在线安装失败的话只能手动下载安装 打开:Sign In - Apple 搜索Command Line Tools (macOS 10.13) 下载9.4.1版本直接安装后即可

每天一个工业通信协议(4)2023.8.30 (I2C接口)

文章目录 参考文献1.I2C介绍2.I2C接口2.1 位传输,识别2.2 传输数据3.I2C的电气连接参考文献 广州周立功单片机发展有限公司 《I2C总线规范》 1.I2C介绍 为了使这些相似之处对系统设计者和器件厂商都得益 而且使硬件效益最大电路最简单 Philips 开发了一个简单的双向两线总线…

L1-012 计算指数 C++

#include<iostream> #include<math.h> using namespace std; int main() {int n;int ret;cin >> n;if (n < 10) {ret pow(2, n);cout << "2^" << n << " " << ret<<endl;}return 0; } 所用知识点 …

入选VLDB 2023! OceanBase 4.0单机分布式一体化研究成果获国际顶会认可

近日&#xff0c;国际顶级数据库学术会议 VLDB 2023 在加拿大温哥华开幕。OceanBase 研究成果论文 “OceanBase Paetica: A Hybrid Shared-nothing/Shared-everything Database for Supporting Single Machine and Distributed Cluster” 被 VLDB 2023 收录&#xff01;相继 20…