chatglm本地服务器大模型量化cpu INT4 INT8 half float运行、多卡多GPU运行改这一条指令就行啦!

一、ChatGLM3的几种推演方式

ChatGLM3常规方案的GPU推演中half和float是两种最常用的格式,half格式占13GB显存,float格式占40GB显存。此外还提供了几种GPU量化格式的推演:INT4和INT8量化。

CPU版本的ChatGLM3推演:

python 复制代码
model = AutoModel.from_pretrained(model_dir, trust_remote_code=True).cpu().float()

INT4版本的ChatGLM3推演:(不是所有的硬件都支持INT4操作)

python 复制代码
model = AutoModel.from_pretrained(model_dir, trust_remote_code=True).quantize(4).cuda()

INT8版本的ChatGLM3推演:

python 复制代码
model = AutoModel.from_pretrained(model_dir, trust_remote_code=True).quantize(8).cuda()

half版本的ChatGLM3推演:

python 复制代码
model = AutoModel.from_pretrained(model_dir, trust_remote_code=True).half().cuda()

float版本的ChatGLM3推演:

python 复制代码
model = AutoModel.from_pretrained(model_dir, trust_remote_code=True).float().cuda()

二、多卡推演

由于高精度的float推演形式需要较大的显存(40G),往往一张显卡很难满足其生产力需求,这时我们就可以使用多张显卡同时进行推演运算,而实现多卡推演的方式其实也特别简单。我们在这采取最简单的一种方式,就是在上述代码中加上一句device_map="auto"就可以了。

例:

python 复制代码
model = AutoModel.from_pretrained(MODEL_PATH, trust_remote_code=True, device_map="auto").float()

这时我们将float量化的模型启动起来,新建一个terminal窗口输入nvidia-smi -l 2便可查看各显卡的使用情况:

bash 复制代码
nvidia-smi -l 2

就可以看到三张显卡都自动分配运行起来了以满足40G的运存要求:

相关推荐
夫唯不争,故无尤也5 分钟前
Ubuntu阿里云服务器一键安装RustDesk指南
服务器·ubuntu·阿里云
Web极客码42 分钟前
如何在WordPress中添加动态内容
服务器·前端·wordpress
星恒随风1 小时前
Linux 权限详解:从 rwx、chmod 到 umask、目录权限与粘滞位
linux·运维·服务器·笔记·学习
阳光九叶草LXGZXJ2 小时前
达梦数据库-报错-12-[-7184]:对象定义[XXX]被修改,版本检查失败
linux·运维·服务器·数据库·sql·学习
JXCY13S5052 小时前
集群及lvs基础知识
运维·服务器
j7~3 小时前
【Linux】二十六.线程篇三《Linux多线程编程:线程控制、线程ID以及进程地址空间分布、线程局部存储__thread以及clone系统调用》---详解
linux·运维·服务器·开发语言·c++·多线程编辑·线程的控制
PC2005-cloud10 小时前
博文已索引但不展示:一次 Bing SEO 问题排查记录
服务器·人工智能
沸速存储10 小时前
整机瓶颈判断思路,自上而下定位卡顿根源
运维·服务器·电脑·内容运营
乌萨奇也要立志学C++11 小时前
【Linux】网络基础 从零理解网络通信:局域网、跨网传输与 Socket 预备知识
linux·服务器·网络
2601_9657984714 小时前
Is Hygia Good for Maid & Janitorial Sites? Technical Audit
服务器·网络·数据库