项目介绍:Meta-Llama-3.1-8B-Instruct-FP8-KV
简介
Meta-Llama-3.1-8B-Instruct-FP8-KV 是一个通过 Quark 工具和 Pile 数据集的校准样本创建的模型。这个模型基于 Meta-Llama-3.1-8B-Instruct 模型,通过量化策略有效地提升了模型在资源和计算上的效率。
量化策略
在 Meta-Llama-3.1-8B-Instruct-FP8-KV 模型中,所有的线性层(不包括 "lm_head" 层)都进行了量化处理。具体来说:
- 权重量化:采用 FP8 对称的每张量化。
- 激活值量化:同样采用 FP8 对称的每张量化。
- KV 缓存:使用 FP8 对称的每张量化。
这种量化技术使得模型在保持性能的同时有效地减少了计算资源的使用。
快速开始
要使用该模型,可按照以下步骤进行:
- 下载并安装 Quark。
- 在示例文件夹中运行量化脚本。运行时可根据需要选择使用单 GPU 或多 GPU:
单 GPU:
export MODEL_DIR=[本地模型检查点文件夹] 或 meta-llama/Meta-Llama-3.1-8B-Instruct
python3 quantize_quark.py \
--model_dir $MODEL_DIR \
--output_dir Meta-Llama-3.1-8B-Instruct-FP8-KV \
--quant_scheme w_fp8_a_fp8 \
--kv_cache_dtype fp8 \
--num_calib_data 128 \
--model_export quark_safetensors \
--no_weight_matrix_merge
多 GPU(适用于模型过大无法使用单 GPU 时):
python3 quantize_quark.py \
--model_dir $MODEL_DIR \
--output_dir Meta-Llama-3.1-8B-Instruct-FP8-KV \
--quant_scheme w_fp8_a_fp8 \
--kv_cache_dtype fp8 \
--num_calib_data 128 \
--model_export quark_safetensors \
--no_weight_matrix_merge \
--multi_gpu
部署
该模型采用 Quark 自有的导出格式,使得使用 vLLM 后端进行模型部署时更加高效。其 FP8 量化的特性使得在计算和存储方面具备更高的效率。
评估
在精度损失评估方面,Quark 使用困惑度(Perplexity, PPL)作为其主要度量指标。在量化前后的精度损失评估中,量化模式为伪量化模式,可能与实际的量化推理结果稍有不同。以下为评估结果:
评测基准 | Meta-Llama-3.1-8B-Instruct | Meta-Llama-3.1-8B-Instruct-FP8-KV |
---|---|---|
困惑度-维基文本2 | 7.2169 | 7.2752 |
许可
该项目的修改版权属于 2024 Advanced Micro Devices, Inc.,并根据 Apache License, Version 2.0 授权使用。此许可允许在符合许可条款的条件下使用该软件。详细许可信息可访问许可证链接。