def METHOD_NAME():
    """
    Runs the BERT quantization example.
    """
    # Step 1: Load pre-trained model.
    model = transformers.BertForSequenceClassification.from_pretrained(PRETRAINED_MODEL_DIR)
    model.eval()
    # Step 2: Converts PyTorch model to the OpenVINO model.
    ov_model = convert_torch_to_openvino(model)
    # Step 3: Create calibration dataset.
    data_source = create_data_source()
    # Step 4: Apply quantization algorithm.
    # Define the transformation method. This method should take a data item returned
    # per iteration through the `data_source` object and transform it into the model's
    # expected input that can be used for the model inference.
    INPUT_NAMES = [x.any_name for x in ov_model.inputs]
    def transform_fn(data_item):
        inputs = {name: np.asarray(data_item[name], dtype=np.int64) for name in INPUT_NAMES}
        return [inputs]
    # Wrap framework-specific data source into the `nncf.Dataset` object.
    calibration_dataset = nncf.Dataset(data_source, transform_fn)
    quantized_model = nncf.quantize(ov_model, calibration_dataset, model_type=ModelType.TRANSFORMER)
    # Step 5: Save quantized model.
    ir_qmodel_xml = MODEL_DIR / "bert_base_mrpc_quantized.xml"
    ir_qmodel_bin = MODEL_DIR / "bert_base_mrpc_quantized.bin"
    ov.serialize(quantized_model, str(ir_qmodel_xml), str(ir_qmodel_bin))
    # Step 6: Compare the accuracy of the original and quantized models.
    print("Checking the accuracy of the original model:")
    metric = validation_fn(ov_model, data_source)
    print(f"F1 score: {metric}")
    print("Checking the accuracy of the quantized model:")
    metric = validation_fn(quantized_model, data_source)
    print(f"F1 score: {metric}")
    # Step 7: Compare Performance of the original and quantized models.
    # benchmark_app -m bert_quantization/bert_base_mrpc.xml -d CPU -api async
    # benchmark_app -m bert_quantization/bert_base_mrpc_quantized.xml -d CPU -api async