p2pfl.learning.compression.quantization_strategy moduleยถ

Post-Training Quantization (PTQ) compression strategy.

class p2pfl.learning.compression.quantization_strategy.PTQuantization[source]ยถ

Bases: TensorCompressor

Post-Training Quantization (PTQ) with proper scaling.

apply_strategy(params, dtype='float16', scheme='symmetric', granularity='per_tensor', channel_axis=0)[source]ยถ

Reduce the precision of model parameters with proper scaling.

Parameters:
  • params (list[ndarray]) โ€“ The parameters to compress.

  • dtype (str) โ€“ The desired precision (e.g., โ€œfloat16โ€, โ€œint8โ€).

  • scheme (Literal['symmetric', 'asymmetric']) โ€“ Quantization scheme - โ€œsymmetricโ€ (centered around 0) or โ€œasymmetricโ€ (uses full range).

  • granularity (Literal['per_tensor', 'per_channel']) โ€“ โ€œper_tensorโ€ uses one scale for the whole tensor, โ€œper_channelโ€ uses separate scales for each channel.

  • channel_axis (int) โ€“ Axis to use for per-channel quantization.

Return type:

tuple[list[ndarray], dict]

Returns:

Tuple of quantized parameters and additional info for dequantization.

Raises:

ValueError โ€“ If an unsupported data type is provided or if parameters are invalid.

reverse_strategy(params, additional_info)[source]ยถ

Return model parameters to saved original precision.

Parameters:
  • params (list[ndarray]) โ€“ The parameters to decompress.

  • additional_info (dict) โ€“ Additional information for decompression.

Return type:

list[ndarray]

Returns:

Decompressed parameters.

Raises:

ValueError โ€“ If the parameters or additional info are invalid.