View source on GitHub
|
Configuration class for AWQ (Activation-aware Weight Quantization).
Inherits From: QuantizationConfig
tf.keras.quantizers.AWQConfig(
dataset,
tokenizer,
*,
weight_bits: int = 4,
num_samples: int = 128,
sequence_length: int = 512,
group_size: int = 128,
num_grid_points: int = 20,
quantization_layer_structure: dict = None
)
AWQ is a post-training quantization method that identifies and protects salient weights based on activation magnitudes. It applies per-channel scaling before quantization to minimize accuracy loss.
Methodology:
- Collects activation statistics from calibration data
- Identifies salient weight channels based on activation magnitudes
- Searches for optimal per-channel scaling factors via grid search
- Applies scaling before quantization to protect important weights
References:
- Original AWQ paper: "AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration" (https://arxiv.org/abs/2306.00978)
- Reference implementation: https://github.com/mit-han-lab/llm-awq
Example:
from keras.quantizers import AWQConfig
# Create configuration for 4-bit AWQ quantization
config = AWQConfig(
dataset=calibration_data, # Your calibration dataset
tokenizer=your_tokenizer, # Tokenizer for text data
num_samples=128, # Number of calibration samples
sequence_length=512, # Sequence length for each sample
group_size=128, # Weight grouping for quantization
num_grid_points=20, # Grid search points for scale search
)
# Apply quantization to your model
model.quantize("awq", config=config)
Attributes | |
|---|---|
mode
|
|
Methods
activation_quantizer_or_default
@staticmethodactivation_quantizer_or_default( config, default )
dtype_policy_string
dtype_policy_string()
Returns the dtype policy string for this configuration.
| Returns | |
|---|---|
| A string representing the dtype policy, e.g. "awq/4/128". |
from_config
@classmethodfrom_config( config )
get_config
get_config()
weight_quantizer_or_default
@staticmethodweight_quantizer_or_default( config, default )
View source on GitHub