Skip to content

Commit 93ee486

Browse files
authored
attempt to resolve 4.49 compatibility issues and fix input processing… (huggingface#1190)
* attempt to resolve 4.49 compatibility issues and fix input processing for internvl2 * Update optimum/intel/openvino/modeling_visual_language.py
1 parent ba9aaaf commit 93ee486

File tree

2 files changed

+16
-17
lines changed

2 files changed

+16
-17
lines changed

optimum/intel/openvino/modeling_visual_language.py

+11-6
Original file line numberDiff line numberDiff line change
@@ -1427,11 +1427,19 @@ def load_image(image, input_size=448, max_num=12):
14271427
pixel_values = torch.stack(pixel_values)
14281428
return pixel_values
14291429

1430+
if image is not None and "<image>" not in text:
1431+
text = "<image>\n" + text
1432+
1433+
if tokenizer.chat_template is not None:
1434+
text = tokenizer.apply_chat_template(
1435+
[{"role": "user", "content": text}], add_generation_prompt=True, tokenize=False
1436+
)
1437+
1438+
inputs = {}
1439+
14301440
if image is not None:
14311441
if config is None:
14321442
raise ValueError("Config is required.")
1433-
if "<image>" not in text:
1434-
text = "<image>\n" + text
14351443
pixel_values = load_image(image, input_size=config.vision_config.image_size)
14361444
num_patches = pixel_values.shape[0]
14371445
num_image_token = int(
@@ -1440,11 +1448,8 @@ def load_image(image, input_size=448, max_num=12):
14401448
)
14411449
image_tokens = IMG_START_TOKEN + IMG_CONTEXT_TOKEN * num_image_token * num_patches + IMG_END_TOKEN
14421450
text = text.replace("<image>", image_tokens, 1)
1443-
text_inputs = tokenizer(text, return_tensors="pt")
1444-
inputs = dict(text_inputs)
14451451
inputs.update({"pixel_values": pixel_values})
1446-
else:
1447-
inputs = tokenizer(text, return_tensors="pt")
1452+
inputs.update(tokenizer(text, return_tensors="pt"))
14481453
return inputs
14491454

14501455
# internvl has issue with check _get_non_default_parameters, as wrkaraund overide _prepare_generation_config

tests/openvino/test_modeling.py

+5-11
Original file line numberDiff line numberDiff line change
@@ -1040,12 +1040,6 @@ class OVModelForCausalLMIntegrationTest(unittest.TestCase):
10401040
def test_compare_to_transformers(self, model_arch):
10411041
model_id = MODEL_NAMES[model_arch]
10421042

1043-
# TODO: add back once dtype fixed everywhere
1044-
# https://huggingface.co/katuni4ka/tiny-random-chatglm2/blob/main/modeling_chatglm.py#L720
1045-
# https://huggingface.co/katuni4ka/tiny-random-chatglm2/blob/main/modeling_chatglm.py#L759
1046-
if model_arch in {"chatglm", "glm4"} and is_transformers_version(">=", "4.49"):
1047-
self.skipTest("Incompatible modeling code")
1048-
10491043
not_stateful = []
10501044
if is_openvino_version("<", "2024.0"):
10511045
not_stateful.append("mixtral")
@@ -1126,7 +1120,7 @@ def test_compare_to_transformers(self, model_arch):
11261120
ov_outputs = ov_model.generate(**tokens, generation_config=gen_config)
11271121

11281122
# TODO: add back once https://huggingface.co/katuni4ka/tiny-random-minicpm3/discussions/1 merged (for all models) as current mdoeling incompatible with transformers >= v4.49
1129-
if model_arch in {"minicpm", "minicpm3", "arctic", "deepseek"} and is_transformers_version(">=", "4.49"):
1123+
if model_arch in {"deepseek"} and is_transformers_version(">=", "4.49"):
11301124
self.skipTest("Incompatible modeling code")
11311125

11321126
additional_inputs = {}
@@ -1321,6 +1315,10 @@ def test_beam_search(self, model_arch):
13211315
if model_arch in ["qwen", "chatglm", "glm4"]:
13221316
return
13231317

1318+
# TODO: add back once https://huggingface.co/katuni4ka/tiny-random-minicpm3/discussions/1 merged (for all models) as current mdoeling incompatible with transformers >= v4.49
1319+
if model_arch in {"deepseek"} and is_transformers_version(">=", "4.49"):
1320+
self.skipTest("Incompatible modeling code")
1321+
13241322
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=model_arch in self.REMOTE_CODE_MODELS)
13251323
if model_arch == "persimmon":
13261324
tokenizer.pad_token_id = tokenizer.bos_token_id
@@ -2240,10 +2238,6 @@ def test_compare_to_transformers(self, model_arch):
22402238
ov_outputs = ov_model.generate(**inputs, generation_config=gen_config)
22412239
set_seed(SEED)
22422240

2243-
# TODO: add back once https://huggingface.co/katuni4ka/tiny-random-minicpm3/discussions/1 merged for all models as current mdoeling incompatible with transformers >= v4.49
2244-
if model_arch in {"phi3_v", "nanollava"} and is_transformers_version(">=", "4.49"):
2245-
self.skipTest("Incompatible modeling code")
2246-
22472241
with torch.no_grad():
22482242
transformers_outputs = transformers_model.generate(**transformers_inputs, generation_config=gen_config)
22492243

0 commit comments

Comments
 (0)