在DeepLn环境中安装VLLM与ChatGLM3

DeepLn | 智慧算力触手可及是一个挺便宜的算力租用平台,里面有大量的显卡可以租用。唯一美中不足的是,提供的pytorch版本低,只支持到2.01,为了匹配vllm,需要手动安装指定版本的pytorch。

vllm介绍

总体而言,vllm的优势有

- vLLM通过PagedAttention机制,可以高效地管理大语言模型的keys和values,显著提高吞吐量。
- memory sharing机制可以实现不同样本间的显存共享,进一步提升吞吐量。
- 使用pip安装vLLM后,可以通过几行代码进行离线推理。
- 也可以启动在线服务,然后通过API调用vLLM。
- vLLM兼容主流的预训练模型,可以不修改模型结构就获得显著的加速效果。
整体来说,vLLM是目前加速大模型推理的最先进解决方案之一,可以达到其他框架的24倍吞吐量提升。

手动安装vllm

vllm版本使用的是cuda12.1,而vllm自带的pytorch版本低,因此需要先卸载旧版本。

pip uninstall torch torchvision torchaudio

安装vllm 0.33,先安装pytorch,然后安装vllm。

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

这里需要设置为清华源,否则安装不成功。

pip3 install torch==2.1.2 --index-url https://download.pytorch.org/whl/cu121
pip3 install vllm

需要注意的是,每次创建环境时,环境都需要重新安装。

可选:qwen量化为vllm支持的awq量化

首先安装autoawq包

pip install autoawq transformers_stream_generator einops tiktoken flash-attn

编写量化脚本

from awq import AutoAWQForCausalLM
from transformers import AutoTokenizer

# 自己定义的本地模型路径
model_path = 'chatglm3-6b/'
quant_path = 'chatglm3-6b-awq'
quant_config = { "zero_point": True, "q_group_size": 128, "w_bit": 4, "version": "GEMM" }

# Load model
model = AutoAWQForCausalLM.from_pretrained(model_path, **{"low_cpu_mem_usage": True})
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)

# Quantize
model.quantize(tokenizer, quant_config=quant_config)

# Save quantized model
model.save_quantized(quant_path)
tokenizer.save_pretrained(quant_path)

整个平台下载速度很快,几分钟就能下载好一个7b的模型。

awq量化是最新的量化技术,解决由于大模型精度降低而导致的智力下降问题。

用3060的话,差不多20分钟。

部署openapi服务器

部署openapi server服务,这里最好设置一个你自己的专属api-key方便调用。

下面是执行的命令

python -m vllm.entrypoints.openai.api_server --model THUDM/chatglm3-6b 

需要注意的是,这里只有实名后,才能开放端口。

开放端口后,尽情享受吧。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AHU 数据库 实验四

【实验名称】 实验4 数据库的嵌套查询和集合查询 【实验目的】 1. 理解并掌握子查询的概念和作用; 2. 掌握DBMS 实现嵌套查询的基本方法和应用; 3. 掌握DBMS 实现集合查询的基本方法和应用; 4. 学习、掌握并熟练…

Spring Boot 面试题及答案整理,最新面试题

Spring Boot中的自动配置是如何工作的? Spring Boot的自动配置是其核心特性之一,它通过以下方式工作: 1、EnableAutoConfiguration注解: 这个注解告诉Spring Boot开始查找添加了Configuration注解的类,并自动配置它们…

Python中random模块:随机数生成与应用

random模块介绍 随机数在计算机编程中扮演着重要的角色,它们被广泛应用于游戏开发、密码生成、仿真等众多领域。 Python提供了丰富而强大的random模块,旨在方便开发者生成高质量的随机数,随机选择和操作数据。 本文将介绍Python中random模…

OB_GINS学习

OB_GINS学习 组合导航中的杆臂测量加速度计的零偏单位转换受到经纬度以及高程影响的正常重力位的计算公式大地坐标系(LBH)向空间直角坐标系(XYZ)的转换及其逆转换导航坐标系(n系)到地心地固坐标系&#xff…

记录一个编译的LLVM 含clang 和 PTX 来支持 HIPIFY 的构建配置

llvm 18 debug 版本 build llvmorg-18.1rc4 debug $ cd llvm-project $ git checkout llvmorg-18.1.0-rc4 $ mkdir build_d $ cd build_d $ mkdir -p ../../local_d cmake \ -DCMAKE_INSTALL_PREFIX../../local_d \ -DLLVM_SOURCE_DIR../llvm \ -DLLVM_ENABLE_PROJECTS&…

深入理解Hive:探索不同的表类型及其应用场景

文章目录 1. 引言2. Hive表类型概览2.1 按照数据存储位置2.2 按照数据管理方式2.3 按照查询优化2.4 按照数据的临时性和持久性 3. 写在最后 1. 引言 在大数据时代,Hive作为一种数据仓库工具,为我们提供了强大的数据存储和查询能力。了解Hive的不同表类型…

Mybatis-plus连接多数据源操作(SQLServer、MySQL数据库)

Mybatis-plus连接多数据源操作&#xff08;SQLServer、MySQL数据库&#xff09; 一、依赖二、yml配置文件三、业务类四、测试 一、依赖 <!--mybatis多数据源--><dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spri…

springboot260火锅店管理系统

火锅店管理系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装火锅店管理系统软件来发挥其高效…

上海雷卯湿敏元器件存储及使用规范

湿敏等级是指材料或产品对湿度变化的敏感程度。它用于评估材料或产品在湿度变化条件下的稳定性和可靠性。 湿敏等级通常通过数字表示&#xff08;如MSL- Moisture Sensitivity Level&#xff09;&#xff0c;从1到6级不等&#xff0c;每个级别代表不同的湿敏程度。较低的级别表…

方程式工具包远程溢出漏洞图形界面版V0.3(内置永恒之蓝、永恒冠军、永恒浪漫等)

Part1 前言 大家好&#xff0c;我是ABC_123。我从年前到现在&#xff0c;一直在整理曾经写过的红队工具&#xff0c;逐步把自己认为比较好用的原创工具发出来给大家用一用&#xff0c;方便大家在日常的攻防比赛、红队评估项目中解放双手&#xff0c;节省时间精力和体力。本期给…

前端WebRTC局域网1V1视频通话

基本概念 WebRTC&#xff08;Web Real-Time Communications&#xff09; 网络实时通讯&#xff0c;它允许网络应用或者站点&#xff0c;在不借助中间媒介的情况下&#xff0c;建立点对点&#xff08;Peer-to-Peer&#xff09;的连接&#xff0c;实现视频流和音频流或者其他任…

机器学习中的经典算法总结

经典算法 有监督算法逻辑回归支持向量机SVM决策树朴素贝叶斯K近邻&#xff08;KNN&#xff09; 无监督算法K-meansPCA主成分分析预留模版 有监督算法 逻辑回归 简介 逻辑回归是机器学习中一种经典的分类算法&#xff0c;通常用于二分类任务&#xff0c;基本思想是构建一个线性…

力扣---简化路径

给你一个字符串 path &#xff0c;表示指向某一文件或目录的 Unix 风格 绝对路径 &#xff08;以 / 开头&#xff09;&#xff0c;请你将其转化为更加简洁的规范路径。 在 Unix 风格的文件系统中&#xff0c;一个点&#xff08;.&#xff09;表示当前目录本身&#xff1b;此外…

ZigBee技术与实践教程(无线传感网技术第三天)

1.MAC层规范 在IEEE802系列标准中&#xff0c;OSI参考模型的数据链路层进一步划分为逻辑链路控制子层和介子访问子层两个子层。MAC子层使用物理层提供的服务实现设备之间的数据帧传输&#xff0c;而LLC在MAC 层的基础上&#xff0c;在设备之间提供面向连接和非连接的服务&…

中国大学生计算机设计大赛--智慧物流挑战赛基础

文章目录 一、Ubuntu基础1.1 基本操作1.2 文本编辑 二、ROS基础介绍2.1 概念与特点2.2 基本结构2.3 创建工程2.4 节点和节点管理器2.5 启动文件 三、ROS通信机制3.1 话题3.2 服务3.3 动作3.4 参数服务器 四、ROS可视化工具4.1 rviz4.2 rqt4.3 tf 五、Python实现简单的ROS节点程…

Vue.js计算属性:实现数据驱动的利器

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

C语言:ctype和string库中的部分常用函数的应用和实现

在编程过程中&#xff0c;我们经常要处理字符和字符串&#xff0c;C语言标准库中就提供了一系列的库函数&#xff0c;便于我们操作库函数。 字符分类函数 C语⾔中有⼀系列的函数是专⻔做字符分类的&#xff0c;也就是⼀个字符是属于什么类型的字符的。这些函数的使⽤都需要包含…

微信小程序跳转到其他小程序

有两种方式&#xff0c;如下&#xff1a; 一、appid跳转 wx.navigateToMiniProgram({appId: 目标小程序appid,path: 目标小程序页面路径,//不配的话默认是首页//develop开发版&#xff1b;trial体验版&#xff1b;release正式版envVersion: release, success(res) {// 打开成功…

STM32 | 库函数与寄存器开发区别及LED等和按键源码(第三天)

STM32 | STM32F407ZE(LED寄存器开发续第二天源码)STM32 第三天 一、 库函数与寄存器开发区别 1.1 寄存器 寄存器开发优点 直接操作寄存器,运行效率高。 寄存器开发缺点 1、开发难度大,开发周期长 2、代码可阅读性差,可移植差 3、后期维护难度高 1.2库函数 库函数开…

Vue+SpringBoot打造农家乐订餐系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户2.2 管理员 三、系统展示四、核心代码4.1 查询菜品类型4.2 查询菜品4.3 加购菜品4.4 新增菜品收藏4.5 新增菜品留言 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的农家乐订餐系统&#xff0c…