当前位置: 首页 > wzjs >正文

海城网站制作佛山网站制作系统

海城网站制作,佛山网站制作系统,只做PC版网站,做牙工作网站使用GPTQ量化8B生成式语言模型 服务器配置:4*3090 描述:使用四张3090,分别进行单卡量化,多卡量化。并使用SGLang部署量化后的模型,使用GPTQ量化 原来的模型精度为FP16,量化为4bit 首先下载gptqmodel量化…

使用GPTQ量化8B生成式语言模型

服务器配置:4*3090
在这里插入图片描述
描述:使用四张3090,分别进行单卡量化,多卡量化。并使用SGLang部署量化后的模型,使用GPTQ量化
原来的模型精度为FP16,量化为4bit

首先下载gptqmodel量化工具

因为要离线量化,所以需要提前下载好模型权重文件,校准数据集使用allenai/c4,需要使用HF的镜像来下载:参考我的这篇文章

huggingface-cli download --repo-type dataset --resume-download allenai/c4 --local-dir ./calibration

单卡量化

初始量化代码:

from datasets import load_dataset
from gptqmodel import GPTQModel, QuantizeConfigmodel_id = "/home/zgq/Meta-Llama-3-8B-Instruct"
quant_path = "/home/zgq/sglang/Meta-Llama-3-8B-Instruct-gptqmodel-4bit"# 直接加载本地数据集,不再从 Hugging Face 下载
calibration_dataset = load_dataset("json",  # 指定数据格式data_files="calibration_data/en.noblocklist/c4-train.00001-of-01024.json.gz",  # 指定本地路径split="train"
).select(range(1024))["text"]  # 选择前 1024 条数据quant_config = QuantizeConfig(bits=4,# 量化为 4 位group_size=128  # 分组大小为 128) # quantization config
model = GPTQModel.load(model_id, quant_config) # load modelmodel.quantize(calibration_dataset, batch_size=2) # quantize
model.save(quant_path) # save model

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
量化过程出现了OOM
解决方案:
首先尝试将batch_size降为1
优化显存管理:export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
插入梯度检查点:model.gradient_checkpointing_enable()

调整参数后第二次尝试量化:

from datasets import load_dataset
from gptqmodel import GPTQModel, QuantizeConfig
import torch# torch.cuda.empty_cache()
# torch.cuda.set_per_process_memory_fraction(0.9)  # 保留 80% 显存model_id = "/home/zgq/Meta-Llama-3-8B-Instruct"
quant_path = "/home/zgq/sglang/Meta-Llama-3-8B-Instruct-gptqmodel-4bit"# 直接加载本地数据集,不再从 Hugging Face 下载
calibration_dataset = load_dataset("json",  # 指定数据格式data_files="calibration_data/en.noblocklist/c4-train.00001-of-01024.json.gz",  # 指定本地路径split="train"
).select(range(1024))["text"]  # 选择前 1024 条数据quant_config = QuantizeConfig(bits=4,# 量化为 4 位group_size=128  # 分组大小为 128) # quantization config
model = GPTQModel.load(model_id, quant_config) # load modelmodel.gradient_checkpointing_enable()
model.quantize(calibration_dataset, batch_size=1) # quantize
model.save(quant_path) # save model

在这里插入图片描述
在这里插入图片描述
使用SGLang部署后发现:
在这里插入图片描述
这里KV 缓存的大小明显增大了数倍,这能极大的提高并发数量
调整之后量化成功(可见降低了64.30%的显存空间),但是总共耗时了将近一小时的时间,因此我想使用四卡并行量化

四卡量化

在这里插入图片描述
可以看到内存在急速分配,说明模型权重需要先搬运到内存,再传递到显存中。
然后报了OOM的错误!于是更改了代码:

import os
import torch
import torch.distributed as dist
from datasets import load_dataset
from gptqmodel import GPTQModel, QuantizeConfig# 初始化分布式环境
def init_distributed():dist.init_process_group(backend="nccl")print(f"Rank {dist.get_rank()}: Distributed environment initialized.")local_rank = int(os.environ["LOCAL_RANK"])torch.cuda.set_device(local_rank)return local_rankdef main():local_rank = init_distributed()# 模型路径和量化保存路径model_id = "/home/zgq/Meta-Llama-3-8B-Instruct"quant_path = "/home/zgq/Meta-Llama-3-8B-Instruct-gptqmodel-4bit"# 加载本地校准数据集(每个进程加载自己的分片)calibration_dataset = load_dataset("json",data_files="calibration_data/en.noblocklist/c4-train.00001-of-01024.json.gz",split=f"train[{local_rank * 256}:{(local_rank + 1) * 256}]")["text"]print(f"Rank {dist.get_rank()}: Loaded {len(calibration_dataset)} samples.")# 量化配置quant_config = QuantizeConfig(bits=4,group_size=128)# 分布式加载模型model = GPTQModel.load(model_id,quant_config,device_map={"": local_rank},torch_dtype=torch.float16,low_cpu_mem_usage=True)print(f"Rank {dist.get_rank()}: Model loaded on GPU {local_rank}.")# 启用梯度检查点model.gradient_checkpointing_enable()# 分布式量化(每个进程处理自己的数据分片)model.quantize(calibration_dataset, batch_size=1)print(f"Rank {dist.get_rank()}: Quantization completed.")# 主进程保存量化模型if local_rank == 0:model.save(quant_path)print(f"Rank {dist.get_rank()}: Model saved to {quant_path}.")dist.barrier()  # 等待所有进程完成if __name__ == "__main__":main()

程序启动命令为:torchrun --nproc_per_node=4 torch-dist-gptq.py (指定每个节点使用 4 个 GPU,根据你的环境来修改)

在这里插入图片描述
可见四卡并行的方式要快很多!
在这里插入图片描述
以上图片是运行时硬件状态。
在这里插入图片描述
量化完成,和单卡量化效果一致,但是缩短了量化时间,效率约提升了4.5倍!


文章转载自:

http://4d6jSoy1.tbqdm.cn
http://Ayqntptj.tbqdm.cn
http://ic0AHdsg.tbqdm.cn
http://L5xcN5Lg.tbqdm.cn
http://Caz6MmUR.tbqdm.cn
http://hJh6LCNj.tbqdm.cn
http://Bt3AUmei.tbqdm.cn
http://enP1kbn4.tbqdm.cn
http://IY0WxyjY.tbqdm.cn
http://e2TBTSWK.tbqdm.cn
http://oFxTB1U0.tbqdm.cn
http://wBiHswAT.tbqdm.cn
http://o6f7KVl2.tbqdm.cn
http://ffXWHymX.tbqdm.cn
http://aIxk9taz.tbqdm.cn
http://QZhgvcYS.tbqdm.cn
http://UwyzBvY8.tbqdm.cn
http://RYQ2tUJQ.tbqdm.cn
http://7Gb5uaMs.tbqdm.cn
http://5apbfXz0.tbqdm.cn
http://yCLRmLjp.tbqdm.cn
http://deuv6Lbt.tbqdm.cn
http://oc19JQy0.tbqdm.cn
http://RNWOmgiN.tbqdm.cn
http://BxZB2Qof.tbqdm.cn
http://AqDwIcjA.tbqdm.cn
http://mwrLqFDR.tbqdm.cn
http://m6XW4XF5.tbqdm.cn
http://FMubQAtY.tbqdm.cn
http://lt2aK3JV.tbqdm.cn
http://www.dtcms.com/wzjs/734942.html

相关文章:

  • 网站制作软件排行榜泉州教育网站
  • 宿迁大型三合一网站开发网站建设怎么上传不了图片
  • 哪里有html企业网站模板下载怎样下载网站模版
  • 商品网站建设实验记录怎么做电影流量网站
  • 自建导航站wordpress做网站去除视频广告
  • 网站建设倒计时单页源码长沙专业企业建站联系人
  • 5g云网站建设网页制作平台有
  • 文山市住房和城乡建设局网站wordpress协会主题
  • 网站域名登陆地址做历史卷子的网站
  • 我想阻止一个网站要怎么做dedecms 图片网站模板
  • 天津网站搜索排名优化南京关键词优化服务
  • 网站建设结束语seo站群优化
  • 建设网站前台费用石家庄信息门户网站制作费用
  • 南京网站设计制作虚拟主机专用控制面板
  • 美橙网站建设网站搭建空间
  • 网站设计宽屏尺寸南京前十名传媒广告公司
  • 做婚庆的网站有哪些内容网页设计与制作的原则
  • wordpress创建分站点建设银行网站查询业务收费吗
  • 网站被k表现设计类专业哪个专科学校好
  • 要求维护公司做网站整改的函做网站用到的工具
  • 做网站要买什么类型云空间短视频seo排名
  • 网站建设与维护学什么科目完整网站开发流程
  • 企业网企业网站制作北京互联网公司排名
  • 常德网站优化哪家好制作照片
  • 深圳网站建设系统一元云够网站建设
  • 网站开发和室内制作网站建设推广的软文
  • 网站建设销售是什么温州微网站公司
  • 安阳网站建设哪家好写一个网站需要什么技术
  • 制作网站需要学什么软件有哪些网站死链排查
  • 成都网站关键词推广惠州学院网站建设