大模型量化是什么?

一步一步理解大模型:模型量化技术1-简介 简单的说,激活的意思就是如果这个靠近的某个落脚点,就把它算成某个落脚点的值. 在训练模型的时候,机器会调整这些权重,这些权重会用某个落脚点的值来表示。总的来看,模型量化的精度损失取决于多种因素,包括所使用的量化策略、模型的特性,以及实际应用中的需求等。现在,我们把这个0到1之间的范围称为一个权重,看成一片连续的水面,上面表中的值看成一个一个的“落脚点”。依此类推,你有2的n次方种方法来表示这个范围,这里的n就是比特的位数。就是说,你仅用少量的精度损失的代价节省了大量的存储空间,是非常划算的。 阅读详情
AI摘要

大模型量化是降低模型存储需求和计算复杂度的技术。文章介绍了训练后量化、量化感知训练等常用量化手段,还阐述了AWQ等量化技术的原理、实现及特点。此外,对比了不同量化策略的性能和适用场景,以及量化后恢复精度的方法和注意事项。

大模型量化是通过降低模型参数的精度来减少模型存储需求和计算复杂度的技术,同时尽量保持模型的性能。以下是目前常用的大模型量化手段:

1. 训练后量化(Post-Training Quantization, PTQ)

训练后量化是在模型训练完成后对权重和激活值进行量化的方法。它不需要重新训练模型,仅需少量校准数据来确定量化参数。PTQ分为以下两种:

  • 动态量化(Dynamic Quantization):仅量化权重,激活值在推理时动态量化。这种方法适用于权重参数量较大的模型(如LSTM、Transformer),优点是简单高效。

  • 静态量化(Static Quantization):权重和激活值均在推理前进行量化,需要校准数据来统计激活值的分布范围。

前排提示,文末有大模型AGI-优快云独家资料包哦!

2. 量化感知训练(Quantization-Aware Training, QAT)

量化感知训练是在模型训练过程中加入伪量化算子,模拟量化操作。这种方法允许模型在训练阶段适应量化带来的精度损失,从而在量化后保持更高的性能。QAT适用于对模型精度要求较高的场景。

3. 量化感知微调(Quantization-Aware Fine-tuning, QAF)

量化感知微调是在模型微调阶段加入量化操作,确保模型在量化后仍能保持良好的性能。这种方法结合了量化和微调的优势,适用于需要在压缩和性能之间取得平衡的场景。

4. 权重和激活量化
  • 权重量化:将模型的浮点数权重转换为低位宽的整数(如INT8),通过确定量化参数(如量化间隔和零点)来保持模型精度。

  • 激活量化:对激活函数的输出进行量化,通常更复杂,因为激活值的动态范围较宽。

5. 特殊量化技术
  • BitNet:通过使用三元权重(-1, 0, 1)避免乘法操作,仅需进行加法计算,显著加速计算效率。

  • GPTQ:一种针对Transformer架构的量化方法,通过优化量化参数来减少精度损失。

  • LLM.int8:一种针对大模型的8-bit量化技术,通过向量量化和异常值分解来降低内存占用和计算开销。

6. 量化粒度

量化可以按不同的粒度进行,例如:

  • 逐层量化:每层独立量化,适合权重分布差异较大的模型。

  • 逐通道量化:对权重的每个通道分别量化,适用于卷积层。

  • 全局量化:使用统一的量化参数对整个模型进行量化。

7. 量化工具和框架
  • PyTorch:提供了动态量化和静态量化工具,支持多种量化配置。

  • TensorRT:NVIDIA的深度学习推理优化器,支持INT8量化。

  • OpenVINO:Intel的推理优化工具,支持多种量化策略。

总结

大模型量化技术通过减少模型参数的精度,显著降低了模型的存储和计算需求,同时尽量保持模型性能。不同的量化方法(如PTQ、QAT、QAF)和量化粒度(如逐层、逐通道)可以根据具体需求选择,以实现模型的高效部署。

AWQ(Activation-aware Weight Quantization)和AutoAWQ是基于激活感知的权重量化技术,主要用于在不显著损失精度的情况下,将大型语言模型(LLM)的权重压缩到低比特(如4位),以加速推理并减少内存占用。以下是它们的原理和关键特点:

AWQ原理
  1. 激活感知量化
    AWQ的核心在于通过分析激活值的分布来优化权重量化。它认为激活值的分布比权重本身的分布更能反映模型的关键信息。通过为每个权重子矩阵计算一个缩放因子(scale tensor),AWQ可以调整权重的量化范围,从而降低量化误差。

  2. 分组量化
    权重被分组为多个子矩阵,每个子矩阵独立进行量化。这种分组策略充分利用了激活值的局部性,进一步提高了量化精度。

  3. 在线反量化
    AWQ采用无重新排序的在线反量化方法,直接在量化后的权重上进行反量化,避免了额外的计算开销和内存占用。

  4. 保护显著权重
    AWQ通过保留一小部分显著权重(如1%)不进行量化,从而在不进行任何训练的情况下弥补量化损失。

AWQ的Python实现
import torch
from torch import nn

@torch.no_grad()
def apply_clip(module, clip_list):
    for name, max_val in clip_list:
        layer: nn.Linear = get_op_by_name(module, name)
        layer.to(get_best_device())
        max_val = max_val.to(layer.weight.device)
        org_shape = layer.weight.shape
        layer.weight.data = layer.weight.data.reshape(*max_val.shape[:2], -1)
        layer.weight.data = torch.clamp(layer.weight.data, -max_val, max_val)
        layer.weight.data = layer.weight.data.reshape(org_shape)
        layer.cpu()

def pseudo_quantize_tensor(weight, w_bit=4):
    # 简化的量化函数
    scale = torch.max(torch.abs(weight)) / ((1 << (w_bit - 1)) - 1)
    zeros = torch.zeros_like(scale)
    quantized_weight = torch.round(weight / scale).to(torch.int8)
    return quantized_weight, scale, zeros

@torch.no_grad()
def apply_quant(module, named_linears, w_bit=4):
    for name, linear_layer in named_linears.items():
        linear_layer = linear_layer.to(get_best_device()).half()
        linear_layer.weight.data, scales, zeros = pseudo_quantize_tensor(linear_layer.weight.data, w_bit)
        q_linear_module = WQLinear.from_linear(
            linear=linear_layer,
            w_bit=w_bit,
            group_size=128,
            init_only=False,
            scales=scales,
            zeros=zeros,
        )
        set_op_by_name(module, name, q_linear_module)
        clear_memory()

# 示例:获取模块中的线性层
def get_op_by_name(module, name):
    for n, m in module.named_modules():
        if n == name:
            return m
    raise ValueError(f"Module {name} not found")

# 示例:设置模块中的线性层
def set_op_by_name(module, name, new_module):
    for n, m in module.named_modules():
        if n == name:
            parent = module
            parts = name.split('.')
            for part in parts[:-1]:
                parent = getattr(parent, part)
            setattr(parent, parts[-1], new_module)
            return
    raise ValueError(f"Module {name} not found")

# 清理内存
def clear_memory():
    torch.cuda.empty_cache()

AutoAWQ(Automatic Activation-aware Weight Quantization)是一种针对大型语言模型(LLM)的自动化权重量化工具,基于激活感知权重量化(AWQ)算法实现。其核心原理和工作流程如下:

核心原理
  1. 激活感知量化:AWQ算法通过分析激活值的分布来确定权重的量化参数,而不是直接对权重进行量化。这种方法可以更好地保留模型的关键信息,减少量化误差。

  2. 分组量化:将权重分组为多个子矩阵,每个子矩阵独立进行量化,充分利用激活值的局部性。

  3. 在线反量化:采用无重新排序的在线反量化方法,直接在量化后的权重上进行反量化,避免了额外的计算开销和内存占用。

工作流程
  1. 模型分析:分析模型的权重分布和激活值的统计信息,如均值、方差、最大值和最小值。

  2. 量化策略生成:根据分析结果,自动生成最优的量化策略,包括量化位宽、量化范围等。

  3. 量化执行:根据生成的策略,将模型的权重从浮点格式量化到4位整数格式。

  4. 校准与优化:通过校准步骤优化量化参数,进一步减少量化带来的精度损失。

  5. 验证与评估:对量化后的模型进行验证,确保其性能在可接受范围内。

特点与优势
  • 自动化:无需手动配置,自动选择最佳量化策略。

  • 高效性:相比FP16,推理速度提升3倍,内存占用减少3倍。

  • 灵活性:支持多种量化配置选项,用户可根据需求调整。

  • 兼容性:支持多种主流深度学习框架和模型,如PyTorch、TensorFlow、LLaMA、Vicuna等。

AutoAWQ通过其高效的量化技术,显著降低了模型的存储和计算成本,同时保持了较高的精度,特别适用于大规模语言模型的部署和推理。

llama.cpp

llama.cpp 是一个开源的 C++ 库,用于实现 LLaMA 等大语言模型的高效推理和部署。它支持多种量化手段,以减少模型的内存占用并提升推理速度。以下是 llama.cpp 中常用的量化方法和技术:

1. 权重量化

llama.cpp 的量化主要是权重量化,即将模型的浮点权重转换为低位整数(如 4 位、8 位等)。在推理过程中,这些量化权重会被反量化用于计算。

2. 多种量化类型

llama.cpp 支持多种量化类型,用户可以根据需求选择不同的量化方案。常见的量化类型包括:

  • Q2_K:2 位量化。

  • Q3_K_S、Q3_K_M、Q3_K_L:3 位量化,不同变种适用于不同的精度需求。

  • Q4_K_S、Q4_K_M:4 位量化,是常用的量化方案。

  • Q5_K_S、Q5_K_M:5 位量化。

  • Q6_K:6 位量化。

  • Q8_0:8 位量化。

  • F16:16 位浮点量化。

3. 量化工具

llama.cpp 提供了一个名为 quantize 的工具,用于对模型进行量化。使用该工具时,用户可以指定输入模型文件、输出模型文件和量化类型。例如:

bash复制

./quantize ./models/model-f16.gguf ./models/model-Q4_K_M.gguf Q4_K_M

上述命令将一个 16 位浮点模型量化为 4 位的 Q4_K_M 模型。

4. 混合量化

llama.cpp 支持在单一模型中混合使用不同的量化类型。例如,可以对嵌入权重使用一种量化类型,而对其他权重使用另一种量化类型。这种灵活性允许用户通过微调量化策略来优化模型的性能。

5. 自定义量化参数

如果默认的量化方案无法满足需求,用户可以引入自定义的量化尺度,例如通过 AWQ(Activation-aware Weight Quantization)计算的量化参数,或者使用校准数据生成“重要性矩阵”(importance matrix)来优化量化过程。

6. 量化后的性能评估

量化后的模型可以通过基准测试工具(如 batched-bench)进行性能评估。这些工具可以测量模型的推理速度、内存占用以及生成质量(如困惑度)。

总结

llama.cpp 提供了灵活且高效的量化手段,支持多种量化类型和自定义参数,能够显著减少模型的内存占用并提升推理速度。用户可以根据硬件资源和精度需求选择合适的量化方案。

在 llama.cpp 中,Q4_K_S 和 Q4_K_M 是两种不同的量化策略,主要区别在于它们对不同张量的量化方式以及对模型性能和推理速度的影响。以下是两者的具体区别:

1. 量化策略
  • Q4_K_S:

    • 全张量量化:所有张量均使用 4 位量化。

    • 简单量化:不区分不同张量的重要性,统一使用 4 位量化。

  • Q4_K_M:

    • 混合量化:对部分关键张量(如 attention.wv 和 feed_forward.w2)使用更高精度的 6 位量化,其余张量使用 4 位量化。

    • 优化策略:通过提升关键张量的量化精度,减少模型性能损失。

2. 性能和推理速度
  • Q4_K_S:

    • 性能:由于所有张量均使用 4 位量化,模型的精度损失可能相对较大。

    • 推理速度:推理速度较快,因为统一的量化方式减少了计算复杂度。

  • Q4_K_M:

    • 性能:通过混合量化策略,模型的精度损失较小,通常在低精度量化中表现更好。

    • 推理速度:推理速度可能略低于 Q4_K_S,因为混合量化增加了计算复杂度。

3. 适用场景
  • Q4_K_S:

    • 适用于对推理速度要求较高,但可以接受一定精度损失的场景。

    • 适合资源受限的环境,如边缘设备。

  • Q4_K_M:

    • 适用于需要在精度和推理速度之间取得平衡的场景。

    • 适合对模型性能要求较高的应用。

总结
  • Q4_K_S 是一种简单高效的量化方式,适合对速度要求较高的场景。

  • Q4_K_M 是一种优化的混合量化方式,适合对精度要求较高的场景。

在 llama.cpp 中,Q3_K_S、Q3_K_M 和 Q3_K_L 是三种不同的 3 位量化策略,主要用于在模型大小和推理性能之间取得平衡。以下是它们的区别:

1. 量化方式
  • Q3_K_S:使用 3 位量化,对所有张量采用相同的量化精度。

  • Q3_K_M:使用 3 位量化,但对关键张量(如 attention.wv、attention.wo 和 feed_forward.w2)采用更高精度的 4 位量化。

  • Q3_K_L:使用 3 位量化,对关键张量采用更高精度的 5 位量化。

2. 模型大小
  • Q3_K_S:模型大小约为 2.75 GB。

  • Q3_K_M:模型大小约为 3.07 GB。

  • Q3_K_L:模型大小约为 3.35 GB。

3. 性能(困惑度变化)
  • Q3_K_S:困惑度变化为 +0.5551,精度损失相对较大。

  • Q3_K_M:困惑度变化为 +0.2496,精度损失较小。

  • Q3_K_L:困惑度变化为 +0.1764,精度损失最小。

4. 适用场景
  • Q3_K_S:适合对模型大小要求严格、对精度损失容忍度较高的场景。

  • Q3_K_M:适合需要在模型大小和精度之间取得平衡的场景。

  • Q3_K_L:适合对精度要求较高,但可以接受较大模型大小的场景。

总结
  • Q3_K_S 是最轻量化的版本,适合资源受限的环境。

  • Q3_K_M 提供了较好的平衡,适合大多数场景。

  • Q3_K_L 提供更高的精度,但模型大小较大,适合对精度要求较高的场景。

在量化中,“2位”(bit)指的是权重的存储精度,即每个权重参数用2个二进制位来表示。这里的“位”是二进制位(bit),是计算机存储和处理数据的最小单位。

量化后恢复精度

量化后的模型在推理时恢复精度的关键在于反量化操作和一些辅助策略。以下是具体的方法和原理:

1. 反量化操作

在量化过程中,模型的权重和激活值被映射到低位整数(如2位、4位、8位等),同时会记录量化参数(如缩放因子scale和零点zero_point)。在推理时,这些量化后的值需要通过反量化操作恢复为浮点数,以便进行计算。

反量化公式:

假设量化后的整数值为q,量化参数为scale和zero_point,则反量化公式为:

float_value = (q - zero_point) * scale

通过这种方式,量化后的整数值可以恢复为接近原始浮点值的数值。

2. 减少精度损失的策略

尽管反量化可以恢复部分精度,但量化本身仍可能引入误差。以下是一些减少精度损失的策略:

(1)选择合适的量化方法
  • 对称量化与非对称量化:对称量化简单但精度损失较大;非对称量化允许正负数值映射到不同的整数范围,能更好地保留原始数据的细节。

  • 混合量化:对模型中不同层或关键参数采用不同的量化精度(如某些层用4位,某些层用8位),以减少整体精度损失。

(2)校准(Calibration)

在量化前,使用校准数据集对模型进行分析,确定更合适的量化参数(如scale和zero_point)。校准可以减少量化误差,提升推理精度。

(3)量化感知训练(QAT)

在训练阶段引入量化操作,使模型在训练时适应量化带来的误差。这种方法可以在量化后保持更高的精度。

(4)微调(Fine-Tuning)

对量化后的模型进行微调,使用少量训练数据调整模型参数,以恢复因量化导致的性能下降。

(5)异常值处理

在某些量化方法中(如LLM.int8),会提取权重中的异常值(离群值),对这些值单独处理,以减少量化误差。

3. 推理时的精度恢复流程

在推理时,量化后的模型通常会执行以下步骤:

  1. 输入数据量化:将输入数据(通常是浮点数)量化为低位整数。

  2. 计算:使用量化后的权重和输入数据进行整数计算。

  3. 反量化:将计算结果反量化为浮点数,以便输出。

4. 实际应用中的注意事项
  • 量化精度选择:根据实际需求选择合适的量化精度(如2位、4位、8位)。较低的量化精度(如2位)虽然存储需求低,但精度损失可能较大;较高的量化精度(如8位)则能更好地保留模型性能。

  • 硬件支持:某些硬件(如GPU、TPU)对量化操作有优化支持,可以进一步提升推理速度。

通过上述方法,量化后的模型可以在推理时有效恢复精度,同时保持较低的存储需求和较高的计算效率。

优快云独家福利

最后,感谢每一个认真阅读我文章的人,礼尚往来总是要有的,下面资料虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

大模型量化笔记 大模型量化是通过降低模型参数的数值精度(如32位浮点转8位整数)来压缩模型规模、提升推理效率的核心技术。 阅读详情

相关推荐

[算法前沿]--046-大模型量化的基本原理

模型量化即以较低的推理精度损失将连续取值的浮点型模型权重进行裁剪和取舍,它是以更少位数的数据类型用于近似表示32位有限范围浮点型数据的过程,而模型的输入输出依然是浮点型,从而达到减少模型尺寸大小、减少模型内存消耗及加快模型推理速度等目标。比如int8量化,就是让原来32bit存储的数字映射到8bit存储。int8范围是[-128,127], uint8范围是[0,255]。

全网120W+关注AI拉呱,专注人工智能以及科技前沿! 1195

10分钟理解大模型的量化

量化是大模型领域中的一项关键技术,它通过降低模型参数的精度,将浮点数转换为整数或定点数,从而实现模型的压缩和优化。

深数研究院 6730

ChatGPT等大模型的模型量化:平滑量化法

十亿级的模型、百亿级的模型、千亿级的模型量化难度完全不一样,而像chatgpt为代表的大模型,模型参数已经超过千亿。大模型往往同时是计算密集型+访存密集型的,如果想要做模型压缩,非常困难!这篇博客给大家介绍一下为什么大模型量化困难?大模型压缩过程中会遇到哪些挑战?以及如果解决这些困难?SmoothQuant,这是一种train-free、保持精度、通用的训练后量化(PTQ)解决方案,用于实现LLM的8位加权、8位激活(W8A8)量化。

沉迷单车的追风少年 5587

大模型(LLM)的量化技术Quantization原理学习

在自然语言处理领域,大型语言模型(LLM)在自然语言处理领域的应用越来越广泛。然而,随着模型规模的增大,计算和存储资源的需求也急剧增加。为了降低计算和存储开销,同时保持模型的性能,LLM大模型的量化技术应运而生 本文记录针对量化技术原理的学习

penriver的博客 2万+

在mac OS下安装SQL Developer

最近一直在折腾Oracle数据库,但由于电脑是mac系统,plsql developer用不了,远程管理一直不是很方便。后来听说Navicat不错,就也装了个试试看,发现界面看起来确实不错。今天心血来潮,想试试oracle自己开发的client。用惯plsql developer的人也可以来试试看,毕竟是自己人开发的,兼容性应该会不错吧。下面就把安装过程分享给新手或者需要帮助的朋友。 1.

bonbonboo的专栏 2万+

如何在两台电脑间,实现zotero文件和数据两种类型的双向同步

在完成本文配置后,可以在两台不同的电脑间,通过两步简单操作实现zotero数据和文件的双向同步,并且全程免费首先,打开zotero->编辑->首选项->高级->文件与文件夹,配置链接附件根目录以及数据存储位置,前者将pdf文件通过相对地址形式存于zotero中(而非真正的pdf文件),后者则是设置用户本地数据的地址建议设置在数据盘D盘,可以避免后续对盘名的修改(因为基本每个电脑都存在C盘和D盘)然后,同一页面下,打开同步,配置数据以及文件同步方式。数据同步保持默认即可,文件同步选择WebDav,然后去坚果云

weixin_43008154的博客 1万+

为啥大模型需要量化?如何量化

量化是一种将较大尺寸的模型(如 LLM 或任何深度学习模型)压缩为较小尺寸的方法。量化主要涉及对模型的权重参数和激活值进行量化。让我们通过一个简单的模型大小计算来验证这个说法。左侧:基础模型大小计算(单位:GB),右侧:量化后的模型大小计算(单位:GB)在上图中,基础模型 Llama 3 8B 的大小为 32 GB。经过 Int8 量化后,大小减少到 8GB(减少了 75%)。使用 Int4 量化后,大小进一步减少到 4GB(减少约 90%)。这使模型大小大幅减少。

qingkahui24689的博客 1524

ArcGIS基础实战:面数据拓扑创建和错误修改全流程

通过下图的操作我们可以发现,图层的【Shape_Length】和【Shape_Area】字段的数值都发生了改变,表明两个图层重叠的那一部分图斑合并到另一个图班上,其面积会减小、长度会变大(自己重新计算一下也可以得到此验证结果的)。如图【拓扑实验结果】文件夹里右键,新建【文件地理数据库】,并进行命名为【xx拓扑检查】备注:养成良好的命名习惯。然后在【xx拓扑检查】下右键打开【新建要素数据集】,并对数据集进行命名为【XX拓扑】,然后进行下一步设置。在【KK拓扑】数据集上右键,新建【拓扑】。

yuanYW7556的博客 1万+

【大模型】大模型量化

最后,在知道了这么多量化方法后,对于如何选择量化,关于LLAMA-3 量化相关的论文中的相关结论。1. 8bit 量化是免费午餐,无损失。2. AWQ 4bit量化对8B模型来说有2%性能损失,对70B模型只有0.05%性能损失。可以说也是免费午餐了。3. 参数越大的模型,低bit量化损失越低。AWQ 3bit 70B 也只有2.7%性能损失,完全可接受。4. 综合来说,如果追求无任何性能损失,8B模型用8bit量化,70B模型用4bit量化;

Dong_ZH的博客 2281

Vivado IP核:AXI Uartlite的使用经验分享

1. IP基本设置 在Vivado中,打开IP Catalog,搜索“uart”: 双击“AXI Uartlite”,进入IP配置界面: 这里可以配置IP的具体参数,设置时钟频率、波特率等,完成后,生成IP即可。 2. IP的时序特点 点击下面的链接可以下载该IP核的官方指导文档: https://china.xilinx.com/support/documentation/ip_docume...

weixin_43265132的博客 1万+

Cadence17.2 > Allegro > 检查PCB Layout信号线组等长

Cadence17.2 > Allegro > 检查PCB Layout等长和配线

DL_62532的专栏 1万+

大模型量化概述

可以根据实际业务需求将原模型量化成不同比特数的模型,一般深度神经网络的模型用单精度浮点数表示,如果能用有符号整数来近似原模型的参数,那么被量化的权重参数存储大小就可以降到原先的四分之一,用来量化的比特数越少,量化后的模型压缩率越高。)发现对于LLM的性能,权重并不是同等重要的,通过保留1%的显著权重可以大大减少量化误差。因此,引入了一种新的策略,涉及通道级的平移和缩放操作,以纠正异常的不对称呈现,并减轻问题通道的影响,并定量分析了平移和缩放的最佳值,同时考虑了异常的不对称性以及下一层权重引起的量化误差。

吃果冻不吐果冻皮 4026

kettle写doris操作

文件在目录:doris-master\extension\kettle\assemblies\plugin\target\doris-stream-loader-plugins-9.4.0.0-343.zip。官方提供了doris stream load插件,下载源码编译后放到kettle的插件目录即可使用。地址:https://github.com/apache/doris.git。注意:需要doris插件或者kettle转换生成模板的私聊博主。使用PDmaner同步业务库生成建表语句。

weixin_44449054的博客 3031

大模型量化

大模型量化技术通过减少模型参数的精度,显著降低了模型的存储和计算需求,同时尽量保持模型性能。不同的量化方法(如PTQ、QAT、QAF)和量化粒度(如逐层、逐通道)可以根据具体需求选择,以实现模型的高效部署。AWQ(Activation-aware Weight Quantization)和AutoAWQ是基于激活感知的权重量化技术,主要用于在不显著损失精度的情况下,将大型语言模型(LLM)的权重压缩到低比特(如4位),以加速推理并减少内存占用。llama.cpp。

asd8705的专栏 6920

Qt5.12.12安卓开发环境搭建:Windows下避开SDK版本坑的保姆级教程

本文提供Qt5.12.12在Windows下搭建Android开发环境的详细教程,重点解决SDK版本兼容性问题,特别是cmdline-tools与JDK8的匹配陷阱。通过精准选择组件版本、手动配置路径和修复常见错误,帮助开发者高效完成环境配置,适用于Qt跨平台移动开发。

weixin_33737774的博客 542

微信小程序 - 最新详细实现用户保存下载视频到手机相册,将视频临时路径、在线播放地址(网络路径)URL存储到手机,弹出访问手机相册权限询问,支持视频格式mp4、avi、mov、wmv、flv、webm

微信小程序,视频,手机相册,保存,另存为,小程序保存到相册权限,writePhotosAlbum,一键保存视频到手机相册功能(视频来源为链接),第一次要获取用户授权,授权使用相册权限,小程序视频下载,如何把视频下载到相册,下载一个视频到本地相册,显示下载进度,可取消下载,视频下载到本地,微信小程序视频如何下载,保存视频到相机,页面播放视频并下载到本地,安卓系统,苹果ios保存到相册报错,权限拒绝后打不开,添加相册授权弹框拒绝后再也出不来了,实现保存视频到手机相册功能,将mp4在线视频下载并存储到用户的手机中

🏆 前端领域优质创作者 7624

为啥大模型需要量化??如何量化

量化是一种将较大尺寸的模型(如 LLM 或任何深度学习模型)压缩为较小尺寸的方法。量化主要涉及对模型的权重参数和激活值进行量化。让我们通过一个简单的模型大小计算来验证这个说法。左侧:基础模型大小计算(单位:GB),右侧:量化后的模型大小计算(单位:GB)在上图中,**基础模型 Llama 3 8B 的大小为 32 GB。经过 Int8 量化后,大小减少到 8GB(减少了 75%)。使用 Int4 量化后,大小进一步减少到 4GB(减少约 90%)。**这使模型大小大幅减少。

m0_59235245的博客 1566

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

一文搞懂大模型量化和大模型微调

详细介绍了什么是大模型量化和大模型微调,以及阐述了两者的关系。

qq_42755230的博客 4048

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

AI大模型量化

AI大模型量化是一种优化模型大小和计算效率的方法。它通过减少模型参数和降低模型精度,从而在保持相对较高性能的同时,降低了模型的存储需求和计算开销。

2401_85378759的博客 1693

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

大模型 LMDeploy 量化部署

关于Function call,即函数调用功能,它允许开发者在调用模型时,详细说明函数的作用,并使模型能够智能地根据用户的提问来输入参数并执行函数。此时对于24GB的显卡,即30%A100,权重占用14GB显存,剩余显存24-14=10GB,因此kv cache占用10GB*0.8=8GB,加上原来的权重14GB,总共占用14+8=22GB。“组团”挑选显著权重权重。模型在运行时,占用的显存可大致分为三部分:模型参数本身占用的显存、kv cache占用的显存,以及中间运算结果占用的显存。

nnxiong 1367

论 大模型量化

模型部署有一个永恒的目标,让模型的memory usage更少,运行更快。量化(Quantize)既可以减少模型的memory usage(比如,weight的type由FP32转成Int8,可以让memory usage减少到原来的四分之一),又可以使模型运行的更快(比如,整型运算要比浮点型运算快的多),如此优秀。但是,对量化的约束就是,要保证量化后的性能不变(或者性能损失可以忽略)。

wubobupt2的博客 1733

大模型量化,到底在搞什么?

大模型量化技术通过降低模型参数的数值精度,在不显著影响性能的前提下大幅减少存储和计算需求,使其能够在资源受限的终端设备上部署。该技术采用线性/非线性映射方法,将高精度浮点参数转换为低精度整数,分为训练后量化、训练感知量化等类型,可应用于智能终端、自动驾驶和物联网等领域。虽然量化会带来轻微精度损失,但能显著提升运行效率、降低能耗和成本。随着技术进步,量化正成为大模型实用化的关键技术,推动AI技术普及应用。

2401_84204413的博客 1007
上一篇: 只需三步就能训练大模型, 你知道这个大模型训练方法吗
下一篇: 大模型开源项目:Ollama让你的电脑也可以轻松运行大模型
大模型应用场景
博客等级 码龄5年 7648粉丝 1350原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值