From f8162cfc8c4630e554073c9146fda8be576c07cb Mon Sep 17 00:00:00 2001 From: Yuval Avrahami <133960019+yuvalavr24@users.noreply.github.com> Date: Sun, 10 Nov 2024 16:57:35 +0200 Subject: [PATCH 1/8] Scan model-compression-kit in Black Duck (#1258) * Scan model-compression-kit in Black Duck * Fix branch name * Fix trigger --- .github/workflows/black_duck_scan.yml | 116 ++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 .github/workflows/black_duck_scan.yml diff --git a/.github/workflows/black_duck_scan.yml b/.github/workflows/black_duck_scan.yml new file mode 100644 index 000000000..57a57a476 --- /dev/null +++ b/.github/workflows/black_duck_scan.yml @@ -0,0 +1,116 @@ +name: Black Duck Scan + +on: + push: + branches: [ main ] + + +env: + BLACKDUCK_PROJECT_NAME: ${{ github.event.repository.name }} + BLACKDUCK_VERSION_NAME: "latest" + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} + +jobs: + blackduck: + name: Black-Duck action + runs-on: ubuntu-latest + continue-on-error: true + steps: + - name: Checkout Source + uses: actions/checkout@v4 + - name: Install Python 🔧 + uses: actions/setup-python@v4 + with: + python-version: '3.8' + - name: Build Wheel + id: get_version + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + pip install twine + python setup.py bdist_wheel + unzip -o ./dist/model_compression_toolkit-2.2.0-py3-none-any.whl -d ./dist + version=$(python -c 'import model_compression_toolkit; print(model_compression_toolkit.__version__)') + echo "model_compression_version=$version" >> $GITHUB_OUTPUT + - name: Black Duck Full Scan + uses: synopsys-sig/synopsys-action@v1.12.0 + env: + DETECT_PROJECT_NAME: ${{ env.BLACKDUCK_PROJECT_NAME }} + DETECT_PROJECT_VERSION_NAME: ${{ env.BLACKDUCK_VERSION_NAME }} + DETECT_PIP_REQUIREMENTS_PATH: requirements.txt + DETECT_BLACKDUCK_SIGNATURE_SCANNER_PATHS: dist/model_compression_toolkit + DETECT_BLACKDUCK_SIGNATURE_SCANNER_SNIPPET_MATCHING: SNIPPET_MATCHING + DETECT_RISK_REPORT_PDF: true + DETECT_TIMEOUT: 360000 + with: + blackduck_url: ${{ secrets.BLACKDUCK_URL }} + blackduck_token: ${{ secrets.BLACKDUCK_API_TOKEN }} + - name: Handle Black Duck scan failure + if: ${{ failure() }} + shell: bash + run: | + echo "No report was created due to a failure in black duck scan" > model_compression_scan_${{ steps.get_version.outputs.model_compression_version }}.json + cat model_compression_scan_${{ steps.get_version.outputs.model_compression_version }}.json + mkdir model_compression_scan_${{ steps.get_version.outputs.model_compression_version }} + cp -r ./model_compression_scan_${{ steps.get_version.outputs.model_compression_version }}.json model_compression_scan_${{ steps.get_version.outputs.model_compression_version }} + ls model_compression_scan_${{ steps.get_version.outputs.model_compression_version }} + text="The Black-Duck scan failed; therefore, the JSON report created is a dump report.There are no PDF/ver_src reports" + echo "::warning::$text" + - name: Verify Black Duck Sources Scan + if: ${{ success() }} + uses: ssi-dnn/sdsp-converter-actions/black-duck-verify-sources@main + with: + BLACKDUCK_API_TOKEN: ${{ secrets.BLACKDUCK_API_TOKEN }} + BLACKDUCK_PROJECT_NAME: ${{ env.BLACKDUCK_PROJECT_NAME }} + BLACKDUCK_VERSION_NAME: ${{ env.BLACKDUCK_VERSION_NAME }} + BLACKDUCK_SUB_PROJECTS_NAME: ${{ env.BLACKDUCK_SUB_PROJECTS_NAME }} + BLACKDUCK_VERIFY_SOURCES_JSON: model_compression_ver_src_${{ steps.get_version.outputs.model_compression_version }}.json + - name: Get Black Duck Scan Result + if: ${{ success() }} + uses: ssi-dnn/sdsp-converter-actions/black-duck-tool@main + with: + BLACKDUCK_API_TOKEN: ${{ secrets.BLACKDUCK_API_TOKEN }} + BLACKDUCK_PROJECT_NAME: ${{ env.BLACKDUCK_PROJECT_NAME }} + BLACKDUCK_VERSION_NAME: ${{ env.BLACKDUCK_VERSION_NAME }} + BLACKDUCK_REPORT_FILE_NAME: model_compression_scan_${{ steps.get_version.outputs.model_compression_version }}.json + - name: Create black duck dir + if: ${{ success() }} + run: | + ls + mkdir model_compression_scan_${{ steps.get_version.outputs.model_compression_version }} + pdf_project_name=$(echo "${{ env.BLACKDUCK_PROJECT_NAME }}" | tr '-' '_') + echo $pdf_project_name + cp -r ./model_compression_scan_${{ steps.get_version.outputs.model_compression_version }}.json model_compression_scan_${{ steps.get_version.outputs.model_compression_version }} + cp -r ./model_compression_ver_src_${{ steps.get_version.outputs.model_compression_version }}.json model_compression_scan_${{ steps.get_version.outputs.model_compression_version }} + cp -r ./${pdf_project_name}_${{ env.BLACKDUCK_VERSION_NAME }}_BlackDuck_RiskReport.pdf model_compression_scan_${{ steps.get_version.outputs.model_compression_version }} + ls model_compression_scan_${{ steps.get_version.outputs.model_compression_version }} + - name: Upload scan result + if: ${{ always() }} + uses: actions/upload-artifact@v4 + env: + file_path: ./model_compression_scan_${{ steps.get_version.outputs.model_compression_version }} + with: + name: bd-scan-result + path: ${{ env.file_path }} + retention-days: 1 + outputs: + model_compression_version: ${{ steps.get_version.outputs.model_compression_version }} + + + save_blackduck_scan_result: + name: Save scan result - Black-Duck + needs: [ blackduck ] + env: + PATH_TO_SAVE: /home/sdsprobot/blackduck_scans/model_compression_scans/model_compression_scan_${{ needs.blackduck.outputs.model_compression_version }}/ + runs-on: + group: DNN01 + labels: self-hosted + steps: + - name: Download artifact + uses: actions/download-artifact@v4 + with: + name: bd-scan-result + path: ${{ env.PATH_TO_SAVE }} From 19ea45256405549ea3c647866ac3106a84ee1cbb Mon Sep 17 00:00:00 2001 From: Yuval Avrahami <133960019+yuvalavr24@users.noreply.github.com> Date: Mon, 11 Nov 2024 11:45:00 +0200 Subject: [PATCH 2/8] Move workflow to different repository (#1262) * Scan model-compression-kit in Black Duck * Move workflow to different repository From f34972e3732a8f721a68a553a5c6bcc59caf0808 Mon Sep 17 00:00:00 2001 From: Yuval Avrahami <133960019+yuvalavr24@users.noreply.github.com> Date: Mon, 11 Nov 2024 12:35:23 +0200 Subject: [PATCH 3/8] Remove Black-Duck action (#1263) --- .github/workflows/black_duck_scan.yml | 116 -------------------------- 1 file changed, 116 deletions(-) delete mode 100644 .github/workflows/black_duck_scan.yml diff --git a/.github/workflows/black_duck_scan.yml b/.github/workflows/black_duck_scan.yml deleted file mode 100644 index 57a57a476..000000000 --- a/.github/workflows/black_duck_scan.yml +++ /dev/null @@ -1,116 +0,0 @@ -name: Black Duck Scan - -on: - push: - branches: [ main ] - - -env: - BLACKDUCK_PROJECT_NAME: ${{ github.event.repository.name }} - BLACKDUCK_VERSION_NAME: "latest" - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} - -jobs: - blackduck: - name: Black-Duck action - runs-on: ubuntu-latest - continue-on-error: true - steps: - - name: Checkout Source - uses: actions/checkout@v4 - - name: Install Python 🔧 - uses: actions/setup-python@v4 - with: - python-version: '3.8' - - name: Build Wheel - id: get_version - run: | - python -m pip install --upgrade pip - pip install -r requirements.txt - pip install twine - python setup.py bdist_wheel - unzip -o ./dist/model_compression_toolkit-2.2.0-py3-none-any.whl -d ./dist - version=$(python -c 'import model_compression_toolkit; print(model_compression_toolkit.__version__)') - echo "model_compression_version=$version" >> $GITHUB_OUTPUT - - name: Black Duck Full Scan - uses: synopsys-sig/synopsys-action@v1.12.0 - env: - DETECT_PROJECT_NAME: ${{ env.BLACKDUCK_PROJECT_NAME }} - DETECT_PROJECT_VERSION_NAME: ${{ env.BLACKDUCK_VERSION_NAME }} - DETECT_PIP_REQUIREMENTS_PATH: requirements.txt - DETECT_BLACKDUCK_SIGNATURE_SCANNER_PATHS: dist/model_compression_toolkit - DETECT_BLACKDUCK_SIGNATURE_SCANNER_SNIPPET_MATCHING: SNIPPET_MATCHING - DETECT_RISK_REPORT_PDF: true - DETECT_TIMEOUT: 360000 - with: - blackduck_url: ${{ secrets.BLACKDUCK_URL }} - blackduck_token: ${{ secrets.BLACKDUCK_API_TOKEN }} - - name: Handle Black Duck scan failure - if: ${{ failure() }} - shell: bash - run: | - echo "No report was created due to a failure in black duck scan" > model_compression_scan_${{ steps.get_version.outputs.model_compression_version }}.json - cat model_compression_scan_${{ steps.get_version.outputs.model_compression_version }}.json - mkdir model_compression_scan_${{ steps.get_version.outputs.model_compression_version }} - cp -r ./model_compression_scan_${{ steps.get_version.outputs.model_compression_version }}.json model_compression_scan_${{ steps.get_version.outputs.model_compression_version }} - ls model_compression_scan_${{ steps.get_version.outputs.model_compression_version }} - text="The Black-Duck scan failed; therefore, the JSON report created is a dump report.There are no PDF/ver_src reports" - echo "::warning::$text" - - name: Verify Black Duck Sources Scan - if: ${{ success() }} - uses: ssi-dnn/sdsp-converter-actions/black-duck-verify-sources@main - with: - BLACKDUCK_API_TOKEN: ${{ secrets.BLACKDUCK_API_TOKEN }} - BLACKDUCK_PROJECT_NAME: ${{ env.BLACKDUCK_PROJECT_NAME }} - BLACKDUCK_VERSION_NAME: ${{ env.BLACKDUCK_VERSION_NAME }} - BLACKDUCK_SUB_PROJECTS_NAME: ${{ env.BLACKDUCK_SUB_PROJECTS_NAME }} - BLACKDUCK_VERIFY_SOURCES_JSON: model_compression_ver_src_${{ steps.get_version.outputs.model_compression_version }}.json - - name: Get Black Duck Scan Result - if: ${{ success() }} - uses: ssi-dnn/sdsp-converter-actions/black-duck-tool@main - with: - BLACKDUCK_API_TOKEN: ${{ secrets.BLACKDUCK_API_TOKEN }} - BLACKDUCK_PROJECT_NAME: ${{ env.BLACKDUCK_PROJECT_NAME }} - BLACKDUCK_VERSION_NAME: ${{ env.BLACKDUCK_VERSION_NAME }} - BLACKDUCK_REPORT_FILE_NAME: model_compression_scan_${{ steps.get_version.outputs.model_compression_version }}.json - - name: Create black duck dir - if: ${{ success() }} - run: | - ls - mkdir model_compression_scan_${{ steps.get_version.outputs.model_compression_version }} - pdf_project_name=$(echo "${{ env.BLACKDUCK_PROJECT_NAME }}" | tr '-' '_') - echo $pdf_project_name - cp -r ./model_compression_scan_${{ steps.get_version.outputs.model_compression_version }}.json model_compression_scan_${{ steps.get_version.outputs.model_compression_version }} - cp -r ./model_compression_ver_src_${{ steps.get_version.outputs.model_compression_version }}.json model_compression_scan_${{ steps.get_version.outputs.model_compression_version }} - cp -r ./${pdf_project_name}_${{ env.BLACKDUCK_VERSION_NAME }}_BlackDuck_RiskReport.pdf model_compression_scan_${{ steps.get_version.outputs.model_compression_version }} - ls model_compression_scan_${{ steps.get_version.outputs.model_compression_version }} - - name: Upload scan result - if: ${{ always() }} - uses: actions/upload-artifact@v4 - env: - file_path: ./model_compression_scan_${{ steps.get_version.outputs.model_compression_version }} - with: - name: bd-scan-result - path: ${{ env.file_path }} - retention-days: 1 - outputs: - model_compression_version: ${{ steps.get_version.outputs.model_compression_version }} - - - save_blackduck_scan_result: - name: Save scan result - Black-Duck - needs: [ blackduck ] - env: - PATH_TO_SAVE: /home/sdsprobot/blackduck_scans/model_compression_scans/model_compression_scan_${{ needs.blackduck.outputs.model_compression_version }}/ - runs-on: - group: DNN01 - labels: self-hosted - steps: - - name: Download artifact - uses: actions/download-artifact@v4 - with: - name: bd-scan-result - path: ${{ env.PATH_TO_SAVE }} From 9ac9f54ac485c026372e89280974cde1e1be2b30 Mon Sep 17 00:00:00 2001 From: Irena Byzalov <102301507+irenaby@users.noreply.github.com> Date: Tue, 12 Nov 2024 18:53:56 +0200 Subject: [PATCH 4/8] Enable SLA + gradual activation quantization by default for PyTorch (#1260) * update default reg factor and bias lr * update gptq config, set sla + gradual activation as default * fix tests * update hessian config * fix bug in hessian service --- .../common/hessian/hessian_info_service.py | 2 +- .../gptq/common/gptq_config.py | 49 ++++++----- .../gptq/common/gptq_constants.py | 4 +- .../gptq/common/gptq_training.py | 2 +- .../gptq/keras/gptq_training.py | 2 +- .../gptq/keras/quantization_facade.py | 14 ++-- .../gptq/pytorch/gptq_training.py | 4 +- .../gptq/pytorch/quantization_facade.py | 47 ++++++----- .../feature_networks/gptq/gptq_test.py | 83 ++++++++++++------- .../test_features_runner.py | 2 +- .../function_tests/test_get_gptq_config.py | 40 ++++++--- ...est_activation_quantization_holder_gptq.py | 5 +- .../model_tests/feature_models/gptq_test.py | 46 +++++----- .../gptq/test_gradual_act_quantization.py | 3 +- .../gptq/test_gradual_act_quantization.py | 3 +- 15 files changed, 186 insertions(+), 120 deletions(-) diff --git a/model_compression_toolkit/core/common/hessian/hessian_info_service.py b/model_compression_toolkit/core/common/hessian/hessian_info_service.py index 41bd896df..6d93dc126 100644 --- a/model_compression_toolkit/core/common/hessian/hessian_info_service.py +++ b/model_compression_toolkit/core/common/hessian/hessian_info_service.py @@ -204,7 +204,7 @@ def _fetch_hessians_with_compute(self, request: HessianScoresRequest, n_iteratio target_nodes = [n for n in orig_request.target_nodes if n.name in missing] request = request.clone(target_nodes=target_nodes) self._compute_hessians(request, n_iterations, count_by_cache=True) - res, missing = self.cache.fetch_hessian(request) + res, missing = self.cache.fetch_hessian(orig_request) assert not missing return res diff --git a/model_compression_toolkit/gptq/common/gptq_config.py b/model_compression_toolkit/gptq/common/gptq_config.py index 3a96fd86b..d7ef753a2 100644 --- a/model_compression_toolkit/gptq/common/gptq_config.py +++ b/model_compression_toolkit/gptq/common/gptq_config.py @@ -16,8 +16,7 @@ from enum import Enum from typing import Callable, Any, Dict, Optional -from model_compression_toolkit.constants import GPTQ_HESSIAN_NUM_SAMPLES, ACT_HESSIAN_DEFAULT_BATCH_SIZE -from model_compression_toolkit.gptq.common.gptq_constants import REG_DEFAULT +from model_compression_toolkit.constants import ACT_HESSIAN_DEFAULT_BATCH_SIZE class RoundingType(Enum): @@ -39,20 +38,26 @@ class GPTQHessianScoresConfig: Configuration to use for computing the Hessian-based scores for GPTQ loss metric. Args: + per_sample (bool): Whether to use per sample attention score. hessians_num_samples (int|None): Number of samples to use for computing the Hessian-based scores. If None, compute Hessian for all images. norm_scores (bool): Whether to normalize the returned scores of the weighted loss function (to get values between 0 and 1). log_norm (bool): Whether to use log normalization for the GPTQ Hessian-based scores. scale_log_norm (bool): Whether to scale the final vector of the Hessian-based scores. hessian_batch_size (int): The Hessian computation batch size. used only if using GPTQ with Hessian-based objective. - per_sample (bool): Whether to use per sample attention score. """ - hessians_num_samples: Optional[int] = GPTQ_HESSIAN_NUM_SAMPLES - norm_scores: bool = True - log_norm: bool = True + per_sample: bool + hessians_num_samples: Optional[int] + norm_scores: bool = None + log_norm: bool = None scale_log_norm: bool = False hessian_batch_size: int = ACT_HESSIAN_DEFAULT_BATCH_SIZE - per_sample: bool = False + + def __post_init__(self): + if self.norm_scores is None: + self.norm_scores = not self.per_sample + if self.log_norm is None: + self.log_norm = not self.per_sample @dataclass @@ -107,32 +112,30 @@ class GradientPTQConfig: Args: n_epochs: Number of representative dataset epochs to train. - optimizer: Optimizer to use. - optimizer_rest: Optimizer to use for bias and quantizer parameters. loss: The loss to use. See 'multiple_tensors_mse_loss' for the expected interface. - log_function: Function to log information about the GPTQ process. + optimizer: Optimizer to use. + optimizer_rest: Default optimizer to use for bias and quantizer parameters. train_bias: Whether to update the bias during the training or not. - rounding_type: An enum that defines the rounding type. - use_hessian_based_weights: Whether to use Hessian-based weights for weighted average loss. - optimizer_quantization_parameter: Optimizer to override the rest optimizer for quantizer parameters. - optimizer_bias: Optimizer to override the rest optimizer for bias. - regularization_factor: A floating point number that defines the regularization factor. hessian_weights_config: A configuration that include all necessary arguments to run a computation of Hessian scores for the GPTQ loss. gradual_activation_quantization_config: A configuration for Gradual Activation Quantization. + regularization_factor: A floating point number that defines the regularization factor. + rounding_type: An enum that defines the rounding type. + optimizer_quantization_parameter: Optimizer to override the rest optimizer for quantizer parameters. + optimizer_bias: Optimizer to override the rest optimizer for bias. + log_function: Function to log information about the GPTQ process. gptq_quantizer_params_override: A dictionary of parameters to override in GPTQ quantizer instantiation. """ n_epochs: int + loss: Callable optimizer: Any - optimizer_rest: Any = None - loss: Callable = None - log_function: Callable = None - train_bias: bool = True + optimizer_rest: Any + train_bias: bool + hessian_weights_config: Optional[GPTQHessianScoresConfig] + gradual_activation_quantization_config: Optional[GradualActivationQuantizationConfig] + regularization_factor: float rounding_type: RoundingType = RoundingType.SoftQuantizer - use_hessian_based_weights: bool = True optimizer_quantization_parameter: Any = None optimizer_bias: Any = None - regularization_factor: float = REG_DEFAULT - hessian_weights_config: GPTQHessianScoresConfig = field(default_factory=GPTQHessianScoresConfig) - gradual_activation_quantization_config: Optional[GradualActivationQuantizationConfig] = None + log_function: Callable = None gptq_quantizer_params_override: Dict[str, Any] = field(default_factory=dict) diff --git a/model_compression_toolkit/gptq/common/gptq_constants.py b/model_compression_toolkit/gptq/common/gptq_constants.py index 3451d9732..50b3304c7 100644 --- a/model_compression_toolkit/gptq/common/gptq_constants.py +++ b/model_compression_toolkit/gptq/common/gptq_constants.py @@ -14,6 +14,7 @@ MIM_TEMP = 0.5 MAX_TEMP = 1.0 REG_DEFAULT = 0.01 +REG_DEFAULT_SLA = 10 MAX_LSB_CHANGE = 1 # Soft rounding arguments values @@ -27,6 +28,5 @@ # GPTQ learning hyperparameters LR_DEFAULT = 3e-2 LR_REST_DEFAULT = 1e-4 -LR_BIAS_DEFAULT = 1e-3 -LR_QUANTIZATION_PARAM_DEFAULT = 1e-3 +LR_BIAS_DEFAULT = 1e-4 GPTQ_MOMENTUM = 0.9 diff --git a/model_compression_toolkit/gptq/common/gptq_training.py b/model_compression_toolkit/gptq/common/gptq_training.py index 32fc85163..04a39e2be 100644 --- a/model_compression_toolkit/gptq/common/gptq_training.py +++ b/model_compression_toolkit/gptq/common/gptq_training.py @@ -75,7 +75,7 @@ def __init__(self, fw_info=self.fw_info) self.fxp_model, self.gptq_user_info = self.build_gptq_model() - if self.gptq_config.use_hessian_based_weights: + if self.gptq_config.hessian_weights_config: if not isinstance(hessian_info_service, HessianInfoService): Logger.critical(f"When using Hessian-based approximations for sensitivity evaluation, " f"an 'HessianInfoService' object must be provided, but received: {hessian_info_service}.") # pragma: no cover diff --git a/model_compression_toolkit/gptq/keras/gptq_training.py b/model_compression_toolkit/gptq/keras/gptq_training.py index 4ba44e8fe..166778b77 100644 --- a/model_compression_toolkit/gptq/keras/gptq_training.py +++ b/model_compression_toolkit/gptq/keras/gptq_training.py @@ -139,7 +139,7 @@ def _get_total_grad_steps(): def _get_compare_points_loss_weights(self): """ Get compare points weights for the distillation loss. """ - if self.gptq_config.use_hessian_based_weights: + if self.gptq_config.hessian_weights_config: hess_dataloader = data_gen_to_dataloader(self.representative_data_gen_fn, batch_size=self.gptq_config.hessian_weights_config.hessian_batch_size) return self.compute_hessian_based_weights(hess_dataloader) diff --git a/model_compression_toolkit/gptq/keras/quantization_facade.py b/model_compression_toolkit/gptq/keras/quantization_facade.py index ead11c941..3233e1e28 100644 --- a/model_compression_toolkit/gptq/keras/quantization_facade.py +++ b/model_compression_toolkit/gptq/keras/quantization_facade.py @@ -21,7 +21,7 @@ from model_compression_toolkit.gptq.common.gptq_constants import REG_DEFAULT, LR_DEFAULT, LR_REST_DEFAULT, \ LR_BIAS_DEFAULT, GPTQ_MOMENTUM from model_compression_toolkit.logger import Logger -from model_compression_toolkit.constants import TENSORFLOW, ACT_HESSIAN_DEFAULT_BATCH_SIZE +from model_compression_toolkit.constants import TENSORFLOW, ACT_HESSIAN_DEFAULT_BATCH_SIZE, GPTQ_HESSIAN_NUM_SAMPLES from model_compression_toolkit.verify_packages import FOUND_TF from model_compression_toolkit.core.common.user_info import UserInformation from model_compression_toolkit.gptq.common.gptq_config import GradientPTQConfig, GPTQHessianScoresConfig, \ @@ -117,16 +117,20 @@ def get_keras_gptq_config(n_epochs: int, raise TypeError(f'gradual_activation_quantization argument should be bool or ' f'GradualActivationQuantizationConfig, received {type(gradual_activation_quantization)}') - return GradientPTQConfig(n_epochs, - optimizer, + hessian_weights_config = None + if use_hessian_based_weights: + hessian_weights_config = GPTQHessianScoresConfig(per_sample=False, + hessians_num_samples=GPTQ_HESSIAN_NUM_SAMPLES, + hessian_batch_size=hessian_batch_size) + return GradientPTQConfig(n_epochs=n_epochs, + optimizer=optimizer, optimizer_rest=optimizer_rest, loss=loss, log_function=log_function, train_bias=True, optimizer_bias=bias_optimizer, - use_hessian_based_weights=use_hessian_based_weights, regularization_factor=regularization_factor, - hessian_weights_config=GPTQHessianScoresConfig(hessian_batch_size=hessian_batch_size), + hessian_weights_config=hessian_weights_config, gradual_activation_quantization_config=gradual_quant_config) diff --git a/model_compression_toolkit/gptq/pytorch/gptq_training.py b/model_compression_toolkit/gptq/pytorch/gptq_training.py index ff510e6a6..ee91a36d3 100644 --- a/model_compression_toolkit/gptq/pytorch/gptq_training.py +++ b/model_compression_toolkit/gptq/pytorch/gptq_training.py @@ -116,7 +116,7 @@ def _get_total_grad_steps(): trainable_threshold) hessian_cfg = self.gptq_config.hessian_weights_config - self.use_sample_layer_attention = hessian_cfg.per_sample + self.use_sample_layer_attention = hessian_cfg and hessian_cfg.per_sample if self.use_sample_layer_attention: # normalization is currently not supported, make sure the config reflects it. if hessian_cfg.norm_scores or hessian_cfg.log_norm or hessian_cfg.scale_log_norm: @@ -178,7 +178,7 @@ def _prepare_train_dataloader_for_non_sla(self, data_gen_fn: Callable[[], Genera dataset = IterableDatasetFromGenerator(data_gen_fn) num_nodes = len(self.compare_points) - if self.gptq_config.use_hessian_based_weights: + if self.gptq_config.hessian_weights_config: hess_dataloader = DataLoader(dataset, batch_size=self.gptq_config.hessian_weights_config.hessian_batch_size) loss_weights = torch.from_numpy(self.compute_hessian_based_weights(hess_dataloader)) else: diff --git a/model_compression_toolkit/gptq/pytorch/quantization_facade.py b/model_compression_toolkit/gptq/pytorch/quantization_facade.py index 220fbb3ec..dbe964ee0 100644 --- a/model_compression_toolkit/gptq/pytorch/quantization_facade.py +++ b/model_compression_toolkit/gptq/pytorch/quantization_facade.py @@ -15,7 +15,7 @@ import copy from typing import Callable, Union -from model_compression_toolkit.constants import ACT_HESSIAN_DEFAULT_BATCH_SIZE, PYTORCH +from model_compression_toolkit.constants import ACT_HESSIAN_DEFAULT_BATCH_SIZE, PYTORCH, GPTQ_HESSIAN_NUM_SAMPLES from model_compression_toolkit.core import CoreConfig from model_compression_toolkit.core.analyzer import analyzer_model_quantization from model_compression_toolkit.core.common.mixed_precision.mixed_precision_quantization_config import \ @@ -27,7 +27,7 @@ from model_compression_toolkit.gptq.common.gptq_config import ( GradientPTQConfig, GPTQHessianScoresConfig, GradualActivationQuantizationConfig) from model_compression_toolkit.gptq.common.gptq_constants import REG_DEFAULT, LR_DEFAULT, LR_REST_DEFAULT, \ - LR_BIAS_DEFAULT, GPTQ_MOMENTUM + LR_BIAS_DEFAULT, GPTQ_MOMENTUM, REG_DEFAULT_SLA from model_compression_toolkit.gptq.runner import gptq_runner from model_compression_toolkit.logger import Logger from model_compression_toolkit.metadata import create_model_metadata @@ -55,10 +55,10 @@ def get_pytorch_gptq_config(n_epochs: int, loss: Callable = None, log_function: Callable = None, use_hessian_based_weights: bool = True, - regularization_factor: float = REG_DEFAULT, + regularization_factor: float = None, hessian_batch_size: int = ACT_HESSIAN_DEFAULT_BATCH_SIZE, - use_hessian_sample_attention: bool = False, - gradual_activation_quantization: Union[bool, GradualActivationQuantizationConfig] = False, + use_hessian_sample_attention: bool = True, + gradual_activation_quantization: Union[bool, GradualActivationQuantizationConfig] = True, ) -> GradientPTQConfig: """ Create a GradientPTQConfig instance for Pytorch models. @@ -94,25 +94,26 @@ def get_pytorch_gptq_config(n_epochs: int, """ optimizer = optimizer or Adam([torch.Tensor([])], lr=LR_DEFAULT) optimizer_rest = optimizer_rest or Adam([torch.Tensor([])], lr=LR_REST_DEFAULT) - + # TODO this contradicts the docstring for optimizer_rest bias_optimizer = torch.optim.SGD([torch.Tensor([])], lr=LR_BIAS_DEFAULT, momentum=GPTQ_MOMENTUM) + if regularization_factor is None: + regularization_factor = REG_DEFAULT_SLA if use_hessian_sample_attention else REG_DEFAULT + + loss = loss or multiple_tensors_mse_loss + hessian_weights_config = None if use_hessian_sample_attention: if not use_hessian_based_weights: # pragma: no cover raise ValueError('use_hessian_based_weights must be set to True in order to use Sample Layer Attention.') - hessian_weights_config = GPTQHessianScoresConfig( - hessians_num_samples=None, - norm_scores=False, - log_norm=False, - scale_log_norm=False, - hessian_batch_size=hessian_batch_size, - per_sample=True, - ) + hessian_weights_config = GPTQHessianScoresConfig(per_sample=True, + hessians_num_samples=None, + hessian_batch_size=hessian_batch_size) loss = loss or sample_layer_attention_loss - else: - hessian_weights_config = GPTQHessianScoresConfig(hessian_batch_size=hessian_batch_size) - loss = loss or multiple_tensors_mse_loss + elif use_hessian_based_weights: + hessian_weights_config = GPTQHessianScoresConfig(per_sample=False, + hessians_num_samples=GPTQ_HESSIAN_NUM_SAMPLES, + hessian_batch_size=hessian_batch_size) if isinstance(gradual_activation_quantization, bool): gradual_quant_config = GradualActivationQuantizationConfig() if gradual_activation_quantization else None @@ -122,12 +123,16 @@ def get_pytorch_gptq_config(n_epochs: int, raise TypeError(f'gradual_activation_quantization argument should be bool or ' f'GradualActivationQuantizationConfig, received {type(gradual_activation_quantization)}') - return GradientPTQConfig(n_epochs, optimizer, optimizer_rest=optimizer_rest, loss=loss, - log_function=log_function, train_bias=True, optimizer_bias=bias_optimizer, - use_hessian_based_weights=use_hessian_based_weights, + return GradientPTQConfig(n_epochs=n_epochs, + loss=loss, + optimizer=optimizer, + optimizer_rest=optimizer_rest, + optimizer_bias=bias_optimizer, + train_bias=True, regularization_factor=regularization_factor, hessian_weights_config=hessian_weights_config, - gradual_activation_quantization_config=gradual_quant_config) + gradual_activation_quantization_config=gradual_quant_config, + log_function=log_function) def pytorch_gradient_post_training_quantization(model: Module, representative_data_gen: Callable, diff --git a/tests/keras_tests/feature_networks_tests/feature_networks/gptq/gptq_test.py b/tests/keras_tests/feature_networks_tests/feature_networks/gptq/gptq_test.py index 0b7c60acc..d16eb8a16 100644 --- a/tests/keras_tests/feature_networks_tests/feature_networks/gptq/gptq_test.py +++ b/tests/keras_tests/feature_networks_tests/feature_networks/gptq/gptq_test.py @@ -59,8 +59,10 @@ def build_model(in_input_shape: List[int]) -> keras.Model: class GradientPTQBaseTest(BaseKerasFeatureNetworkTest): def __init__(self, unit_test, quant_method=QuantizationMethod.SYMMETRIC, rounding_type=RoundingType.STE, per_channel=True, input_shape=(1, 16, 16, 3), - hessian_weights=True, log_norm_weights=True, scaled_log_norm=False, - quantization_parameter_learning=True, num_calibration_iter=GPTQ_HESSIAN_NUM_SAMPLES): + hessian_weights=True, log_norm_weights=True, scaled_log_norm=False, norm_scores=False, + quantization_parameter_learning=True, num_calibration_iter=GPTQ_HESSIAN_NUM_SAMPLES, + hessian_num_samples=GPTQ_HESSIAN_NUM_SAMPLES, per_sample=False, + reg_factor=1, grad_act_quant_cfg=None): super().__init__(unit_test, input_shape=input_shape, num_calibration_iter=num_calibration_iter) @@ -68,15 +70,24 @@ def __init__(self, unit_test, quant_method=QuantizationMethod.SYMMETRIC, roundin self.quant_method = quant_method self.rounding_type = rounding_type self.per_channel = per_channel - self.hessian_weights = hessian_weights - self.log_norm_weights = log_norm_weights - self.scaled_log_norm = scaled_log_norm + + self.hessian_weights_config = None + if hessian_weights: + self.hessian_weights_config = GPTQHessianScoresConfig(per_sample=per_sample, + norm_scores=norm_scores, + log_norm=log_norm_weights, + scale_log_norm=scaled_log_norm, + hessians_num_samples=hessian_num_samples) + + self.grad_act_quant_cfg = grad_act_quant_cfg + self.reg_factor = reg_factor + if rounding_type == RoundingType.SoftQuantizer: self.override_params = {QUANT_PARAM_LEARNING_STR: quantization_parameter_learning} elif rounding_type == RoundingType.STE: self.override_params = {MAX_LSB_STR: DefaultDict(default_value=1)} else: - self.override_params = None + raise ValueError('unknown rounding type', rounding_type) def get_tpc(self): return get_tpc("gptq_test", 16, 16, self.quant_method) @@ -87,12 +98,13 @@ def get_quantization_config(self): relu_bound_to_power_of_2=True, weights_bias_correction=False) def get_gptq_config(self): - return GradientPTQConfig(5, optimizer=tf.keras.optimizers.Adam( - learning_rate=0.0001), optimizer_rest=tf.keras.optimizers.Adam( - learning_rate=0.0001), loss=multiple_tensors_mse_loss, train_bias=True, rounding_type=self.rounding_type, - use_hessian_based_weights=self.hessian_weights, - hessian_weights_config=GPTQHessianScoresConfig(log_norm=self.log_norm_weights, - scale_log_norm=self.scaled_log_norm), + return GradientPTQConfig(5, + optimizer=tf.keras.optimizers.Adam(learning_rate=0.0001), + optimizer_rest=tf.keras.optimizers.Adam(learning_rate=0.0001), + loss=multiple_tensors_mse_loss, train_bias=True, rounding_type=self.rounding_type, + hessian_weights_config=self.hessian_weights_config, + gradual_activation_quantization_config=self.grad_act_quant_cfg, + regularization_factor=self.reg_factor, gptq_quantizer_params_override=self.override_params) def create_networks(self): @@ -144,9 +156,13 @@ def compare(self, quantized_model, float_model, input_x=None, quantization_info= class GradientPTQNoTempLearningTest(GradientPTQBaseTest): def get_gptq_config(self): - return GradientPTQConfig(1, optimizer=tf.keras.optimizers.Adam( - learning_rate=0.0001), optimizer_rest=tf.keras.optimizers.Adam( - learning_rate=0.0001), loss=multiple_tensors_mse_loss, train_bias=True, rounding_type=self.rounding_type, + return GradientPTQConfig(1, + optimizer=tf.keras.optimizers.Adam(learning_rate=0.0001), + optimizer_rest=tf.keras.optimizers.Adam(learning_rate=0.0001), + loss=multiple_tensors_mse_loss, train_bias=True, rounding_type=self.rounding_type, + hessian_weights_config=self.hessian_weights_config, + gradual_activation_quantization_config=self.grad_act_quant_cfg, + regularization_factor=self.reg_factor, gptq_quantizer_params_override=self.override_params) def compare(self, quantized_model, float_model, input_x=None, quantization_info=None): @@ -159,9 +175,13 @@ def compare(self, quantized_model, float_model, input_x=None, quantization_info= class GradientPTQWeightsUpdateTest(GradientPTQBaseTest): def get_gptq_config(self): - return GradientPTQConfig(20, optimizer=tf.keras.optimizers.Adam( - learning_rate=1e-2), optimizer_rest=tf.keras.optimizers.Adam( - learning_rate=1e-1), loss=multiple_tensors_mse_loss, train_bias=True, rounding_type=self.rounding_type, + return GradientPTQConfig(20, + optimizer=tf.keras.optimizers.Adam(learning_rate=1e-2), + optimizer_rest=tf.keras.optimizers.Adam(learning_rate=1e-1), + loss=multiple_tensors_mse_loss, train_bias=True, rounding_type=self.rounding_type, + hessian_weights_config=self.hessian_weights_config, + gradual_activation_quantization_config=self.grad_act_quant_cfg, + regularization_factor=self.reg_factor, gptq_quantizer_params_override=self.override_params) def compare(self, quantized_model, quantized_gptq_model, input_x=None, quantization_info=None): @@ -182,9 +202,13 @@ def compare(self, quantized_model, quantized_gptq_model, input_x=None, quantizat class GradientPTQLearnRateZeroTest(GradientPTQBaseTest): def get_gptq_config(self): - return GradientPTQConfig(1, optimizer=tf.keras.optimizers.SGD( - learning_rate=0.0), optimizer_rest=tf.keras.optimizers.SGD( - learning_rate=0.0), loss=multiple_tensors_mse_loss, train_bias=True, rounding_type=self.rounding_type, + return GradientPTQConfig(1, + optimizer=tf.keras.optimizers.SGD(learning_rate=0.0), + optimizer_rest=tf.keras.optimizers.SGD(learning_rate=0.0), + loss=multiple_tensors_mse_loss, train_bias=True, rounding_type=self.rounding_type, + hessian_weights_config=self.hessian_weights_config, + gradual_activation_quantization_config=self.grad_act_quant_cfg, + regularization_factor=self.reg_factor, gptq_quantizer_params_override=self.override_params) def compare(self, quantized_model, quantized_gptq_model, input_x=None, quantization_info=None): @@ -200,16 +224,17 @@ def compare(self, quantized_model, quantized_gptq_model, input_x=None, quantizat class GradientPTQWeightedLossTest(GradientPTQBaseTest): + def __init__(self, unit_test, **kwargs): + super().__init__(unit_test, norm_scores=False, hessian_num_samples=16, **kwargs) def get_gptq_config(self): - return GradientPTQConfig(5, optimizer=tf.keras.optimizers.Adam( - learning_rate=0.0001), optimizer_rest=tf.keras.optimizers.Adam( - learning_rate=0.0001), loss=multiple_tensors_mse_loss, train_bias=True, rounding_type=self.rounding_type, - use_hessian_based_weights=True, - hessian_weights_config=GPTQHessianScoresConfig(hessians_num_samples=16, - norm_scores=False, - log_norm=self.log_norm_weights, - scale_log_norm=self.scaled_log_norm), + return GradientPTQConfig(5, + optimizer=tf.keras.optimizers.Adam(learning_rate=0.0001), + optimizer_rest=tf.keras.optimizers.Adam(learning_rate=0.0001), + loss=multiple_tensors_mse_loss, train_bias=True, rounding_type=self.rounding_type, + hessian_weights_config=self.hessian_weights_config, + gradual_activation_quantization_config=self.grad_act_quant_cfg, + regularization_factor=self.reg_factor, gptq_quantizer_params_override=self.override_params) def compare(self, quantized_model, float_model, input_x=None, quantization_info=None): diff --git a/tests/keras_tests/feature_networks_tests/test_features_runner.py b/tests/keras_tests/feature_networks_tests/test_features_runner.py index 59336b057..b11be7c04 100644 --- a/tests/keras_tests/feature_networks_tests/test_features_runner.py +++ b/tests/keras_tests/feature_networks_tests/test_features_runner.py @@ -710,7 +710,7 @@ def test_gptq(self): per_channel=True, hessian_weights=True, log_norm_weights=True, scaled_log_norm=True).run_test() GradientPTQWeightedLossTest(self, rounding_type=RoundingType.SoftQuantizer, - per_channel=True, hessian_weights=True, log_norm_weights=True, + per_channel=True, log_norm_weights=True, scaled_log_norm=True).run_test() GradientPTQNoTempLearningTest(self, rounding_type=RoundingType.SoftQuantizer).run_test() diff --git a/tests/keras_tests/function_tests/test_get_gptq_config.py b/tests/keras_tests/function_tests/test_get_gptq_config.py index fbdf99921..f7d2a0e0a 100644 --- a/tests/keras_tests/function_tests/test_get_gptq_config.py +++ b/tests/keras_tests/function_tests/test_get_gptq_config.py @@ -66,7 +66,10 @@ def setUp(self): weights_bias_correction=False) # disable bias correction when working with GPTQ self.cc = CoreConfig(quantization_config=self.qc) - test_hessian_weights_config = GPTQHessianScoresConfig(hessians_num_samples=2, + default_reg_factor = 1 + default_hessian_cfg = GPTQHessianScoresConfig(per_sample=False, hessians_num_samples=2) + test_hessian_weights_config = GPTQHessianScoresConfig(per_sample=False, + hessians_num_samples=2, norm_scores=False, log_norm=True, scale_log_norm=True) @@ -75,35 +78,51 @@ def setUp(self): optimizer_rest=tf.keras.optimizers.RMSprop(), train_bias=True, loss=multiple_tensors_mse_loss, - rounding_type=RoundingType.SoftQuantizer), + rounding_type=RoundingType.SoftQuantizer, + hessian_weights_config=default_hessian_cfg, + regularization_factor=default_reg_factor, + gradual_activation_quantization_config=None), GradientPTQConfig(1, optimizer=tf.keras.optimizers.Adam(), optimizer_rest=tf.keras.optimizers.Adam(), train_bias=True, loss=multiple_tensors_mse_loss, - rounding_type=RoundingType.SoftQuantizer), + rounding_type=RoundingType.SoftQuantizer, + hessian_weights_config=default_hessian_cfg, + regularization_factor=default_reg_factor, + gradual_activation_quantization_config=None), GradientPTQConfig(1, optimizer=tf.keras.optimizers.Adam(), optimizer_rest=tf.keras.optimizers.Adam(), train_bias=True, loss=multiple_tensors_mse_loss, rounding_type=RoundingType.SoftQuantizer, - regularization_factor=15), + hessian_weights_config=default_hessian_cfg, + regularization_factor=15, + gradual_activation_quantization_config=None), GradientPTQConfig(1, optimizer=tf.keras.optimizers.Adam(), optimizer_rest=tf.keras.optimizers.Adam(), train_bias=True, loss=multiple_tensors_mse_loss, rounding_type=RoundingType.SoftQuantizer, + hessian_weights_config=default_hessian_cfg, + regularization_factor=default_reg_factor, + gradual_activation_quantization_config=None, gptq_quantizer_params_override={QUANT_PARAM_LEARNING_STR: True}), GradientPTQConfig(1, optimizer=tf.keras.optimizers.Adam(), optimizer_rest=tf.keras.optimizers.Adam(), train_bias=True, loss=multiple_tensors_mse_loss, rounding_type=RoundingType.SoftQuantizer, - hessian_weights_config=test_hessian_weights_config), + hessian_weights_config=test_hessian_weights_config, + regularization_factor=default_reg_factor, + gradual_activation_quantization_config=None), GradientPTQConfig(1, optimizer=tf.keras.optimizers.Adam(), optimizer_rest=tf.keras.optimizers.Adam(), train_bias=True, loss=multiple_tensors_mse_loss, rounding_type=RoundingType.STE, + hessian_weights_config=default_hessian_cfg, + regularization_factor=default_reg_factor, + gradual_activation_quantization_config=None, gptq_quantizer_params_override={ MAX_LSB_STR: DefaultDict(default_value=1)}), get_keras_gptq_config(n_epochs=1, @@ -112,7 +131,6 @@ def setUp(self): optimizer=tf.keras.optimizers.Adam(), regularization_factor=0.001)] - pot_tp = generate_test_tp_model({'weights_quantization_method': QuantizationMethod.POWER_OF_TWO}) self.pot_weights_tpc = generate_keras_tpc(name="gptq_pot_config_test", tp_model=pot_tp) @@ -153,10 +171,12 @@ def test_get_keras_gptq_config_symmetric(self): tf.config.run_functions_eagerly(False) def test_gradual_activation_quantization_custom_config(self): - custom_config = mct.gptq.GradualActivationQuantizationConfig(q_fraction_scheduler_policy=mct.gptq.QFractionLinearAnnealingConfig(initial_q_fraction=0.2, - target_q_fraction=0.8, - start_step=1, - end_step=2)) + custom_config = mct.gptq.GradualActivationQuantizationConfig( + q_fraction_scheduler_policy=mct.gptq.QFractionLinearAnnealingConfig(initial_q_fraction=0.2, + target_q_fraction=0.8, + start_step=1, + end_step=2) + ) config = get_keras_gptq_config(n_epochs=5, gradual_activation_quantization=custom_config) self.assertEqual(config.gradual_activation_quantization_config, custom_config) diff --git a/tests/pytorch_tests/function_tests/test_activation_quantization_holder_gptq.py b/tests/pytorch_tests/function_tests/test_activation_quantization_holder_gptq.py index 1746de6ec..0c1e8ce8f 100644 --- a/tests/pytorch_tests/function_tests/test_activation_quantization_holder_gptq.py +++ b/tests/pytorch_tests/function_tests/test_activation_quantization_holder_gptq.py @@ -112,6 +112,7 @@ def test_adding_holder_with_gradual_act_quantization(self): QFractionLinearAnnealingConfig(initial_q_fraction=0.1, target_q_fraction=0.9, start_step=100, end_step=500) ) gptq_cfg = mct.gptq.get_pytorch_gptq_config(1, use_hessian_based_weights=False, + use_hessian_sample_attention=False, gradual_activation_quantization=gradual_act_quant_cfg) gptq_model = self._get_gptq_model(INPUT_SHAPE, BasicModel(), gptq_cfg) activation_holders = self._get_holders_with_validation(gptq_model, exp_n_holders=3) @@ -153,7 +154,9 @@ def _get_gptq_model(self, input_shape, in_model, gptq_cfg=None): qc=qc) graph = set_bit_widths(mixed_precision_enable=False, graph=graph) - gptq_cfg = gptq_cfg or mct.gptq.get_pytorch_gptq_config(1, use_hessian_based_weights=False) + gptq_cfg = gptq_cfg or mct.gptq.get_pytorch_gptq_config(1, use_hessian_based_weights=False, + use_hessian_sample_attention=False, + gradual_activation_quantization=False) trainer = PytorchGPTQTrainer(graph, graph, gptq_cfg, diff --git a/tests/pytorch_tests/model_tests/feature_models/gptq_test.py b/tests/pytorch_tests/model_tests/feature_models/gptq_test.py index 602d7c839..3b8b2230c 100644 --- a/tests/pytorch_tests/model_tests/feature_models/gptq_test.py +++ b/tests/pytorch_tests/model_tests/feature_models/gptq_test.py @@ -57,25 +57,30 @@ def __init__(self, unit_test, weights_bits=8, weights_quant_method=QuantizationM hessian_weights=True, norm_scores=True, log_norm_weights=True, scaled_log_norm=False, params_learning=True, num_calibration_iter=GPTQ_HESSIAN_NUM_SAMPLES, gradual_activation_quantization=False, hessian_num_samples=GPTQ_HESSIAN_NUM_SAMPLES, sample_layer_attention=False, - loss=multiple_tensors_mse_loss, hessian_batch_size=1): + loss=multiple_tensors_mse_loss, hessian_batch_size=1, reg_factor=1): super().__init__(unit_test, input_shape=(3, 16, 16), num_calibration_iter=num_calibration_iter) self.seed = 0 self.rounding_type = rounding_type self.weights_bits = weights_bits self.weights_quant_method = weights_quant_method self.per_channel = per_channel - self.hessian_weights = hessian_weights - self.norm_scores = norm_scores - self.log_norm_weights = log_norm_weights - self.scaled_log_norm = scaled_log_norm - self.override_params = {QUANT_PARAM_LEARNING_STR: params_learning} if \ - rounding_type == RoundingType.SoftQuantizer else {MAX_LSB_STR: DefaultDict(default_value=1)} \ - if rounding_type == RoundingType.STE else None + if rounding_type == RoundingType.SoftQuantizer: + self.override_params = {QUANT_PARAM_LEARNING_STR: params_learning} + elif rounding_type == RoundingType.STE: + self.override_params = {MAX_LSB_STR: DefaultDict(default_value=1)} + else: + raise ValueError('unknown rounding_type', rounding_type) self.gradual_activation_quantization = gradual_activation_quantization - self.hessian_num_samples = hessian_num_samples - self.sample_layer_attention = sample_layer_attention self.loss = loss - self.hessian_batch_size = hessian_batch_size + self.reg_factor = reg_factor + self.hessian_cfg = None + if hessian_weights: + self.hessian_cfg = GPTQHessianScoresConfig(per_sample=sample_layer_attention, + norm_scores=norm_scores, + log_norm=log_norm_weights, + scale_log_norm=scaled_log_norm, + hessians_num_samples=hessian_num_samples, + hessian_batch_size=hessian_batch_size) def get_quantization_config(self): return mct.core.QuantizationConfig(mct.core.QuantizationErrorMethod.NOCLIPPING, @@ -145,16 +150,11 @@ def get_gptq_config(self): return GradientPTQConfig(5, optimizer=torch.optim.Adam([torch.Tensor([])], lr=1e-4), optimizer_rest=torch.optim.Adam([torch.Tensor([])], lr=1e-4), loss=self.loss, train_bias=True, rounding_type=self.rounding_type, - use_hessian_based_weights=self.hessian_weights, optimizer_bias=torch.optim.Adam([torch.Tensor([])], lr=0.4), - hessian_weights_config=GPTQHessianScoresConfig(log_norm=self.log_norm_weights, - scale_log_norm=self.scaled_log_norm, - norm_scores=self.norm_scores, - per_sample=self.sample_layer_attention, - hessians_num_samples=self.hessian_num_samples, - hessian_batch_size=self.hessian_batch_size), + hessian_weights_config=self.hessian_cfg, gptq_quantizer_params_override=self.override_params, - gradual_activation_quantization_config=gradual_act_cfg) + gradual_activation_quantization_config=gradual_act_cfg, + regularization_factor=self.reg_factor) def gptq_compare(self, ptq_model, gptq_model, input_x=None): ptq_weights = torch_tensor_to_numpy(list(ptq_model.parameters())) @@ -171,7 +171,9 @@ def get_gptq_config(self): optimizer_rest=torch.optim.Adam([torch.Tensor([])], lr=0.5), loss=multiple_tensors_mse_loss, train_bias=True, rounding_type=self.rounding_type, gradual_activation_quantization_config=gradual_act_cfg, - gptq_quantizer_params_override=self.override_params) + gptq_quantizer_params_override=self.override_params, + regularization_factor=self.reg_factor, + hessian_weights_config=self.hessian_cfg) def compare(self, ptq_model, gptq_model, input_x=None, max_change=None): ptq_weights = torch_tensor_to_numpy(list(ptq_model.parameters())) @@ -194,7 +196,9 @@ def get_gptq_config(self): optimizer_rest=torch.optim.Adam([torch.Tensor([])], lr=0), loss=multiple_tensors_mse_loss, train_bias=False, rounding_type=self.rounding_type, gradual_activation_quantization_config=gradual_act_cfg, - gptq_quantizer_params_override=self.override_params) + gptq_quantizer_params_override=self.override_params, + regularization_factor=self.reg_factor, + hessian_weights_config=self.hessian_cfg) def gptq_compare(self, ptq_model, gptq_model, input_x=None): ptq_out = torch_tensor_to_numpy(ptq_model(input_x)) diff --git a/tests_pytest/keras/gptq/test_gradual_act_quantization.py b/tests_pytest/keras/gptq/test_gradual_act_quantization.py index 9eceff8bc..cab0a78c7 100644 --- a/tests_pytest/keras/gptq/test_gradual_act_quantization.py +++ b/tests_pytest/keras/gptq/test_gradual_act_quantization.py @@ -94,7 +94,8 @@ def test_factory_linear_common_case(self, x): def _run_factory_test(self, qdrop_cfg, get_grad_steps_fn): # Mocks are used to just pass anything - gptq_cfg = GradientPTQConfig(n_epochs=5, optimizer=Mock(), loss=Mock(), + gptq_cfg = GradientPTQConfig(n_epochs=5, optimizer=Mock(), optimizer_rest=Mock(), loss=Mock(), + hessian_weights_config=None, train_bias=False, regularization_factor=1, gradual_activation_quantization_config=qdrop_cfg) factory = get_gradual_activation_quantizer_wrapper_factory(gptq_cfg, get_grad_steps_fn, KerasLinearAnnealingScheduler) quantizer = Quantizer() diff --git a/tests_pytest/pytorch/gptq/test_gradual_act_quantization.py b/tests_pytest/pytorch/gptq/test_gradual_act_quantization.py index 08c440d6c..02173a7ec 100644 --- a/tests_pytest/pytorch/gptq/test_gradual_act_quantization.py +++ b/tests_pytest/pytorch/gptq/test_gradual_act_quantization.py @@ -92,7 +92,8 @@ def test_factory_linear_common_case(self, x): def _run_factory_test(self, qdrop_cfg, get_grad_steps_fn): # Mocks are used to just pass anything - gptq_cfg = GradientPTQConfig(n_epochs=5, optimizer=Mock(), loss=Mock(), + gptq_cfg = GradientPTQConfig(n_epochs=5, optimizer=Mock(), loss=Mock(), optimizer_rest=Mock(), + hessian_weights_config=None, train_bias=False, regularization_factor=1, gradual_activation_quantization_config=qdrop_cfg) factory = get_gradual_activation_quantizer_wrapper_factory(gptq_cfg, get_grad_steps_fn, PytorchLinearAnnealingScheduler) quantizer = Quantizer() From 95fc53254508ace11b0bd75a8f8d19c88c82b6e6 Mon Sep 17 00:00:00 2001 From: Chizkiyahu Raful <37312901+Chizkiyahu@users.noreply.github.com> Date: Wed, 13 Nov 2024 09:27:24 +0200 Subject: [PATCH 5/8] torch 2.5 and python 3.12 support (#1264) Add workflows to run tests with Pytorch 2.5 to officially support torch 2.5. Extend current versions tests with missing Python 3.12. Update actions dependencies version unittest - update deprecated self.assertEquals to self.assertEqual --- .github/workflows/link_checker.yml | 4 ++-- .github/workflows/nightly.yml | 4 ++-- .github/workflows/publish_release.yml | 4 ++-- .../run_keras_sony_custom_layers.yml | 4 ++-- .github/workflows/run_keras_tests.yml | 4 ++-- .github/workflows/run_pytorch_tests.yml | 4 ++-- .../run_tests_python310_pytorch25.yml | 19 +++++++++++++++++++ .../run_tests_python311_pytorch25.yml | 19 +++++++++++++++++++ .../run_tests_python312_pytorch22.yml | 19 +++++++++++++++++++ .../run_tests_python312_pytorch23.yml | 19 +++++++++++++++++++ .../run_tests_python312_pytorch24.yml | 19 +++++++++++++++++++ .../run_tests_python312_pytorch25.yml | 19 +++++++++++++++++++ .../run_tests_python39_pytorch25.yml | 19 +++++++++++++++++++ .../workflows/run_tests_suite_coverage.yml | 4 ++-- .github/workflows/stale.yml | 2 +- .github/workflows/test_whl_install.yml | 4 ++-- .github/workflows/tests_common.yml | 4 ++-- README.md | 17 ++++++++++------- .../test_hessian_info_calculator.py | 2 +- ...est_activation_quantization_holder_gptq.py | 6 +++--- 20 files changed, 166 insertions(+), 30 deletions(-) create mode 100644 .github/workflows/run_tests_python310_pytorch25.yml create mode 100644 .github/workflows/run_tests_python311_pytorch25.yml create mode 100644 .github/workflows/run_tests_python312_pytorch22.yml create mode 100644 .github/workflows/run_tests_python312_pytorch23.yml create mode 100644 .github/workflows/run_tests_python312_pytorch24.yml create mode 100644 .github/workflows/run_tests_python312_pytorch25.yml create mode 100644 .github/workflows/run_tests_python39_pytorch25.yml diff --git a/.github/workflows/link_checker.yml b/.github/workflows/link_checker.yml index 4ef2c1435..cfe681591 100644 --- a/.github/workflows/link_checker.yml +++ b/.github/workflows/link_checker.yml @@ -14,9 +14,9 @@ jobs: link-checker: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Install Python 3 - uses: actions/setup-python@v1 + uses: actions/setup-python@v5 with: python-version: 3.10.* - name: Install dependencies diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index d0a31d5d5..6311eb887 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -9,9 +9,9 @@ jobs: if: github.repository == 'sony/model_optimization' # Don't do this in forks runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Install Python 3 - uses: actions/setup-python@v1 + uses: actions/setup-python@v5 with: python-version: 3.8 diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index 1ad00ed48..632aeaefc 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -6,9 +6,9 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Install Python 3 - uses: actions/setup-python@v1 + uses: actions/setup-python@v5 with: python-version: 3.8 - name: Install dependencies diff --git a/.github/workflows/run_keras_sony_custom_layers.yml b/.github/workflows/run_keras_sony_custom_layers.yml index 8047c70fb..92c0a6d7b 100644 --- a/.github/workflows/run_keras_sony_custom_layers.yml +++ b/.github/workflows/run_keras_sony_custom_layers.yml @@ -15,9 +15,9 @@ jobs: run-tensorflow-tests: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Install Python 3 - uses: actions/setup-python@v1 + uses: actions/setup-python@v5 with: python-version: "3.10" - name: Install dependencies diff --git a/.github/workflows/run_keras_tests.yml b/.github/workflows/run_keras_tests.yml index fd4498139..073a72bb3 100644 --- a/.github/workflows/run_keras_tests.yml +++ b/.github/workflows/run_keras_tests.yml @@ -14,9 +14,9 @@ jobs: run-tensorflow-tests: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Install Python 3 - uses: actions/setup-python@v1 + uses: actions/setup-python@v5 with: python-version: ${{ inputs.python-version }} - name: Install dependencies diff --git a/.github/workflows/run_pytorch_tests.yml b/.github/workflows/run_pytorch_tests.yml index a62572b6c..f976d2d31 100644 --- a/.github/workflows/run_pytorch_tests.yml +++ b/.github/workflows/run_pytorch_tests.yml @@ -14,9 +14,9 @@ jobs: run-pytorch-tests: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Install Python 3 - uses: actions/setup-python@v1 + uses: actions/setup-python@v5 with: python-version: ${{ inputs.python-version }} - name: Install dependencies diff --git a/.github/workflows/run_tests_python310_pytorch25.yml b/.github/workflows/run_tests_python310_pytorch25.yml new file mode 100644 index 000000000..31e63c5e8 --- /dev/null +++ b/.github/workflows/run_tests_python310_pytorch25.yml @@ -0,0 +1,19 @@ +name: Python 3.10, Pytorch 2.5 +on: + workflow_dispatch: # Allow manual triggers + schedule: + - cron: 0 0 * * * + pull_request: + branches: + - main + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} + +jobs: + run-tests: + uses: ./.github/workflows/run_pytorch_tests.yml + with: + python-version: "3.10" + torch-version: "2.5.*" \ No newline at end of file diff --git a/.github/workflows/run_tests_python311_pytorch25.yml b/.github/workflows/run_tests_python311_pytorch25.yml new file mode 100644 index 000000000..72dd479e8 --- /dev/null +++ b/.github/workflows/run_tests_python311_pytorch25.yml @@ -0,0 +1,19 @@ +name: Python 3.11, Pytorch 2.5 +on: + workflow_dispatch: # Allow manual triggers + schedule: + - cron: 0 0 * * * + pull_request: + branches: + - main + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} + +jobs: + run-tests: + uses: ./.github/workflows/run_pytorch_tests.yml + with: + python-version: "3.11" + torch-version: "2.5.*" \ No newline at end of file diff --git a/.github/workflows/run_tests_python312_pytorch22.yml b/.github/workflows/run_tests_python312_pytorch22.yml new file mode 100644 index 000000000..e40fb32b5 --- /dev/null +++ b/.github/workflows/run_tests_python312_pytorch22.yml @@ -0,0 +1,19 @@ +name: Python 3.12, Pytorch 2.2 +on: + workflow_dispatch: # Allow manual triggers + schedule: + - cron: 0 0 * * * + pull_request: + branches: + - main + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} + +jobs: + run-tests: + uses: ./.github/workflows/run_pytorch_tests.yml + with: + python-version: "3.12" + torch-version: "2.2.*" \ No newline at end of file diff --git a/.github/workflows/run_tests_python312_pytorch23.yml b/.github/workflows/run_tests_python312_pytorch23.yml new file mode 100644 index 000000000..c261924d0 --- /dev/null +++ b/.github/workflows/run_tests_python312_pytorch23.yml @@ -0,0 +1,19 @@ +name: Python 3.12, Pytorch 2.3 +on: + workflow_dispatch: # Allow manual triggers + schedule: + - cron: 0 0 * * * + pull_request: + branches: + - main + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} + +jobs: + run-tests: + uses: ./.github/workflows/run_pytorch_tests.yml + with: + python-version: "3.12" + torch-version: "2.3.*" \ No newline at end of file diff --git a/.github/workflows/run_tests_python312_pytorch24.yml b/.github/workflows/run_tests_python312_pytorch24.yml new file mode 100644 index 000000000..abf35ba87 --- /dev/null +++ b/.github/workflows/run_tests_python312_pytorch24.yml @@ -0,0 +1,19 @@ +name: Python 3.12, Pytorch 2.4 +on: + workflow_dispatch: # Allow manual triggers + schedule: + - cron: 0 0 * * * + pull_request: + branches: + - main + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} + +jobs: + run-tests: + uses: ./.github/workflows/run_pytorch_tests.yml + with: + python-version: "3.12" + torch-version: "2.4.*" \ No newline at end of file diff --git a/.github/workflows/run_tests_python312_pytorch25.yml b/.github/workflows/run_tests_python312_pytorch25.yml new file mode 100644 index 000000000..9c75338ce --- /dev/null +++ b/.github/workflows/run_tests_python312_pytorch25.yml @@ -0,0 +1,19 @@ +name: Python 3.2, Pytorch 2.5 +on: + workflow_dispatch: # Allow manual triggers + schedule: + - cron: 0 0 * * * + pull_request: + branches: + - main + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} + +jobs: + run-tests: + uses: ./.github/workflows/run_pytorch_tests.yml + with: + python-version: "3.12" + torch-version: "2.5.*" \ No newline at end of file diff --git a/.github/workflows/run_tests_python39_pytorch25.yml b/.github/workflows/run_tests_python39_pytorch25.yml new file mode 100644 index 000000000..78f9a6bd2 --- /dev/null +++ b/.github/workflows/run_tests_python39_pytorch25.yml @@ -0,0 +1,19 @@ +name: Python 3.9, Pytorch 2.5 +on: + workflow_dispatch: # Allow manual triggers + schedule: + - cron: 0 0 * * * + pull_request: + branches: + - main + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} + +jobs: + run-tests: + uses: ./.github/workflows/run_pytorch_tests.yml + with: + python-version: "3.9" + torch-version: "2.5.*" \ No newline at end of file diff --git a/.github/workflows/run_tests_suite_coverage.yml b/.github/workflows/run_tests_suite_coverage.yml index ef7e6e7ba..287854741 100644 --- a/.github/workflows/run_tests_suite_coverage.yml +++ b/.github/workflows/run_tests_suite_coverage.yml @@ -18,9 +18,9 @@ jobs: env: COVERAGE_THRESHOLD: 98 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Install Python 3 - uses: actions/setup-python@v1 + uses: actions/setup-python@v5 with: python-version: '3.10' diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 595ca175a..d3cf32eaf 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -18,7 +18,7 @@ jobs: pull-requests: write steps: - - uses: actions/stale@v3 + - uses: actions/stale@v9 with: repo-token: ${{ secrets.GITHUB_TOKEN }} stale-issue-message: 'Stale issue message' diff --git a/.github/workflows/test_whl_install.yml b/.github/workflows/test_whl_install.yml index 3df651911..32ae5a736 100644 --- a/.github/workflows/test_whl_install.yml +++ b/.github/workflows/test_whl_install.yml @@ -11,11 +11,11 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Install Python 3 - uses: actions/setup-python@v1 + uses: actions/setup-python@v5 with: python-version: ${{ inputs.python_version }} - name: Install dependencies diff --git a/.github/workflows/tests_common.yml b/.github/workflows/tests_common.yml index 0a716da04..89090d949 100644 --- a/.github/workflows/tests_common.yml +++ b/.github/workflows/tests_common.yml @@ -15,9 +15,9 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Install Python 3 - uses: actions/setup-python@v1 + uses: actions/setup-python@v5 with: python-version: 3.11 - name: Install dependencies diff --git a/README.md b/README.md index 8c3479381..6b898678e 100644 --- a/README.md +++ b/README.md @@ -51,16 +51,19 @@ for hands-on learning. For example: Currently, MCT is being tested on various Python, Pytorch and TensorFlow versions: -| | PyTorch 2.1 | PyTorch 2.2 | PyTorch 2.3 | PyTorch 2.4 | -|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Python 3.9 | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch21.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch21.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch22.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch22.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch23.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch23.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch24.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch24.yml) | -| Python 3.10 | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch21.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch21.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch22.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch22.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch23.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch23.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch24.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch24.yml) | -| Python 3.11 | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch21.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch21.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch22.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch22.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch23.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch23.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch24.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch24.yml) | +| | PyTorch 2.1 | PyTorch 2.2 | PyTorch 2.3 | PyTorch 2.4 | PyTorch 2.5 | +|-------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Python 3.9 | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch21.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch21.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch22.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch22.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch23.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch23.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch24.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch24.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch25.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch25.yml) | +| Python 3.10 | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch21.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch21.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch22.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch22.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch23.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch23.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch24.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch24.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch25.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch25.yml) | +| Python 3.11 | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch21.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch21.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch22.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch22.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch23.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch23.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch24.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch24.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch25.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch25.yml) | +| Python 3.12 | | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch22.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch22.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch23.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch23.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch24.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch24.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch25.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch25.yml) | -| | TensorFlow 2.12 | TensorFlow 2.13 | TensorFlow 2.14 | TensorFlow 2.15 | -|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + + +| | TensorFlow 2.12 | TensorFlow 2.13 | TensorFlow 2.14 | TensorFlow 2.15 | +|-------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Python 3.9 | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_keras212.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_keras212.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_keras213.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_keras213.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_keras214.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_keras214.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_keras215.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_keras215.yml) | | Python 3.10 | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_keras212.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_keras212.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_keras213.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_keras213.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_keras214.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_keras214.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_keras215.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_keras215.yml) | | Python 3.11 | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_keras212.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_keras212.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_keras213.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_keras213.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_keras214.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_keras214.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_keras215.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_keras215.yml) | diff --git a/tests/keras_tests/function_tests/test_hessian_info_calculator.py b/tests/keras_tests/function_tests/test_hessian_info_calculator.py index 62202a057..6ab6a58fb 100644 --- a/tests/keras_tests/function_tests/test_hessian_info_calculator.py +++ b/tests/keras_tests/function_tests/test_hessian_info_calculator.py @@ -127,7 +127,7 @@ def _test_hessian_scores(self, hessian_info, target_nodes, repr_dataset, granula info = hessian_info.fetch_hessian(request) self.assertTrue(isinstance(info, dict)) - self.assertEquals(set(info.keys()), {n.name for n in target_nodes}) + self.assertEqual(set(info.keys()), {n.name for n in target_nodes}) for target_node in target_nodes: node_score = info[target_node.name] kernel_attr_name = [w for w in target_node.weights if KERNEL in w] diff --git a/tests/pytorch_tests/function_tests/test_activation_quantization_holder_gptq.py b/tests/pytorch_tests/function_tests/test_activation_quantization_holder_gptq.py index 0c1e8ce8f..a475f2921 100644 --- a/tests/pytorch_tests/function_tests/test_activation_quantization_holder_gptq.py +++ b/tests/pytorch_tests/function_tests/test_activation_quantization_holder_gptq.py @@ -75,10 +75,10 @@ def test_adding_holder_instead_quantize_wrapper(self): activation_quantization_holders_in_model = self._get_holders_with_validation(gptq_model, exp_n_holders=3) for a in activation_quantization_holders_in_model: self.assertTrue(isinstance(a.activation_holder_quantizer, STESymmetricActivationTrainableQuantizer)) - self.assertEquals(a.activation_holder_quantizer.identifier, TrainingMethod.STE) + self.assertEqual(a.activation_holder_quantizer.identifier, TrainingMethod.STE) # activation quantization params for gptq should be frozen (non-learnable) self.assertTrue(a.activation_holder_quantizer.freeze_quant_params is True) - self.assertEquals(a.activation_holder_quantizer.get_trainable_variables(VariableGroup.QPARAMS), []) + self.assertEqual(a.activation_holder_quantizer.get_trainable_variables(VariableGroup.QPARAMS), []) for name, module in gptq_model.named_modules(): if isinstance(module, PytorchQuantizationWrapper): @@ -130,7 +130,7 @@ def test_adding_holder_with_gradual_act_quantization(self): quantizer = a.activation_holder_quantizer.quantizer self.assertTrue(isinstance(quantizer, STESymmetricActivationTrainableQuantizer)) self.assertTrue(quantizer.freeze_quant_params is True) - self.assertEquals(quantizer.get_trainable_variables(VariableGroup.QPARAMS), []) + self.assertEqual(quantizer.get_trainable_variables(VariableGroup.QPARAMS), []) def _get_holders_with_validation(self, gptq_model, exp_n_holders): last_module = list(gptq_model.named_modules())[-1][1] From 0bcf7ab0c6a7524531921d0fd87832910e45bac3 Mon Sep 17 00:00:00 2001 From: Amir Servi <131249114+ServiAmirPM@users.noreply.github.com> Date: Thu, 14 Nov 2024 14:29:22 +0200 Subject: [PATCH 6/8] Updated readme file with better design, less text (#1265) - Re-structure - changed the way the document is structured (table of content), including changing titles names - Redesigned the header - with better look and feel, with as much information in the header. - Removed tutorials from the tutorials section in the readme - will add some back after re-structuring the tutorials. - Added visuals to the page for better look and feel, and to better explain the product. - improved the quantization flow table and added 4 tutorials to it. - Re-ordered the Resources section, making it clear that API is per quantization method - Hidden (collapsed) the supported version table. users can open it on demand - Results - removed text, still requires updating the numbers, add mixed precision and the update graph - Troubleshooting and community - added community to this section. - Updated the license section with text and a badge --- README.md | 160 +++++++++++++++++++---------- docsrc/images/Classification.png | Bin 0 -> 39642 bytes docsrc/images/ObjDet.png | Bin 0 -> 51804 bytes docsrc/images/PoseEst.png | Bin 0 -> 73996 bytes docsrc/images/SemSeg.png | Bin 0 -> 77214 bytes docsrc/images/colab-badge.svg | 1 + docsrc/images/mctDiagramFlow.svg | 1 + docsrc/images/mctDiagram_clean.svg | 1 + docsrc/images/mctFlow.png | Bin 0 -> 187647 bytes 9 files changed, 106 insertions(+), 57 deletions(-) create mode 100644 docsrc/images/Classification.png create mode 100644 docsrc/images/ObjDet.png create mode 100644 docsrc/images/PoseEst.png create mode 100644 docsrc/images/SemSeg.png create mode 100644 docsrc/images/colab-badge.svg create mode 100644 docsrc/images/mctDiagramFlow.svg create mode 100644 docsrc/images/mctDiagram_clean.svg create mode 100644 docsrc/images/mctFlow.png diff --git a/README.md b/README.md index 6b898678e..a5065aac1 100644 --- a/README.md +++ b/README.md @@ -1,66 +1,101 @@ -# Model Compression Toolkit (MCT) - -Model Compression Toolkit (MCT) is an open-source project for neural network model optimization under efficient, constrained hardware. +
-This project provides researchers, developers, and engineers tools for optimizing and deploying state-of-the-art neural networks on efficient hardware. - -Specifically, this project aims to apply quantization to compress neural networks. +# Model Compression Toolkit (MCT) - +**Open-source project for neural network model optimization, providing researchers, developers, and engineers with advanced quantization and compression tools for deploying state-of-the-art neural networks on efficient, constrained hardware.** +______________________________________________________________________ + +
+
+

+ Getting Started • + Tutorials • + High level features and techniques • + Resources • + Community • + License +

+

+ + + + + + +

+
+ +__________________________________________________________________________________________________________ -MCT is developed by researchers and engineers working at Sony Semiconductor Israel. +## Getting Started +### Quick Installation +Pip install the model compression toolkit package in a Python>=3.9 environment with PyTorch>=2.1 or Tensorflow>=2.12. +``` +pip install model-compression-toolkit +``` +For installing the nightly version or installing from source, refer to the [installation guide](https://github.com/sony/model_optimization/blob/main/INSTALLATION.md). +**Important note**: In order to use MCT, you’ll need to provide a floating point .pt or .keras model as an input. +### Tutorials and Examples -## Table of Contents +Our [tutorials](https://github.com/sony/model_optimization/blob/main/tutorials/README.md) section will walk you through the basics of the MCT tool, covering various compression techniques for both Keras and PyTorch models. +Access interactive notebooks for hands-on learning with popular models/tasks or move on to [Resources](#resources) section. -- [Getting Started](https://github.com/sony/model_optimization?tab=readme-ov-file#getting-started) -- [Supported features](https://github.com/sony/model_optimization?tab=readme-ov-file#supported-features) -- [Results](https://github.com/sony/model_optimization?tab=readme-ov-file#results) -- [Troubleshooting](https://github.com/sony/model_optimization?tab=readme-ov-file#trouble-shooting) -- [Contributions](https://github.com/sony/model_optimization?tab=readme-ov-file#contributions) -- [License](https://github.com/sony/model_optimization?tab=readme-ov-file#license) +### Supported Quantization Methods +MCT supports various quantization methods as appears below. +
+

+ Quantization Method | Complexity | Computational Cost | Tutorial +-------------------- | -----------|--------------------|--------- +PTQ (Post Training Quantization) | Low | Low (~1-10 CPU minutes) | +GPTQ (parameters fine-tuning using gradients) | Moderate | Moderate (~1-3 GPU hours) | +QAT (Quantization Aware Training) | High | High (~12-36 GPU hours) | -## Getting Started +

+
-This section provides an installation and a quick starting guide. +For each flow, **Quantization core** utilizes various algorithms and hyper-parameters for optimal [hardware-aware](https://github.com/sony/model_optimization/blob/main/model_compression_toolkit/target_platform_capabilities/README.md) quantization results. +For further details, please see [Supported features and algorithms](#supported-features). -### Installation +Required input: +- Floating point model - 32bit model in either .pt or .keras format +- Representative dataset - can be either provided by the user, or generated utilizing the [Data Generation](#data-generation-) capability -To install the latest stable release of MCT, run the following command: -``` -pip install model-compression-toolkit -``` +
+

-For installing the nightly version or installing from source, refer to the [installation guide](https://github.com/sony/model_optimization/blob/main/INSTALLATION.md). + +

+
+### Resources +* [User Guide](https://sony.github.io/model_optimization/docs/index.html) contains detailed information about MCT and guides you from installation through optimizing models for your edge AI applications. -### Quick start & tutorials +* MCT's [API Docs](https://sony.github.io/model_optimization/docs/api/api_docs/) is seperated per quantization methods: -Explore the Model Compression Toolkit (MCT) through our tutorials, -covering compression techniques for Keras and PyTorch models. Access interactive [notebooks](https://github.com/sony/model_optimization/blob/main/tutorials/README.md) -for hands-on learning. For example: -* [Keras MobileNetV2 post training quantization](https://github.com/sony/model_optimization/blob/main/tutorials/notebooks/imx500_notebooks/keras/example_keras_mobilenetv2_for_imx500.ipynb) -* [Post training quantization with PyTorch](https://github.com/sony/model_optimization/blob/main/tutorials/notebooks/mct_features_notebooks/pytorch/example_pytorch_post_training_quantization.ipynb) -* [Data Generation for ResNet18 with PyTorch](https://github.com/sony/model_optimization/blob/main/tutorials/notebooks/mct_features_notebooks/pytorch/example_pytorch_data_generation.ipynb). + * [Post-training quantization](https://sony.github.io/model_optimization/docs/api/api_docs/index.html#ptq) | PTQ API docs + * [Gradient-based post-training quantization](https://sony.github.io/model_optimization/docs/api/api_docs/index.html#gptq) | GPTQ API docs + * [Quantization-aware training](https://sony.github.io/model_optimization/docs/api/api_docs/index.html#qat) | QAT API docs + +* [Debug](https://sony.github.io/model_optimization/docs/guidelines/visualization.html) – modify optimization process or generate explainable report + +* [Release notes](https://github.com/sony/model_optimization/releases) ### Supported Versions Currently, MCT is being tested on various Python, Pytorch and TensorFlow versions: +
+ Supported Versions Table - -| | PyTorch 2.1 | PyTorch 2.2 | PyTorch 2.3 | PyTorch 2.4 | PyTorch 2.5 | -|-------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Python 3.9 | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch21.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch21.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch22.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch22.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch23.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch23.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch24.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch24.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch25.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch25.yml) | -| Python 3.10 | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch21.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch21.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch22.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch22.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch23.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch23.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch24.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch24.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch25.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch25.yml) | -| Python 3.11 | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch21.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch21.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch22.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch22.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch23.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch23.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch24.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch24.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch25.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch25.yml) | -| Python 3.12 | | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch22.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch22.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch23.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch23.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch24.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch24.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch25.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch25.yml) | - - - - +| | PyTorch 2.2 | PyTorch 2.3 | PyTorch 2.4 | PyTorch 2.5 | +|-------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Python 3.9 | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch22.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch22.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch23.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch23.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch24.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch24.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch25.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python39_pytorch25.yml) | +| Python 3.10 | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch22.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch22.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch23.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch23.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch24.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch24.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch25.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_pytorch25.yml) | +| Python 3.11 | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch22.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch22.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch23.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch23.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch24.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch24.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch25.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_pytorch25.yml) | +| Python 3.12 | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch22.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch22.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch23.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch23.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch24.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch24.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch25.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python312_pytorch25.yml) | | | TensorFlow 2.12 | TensorFlow 2.13 | TensorFlow 2.14 | TensorFlow 2.15 | |-------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -68,6 +103,7 @@ Currently, MCT is being tested on various Python, Pytorch and TensorFlow version | Python 3.10 | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_keras212.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_keras212.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_keras213.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_keras213.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_keras214.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_keras214.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_keras215.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python310_keras215.yml) | | Python 3.11 | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_keras212.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_keras212.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_keras213.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_keras213.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_keras214.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_keras214.yml) | [![Run Tests](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_keras215.yml/badge.svg)](https://github.com/sony/model_optimization/actions/workflows/run_tests_python311_keras215.yml) | +
## Supported Features MCT offers a range of powerful features to optimize neural network models for efficient deployment. These supported features include: @@ -85,9 +121,9 @@ MCT supports different quantization methods: | Quantization Method | Complexity | Computational Cost | |-----------------------------------------------|------------|-----------------------------| -| PTQ | Low | Low (order of minutes) | -| GPTQ (parameters fine-tuning using gradients) | Mild | Mild (order of 2-3 hours) | -| QAT | High | High (order of 12-36 hours) | +| PTQ | Low | Low (~CPU minutes) | +| GPTQ (parameters fine-tuning using gradients) | Moderate | Moderate (~1-3 GPU hours) | +| QAT | High | High (~12-36 GPU hours) | In addition, MCT supports different quantization schemes for quantizing weights and activations: @@ -133,15 +169,14 @@ For more details, we highly recommend visiting our project website where experim ## Results -### Keras -Graph of [MobileNetV2](https://keras.io/api/applications/mobilenet/) accuracy on ImageNet vs average bit-width of weights, using -single-precision quantization, mixed-precision quantization, and mixed-precision quantization with GPTQ. - - -For more results, please see [1] +

+ + + + -### Pytorch + ### Pytorch We quantized classification networks from the torchvision library. In the following table we present the ImageNet validation results for these models: @@ -151,6 +186,14 @@ In the following table we present the ImageNet validation results for these mode | ResNet-18 [3] | 69.86 | 69.63 |69.53| | SqueezeNet 1.1 [3] | 58.128 | 57.678 || +### Keras +MCT can quantize an existing 32-bit floating-point model to an 8-bit fixed-point (or less) model without compromising accuracy. +Below is a graph of [MobileNetV2](https://keras.io/api/applications/mobilenet/) accuracy on ImageNet vs average bit-width of weights (X-axis), using +single-precision quantization, mixed-precision quantization, and mixed-precision quantization with GPTQ. + + + +For more results, please see [1] #### Pruning Results @@ -161,23 +204,26 @@ Results for applying pruning to reduce the parameters of the following models by | ResNet50 [2] | 75.1 | 72.4 | | DenseNet121 [3] | 74.44 | 71.71 | +## Troubleshooting and Community -## Trouble Shooting +If you encountered large accuracy degradation with MCT, check out the [Quantization Troubleshooting](https://github.com/sony/model_optimization/tree/main/quantization_troubleshooting.md) +for common pitfalls and some tools to improve quantized model's accuracy. -If the accuracy degradation of the quantized model is too large for your application, check out the [Quantization Troubleshooting](https://github.com/sony/model_optimization/tree/main/quantization_troubleshooting.md) -for common pitfalls and some tools to improve quantization accuracy. +Check out the [FAQ](https://github.com/sony/model_optimization/tree/main/FAQ.md) for common issues. -Check out the [FAQ](https://github.com/sony/model_optimization/tree/main/FAQ.md) for common issues. +You are welcome to ask questions and get support on our [issues section](https://github.com/sony/model_optimization/issues) and manage community discussions under [discussions section](https://github.com/sony/model_optimization/discussions). ## Contributions MCT aims at keeping a more up-to-date fork and welcomes contributions from anyone. -*You will find more information about contributions in the [Contribution guide](https://github.com/sony/model_optimization/blob/main/CONTRIBUTING.md). +*Checkout our [Contribution guide](https://github.com/sony/model_optimization/blob/main/CONTRIBUTING.md) for more details. ## License -[Apache License 2.0](https://github.com/sony/model_optimization/blob/main/LICENSE.md). +MCT is licensed under Apache License Version 2.0. By contributing to the project, you agree to the license and copyright terms therein and release your contribution under these terms. + + ## References diff --git a/docsrc/images/Classification.png b/docsrc/images/Classification.png new file mode 100644 index 0000000000000000000000000000000000000000..c5359baf4f3dc640e8afdbc50332a98c984c21fe GIT binary patch literal 39642 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 SBtB&W$~6-!V*=FU$$tPp6tN-z literal 0 HcmV?d00001 diff --git a/docsrc/images/ObjDet.png b/docsrc/images/ObjDet.png new file mode 100644 index 0000000000000000000000000000000000000000..a92b29c1e7200de14cea3bc86b95ae6c95f915f0 GIT binary patch literal 51804 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 UU1-B>o<<`pr6gJT<=fBy2N$9>p8x;= literal 0 HcmV?d00001 diff --git a/docsrc/images/PoseEst.png b/docsrc/images/PoseEst.png new file mode 100644 index 0000000000000000000000000000000000000000..2f342432e4865ac26d2bc02f1d2f887a1e40ccec GIT binary patch literal 73996 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

S={pY1}7lIwg=vM6K17RBGr{IAY=m7yv+Lza& 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⁡H~|fY|3Q5bT?P8 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 Open in ColabOpen in Colab diff --git a/docsrc/images/mctDiagramFlow.svg b/docsrc/images/mctDiagramFlow.svg new file mode 100644 index 000000000..ae8f33635 --- /dev/null +++ b/docsrc/images/mctDiagramFlow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docsrc/images/mctDiagram_clean.svg b/docsrc/images/mctDiagram_clean.svg new file mode 100644 index 000000000..cf983ea37 --- /dev/null +++ b/docsrc/images/mctDiagram_clean.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docsrc/images/mctFlow.png b/docsrc/images/mctFlow.png new file mode 100644 index 0000000000000000000000000000000000000000..58246dd30e556df943fcb1092b91726aa9897759 GIT binary patch literal 187647 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�W=v3d0k!g@NGfwqpscBcW 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 TbmQf`d!!>HxsUl_iQUU_)VE4-C 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 Fe*pCGMWp}$ literal 0 HcmV?d00001 From 95524fc0f757b0e895f8ec522594a57ffd3bba94 Mon Sep 17 00:00:00 2001 From: Amir Servi <131249114+ServiAmirPM@users.noreply.github.com> Date: Thu, 14 Nov 2024 20:20:09 +0200 Subject: [PATCH 7/8] Design header (#1268) replaced the header from text to designed header (with the same text) When clicking on the header - it will open the MCT github.io website --- README.md | 9 +++++---- docsrc/images/mctHeader-cropped.svg | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 docsrc/images/mctHeader-cropped.svg diff --git a/README.md b/README.md index a5065aac1..0def30d30 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@

- -# Model Compression Toolkit (MCT) - -**Open-source project for neural network model optimization, providing researchers, developers, and engineers with advanced quantization and compression tools for deploying state-of-the-art neural networks on efficient, constrained hardware.** +

+ + +

+ ______________________________________________________________________
diff --git a/docsrc/images/mctHeader-cropped.svg b/docsrc/images/mctHeader-cropped.svg new file mode 100644 index 000000000..166c9d493 --- /dev/null +++ b/docsrc/images/mctHeader-cropped.svg @@ -0,0 +1 @@ + \ No newline at end of file From c72cd0fcdeb7e57699993b170ff08471e9075d63 Mon Sep 17 00:00:00 2001 From: Amir Servi <131249114+ServiAmirPM@users.noreply.github.com> Date: Mon, 18 Nov 2024 14:23:04 +0200 Subject: [PATCH 8/8] Update README.md (#1270) Round 2 of updaing readme. fixed, designed and repositioned "Supported Feature" section Added dividers between features in features section added API column to the quantization methods table added links to relevant notebooks in relevant places made images of tasks (under results) a bit smaller Fixed Headers issue (some headers were in wrong level.) added more capabilities under debug feature - Xquant & network editor (including links to tutorial centered all section titles (makes the page more clean in my opinion) fixed according to review: -- - added tutorials to qadvanced quatntization & Quantization parameter search. -- - Updated EPTQ paper title and added E. Cohen as contributer -- - changed type (on the how to -> on how to) --- README.md | 143 ++++++++++++++++++++++-------------------------------- 1 file changed, 59 insertions(+), 84 deletions(-) diff --git a/README.md b/README.md index 0def30d30..e83541610 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ ______________________________________________________________________

Getting StartedTutorials • - High level features and techniques • + High level features and techniquesResourcesCommunityLicense @@ -28,7 +28,7 @@ ______________________________________________________________________ __________________________________________________________________________________________________________ -## Getting Started +##

Getting Started
### Quick Installation Pip install the model compression toolkit package in a Python>=3.9 environment with PyTorch>=2.1 or Tensorflow>=2.12. ``` @@ -48,17 +48,17 @@ MCT supports various quantization methods as appears below.

- Quantization Method | Complexity | Computational Cost | Tutorial --------------------- | -----------|--------------------|--------- -PTQ (Post Training Quantization) | Low | Low (~1-10 CPU minutes) | -GPTQ (parameters fine-tuning using gradients) | Moderate | Moderate (~1-3 GPU hours) | -QAT (Quantization Aware Training) | High | High (~12-36 GPU hours) | + Quantization Method | Complexity | Computational Cost | API | Tutorial +-------------------- | -----------|--------------------|---------|-------- +PTQ (Post Training Quantization) | Low | Low (~1-10 CPU minutes) | [PyTorch API](https://sony.github.io/model_optimization/docs/api/api_docs/methods/pytorch_post_training_quantization.html) / [Keras API](https://sony.github.io/model_optimization/docs/api/api_docs/methods/keras_post_training_quantization.html) | +GPTQ (parameters fine-tuning using gradients) | Moderate | Moderate (~1-3 GPU hours) | [PyTorch API](https://sony.github.io/model_optimization/docs/api/api_docs/methods/pytorch_gradient_post_training_quantization.html) / [Keras API](https://sony.github.io/model_optimization/docs/api/api_docs/methods/keras_gradient_post_training_quantization.html) | +QAT (Quantization Aware Training) | High | High (~12-36 GPU hours) | [QAT API](https://sony.github.io/model_optimization/docs/api/api_docs/index.html#qat) |

For each flow, **Quantization core** utilizes various algorithms and hyper-parameters for optimal [hardware-aware](https://github.com/sony/model_optimization/blob/main/model_compression_toolkit/target_platform_capabilities/README.md) quantization results. -For further details, please see [Supported features and algorithms](#supported-features). +For further details, please see [Supported features and algorithms](#high-level-features-and-techniques). Required input: - Floating point model - 32bit model in either .pt or .keras format @@ -71,7 +71,45 @@ Required input:

-### Resources +##
High level features and techniques
+ +MCT offers a range of powerful features to optimize models for efficient edge deployment. These supported features include: + +### Quantization Core Features + +🏆 **Mixed-precision search** [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/sony/model_optimization/blob/main/tutorials/notebooks/mct_features_notebooks/pytorch/example_pytorch_mixed_precision_ptq.ipynb). Assigning optimal quantization bit-width per layer (for weights/activations) + +📈 **Graph optimizations**. +Transforming the model to be best fitted for quantization process. + +🔎 **Quantization parameter search** [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/sony/model_optimization/blob/main/tutorials/notebooks/mct_features_notebooks/keras/example_keras_activation_threshold_search.ipynb). Minimizing expected quantization-noise during thresholds search using methods such as MSE, No-Clipping and MAE. + +🧮 **Advanced quantization algorithms** [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/sony/model_optimization/blob/main/tutorials/notebooks/mct_features_notebooks/keras/example_keras_activation_z_score_threshold.ipynb). Enhancing quantization performance for advanced cases is available with some algorithms that can be applied, such as Shift negative correction, Outliers filtering and clustering. +__________________________________________________________________________________________________________ +### Hardware-aware optimization + +🎯 **TPC (Target Platform Capabilities)**. Describes the target hardware’s constrains, for which the model optimization is targeted. See [TPC Readme](./model_compression_toolkit/target_platform_capabilities/README.md) for more information. +__________________________________________________________________________________________________________ +### Data-free quantization (Data Generation) [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/sony/model_optimization/blob/main/tutorials/notebooks/mct_features_notebooks/pytorch/example_pytorch_data_generation.ipynb) +Generates synthetic images based on the statistics stored in the model's batch normalization layers, according to your specific needs, for when image data isn’t available. See [Data Generation Library](https://github.com/sony/model_optimization/blob/main/model_compression_toolkit/data_generation/README.md) for more. +__________________________________________________________________________________________________________ +### Structured Pruning [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/sony/model_optimization/blob/main/tutorials/notebooks/mct_features_notebooks/pytorch/example_pytorch_pruning_mnist.ipynb) +Reduces model size/complexity and ensures better channels utilization by removing redundant input channels from layers and reconstruction of layer weights. Read more ([Pytorch API](https://sony.github.io/model_optimization/docs/api/api_docs/methods/pytorch_pruning_experimental.html) / [Keras API](https://sony.github.io/model_optimization/docs/api/api_docs/methods/keras_pruning_experimental.html)). +__________________________________________________________________________________________________________ +### **Debugging and Visualization** +**🎛️ Network Editor (Modify Quantization Configurations)** [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/sony/model_optimization/blob/main/tutorials/notebooks/mct_features_notebooks/keras/example_keras_network_editor.ipynb). +Modify your model's quantization configuration for specific layers or apply a custom edit rule (e.g adjust layer's bit-width) using MCT’s network editor + +**🖥️ Visualization**. Observe useful information for troubleshooting the quantized model's performance using TensorBoard. [Read more](https://sony.github.io/model_optimization/docs/guidelines/visualization.html). + +**🔑 XQuant (Explainable Quantization)** [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/sony/model_optimization/blob/main/tutorials/notebooks/mct_features_notebooks/pytorch/example_pytorch_xquant.ipynb). Get valuable insights regarding the quality and success of the quantization process of your model. The report includes histograms and similarity metrics between the original float model and the quantized model in key points of the model. The report can be visualized using TensorBoard. +__________________________________________________________________________________________________________ +### Enhanced Post-Training Quantization (EPTQ) +As part of the GPTQ capability, we provide an advanced optimization algorithm called EPTQ. +The specifications of the algorithm are detailed in the paper: _"**EPTQ: Enhanced Post-Training Quantization via Hessian-guided Network-wise Optimization**"_ [4]. +More details on how to use EPTQ via MCT can be found in the [GPTQ guidelines](https://github.com/sony/model_optimization/blob/main/model_compression_toolkit/gptq/README.md). + +##
Resources
* [User Guide](https://sony.github.io/model_optimization/docs/index.html) contains detailed information about MCT and guides you from installation through optimizing models for your edge AI applications. * MCT's [API Docs](https://sony.github.io/model_optimization/docs/api/api_docs/) is seperated per quantization methods: @@ -85,7 +123,7 @@ Required input: * [Release notes](https://github.com/sony/model_optimization/releases) -### Supported Versions +##
Supported Versions
Currently, MCT is being tested on various Python, Pytorch and TensorFlow versions:
@@ -106,76 +144,13 @@ Currently, MCT is being tested on various Python, Pytorch and TensorFlow version
-## Supported Features -MCT offers a range of powerful features to optimize neural network models for efficient deployment. These supported features include: - -### Data Generation [*](https://github.com/sony/model_optimization?tab=readme-ov-file#experimental-features) -MCT provides tools for generating synthetic images based on the statistics stored in a model's batch normalization layers. These generated images are valuable for various compression tasks where image data is required, such as quantization and pruning. -You can customize data generation configurations to suit your specific needs. [Go to the Data Generation page.](https://github.com/sony/model_optimization/blob/main/model_compression_toolkit/data_generation/README.md) - -### Quantization -MCT supports different quantization methods: -* Post-training quantization (PTQ): [Keras API](https://sony.github.io/model_optimization/docs/api/api_docs/methods/keras_post_training_quantization.html), [PyTorch API](https://sony.github.io/model_optimization/docs/api/api_docs/methods/pytorch_post_training_quantization.html) -* Gradient-based post-training quantization (GPTQ): [Keras API](https://sony.github.io/model_optimization/docs/api/api_docs/methods/keras_gradient_post_training_quantization.html), [PyTorch API](https://sony.github.io/model_optimization/docs/api/api_docs/methods/pytorch_gradient_post_training_quantization.html) -* Quantization-aware training (QAT) [*](https://github.com/sony/model_optimization?tab=readme-ov-file#experimental-features) - - -| Quantization Method | Complexity | Computational Cost | -|-----------------------------------------------|------------|-----------------------------| -| PTQ | Low | Low (~CPU minutes) | -| GPTQ (parameters fine-tuning using gradients) | Moderate | Moderate (~1-3 GPU hours) | -| QAT | High | High (~12-36 GPU hours) | - - -In addition, MCT supports different quantization schemes for quantizing weights and activations: - -* Power-Of-Two (hardware-friendly quantization [1]) -* Symmetric -* Uniform - -Main features: -* Graph optimizations: Transforming the model to an equivalent (yet, more efficient) model (for example, batch-normalization layer folding to its preceding linear layer). -* Quantization parameter search: Different methods can be used to minimize the expected added quantization-noise during thresholds search (by default, we use Mean-Square-Error, but other metrics can be used such as No-Clipping, Mean-Average-Error, and more). -* Advanced quantization algorithms: To prevent a performance degradation some algorithms are applied such as: - * Shift negative correction: Symmetric activation quantization can hurt the model's performance when some layers output both negative and positive activations, but their range is asymmetric. For more details please visit [1]. - * Outliers filtering: Computing z-score for activation statistics to detect and remove outliers. -* Clustering: Using non-uniform quantization grid to quantize the weights and activations to match their distributions.[*](https://github.com/sony/model_optimization?tab=readme-ov-file#experimental-features) -* Mixed-precision search: Assigning quantization bit-width per layer (for weights/activations), based on the layer's sensitivity to different bit-widths. -* Visualization: You can use TensorBoard to observe useful information for troubleshooting the quantized model's performance (for example, the model in different phases of the quantization, collected statistics, similarity between layers of the float and quantized model and bit-width configuration for mixed-precision quantization). For more details, please read the [visualization documentation](https://sony.github.io/model_optimization/docs/guidelines/visualization.html). -* Target Platform Capabilities: The Target Platform Capabilities (TPC) describes the target platform (an edge device with dedicated hardware). For more details, please read the [TPC README](https://github.com/sony/model_optimization/blob/main/model_compression_toolkit/target_platform_capabilities/README.md). - -### Enhanced Post-Training Quantization (EPTQ) -As part of the GPTQ we provide an advanced optimization algorithm called EPTQ. - -The specifications of the algorithm are detailed in the paper: _"**EPTQ: Enhanced Post-Training Quantization via Label-Free Hessian**"_ [4]. - -More details on the how to use EPTQ via MCT can be found in the [EPTQ guidelines](https://github.com/sony/model_optimization/blob/main/model_compression_toolkit/gptq/README.md). - - -### Structured Pruning [*](https://github.com/sony/model_optimization?tab=readme-ov-file#experimental-features) -MCT introduces a structured and hardware-aware model pruning. -This pruning technique is designed to compress models for specific hardware architectures, -taking into account the target platform's Single Instruction, Multiple Data (SIMD) capabilities. -By pruning groups of channels (SIMD groups), our approach not only reduces model size -and complexity, but ensures that better utilization of channels is in line with the SIMD architecture -for a target Resource Utilization of weights memory footprint. -[Keras API](https://sony.github.io/model_optimization/docs/api/api_docs/methods/keras_pruning_experimental.html) -[Pytorch API](https://sony.github.io/model_optimization/docs/api/api_docs/methods/pytorch_pruning_experimental.html) - -#### Experimental features - -Some features are experimental and subject to future changes. - -For more details, we highly recommend visiting our project website where experimental features are mentioned as experimental. - - -## Results +##
Results

- - - - + + + + ### Pytorch We quantized classification networks from the torchvision library. @@ -196,7 +171,7 @@ single-precision quantization, mixed-precision quantization, and mixed-precision For more results, please see [1] -#### Pruning Results +### Pruning Results Results for applying pruning to reduce the parameters of the following models by 50%: @@ -205,7 +180,7 @@ Results for applying pruning to reduce the parameters of the following models by | ResNet50 [2] | 75.1 | 72.4 | | DenseNet121 [3] | 74.44 | 71.71 | -## Troubleshooting and Community +##

Troubleshooting and Community
If you encountered large accuracy degradation with MCT, check out the [Quantization Troubleshooting](https://github.com/sony/model_optimization/tree/main/quantization_troubleshooting.md) for common pitfalls and some tools to improve quantized model's accuracy. @@ -215,18 +190,18 @@ Check out the [FAQ](https://github.com/sony/model_optimization/tree/main/FAQ.md) You are welcome to ask questions and get support on our [issues section](https://github.com/sony/model_optimization/issues) and manage community discussions under [discussions section](https://github.com/sony/model_optimization/discussions). -## Contributions +##
Contributions
MCT aims at keeping a more up-to-date fork and welcomes contributions from anyone. *Checkout our [Contribution guide](https://github.com/sony/model_optimization/blob/main/CONTRIBUTING.md) for more details. -## License +##
License
MCT is licensed under Apache License Version 2.0. By contributing to the project, you agree to the license and copyright terms therein and release your contribution under these terms. -## References +##
References
[1] Habi, H.V., Peretz, R., Cohen, E., Dikstein, L., Dror, O., Diamant, I., Jennings, R.H. and Netzer, A., 2021. [HPTQ: Hardware-Friendly Post Training Quantization. arXiv preprint](https://arxiv.org/abs/2109.09113). @@ -234,4 +209,4 @@ MCT is licensed under Apache License Version 2.0. By contributing to the project [3] [TORCHVISION.MODELS](https://pytorch.org/vision/stable/models.html) -[4] Gordon, O., Habi, H. V., & Netzer, A., 2023. [EPTQ: Enhanced Post-Training Quantization via Label-Free Hessian. arXiv preprint](https://arxiv.org/abs/2309.11531) +[4] Gordon, O., Cohen, E., Habi, H. V., & Netzer, A., 2024. [EPTQ: Enhanced Post-Training Quantization via Hessian-guided Network-wise Optimization. arXiv preprint](https://arxiv.org/abs/2309.11531)