AI Model Wiki

    Skip to main content
    20 min
    Lesson 1 of 6

    Quantization Techniques

    From the course AI Model Optimization

    Reduce model size and speed up inference through quantization.

    Quantization Overview

    Precision Levels

    PrecisionSizeSpeedQuality
    FP32100%Baseline100%
    FP1650%2x~100%
    INT825%4x98-99%
    INT412.5%8x95-98%

    Post-Training Quantization (PTQ)

    from transformers import AutoModelForCausalLM
    import torch
    
    model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-2-7b-hf")
    
    # Dynamic quantization (easiest)
    quantized_model = torch.quantization.quantize_dynamic(
        model,
        {torch.nn.Linear},
        dtype=torch.qint8
    )
    
    # Static quantization (better quality)
    model.qconfig = torch.quantization.get_default_qconfig('fbgemm')
    torch.quantization.prepare(model, inplace=True)
    # Run calibration data through model
    torch.quantization.convert(model, inplace=True)
    

    GPTQ Quantization

    from auto_gptq import AutoGPTQForCausalLM
    
    # Load pre-quantized model
    model = AutoGPTQForCausalLM.from_quantized(
        "TheBloke/Llama-2-7B-GPTQ",
        device="cuda:0",
        use_safetensors=True
    )
    
    # 4-bit inference with minimal quality loss
    output = model.generate(input_ids)
    

    AWQ (Activation-Aware Quantization)

    Benefits over GPTQ:

    • Faster inference
    • Better quality preservation
    • Activation-aware scaling

    Key Takeaways

    • •INT8 quantization reduces model size 4x with only 1-2% quality loss
    • •GPTQ enables 4-bit quantization for LLMs with calibration data
    • •AWQ provides faster inference than GPTQ with activation-aware scaling
    • •Dynamic quantization is easiest; static quantization gives better results
    0 of 6 lessons marked complete

    Progress is kept in this browser only.