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

成都网站公司网站建设长春网站建设技术托管

成都网站公司网站建设,长春网站建设技术托管,宁波seo公司联系方式,医院网站建设熊掌号本文翻译整理自:https://huggingface.co/docs/transformers/main/en/quantization/awq 文章目录 一、引言二、加载 autoawq 量化的模型三、Fused modules支持的架构不受支持的架构 四、ExLlamaV2五、CPU 一、引言 Activation-aware Weight Quantization (AWQ) 激活…

本文翻译整理自:https://huggingface.co/docs/transformers/main/en/quantization/awq

文章目录

    • 一、引言
    • 二、加载 autoawq 量化的模型
    • 三、Fused modules
      • 支持的架构
      • 不受支持的架构
    • 四、ExLlamaV2
    • 五、CPU


一、引言

Activation-aware Weight Quantization (AWQ) 激活感知权重量化 保留了对LLM性能很重要的一小部分权重,以将模型压缩到4位,同时性能下降最小。

有几个使用AWQ算法量化模型的库,如llm-awq、autoawq或 optimum-intel 。

transformers支持加载使用 llm-awqautoawq 库量化的模型。

本指南将向您展示如何加载使用 autoawq 量化的模型,但过程与 llm-awq 量化模型相似。


资源:AWQ演示notebook

了解如何量化模型、将量化模型推送到集线器等的更多示例。


二、加载 autoawq 量化的模型

1、运行下面的命令安装autoawq

AutoAWQ将transformers降级到版本4.47.1。如果您想使用AutoAWQ进行推理,您可能需要在安装AutoAWQ后重新安装您的transformers版本。

pip install autoawq
pip install transformers==4.47.1

2、通过检查 模型的 config.json 文件中 quant_method键,标识 AWQ量化模型。

{"_name_or_path": "/workspace/process/huggingfaceh4_zephyr-7b-alpha/source","architectures": ["MistralForCausalLM"],........."quantization_config": {"quant_method": "awq","zero_point": true,"group_size": 128,"bits": 4,"version": "gemm"}
}

3、使用from_pretrained() 加载AWQ量化模型。

出于性能原因,这会自动将其他权重默认设置为fp16。

使用torch_dtype参数 以不同的格式 加载这些其他权重。

如果模型加载到CPU上,则使用device_map参数将其移动到GPU。

from transformers import AutoModelForCausalLM, AutoTokenizer
import torchmodel = AutoModelForCausalLM.from_pretrained("TheBloke/zephyr-7B-alpha-AWQ",torch_dtype=torch.float32,device_map="cuda:0"
)

4、使用attn_implementation启用FlashAtention2以进一步加速推理。

from transformers import AutoModelForCausalLM, AutoTokenizermodel = AutoModelForCausalLM.from_pretrained("TheBloke/zephyr-7B-alpha-AWQ",attn_implementation="flash_attention_2",device_map="cuda:0"
)

三、Fused modules

融合模块提高了准确性和性能。Llama和Mistral架构的AWQ模块开箱即用支持它们,但您也可以将AWQ模块融合到不受支持的架构中。

融合模块不能与 FlashAccention2 等其他优化技术结合使用。


支持的架构

创建一个AwqConfig并设置参数fuse_max_seq_lendo_fuse=True以启用融合模块。

fuse_max_seq_len参数是总序列长度,它应该包括上下文长度和预期的生成长度。将其设置为更大的值以确保安全。

下面的示例融合了TheBloke/Mistral-7B-OpenOrca-AWQ 模型的AWQ模块。

import torch
from transformers import AwqConfig, AutoModelForCausalLMquantization_config = AwqConfig(bits=4,fuse_max_seq_len=512,do_fuse=True,
)
model = AutoModelForCausalLM.from_pretrained("TheBloke/Mistral-7B-OpenOrca-AWQ",quantization_config=quantization_config
).to(0)

TheBloke/Mistral-7B-OpenOrca-AWQ 模型的基准测试为batch_size=1,有和没有融合模块。


未融合模块

Batch SizePrefill LengthDecode LengthPrefill tokens/sDecode tokens/sMemory (VRAM)
1323260.098438.45374.50 GB (5.68%)
164641333.6731.66044.50 GB (5.68%)
11281282434.0631.62724.50 GB (5.68%)
12562563072.2638.17314.50 GB (5.68%)
15125123184.7431.68194.59 GB (5.80%)
1102410243148.1836.80314.81 GB (6.07%)
1204820482927.3335.26765.73 GB (7.23%)

融合模块

Batch SizePrefill LengthDecode LengthPrefill tokens/sDecode tokens/sMemory (VRAM)
1323281.489980.25694.00 GB (5.05%)
164641756.1106.264.00 GB (5.05%)
11281282479.32105.6314.00 GB (5.06%)
12562561813.685.74854.01 GB (5.06%)
15125122848.997.7014.11 GB (5.19%)
1102410243044.3587.73234.41 GB (5.57%)
1204820482715.1189.47095.57 GB (7.04%)

融合和未融合模块的速度和吞吐量也用最佳基准库进行了测试。

前向峰值内存/批量大小


在这里插入图片描述


生成吞吐量/批量大小


在这里插入图片描述


不受支持的架构

对于不支持融合模块的体系结构,创建AwqConfig并在modules_to_fuse中定义自定义融合映射以确定需要融合哪些模块。

下面的示例融合了TheBloke/Yi-AWQ34B模型的AWQ模块。

import torch
from transformers import AwqConfig, AutoModelForCausalLMquantization_config = AwqConfig(bits=4,fuse_max_seq_len=512,modules_to_fuse={"attention": ["q_proj", "k_proj", "v_proj", "o_proj"],"layernorm": ["ln1", "ln2", "norm"],"mlp": ["gate_proj", "up_proj", "down_proj"],"use_alibi": False,"num_attention_heads": 56,"num_key_value_heads": 8,"hidden_size": 7168}
)model = AutoModelForCausalLM.from_pretrained("TheBloke/Yi-34B-AWQ",quantization_config=quantization_config
).to(0)

参数modules_to_fuse应包括以下键。

  • "attention":按以下顺序融合的关注层的名称:查询、键、值和输出投影层。如果不想融合这些层,传递一个空列表。
  • "layernorm":要替换为自定义融合LayerNorm的所有LayerNorm层的名称。如果不想融合这些层,请传递一个空列表。
  • "mlp":您要融合到单个MLP层中的MLP层的名称,顺序为:(门(密集、层、关注后)/上/下层)。
  • "use_alibi":如果您的模型使用ALiBi位置嵌入。
  • "num_attention_heads"”:关注头条号数量。
  • "num_key_value_heads"":应用于实现分组查询关注(GQA)的键值头的数量。

参数值注意力
num_key_value_heads=num_attention_heads多头注意力
num_key_value_heads=1多查询注意力
num_key_value_heads=...分组查询注意力

  • "hidden_size":隐藏表示的维度。

四、ExLlamaV2

ExLlamaV2内核支持更快的预填充和解码。运行下面的命令来安装支持ExLlamaV2的最新版本的autoawq。

pip install git+https://github.com/casper-hansen/AutoAWQ.git

在AwqConfig中设置version="exllama"以启用ExLlamaV2内核。

AMD GPU支持ExLlamaV2。

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, AwqConfigquantization_config = AwqConfig(version="exllama")model = AutoModelForCausalLM.from_pretrained("TheBloke/Mistral-7B-Instruct-v0.1-AWQ",quantization_config=quantization_config,device_map="auto",
)

五、CPU

Intel Extension for PyTorch (IPEX) 旨在实现英特尔硬件的性能优化。运行下面的命令来安装支持IPEX的最新版本的autoawq。

pip install intel-extension-for-pytorch # for IPEX-GPU refer to https://intel.github.io/intel-extension-for-pytorch/xpu/2.5.10+xpu/ 
pip install git+https://github.com/casper-hansen/AutoAWQ.git

version="ipex"中设置AwqConfig以启用 ExLlamaV2 内核。

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, AwqConfigdevice = "cpu" # set to "xpu" for Intel GPU
quantization_config = AwqConfig(version="ipex")model = AutoModelForCausalLM.from_pretrained("TheBloke/TinyLlama-1.1B-Chat-v0.3-AWQ",quantization_config=quantization_config,device_map=device,
)

2025-03-08(六)

http://www.yayakq.cn/news/286837/

相关文章:

  • 网站上传模板后丹阳网站建设公司
  • 网站建设标书范本wordpress免费主机
  • 渭南网站建设价格唐山网站建设500元
  • 简洁企业网站asp建设网站要求哪里备案
  • 凡客诚品网站多语种外贸网站
  • 石龙网站建设兰州网站卡法
  • 网站建设综合训练报告石岩网站设计
  • 成都网站制作龙兵科技旺道营销软件
  • 西安网站制作工程师公司官网单页源码
  • 旅游网站这么做网站空间做邮箱
  • 中国三大门户网站是哪三个渠道网络建设策略
  • 中国做的最好的网站有哪些免费领取永久云服务器
  • 简单网站设计网站网站正在建设中怎么办
  • 网站怎么做舆情监测企业网站的建设哪个好
  • 网站开发公司需要哪些资质video.js wordpress
  • 上海网站设计与制作代发货网站建设
  • vue做网站前台网站底部版权信息格式
  • 网站伪静态如何配置文件怎么做谷歌推广
  • 花之语网页设计代码杭州最专业的seo公司
  • 招远住房和规划建设管理局网站民兵信息化网站建设
  • 静态网站开发课程相关新闻网站微信认证
  • python3 网站开发实例linux 网站备份
  • 做网站手把手客户登记管理系统
  • 昆明购物网站建设好姑娘高清免费观看
  • 广州微信网站建设哪家好手机企业网站如何建设
  • 网站建设课程有哪些收获自己可以进行网站建设吗
  • 网页制作个人主页教程佛山手机网站建设优化
  • 网站与网页之间的区别是什么意思移动网站建设多少钱
  • 网站改造清溪镇网站仿做
  • 普宁17网站一起做网店wordpress 微语