EquivalentTransformation Configuration

EquivalentTransformation Configuration#

Mobilint SDK qb Compiler: EquivalentTransformation Configuration
Mobilint SDK qb Compiler v1.0
MCS002-KR
EquivalentTransformation Configuration

EquivalentTransformation configuration definitions used by Mobilint compiler for model quantization. More...

Classes

class  qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig
 Configuration for equivalent transformation techniques. More...

Functions

 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.__init__ (self, int seed, bool apply_hadamard_rotation_matrix, bool norm_conv_apply, bool norm_conv_learn, float norm_conv_smoothing_factor, float norm_conv_min_gamma, float norm_conv_max_gamma, bool qk_apply, float qk_smoothing_factor, float qk_min_gamma, float qk_max_gamma, bool ud_apply, bool ud_learn, float ud_smoothing_factor, float ud_min_gamma, float ud_max_gamma, bool vo_apply, float vo_smoothing_factor, float vo_min_gamma, float vo_max_gamma, bool ff_multi_lut_apply, List[float] ff_multi_lut_breakpoints, bool spin_r1_apply, str spin_r1_matrix_path, bool head_out_ch_rotation_apply, str head_out_ch_rotation_matrix_path, bool spin_r2_apply, bool spin_r2_learn, str spin_r2_matrix_path, bool qk_rotation_apply, str qk_rotation_matrix_path, bool flatten_quant_apply, bool flatten_quant_learn, float flatten_quant_apply_threshold, float flatten_quant_max_overhead, bool optimize_ffn_apply, int optimize_ffn_ch_per_ffn, bool optional=optional)
 Initialize the EquivalentTransformationConfig.
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.check_valid (self, except_list=["optional"])
 Override to skip py_to_cpp_name check (uses nested structure in to_dict)
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.default_config (cls)
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.from_dict (cls, dict config_dict)
 Create EquivalentTransformationConfig from dictionary (JSON structure)
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.to_dict (self)
EquivalentTransformationConfig qbcompiler.configs.equivalent_transformation_config.get_equivalent_transformation_config (**kwargs)
 Create EquivalentTransformationConfig with partial parameters merged with defaults.

Variables

bool qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.optional = False
dict qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.py_to_cpp_name = {}
dict qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.DEFAULTS
dict qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.min_max_check
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.seed = seed
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.apply_hadamard_rotation_matrix = apply_hadamard_rotation_matrix
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.norm_conv_apply = norm_conv_apply
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.norm_conv_learn = norm_conv_learn
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.norm_conv_smoothing_factor = norm_conv_smoothing_factor
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.norm_conv_min_gamma = norm_conv_min_gamma
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.norm_conv_max_gamma = norm_conv_max_gamma
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.qk_apply = qk_apply
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.qk_smoothing_factor = qk_smoothing_factor
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.qk_min_gamma = qk_min_gamma
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.qk_max_gamma = qk_max_gamma
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.ud_apply = ud_apply
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.ud_learn = ud_learn
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.ud_smoothing_factor = ud_smoothing_factor
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.ud_min_gamma = ud_min_gamma
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.ud_max_gamma = ud_max_gamma
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.vo_apply = vo_apply
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.vo_smoothing_factor = vo_smoothing_factor
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.vo_min_gamma = vo_min_gamma
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.vo_max_gamma = vo_max_gamma
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.ff_multi_lut_apply = ff_multi_lut_apply
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.ff_multi_lut_breakpoints = ff_multi_lut_breakpoints
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.spin_r1_apply = spin_r1_apply
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.spin_r1_matrix_path = spin_r1_matrix_path
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.head_out_ch_rotation_apply = head_out_ch_rotation_apply
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.head_out_ch_rotation_matrix_path = head_out_ch_rotation_matrix_path
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.spin_r2_apply = spin_r2_apply
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.spin_r2_learn = spin_r2_learn
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.spin_r2_matrix_path = spin_r2_matrix_path
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.qk_rotation_apply = qk_rotation_apply
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.qk_rotation_matrix_path = qk_rotation_matrix_path
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.flatten_quant_apply = flatten_quant_apply
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.flatten_quant_learn = flatten_quant_learn
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.flatten_quant_apply_threshold = flatten_quant_apply_threshold
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.flatten_quant_max_overhead = flatten_quant_max_overhead
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.optimize_ffn_apply = optimize_ffn_apply
 qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.optimize_ffn_ch_per_ffn = optimize_ffn_ch_per_ffn

Detailed Description

EquivalentTransformation configuration definitions used by Mobilint compiler for model quantization.

Function Documentation

◆ __init__()

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.__init__ ( self,
int seed,
bool apply_hadamard_rotation_matrix,
bool norm_conv_apply,
bool norm_conv_learn,
float norm_conv_smoothing_factor,
float norm_conv_min_gamma,
float norm_conv_max_gamma,
bool qk_apply,
float qk_smoothing_factor,
float qk_min_gamma,
float qk_max_gamma,
bool ud_apply,
bool ud_learn,
float ud_smoothing_factor,
float ud_min_gamma,
float ud_max_gamma,
bool vo_apply,
float vo_smoothing_factor,
float vo_min_gamma,
float vo_max_gamma,
bool ff_multi_lut_apply,
List[float] ff_multi_lut_breakpoints,
bool spin_r1_apply,
str spin_r1_matrix_path,
bool head_out_ch_rotation_apply,
str head_out_ch_rotation_matrix_path,
bool spin_r2_apply,
bool spin_r2_learn,
str spin_r2_matrix_path,
bool qk_rotation_apply,
str qk_rotation_matrix_path,
bool flatten_quant_apply,
bool flatten_quant_learn,
float flatten_quant_apply_threshold,
float flatten_quant_max_overhead,
bool optimize_ffn_apply,
int optimize_ffn_ch_per_ffn,
bool optional = optional )

Initialize the EquivalentTransformationConfig.

Parameters
seedint. Random seed used for equivalent transformation operations. Default is 0.
apply_hadamard_rotation_matrixbool. If True, apply the Hadamard rotation matrix where applicable. Default is True.

NormConv

Parameters
norm_conv_applybool. If True, enable NormConv transformation. Default is False.
norm_conv_learnbool. If True, learn NormConv parameters during calibration/optimization. Default is False.
norm_conv_smoothing_factorfloat. Smoothing factor used in NormConv. Default is 0.5.
norm_conv_min_gammafloat. Minimum gamma value (lower bound clamp) for NormConv. Default is 0.0001.
norm_conv_max_gammafloat. Maximum gamma value (upper bound clamp) for NormConv. Default is 10000.0.

QK

Parameters
qk_applybool. If True, enable QK transformation. Default is False.
qk_smoothing_factorfloat. Smoothing factor used in QK. Default is 0.5.
qk_min_gammafloat. Minimum gamma value (lower bound clamp) for QK. Default is 0.0001.
qk_max_gammafloat. Maximum gamma value (upper bound clamp) for QK. Default is 10000.0.

UD

Parameters
ud_applybool. If True, enable UD transformation. Default is False.
ud_learnbool. If True, learn UD parameters during calibration/optimization. Default is False.
ud_smoothing_factorfloat. Smoothing factor used in UD. Default is 0.5.
ud_min_gammafloat. Minimum gamma value (lower bound clamp) for UD. Default is 0.0001.
ud_max_gammafloat. Maximum gamma value (upper bound clamp) for UD. Default is 10000.0.

VO

Parameters
vo_applybool. If True, enable VO transformation. Default is False.
vo_smoothing_factorfloat. Smoothing factor used in VO. Default is 0.5.
vo_min_gammafloat. Minimum gamma value (lower bound clamp) for VO. Default is 0.0001.
vo_max_gammafloat. Maximum gamma value (upper bound clamp) for VO. Default is 10000.0.

FeedForwardMultiLUT

Parameters
ff_multi_lut_applybool. If True, enable FeedForward Multi-LUT. Default is False.
ff_multi_lut_breakpointsList[float]. Breakpoints used for FeedForward Multi-LUT piecewise regions. Default is [-8.0, -4.0, 0].

SpinR1

Parameters
spin_r1_applybool. If True, enable SpinR1 rotation. Default is False.
spin_r1_matrix_pathstr. Path to the SpinR1 rotation matrix file. Default is "".

HeadOutChRotation

Parameters
head_out_ch_rotation_applybool. If True, enable HeadOutChRotation. Default is False.
head_out_ch_rotation_matrix_pathstr. Path to the HeadOutChRotation matrix file. Default is "".

SpinR2

Parameters
spin_r2_applybool. If True, enable SpinR2 rotation. Default is False.
spin_r2_learnbool. If True, learn the SpinR2 rotation matrix/parameters during calibration/optimization. Default is False.
spin_r2_matrix_pathstr. Path to the SpinR2 rotation matrix file. Default is "".

QKRotation

Parameters
qk_rotation_applybool. If True, enable QKRotation. Default is False.
qk_rotation_matrix_pathstr. Path to the QKRotation matrix file. Default is "".

FlattenQuant

Parameters
flatten_quant_applybool. If True, enable FlattenQuant. Default is False.
flatten_quant_learnbool. If True, learn FlattenQuant parameters during calibration/optimization. Default is False.
flatten_quant_apply_thresholdfloat. Threshold for applying FlattenQuant. Default is 0.33.
flatten_quant_max_overheadfloat. Maximum allowed overhead when applying FlattenQuant. Default is 0.05.

OptimizeFFN

Parameters
optimize_ffn_applybool. If True, enable OptimizeFFN. Default is False.
optimize_ffn_ch_per_ffnint. Number of channels per FFN used when OptimizeFFN is enabled. Default is -1.
optionalbool. Indicates whether this config is optional. Use the default value defined as a class variable.

Definition at line 96 of file equivalent_transformation_config.py.

◆ check_valid()

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.check_valid ( self,
except_list = ["optional"] )

Override to skip py_to_cpp_name check (uses nested structure in to_dict)

Definition at line 277 of file equivalent_transformation_config.py.

◆ default_config()

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.default_config ( cls)

Definition at line 283 of file equivalent_transformation_config.py.

◆ from_dict()

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.from_dict ( cls,
dict config_dict )

Create EquivalentTransformationConfig from dictionary (JSON structure)

Definition at line 287 of file equivalent_transformation_config.py.

◆ to_dict()

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.to_dict ( self)

Definition at line 418 of file equivalent_transformation_config.py.

◆ get_equivalent_transformation_config()

EquivalentTransformationConfig qbcompiler.configs.equivalent_transformation_config.get_equivalent_transformation_config ( ** kwargs)

Create EquivalentTransformationConfig with partial parameters merged with defaults.

Definition at line 482 of file equivalent_transformation_config.py.

Variable Documentation

◆ optional

bool qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.optional = False
static

Definition at line 22 of file equivalent_transformation_config.py.

◆ py_to_cpp_name

dict qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.py_to_cpp_name = {}
static

Definition at line 23 of file equivalent_transformation_config.py.

◆ DEFAULTS

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.DEFAULTS
static

Definition at line 27 of file equivalent_transformation_config.py.

◆ min_max_check

dict qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.min_max_check
static
Initial value:
= {
"norm_conv_smoothing_factor": [0.0, 1.0],
"norm_conv_min_gamma": [0.0, None],
"norm_conv_max_gamma": [0.0, None],
"qk_smoothing_factor": [0.0, 1.0],
"qk_min_gamma": [0.0, None],
"qk_max_gamma": [0.0, None],
"ud_smoothing_factor": [0.0, 1.0],
"ud_min_gamma": [0.0, None],
"ud_max_gamma": [0.0, None],
"vo_smoothing_factor": [0.0, 1.0],
"vo_min_gamma": [0.0, None],
"vo_max_gamma": [0.0, None],
"flatten_quant_apply_threshold": [0.0, 1.0],
"flatten_quant_max_overhead": [0.0, None],
}

Definition at line 79 of file equivalent_transformation_config.py.

◆ seed

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.seed = seed

Definition at line 215 of file equivalent_transformation_config.py.

◆ apply_hadamard_rotation_matrix

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.apply_hadamard_rotation_matrix = apply_hadamard_rotation_matrix

Definition at line 216 of file equivalent_transformation_config.py.

◆ norm_conv_apply

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.norm_conv_apply = norm_conv_apply

Definition at line 219 of file equivalent_transformation_config.py.

◆ norm_conv_learn

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.norm_conv_learn = norm_conv_learn

Definition at line 220 of file equivalent_transformation_config.py.

◆ norm_conv_smoothing_factor

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.norm_conv_smoothing_factor = norm_conv_smoothing_factor

Definition at line 221 of file equivalent_transformation_config.py.

◆ norm_conv_min_gamma

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.norm_conv_min_gamma = norm_conv_min_gamma

Definition at line 222 of file equivalent_transformation_config.py.

◆ norm_conv_max_gamma

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.norm_conv_max_gamma = norm_conv_max_gamma

Definition at line 223 of file equivalent_transformation_config.py.

◆ qk_apply

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.qk_apply = qk_apply

Definition at line 226 of file equivalent_transformation_config.py.

◆ qk_smoothing_factor

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.qk_smoothing_factor = qk_smoothing_factor

Definition at line 227 of file equivalent_transformation_config.py.

◆ qk_min_gamma

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.qk_min_gamma = qk_min_gamma

Definition at line 228 of file equivalent_transformation_config.py.

◆ qk_max_gamma

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.qk_max_gamma = qk_max_gamma

Definition at line 229 of file equivalent_transformation_config.py.

◆ ud_apply

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.ud_apply = ud_apply

Definition at line 232 of file equivalent_transformation_config.py.

◆ ud_learn

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.ud_learn = ud_learn

Definition at line 233 of file equivalent_transformation_config.py.

◆ ud_smoothing_factor

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.ud_smoothing_factor = ud_smoothing_factor

Definition at line 234 of file equivalent_transformation_config.py.

◆ ud_min_gamma

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.ud_min_gamma = ud_min_gamma

Definition at line 235 of file equivalent_transformation_config.py.

◆ ud_max_gamma

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.ud_max_gamma = ud_max_gamma

Definition at line 236 of file equivalent_transformation_config.py.

◆ vo_apply

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.vo_apply = vo_apply

Definition at line 239 of file equivalent_transformation_config.py.

◆ vo_smoothing_factor

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.vo_smoothing_factor = vo_smoothing_factor

Definition at line 240 of file equivalent_transformation_config.py.

◆ vo_min_gamma

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.vo_min_gamma = vo_min_gamma

Definition at line 241 of file equivalent_transformation_config.py.

◆ vo_max_gamma

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.vo_max_gamma = vo_max_gamma

Definition at line 242 of file equivalent_transformation_config.py.

◆ ff_multi_lut_apply

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.ff_multi_lut_apply = ff_multi_lut_apply

Definition at line 245 of file equivalent_transformation_config.py.

◆ ff_multi_lut_breakpoints

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.ff_multi_lut_breakpoints = ff_multi_lut_breakpoints

Definition at line 246 of file equivalent_transformation_config.py.

◆ spin_r1_apply

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.spin_r1_apply = spin_r1_apply

Definition at line 249 of file equivalent_transformation_config.py.

◆ spin_r1_matrix_path

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.spin_r1_matrix_path = spin_r1_matrix_path

Definition at line 250 of file equivalent_transformation_config.py.

◆ head_out_ch_rotation_apply

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.head_out_ch_rotation_apply = head_out_ch_rotation_apply

Definition at line 253 of file equivalent_transformation_config.py.

◆ head_out_ch_rotation_matrix_path

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.head_out_ch_rotation_matrix_path = head_out_ch_rotation_matrix_path

Definition at line 254 of file equivalent_transformation_config.py.

◆ spin_r2_apply

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.spin_r2_apply = spin_r2_apply

Definition at line 257 of file equivalent_transformation_config.py.

◆ spin_r2_learn

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.spin_r2_learn = spin_r2_learn

Definition at line 258 of file equivalent_transformation_config.py.

◆ spin_r2_matrix_path

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.spin_r2_matrix_path = spin_r2_matrix_path

Definition at line 259 of file equivalent_transformation_config.py.

◆ qk_rotation_apply

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.qk_rotation_apply = qk_rotation_apply

Definition at line 262 of file equivalent_transformation_config.py.

◆ qk_rotation_matrix_path

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.qk_rotation_matrix_path = qk_rotation_matrix_path

Definition at line 263 of file equivalent_transformation_config.py.

◆ flatten_quant_apply

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.flatten_quant_apply = flatten_quant_apply

Definition at line 266 of file equivalent_transformation_config.py.

◆ flatten_quant_learn

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.flatten_quant_learn = flatten_quant_learn

Definition at line 267 of file equivalent_transformation_config.py.

◆ flatten_quant_apply_threshold

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.flatten_quant_apply_threshold = flatten_quant_apply_threshold

Definition at line 268 of file equivalent_transformation_config.py.

◆ flatten_quant_max_overhead

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.flatten_quant_max_overhead = flatten_quant_max_overhead

Definition at line 269 of file equivalent_transformation_config.py.

◆ optimize_ffn_apply

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.optimize_ffn_apply = optimize_ffn_apply

Definition at line 272 of file equivalent_transformation_config.py.

◆ optimize_ffn_ch_per_ffn

qbcompiler.configs.equivalent_transformation_config.EquivalentTransformationConfig.optimize_ffn_ch_per_ffn = optimize_ffn_ch_per_ffn

Definition at line 273 of file equivalent_transformation_config.py.