Skip to content

Commit 0551064

Browse files
committed
remove prepare position_ids in forward
1 parent 32232bb commit 0551064

File tree

2 files changed

+10
-17
lines changed

2 files changed

+10
-17
lines changed

optimum/intel/ipex/modeling_base.py

-6
Original file line numberDiff line numberDiff line change
@@ -506,12 +506,6 @@ def forward(
506506
"attention_mask": attention_mask,
507507
}
508508

509-
if "position_ids" in self.input_names and position_ids is None:
510-
position_ids = attention_mask.long().cumsum(-1) - 1
511-
position_ids.masked_fill_(attention_mask == 0, 1)
512-
if past_key_values:
513-
position_ids = position_ids[:, -input_ids.shape[-1] :]
514-
515509
if "position_ids" in self.input_names or not self.input_names:
516510
inputs["position_ids"] = position_ids
517511

tests/ipex/test_modeling.py

+10-11
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
set_seed,
3333
)
3434

35-
from optimum.exporters.onnx import MODEL_TYPES_REQUIRING_POSITION_IDS
3635
from optimum.intel import (
3736
IPEXModel,
3837
IPEXModelForAudioClassification,
@@ -236,11 +235,8 @@ def test_compare_to_transformers(self, model_arch):
236235
return_tensors="pt",
237236
return_token_type_ids=False if model_arch in ("llama", "llama2") else None,
238237
)
239-
position_ids = None
240-
if model_arch.replace("_", "-") in MODEL_TYPES_REQUIRING_POSITION_IDS:
241-
input_shape = tokens["input_ids"].shape
242-
position_ids = torch.arange(0, input_shape[-1], dtype=torch.long).unsqueeze(0).view(-1, input_shape[-1])
243-
outputs = ipex_model(**tokens, position_ids=position_ids)
238+
inputs = ipex_model.prepare_inputs_for_generation(**tokens)
239+
outputs = ipex_model(**inputs)
244240

245241
self.assertIsInstance(outputs.logits, torch.Tensor)
246242
self.assertIsInstance(outputs.past_key_values, (tuple, list))
@@ -267,12 +263,15 @@ def test_pipeline(self, model_arch):
267263
def test_assisted_decoding(self, model_arch):
268264
model_id = MODEL_NAMES[model_arch]
269265
tokenizer = AutoTokenizer.from_pretrained(model_id)
270-
model = IPEXModelForCausalLM.from_pretrained(model_id, export=True)
271-
assistant_model = AutoModelForCausalLM.from_pretrained(model_id)
266+
ipex_model = IPEXModelForCausalLM.from_pretrained(model_id, export=True)
267+
transformers_model = AutoModelForCausalLM.from_pretrained(model_id)
272268
tokens = tokenizer("This is a sample input", return_tensors="pt")
273-
output = model.generate(**tokens, do_sample=False)
274-
output_assisted = model.generate(**tokens, do_sample=False, assistant_model=assistant_model)
275-
self.assertTrue(torch.equal(output, output_assisted))
269+
ipex_output = ipex_model.generate(**tokens, do_sample=False)
270+
ipex_output_assisted = ipex_model.generate(**tokens, do_sample=False, assistant_model=transformers_model)
271+
transformers_output = transformers_model.generate(**tokens, do_sample=False)
272+
transformers_output_assisted = transformers_model.generate(**tokens, do_sample=False, assistant_model=ipex_model)
273+
self.assertTrue(torch.equal(ipex_output, ipex_output_assisted))
274+
self.assertTrue(torch.equal(transformers_output, transformers_output_assisted))
276275

277276
@parameterized.expand(
278277
grid_parameters(

0 commit comments

Comments
 (0)