Skip to content

Commit c506c2c

Browse files
Add HQ subtest
1 parent 0fea8f4 commit c506c2c

File tree

1 file changed

+25
-13
lines changed

1 file changed

+25
-13
lines changed

tests/openvino/test_quantization.py

+25-13
Original file line numberDiff line numberDiff line change
@@ -100,16 +100,12 @@
100100

101101
class OVQuantizerTest(unittest.TestCase):
102102
SUPPORTED_ARCHITECTURES_TORCH_MODEL = (
103-
(OVModelForSequenceClassification, "bert", 32, 35, False),
104-
(OVModelForSequenceClassification, "bert", 32, 35, True),
105-
(OVModelForCausalLM, "gpt2", 41 if is_transformers_version("<", "4.42.0") else 31, 22, False),
106-
(OVModelForCausalLM, "gpt2", 41 if is_transformers_version("<", "4.42.0") else 31, 22, True),
103+
(OVModelForSequenceClassification, "bert", 32, 35),
104+
(OVModelForCausalLM, "gpt2", 41 if is_transformers_version("<", "4.42.0") else 31, 22),
107105
)
108106
SUPPORTED_ARCHITECTURES_OV_MODEL = (
109-
(OVModelForSequenceClassification, "bert", 32, 35, False),
110-
(OVModelForSequenceClassification, "bert", 32, 35, True),
111-
(OVModelForCausalLM, "gpt2", 31, 22, False),
112-
(OVModelForCausalLM, "gpt2", 31, 22, True),
107+
(OVModelForSequenceClassification, "bert", 32, 35),
108+
(OVModelForCausalLM, "gpt2", 31, 22),
113109
)
114110
SUPPORTED_ARCHITECTURES_OV_MODEL_WITH_AUTO_DATASET = [
115111
(
@@ -275,7 +271,9 @@ def get_calibration_dataset(
275271
)
276272
return calibration_dataset
277273

278-
@parameterized.expand(SUPPORTED_ARCHITECTURES_TORCH_MODEL)
274+
@parameterized.expand(
275+
[(*it[0], it[1]) for it in itertools.product(SUPPORTED_ARCHITECTURES_TORCH_MODEL, [False, True])]
276+
)
279277
def test_automodel_static_quantization(
280278
self, model_cls, model_name, expected_fake_nodes, expected_int8_nodes, from_dataset_instance
281279
):
@@ -323,7 +321,9 @@ def preprocess_function(examples, tokenizer):
323321
loaded_config = OVConfig.from_pretrained(tmp_dir)
324322
self.assertEqual(ov_config.quantization_config.to_dict(), loaded_config.quantization_config.to_dict())
325323

326-
@parameterized.expand(SUPPORTED_ARCHITECTURES_OV_MODEL)
324+
@parameterized.expand(
325+
[(*it[0], it[1]) for it in itertools.product(SUPPORTED_ARCHITECTURES_OV_MODEL, [False, True])]
326+
)
327327
def test_ovmodel_static_quantization(
328328
self, model_cls, model_name, expected_fake_nodes, expected_int8_nodes, from_dataset_instance
329329
):
@@ -915,12 +915,22 @@ def test_stable_diffusion_with_weight_compression(self):
915915
)
916916
check_optimization_not_applicable_to_optimized_model(int8_pipe, quantization_config)
917917

918-
@parameterized.expand(SUPPORTED_ARCHITECTURES_WITH_HYBRID_QUANTIZATION[-1:])
918+
@parameterized.expand(
919+
[
920+
(*it[0], it[1])
921+
for it in itertools.product(SUPPORTED_ARCHITECTURES_WITH_HYBRID_QUANTIZATION[-1:], [False, True])
922+
]
923+
)
919924
def test_ovmodel_hybrid_quantization_with_custom_dataset(
920-
self, model_cls, model_type, expected_fake_nodes, expected_int8_nodes
925+
self,
926+
model_cls,
927+
model_type,
928+
expected_fake_nodes,
929+
expected_int8_nodes,
930+
dataset_via_config,
921931
):
922932
model_id = MODEL_NAMES[model_type]
923-
# TODO: provide list-of-strings-dataset through quantization config instead
933+
# TODO: Run only dataset_via_config=True after v1.25
924934
dataset = [
925935
"dream rose covered with clean crystal, sharp edges, transparent, beautiful, highly detailed, high render"
926936
]
@@ -929,6 +939,8 @@ def test_ovmodel_hybrid_quantization_with_custom_dataset(
929939
quantization_config = OVWeightQuantizationConfig(bits=8, num_samples=3, quant_method="hybrid")
930940
self.assertEqual(quantization_config.quant_method, OVQuantizationMethod.HYBRID)
931941

942+
quantization_config.dataset = dataset if dataset_via_config else None
943+
dataset = None if dataset_via_config else dataset
932944
quantizer.quantize(ov_config=OVConfig(quantization_config=quantization_config), calibration_dataset=dataset)
933945
num_fake_nodes, num_weight_nodes = get_num_quantized_nodes(
934946
model.unet if model.unet is not None else model.transformer

0 commit comments

Comments
 (0)