dbrx-base-FP8-KV

  • Introduction

    This model was created by applying Quark with calibration samples from Pile dataset.
  • Quantization Stragegy

    • Quantized Layers: All linear layers excluding "lm_head" and "router.layer"
    • Weight: FP8 symmetric per-tensor
    • Activation: FP8 symmetric per-tensor
    • KV Cache: FP8 symmetric per-tensor
  • Quick Start

  1. Download and install Quark
  2. Run the quantization script in the example folder using the following command line:
export MODEL_DIR = [local model checkpoint folder] or databricks/dbrx-base
# single GPU
python3 quantize_quark.py \ 
        --model_dir $MODEL_DIR \
        --output_dir dbrx-base-FP8-KV \                           
        --quant_scheme w_fp8_a_fp8 \
        --kv_cache_dtype fp8 \
        --num_calib_data 128 \
        --model_export quark_safetensors \
        --no_weight_matrix_merge  \
        --custom_mode fp8
# If model size is too large for single GPU, please use multi GPU instead.
python3 quantize_quark.py
        --model_dir $MODEL_DIR \
        --output_dir dbrx-base-FP8-KV\
        --quant_scheme w_fp8_a_fp8 \
        --kv_cache_dtype fp8 \
        --num_calib_data 128 \
        --multi_gpu \
        --model_export quark_safetensors \
        --no_weight_matrix_merge \
        --multi_gpu \
        --custom_mode fp8

Deployment

Quark has its own export format and allows FP8 quantized models to be efficiently deployed using the vLLM backend(vLLM-compatible). In the dbrx-base model, "transformer.blocks.*.ffn.experts" modules can be divided into experts-num mlps, and if the shape of the weight of w1 in one of the mlps is [dim1, dim2], then the shape of “transformer.blocks.*.ffn.experts.mlp.w1.weight“ in the exported safetensors file is [dim1*experts-num, dim2]. The shapes of "transformer.blocks.*.ffn.experts.mlp.w1.weight_scale" and "transformer.blocks.*.ffn.experts.mlp.w1.input_scale" are [dim1]. Similarly, this also applies to the w2 and v1 of "transformer.blocks.*.ffn.experts.mlp".

Evaluation

Quark currently uses perplexity(PPL) as the evaluation metric for accuracy loss before and after quantization.The specific PPL algorithm can be referenced in the quantize_quark.py. The quantization evaluation results are conducted in pseudo-quantization mode, which may slightly differ from the actual quantized inference accuracy. These results are provided for reference only.

Evaluation scores

Benchmark dbrx-base dbrx-base-FP8-KV(this model)
Perplexity-wikitext2 3.9106 3.9410

License

Modifications copyright(c) 2024 Advanced Micro Devices,Inc. All rights reserved.

Downloads last month
15
Safetensors
Model size
132B params
Tensor type
F32
·
BF16
·
F8_E4M3
·
Inference API
Unable to determine this model's library. Check the docs .

Model tree for amd/dbrx-base-FP8-KV

Quantized
(1)
this model

Collection including amd/dbrx-base-FP8-KV