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

网站推广的一般方式黄山网络推广哪家好

网站推广的一般方式,黄山网络推广哪家好,网站建设与管理适合女生学吗,东莞高端网站建设公司哪家好大语言模型量化的目的是减少模型的计算资源需求和存储占用#xff0c;同时尽量保持模型的性能。以下是几种常见的量化方法的原理#xff1b; 1. GPTQ (Gradient-based Post-training Quantization) GPTQ 是一种基于梯度的后训练量化方法#xff0c;主要目的是在减少浮点计…大语言模型量化的目的是减少模型的计算资源需求和存储占用同时尽量保持模型的性能。以下是几种常见的量化方法的原理 1. GPTQ (Gradient-based Post-training Quantization) GPTQ 是一种基于梯度的后训练量化方法主要目的是在减少浮点计算时尽量保持模型的性能。这种方法对大语言模型的量化尤其有效适用于 8-bit 或更低的量化需求。 原理 后训练量化模型已经训练完毕不需要重新训练只需在训练后对权重进行量化。梯度校正在进行量化的过程中GPTQ 通过优化目标函数对量化误差进行最小化。它通过梯度优化调整量化时的权重误差使得量化后模型的表现与未量化模型尽可能接近。误差补偿由于量化不可避免地引入误差GPTQ 采用了误差反馈机制将量化过程中产生的误差传播到后续的层进行补偿从而减少累积误差对模型输出结果的影响。 优点 不需要额外的训练数据只使用训练后的模型即可。相较于传统的直接量化方法如固定比特宽度量化GPTQ 的精度损失较小特别适合复杂模型。 假设量化 LLaMA 模型以下是一个基本的示例代码 # # 环境安装 # pip install transformers accelerate # pip install githttps://github.com/qwopqwop200/GPTQ-for-LLaMa.gitimport torch from transformers import AutoModelForCausalLM, AutoTokenizer from gptq import GPTQ# 选择模型你可以使用 LLaMA 或其他支持的模型 model_name huggingface/llama# 加载预训练模型和分词器 tokenizer AutoTokenizer.from_pretrained(model_name) model AutoModelForCausalLM.from_pretrained(model_name, torch_dtypetorch.float16)# 初始化 GPTQ quantizer GPTQ(model)# 设置量化位数比如8-bit量化 W_BITS 8# 开始量化模型 quantizer.quantize(w_bitsW_BITS, layer_types[self_attn, mlp])# 生成量化后的模型 quantized_model quantizer.finish()# 测试模型推理生成文本 input_text What is the capital of France? inputs tokenizer(input_text, return_tensorspt) outputs quantized_model.generate(**inputs, max_new_tokens20)# 解码输出 decoded_output tokenizer.decode(outputs[0], skip_special_tokensTrue) print(decoded_output) 2. GGUF (Generalized Global Uniform Quantization Framework) GGUF 是一种通用的全局统一量化框架专门设计用于处理大规模神经网络。它通常采用全局统一量化策略即对整个模型的权重或激活值采用相同的量化参数保持模型的一致性。 原理 全局量化将整个模型中的所有参数统一映射到固定的范围比如使用 8-bit 或 4-bit 表示所有的浮点数。它假设模型的所有层或某一类参数具有相似的分布从而可以使用相同的量化范围。均匀量化所有的数值都被线性地映射到一个均匀的范围。这种方式计算效率高尤其适合硬件加速器。权重重定标由于采用统一量化策略GGUF 通常会引入一个缩放因子用来在推理阶段重定标量化后的数值以避免数值溢出或精度过低的问题。 优点 简单且高效适用于低延迟推理场景。算法计算复杂度低适合部署在资源有限的硬件上。 缺点 由于全局采用统一的量化范围对于模型某些权重分布极端的层来说精度损失可能较大 演示如何对 Hugging Face 上的 GPT-2 模型进行 8-bit 全局统一量化 import torch from transformers import GPT2Tokenizer, GPT2LMHeadModel from torch.quantization import QuantStub, DeQuantStub, quantize_dynamic# 加载 GPT2 模型和分词器 model_name gpt2 tokenizer GPT2Tokenizer.from_pretrained(model_name) model GPT2LMHeadModel.from_pretrained(model_name)# 打印原始模型的大小 print(fOriginal model size: {model.num_parameters()} parameters)# 模型准备将全局所有层量化使用动态量化 quantized_model quantize_dynamic(model, # 要量化的模型{torch.nn.Linear}, # 量化哪些层这里是线性层dtypetorch.qint8 # 量化数据类型这里使用 8-bit 量化 )# 打印量化后的模型大小 print(fQuantized model size: {sum(p.numel() for p in quantized_model.parameters())} parameters)# 测试量化后的模型生成文本 input_text Once upon a time inputs tokenizer(input_text, return_tensorspt) outputs quantized_model.generate(**inputs, max_new_tokens50)# 解码输出 generated_text tokenizer.decode(outputs[0], skip_special_tokensTrue) print(Generated text:, generated_text)3. AWQ (Activation-aware Quantization) AWQ 是一种关注激活值的量化方法主要在量化过程中考虑了激活值分布对模型性能的影响。这种方法通过分析激活值的分布特性在量化过程中对激活值进行适应性处理从而提高量化后模型的准确性。 原理 激活值感知在对权重进行量化的同时AWQ 也会对每一层的激活值分布进行分析。在某些层激活值可能呈现出不均匀或长尾分布导致量化过程中精度下降。AWQ 对这些激活值分布进行感知并自适应调整量化策略。非均匀量化在量化激活值时AWQ 并不采用线性均匀量化而是针对不同的激活值范围选择不同的量化尺度。这样可以更好地捕捉激活值的细节减少量化误差。动态缩放通过动态调整每层的量化缩放因子使得量化后的激活值分布尽量保持和原始模型一致。 优点 在模型的不同层次灵活调整量化策略减少精度损失。适合模型推理阶段需要高精度的场景。 缺点 相比全局统一量化计算复杂度略高可能需要更多的计算资源。 import torch from transformers import GPT2Tokenizer, GPT2LMHeadModel from torch.quantization import QuantStub, DeQuantStub, prepare_qat, convert# 加载 GPT-2 模型和分词器 model_name gpt2 tokenizer GPT2Tokenizer.from_pretrained(model_name) model GPT2LMHeadModel.from_pretrained(model_name)# 定义量化模块 class QuantizedGPT2(torch.nn.Module):def __init__(self, model):super(QuantizedGPT2, self).__init__()self.quant QuantStub() # 用于激活值的量化self.model modelself.dequant DeQuantStub() # 用于激活值的反量化def forward(self, input_ids):# 对输入的激活值进行量化quantized_inputs self.quant(input_ids)outputs self.model(input_idsquantized_inputs)# 对输出进行反量化return self.dequant(outputs.logits)# 将模型包装在量化模块中 quantized_model QuantizedGPT2(model)# 量化感知训练准备QAT quantized_model.qconfig torch.quantization.get_default_qat_qconfig(fbgemm)# 准备 QAT quantized_model prepare_qat(quantized_model, inplaceTrue)# 模拟训练可以加载现有权重并继续训练 # 这里使用了一些样本数据 input_text What is the capital of France? inputs tokenizer(input_text, return_tensorspt)[input_ids] quantized_model.train()for _ in range(10): # 模拟训练步骤outputs quantized_model(inputs)loss torch.nn.functional.cross_entropy(outputs.view(-1, outputs.size(-1)), inputs.view(-1))loss.backward()# 完成量化 quantized_model.eval() quantized_model convert(quantized_model)# 测试量化后的模型 with torch.no_grad():outputs quantized_model(inputs)generated_text tokenizer.decode(outputs[0].argmax(dim-1), skip_special_tokensTrue) print(Generated text:, generated_text) 总结 GPTQ 通过梯度优化对量化误差进行最小化适用于后训练阶段的精细量化精度较高。GGUF 采用全局统一的量化策略具有简单高效的优点适用于资源受限的部署场景但可能导致某些模型层的精度损失。AWQ 关注激活值的量化通过分析激活值的分布对量化策略进行自适应调整精度更高但计算复杂度较大。
http://www.w-s-a.com/news/360632/

相关文章:

  • 我想自己在网站上发文章 怎样做wordpress站点安装
  • 北京模板网站开发全包昆明网站开发正规培训
  • 西咸新区建设环保网站谷歌风格wordpress
  • 嘉兴港区建设局网站2018年网站开发
  • 网站里图片做超链接专业开发网站报价单
  • server2003网站建设做销售记住这十句口诀
  • microsoft免费网站网站后台登陆路径
  • 贵州住房和城乡建设局网站做网站排名费用多少钱
  • 现在个人做网站还能盈利吗xampp用wordpress
  • 做网站 租服务器温岭建设公司网站
  • 四川住房和城乡建设厅网站官网做网站最贵
  • 右玉网站建设四川林峰脉建设工程有限公司网站
  • 网站推广小助手杭州百度百家号seo优化排名
  • 怎么做网站搜索框搜索网站备案拍照背景幕布
  • 建设部网站城市规划资质标准伊春网络推广
  • 如何设计酒店网站建设深圳市房地产信息系统平台
  • 伍佰亿网站怎么样网站建设前台后台设计
  • 做整装的网站北京哪个网站制作公司
  • 建设赚钱的网站福州便民生活网
  • 咸阳网站设计建设公司小程序打包成app
  • 做视频网站视频文件都存放在哪做旅游宣传图的网站有哪些
  • 地方门户类网站产品推广惠州市中国建设银行网站
  • 网站建设公司推荐5788移动版wordpress
  • 产品类型 速成网站淘宝怎么建立自己的网站
  • 南京优化网站建设公司的网站怎么建设
  • 做网站开发能挣钱月嫂云商城网站建设
  • 包装网站模板新手入门网站建设
  • 做网站的天津哪个公司做网站
  • 网站建设摊销时间是多久微信官网免费下载安装
  • 网站解析是做a记录吗群晖 wordpress 阿里云