人的专注力有限,通常集中高效的时长仅有 10 分钟。
那么话不多说,本文将聚焦三大核心板块,带你快速掌握 ExLlamaV2 量化技术:
什么是 ExLlamaV2 量化?
四种量化方式有何区别?
动手实操,通过实例解析细节!
一、ExLlamaV2 量化技术解析
ExLlamaV2 是在 GPTQ 基础上的创新拓展,其核心目标在于深度挖掘模型性能潜力。同时,它引入了全新的量化格式 EXL2,这一格式在权重存储方面展现出显著优势。
相较于常规 GPTQ,“EXL2” 格式的独特之处在于支持多级别量化,不仅局限于 4 位,还能灵活处理 2、3、4、5、6 和 8 位量化。
更值得关注的是,它允许在模型内部和每一层内混合不同精度,能够精准保留重要权重,并对关键层分配更多位宽,以此确保模型性能。
此外,ExLlamaV2 能够依据参数设定,实现每个权重的目标平均位数,例如创建平均位数为 3.5 或 4.5 的量化模型。以具体参数示例:
关于 GPTQ 技术,此前已有详细介绍,本文不再赘述。后续将通过实际测试,直观呈现 ExLlamaV2 与 GPTQ 的量化性能差异。若想深入了解,可访问 GitHub 官方仓库:https://github.com/turboderp/exllamav2 。
二、四种量化方式对比分析
我们曾接触过 GGML、Llama.cpp、GPTQ 系列、ExLlamaV2 以及 NF4 等量化技术。以量化 llama 模型为例,通过测试得到如下数据:
GGML 模型:基于 llama.cpp 构建 Q4_K_M 模型
GPTQ 模型:涵盖 AutoGPTQ 和 ExLlama
NF4 模型:直接使用 transformers 运行测试
测试结果显示,GGML 模型稍占优势,但差距并不显著。
在实际应用中,若 VRAM 资源充足,能够完整加载量化模型,使用 ExLlama 的 GPTQ 方案是最佳选择;若显存受限,则可采用 llama.cpp 搭配 GGML 模型,将部分层进行卸载处理,以此实现模型的高效运行。
三、实战操作:边跑边学
建议使用 Google Colab 的免费算力进行操作,当然,也可在本地环境运行。本地操作时,使用 vscode 或 jupyter 均可,根据个人习惯灵活选择。
具体操作步骤如下:
安装依赖
按照代码指引,完成 Exllamav2 安装。
下载资源
获取模型及校准数据集。
执行量化指令(本地操作)
进入工作文件夹,运行以下命令:
参数说明:
-i
指定需转换的 HF 格式(FP16)基础模型路径
-o
设置用于存放临时文件和最终输出的工作目录路径
-c
校准数据集的 Parquet 格式文件路径
-b
设定目标平均每权重位数(bpw),例如 4.0 bpw 表示将权重存储为 4 位精度
注意事项:量化操作依赖 GPU 资源,7B 模型约需 8GB 显存,70B 模型则需约 24GB 显存。在 Google Colab 上,完成一个 7B 模型的量化耗时约 2 小时 10 分钟。
通过以上理论与实践结合的方式,相信大家对 ExLlamaV2 量化技术已有较为全面的认识。
后续可继续深入探索,优化模型性能。