GGML 或GGUF的14种不同量化模式说明

查看 TheBloke/Llama-2–13B-chat-GGML 存储库中的文件,我们可以看到 14 种不同的 GGML 模型,对应于不同类型的量化。它们遵循特定的命名约定:“q”+ 用于存储权重的位数(精度)+ 特定变体。以下是所有可能的量化方法及其相应用例的列表,基于 TheBloke 制作的模型卡中的描述,针对llama2模型架构:

1)q2_k:将 Q4_K 用于 attention.vw 和 feed_forward.w2 张量,Q2_K用于其他张量。

2)q3_k_l:将 Q5_K 用于 attention.wv、attention.wo 和 feed_forward.w2 张量,否则Q3_K

3)q3_k_m:将 Q4_K 用于 attention.wv、attention.wo 和 feed_forward.w2 张量,否则Q3_K

4)q3_k_s:将Q3_K用于所有张量

5)q4_0:原始量化方法,4 位。

6)q4_1精度高于q4_0但不如q5_0。但是,与 q5 模型相比,推理速度更快

7)q4_k_m:将 Q6_K 用于一半的 attention.wv 和 feed_forward.w2 张量,否则Q4_K

8)q4_k_s:将Q4_K用于所有张量

9)q5_0:  原始量化方法,5位。精度更高,资源使用率更高,推理速度更慢。

10)q5_1:精度高于q5_0但不如q6_k。但是,与 q6 模型相比,推理速度更快。

11)q5_k_m:将 Q6_K 用于一半的 attention.wv 和 feed_forward.w2 张量,否则Q5_K

12)q5_k_s:将Q5_K用于所有张量

13)q6_k:将Q8_K用于所有张量

14)q8_0:与浮点数16几乎无法区分。资源使用率高,速度慢。不建议大多数用户使用。

根据经验,我建议使用 Q5_K_M,因为它保留了模型的大部分性能。或者,如果要节省一些内存,可以使用 Q4_K_M。一般来说,K_M版本比K_S版本更好。我不推荐 Q2 或 Q3 版本,因为它们会大大降低模型性能。

转自:GGML 或GGUF的14种不同量化模式说明-CSDN博客

### 将GGUF格式模型进行量化 对于机器学习中的模型量化,特别是针对GGUF格式的模型,可以采用类似于PyTorch框架下的方法来实现。然而,由于GGUF并非标准格式,在处理之前需确认该格式的具体细节以及支持库。 假设存在一个能够加载并操作GGUF格式的支持工具包`gguf_toolkit`,下面展示了一个可能的过程: #### 加载模型 首先,利用特定于GGUF格式的API加载待量化的模型文件。 ```python from gguf_toolkit import load_gguf_model model_path = 'path_to_your.gguf' model = load_gguf_model(model_path) ``` #### 执行量化 接着应用量化函数到已加载的模型上。这里假定有一个名为`quantize_gguf`的功能用于执行此操作,并指定权重为8位精度整数表示形式。 ```python import quantization_library # 假设这是一个提供量化功能的库 quantized_model = quantization_library.quantize_gguf( model=model, weight_dtype='int8' # 设置权重量化后的数据类型为8比特整型 ) ``` #### 冻结模型结构 完成量化之后,为了优化推理性能,通常还需要冻结模型参数,防止其被进一步修改。 ```python frozen_model = quantization_library.freeze(quantized_model) ``` #### 验证大小变化 最后计算并打印出经过上述过程后的新模型尺寸,验证是否达到了预期的效果。 ```python new_size_gb = calculate_module_sizes(frozen_model)['total'] * 1e-9 print(f"The new model size after quantization is {new_size_gb:.9f} GB") ``` 需要注意的是以上代码片段基于虚构的接口编写而成;实际开发时应查阅官方文档获取确切的方法名称及其调用方式[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值