diff --git a/tools/who_what_benchmark/whowhatbench/model_loaders.py b/tools/who_what_benchmark/whowhatbench/model_loaders.py index 0209b65484..6517aed628 100644 --- a/tools/who_what_benchmark/whowhatbench/model_loaders.py +++ b/tools/who_what_benchmark/whowhatbench/model_loaders.py @@ -210,6 +210,7 @@ def load_text_model( use_cache=True, device=device, ov_config=ov_config, + **kwargs ) except Exception: config = AutoConfig.from_pretrained(model_id) @@ -219,6 +220,7 @@ def load_text_model( use_cache=True, device=device, ov_config=ov_config, + **kwargs ) return model @@ -270,18 +272,18 @@ def load_text2image_model( if 'adapters' in kwargs and kwargs['adapters'] is not None: raise ValueError("Adapters are not supported for OVPipelineForText2Image.") + model_kwargs = {"ov_config": ov_config, "safety_checker": None} + if kwargs.get('from_onnx'): + model_kwargs['from_onnx'] = kwargs['from_onnx'] try: - model = TEXT2IMAGEPipeline.from_pretrained( - model_id, device=device, ov_config=ov_config, safety_checker=None, - ) + model = TEXT2IMAGEPipeline.from_pretrained(model_id, device=device, **model_kwargs) except ValueError: model = TEXT2IMAGEPipeline.from_pretrained( model_id, trust_remote_code=True, use_cache=True, device=device, - ov_config=ov_config, - safety_checker=None, + **model_kwargs ) return model @@ -410,7 +412,7 @@ def load_image2image_genai_pipeline(model_dir, device="CPU", ov_config=None): def load_imagetext2image_model( - model_id, device="CPU", ov_config=None, use_hf=False, use_genai=False + model_id, device="CPU", ov_config=None, use_hf=False, use_genai=False, **kwargs ): if use_hf: from diffusers import AutoPipelineForImage2Image @@ -424,18 +426,18 @@ def load_imagetext2image_model( else: logger.info("Using Optimum API") from optimum.intel.openvino import OVPipelineForImage2Image + model_kwargs = {"ov_config": ov_config, "safety_checker": None} + if kwargs.get('from_onnx'): + model_kwargs['from_onnx'] = kwargs['from_onnx'] try: - model = OVPipelineForImage2Image.from_pretrained( - model_id, device=device, ov_config=ov_config, safety_checker=None, - ) + model = OVPipelineForImage2Image.from_pretrained(model_id, device=device, **model_kwargs) except ValueError: model = OVPipelineForImage2Image.from_pretrained( model_id, trust_remote_code=True, use_cache=True, device=device, - ov_config=ov_config, - safety_checker=None, + **model_kwargs ) return model @@ -455,7 +457,7 @@ def load_inpainting_genai_pipeline(model_dir, device="CPU", ov_config=None): def load_inpainting_model( - model_id, device="CPU", ov_config=None, use_hf=False, use_genai=False + model_id, device="CPU", ov_config=None, use_hf=False, use_genai=False, **kwargs ): if use_hf: from diffusers import AutoPipelineForInpainting @@ -469,10 +471,11 @@ def load_inpainting_model( else: logger.info("Using Optimum API") from optimum.intel.openvino import OVPipelineForInpainting + model_kwargs = {"ov_config": ov_config, "safety_checker": None} + if kwargs.get('from_onnx'): + model_kwargs['from_onnx'] = kwargs['from_onnx'] try: - model = OVPipelineForInpainting.from_pretrained( - model_id, device=device, ov_config=ov_config, safety_checker=None, - ) + model = OVPipelineForInpainting.from_pretrained(model_id, device=device, **model_kwargs) except ValueError as e: logger.error("Failed to load inpaiting pipeline. Details:\n", e) model = OVPipelineForInpainting.from_pretrained( @@ -480,8 +483,7 @@ def load_inpainting_model( trust_remote_code=True, use_cache=True, device=device, - ov_config=ov_config, - safety_checker=None, + **model_kwargs ) return model @@ -530,8 +532,7 @@ def load_embedding_model(model_id, device="CPU", ov_config=None, use_hf=False, u model = OVModelForFeatureExtraction.from_pretrained( model_id, device=device, ov_config=ov_config, safety_checker=None, ) - except ValueError as e: - logger.error("Failed to load embedding pipeline. Details:\n", e) + except ValueError: model = OVModelForFeatureExtraction.from_pretrained( model_id, trust_remote_code=True, @@ -596,8 +597,7 @@ def load_reranking_model(model_id, device="CPU", ov_config=None, use_hf=False, u model = model_cls.from_pretrained( model_id, device=device, ov_config=ov_config, safety_checker=None, ) - except ValueError as e: - logger.error("Failed to load reranking pipeline, an attempt will be made again with updated parameters. Details:\n", e) + except ValueError: model = model_cls.from_pretrained( model_id, trust_remote_code=True, @@ -631,9 +631,9 @@ def load_model( elif model_type == "visual-text": return load_visual_text_model(model_id, device, ov_options, use_hf, use_genai, **kwargs) elif model_type == "image-to-image": - return load_imagetext2image_model(model_id, device, ov_options, use_hf, use_genai) + return load_imagetext2image_model(model_id, device, ov_options, use_hf, use_genai, **kwargs) elif model_type == "image-inpainting": - return load_inpainting_model(model_id, device, ov_options, use_hf, use_genai) + return load_inpainting_model(model_id, device, ov_options, use_hf, use_genai, **kwargs) elif model_type == "text-embedding": return load_embedding_model(model_id, device, ov_options, use_hf, use_genai, **kwargs) elif model_type == "text-reranking": diff --git a/tools/who_what_benchmark/whowhatbench/wwb.py b/tools/who_what_benchmark/whowhatbench/wwb.py index 73b975b439..7855df6490 100644 --- a/tools/who_what_benchmark/whowhatbench/wwb.py +++ b/tools/who_what_benchmark/whowhatbench/wwb.py @@ -711,7 +711,6 @@ def main(): kwargs["cb_config"] = read_cb_config(args.cb_config) if args.from_onnx: kwargs["from_onnx"] = args.from_onnx - kwargs["use_cache"] = False if args.gguf_file: kwargs["gguf_file"] = args.gguf_file if args.adapters is not None: @@ -721,9 +720,10 @@ def main(): else: kwargs["alphas"] = [1.0] * len(args.adapters) kwargs["empty_adapters"] = args.empty_adapters - kwargs["embeds_pooling"] = args.embeds_pooling_type - kwargs["embeds_normalize"] = args.embeds_normalize - kwargs["embeds_padding_side"] = args.embeds_padding_side + if args.model_type == "text-embedding": + kwargs["embeds_pooling"] = args.embeds_pooling_type + kwargs["embeds_normalize"] = args.embeds_normalize + kwargs["embeds_padding_side"] = args.embeds_padding_side if args.gt_data and os.path.exists(args.gt_data): evaluator = create_evaluator(None, args)