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的运存要求:

相关推荐
此生决int5 小时前
Linux系列(06)——进程概念(上)
linux·运维·服务器
房开民5 小时前
通俗总结 Octree(八叉树)
java·服务器·数据库
云飞云共享云桌面6 小时前
智能装备数字化转型:云飞云云桌面助力苏州工厂共享 SolidWorks 算力
运维·服务器·3d·自动化·制造
程序员-Benothing6 小时前
Linux进程优先级与调度:nice、renice、CPU亲和性实战
linux·运维·服务器
Imagination官方博客6 小时前
PowerVR 上的 LLM 性能与加速
人工智能·架构·llama·gpu算力
小易老师AI实战6 小时前
大模型Token成本优化指南:彻底解决推理成本高、响应慢问题(企业落地完整版)
大模型·rag·大模型推理·推理加速·kv 缓存·token 优化·llm 降本
程序员-Benothing6 小时前
Linux进程前后台管理:jobs、fg、bg、nohup、disown
linux·运维·服务器
William一直在路上7 小时前
垂直领域大模型训练的一点思考和探索
人工智能·大模型·llm
Imagination官方博客7 小时前
如何在 E 系列GPU上使用 llama.cpp 和 千问3.5 运行 OpenCode
软件构建·llama·gpu算力
企业解惑小助手7 小时前
大型企业终端如何统一管理排障实录:批量终端策略不生效问题排查
运维·服务器·网络·域智盾软件