ollama支持的量化参数

发布于 2024-12-03


AI 摘要

ollama支持多种量化参数,以满足不同计算需求。其中,FP16是半精度浮点数,适合需要较高计算精度的场景。Q2_K至Q8_0代表不同的二进制量化形式,使用不同比特数对权重进行压缩,从而显著降低存储需求。使用-create指令创建模型时,可以指定量化方式。如在创建qwen2.5模型时默认量化方式为Q4_K_M,不能二次调整。模型二次量化时需要注意RAM容量是否足够,以加载原始模型文件。此外,可以使用“ollama show --modelfile <模型名称>”获取modelfile模板。

核心

ollama支持的量化参数

正文

ollama
量化方式简要解释
FP16半精度浮点数,提供较高的数值范围和精度,适用于需要较高计算精度的场景。
Q2_K二进制量化的一种形式,使用较少的比特表示权重,显著减少存储需求。
Q3_K_L使用3比特进行量化,L表示较低的精度配置。
Q3_K_M使用3比特进行量化,M表示中等精度配置。
Q3_K_S使用3比特进行量化,S表示较高的精度配置。
Q4_0使用4比特进行量化,0表示特定的精度配置。
Q4_1使用4比特进行量化,1表示另一种精度配置。
Q4_K_M使用4比特进行量化,M表示中等精度配置。
Q4_K_S使用4比特进行量化,S表示较高的精度配置。
Q5_0使用5比特进行量化,0表示特定的精度配置。
Q5_1使用5比特进行量化,1表示另一种精度配置。
Q5_K_M使用5比特进行量化,M表示中等精度配置。
Q5_K_S使用5比特进行量化,S表示较高的精度配置。
Q6_K使用6比特进行量化,K表示特定的精度配置。
Q8_0使用8比特进行量化,0表示特定的精度配置。

官网支持的量化参数原始位置

以上是ollama使用create指令创建大模型时可以携带的量化方式参数

ollama create qwen2.5:14b-q4_k_m -f ./qwen2.5_14b-instruct-fp16.modelfile -q q4_K_M

注意使用-q参数重新量化模型必须要注意的点

1、默认拉取的模型的量化方式是Q4_K_M,例如qwen2.5:14b

ollama pull qwen2.5:14b

通过这个参数拉取的模型默认为Q4_K_M量化,无法二次调整模型量化参数

可以通过查看模型的全部版本找到对应的FP16精度或者FP32精度的原始模型,拉取然后进行二次量化

(博主采用的方式是拉取一个FP16精度模型,然后通过不同量化等级实现在不同任务中运行,比如说翻译使用Q8_0量化,然后默认使用Q4_K_S量化)

2、模型二次量化时会将原始模型文件全部加载到RAM中,请注意RAM是否大于原始模型文件

例如qwen2.5_14b-instruct-fp16需要用到30GB RAM(二次量化模型和GPU无关,所以无需关注VRAM)

3、如何获取modelfile模版

ollama show --modelfile <模型名称>
ollama show 指令