Error during inference
#6
by
alvations
- opened
With this input,
"תאגיד הדלק והכימיקלים של סין (באנגלית: China Petroleum & Chemical Corporation, בסינית: 中国石油化工股份有限公司) או סינופק (אנגלית: Sinopec Limited, סינית: 中国石化, סינית מסורתית: 中國石化, פין-יין: Zhōngguó Shíhuà) היא תאגיד נפט וגז ממשלתי סיני הממוקם בבייג'ינג."
the model throws the error for transformers==4.31.0
:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-31-e2292311132f> in <module>
----> 1 translator(s)
~/Library/Python/3.8/lib/python/site-packages/transformers/pipelines/text2text_generation.py in __call__(self, *args, **kwargs)
365 token ids of the translation.
366 """
--> 367 return super().__call__(*args, **kwargs)
~/Library/Python/3.8/lib/python/site-packages/transformers/pipelines/text2text_generation.py in __call__(self, *args, **kwargs)
163 """
164
--> 165 result = super().__call__(*args, **kwargs)
166 if (
167 isinstance(args[0], list)
~/Library/Python/3.8/lib/python/site-packages/transformers/pipelines/base.py in __call__(self, inputs, num_workers, batch_size, *args, **kwargs)
1120 )
1121 else:
-> 1122 return self.run_single(inputs, preprocess_params, forward_params, postprocess_params)
1123
1124 def run_multi(self, inputs, preprocess_params, forward_params, postprocess_params):
~/Library/Python/3.8/lib/python/site-packages/transformers/pipelines/base.py in run_single(self, inputs, preprocess_params, forward_params, postprocess_params)
1127 def run_single(self, inputs, preprocess_params, forward_params, postprocess_params):
1128 model_inputs = self.preprocess(inputs, **preprocess_params)
-> 1129 model_outputs = self.forward(model_inputs, **forward_params)
1130 outputs = self.postprocess(model_outputs, **postprocess_params)
1131 return outputs
~/Library/Python/3.8/lib/python/site-packages/transformers/pipelines/base.py in forward(self, model_inputs, **forward_params)
1026 with inference_context():
1027 model_inputs = self._ensure_tensor_on_device(model_inputs, device=self.device)
-> 1028 model_outputs = self._forward(model_inputs, **forward_params)
1029 model_outputs = self._ensure_tensor_on_device(model_outputs, device=torch.device("cpu"))
1030 else:
~/Library/Python/3.8/lib/python/site-packages/transformers/pipelines/text2text_generation.py in _forward(self, model_inputs, **generate_kwargs)
185 generate_kwargs["max_length"] = generate_kwargs.get("max_length", self.model.config.max_length)
186 self.check_inputs(input_length, generate_kwargs["min_length"], generate_kwargs["max_length"])
--> 187 output_ids = self.model.generate(**model_inputs, **generate_kwargs)
188 out_b = output_ids.shape[0]
189 if self.framework == "pt":
~/Library/Python/3.8/lib/python/site-packages/torch/utils/_contextlib.py in decorate_context(*args, **kwargs)
~/Library/Python/3.8/lib/python/site-packages/transformers/generation/utils.py in generate(self, inputs, generation_config, logits_processor, stopping_criteria, prefix_allowed_tokens_fn, synced_gpus, assistant_model, streamer, **kwargs)
1625 )
1626 # 13. run beam search
-> 1627 return self.beam_search(
1628 input_ids,
1629 beam_scorer,
~/Library/Python/3.8/lib/python/site-packages/transformers/generation/utils.py in beam_search(self, input_ids, beam_scorer, logits_processor, stopping_criteria, max_length, pad_token_id, eos_token_id, output_attentions, output_hidden_states, output_scores, return_dict_in_generate, synced_gpus, **model_kwargs)
2930 model_inputs = self.prepare_inputs_for_generation(input_ids, **model_kwargs)
2931
-> 2932 outputs = self(
2933 **model_inputs,
2934 return_dict=True,
~/Library/Python/3.8/lib/python/site-packages/torch/nn/modules/module.py in _call_impl(self, *args, **kwargs)
1499 def parameters(self, recurse: bool = True) -> Iterator[Parameter]:
1500 r"""Returns an iterator over module parameters.
-> 1501
1502 This is typically passed to an optimizer.
1503
~/Library/Python/3.8/lib/python/site-packages/transformers/models/marian/modeling_marian.py in forward(self, input_ids, attention_mask, decoder_input_ids, decoder_attention_mask, head_mask, decoder_head_mask, cross_attn_head_mask, encoder_outputs, past_key_values, inputs_embeds, decoder_inputs_embeds, labels, use_cache, output_attentions, output_hidden_states, return_dict)
1454 )
1455
-> 1456 outputs = self.model(
1457 input_ids,
1458 attention_mask=attention_mask,
~/Library/Python/3.8/lib/python/site-packages/torch/nn/modules/module.py in _call_impl(self, *args, **kwargs)
1499 def parameters(self, recurse: bool = True) -> Iterator[Parameter]:
1500 r"""Returns an iterator over module parameters.
-> 1501
1502 This is typically passed to an optimizer.
1503
~/Library/Python/3.8/lib/python/site-packages/transformers/models/marian/modeling_marian.py in forward(self, input_ids, attention_mask, decoder_input_ids, decoder_attention_mask, head_mask, decoder_head_mask, cross_attn_head_mask, encoder_outputs, past_key_values, inputs_embeds, decoder_inputs_embeds, use_cache, output_attentions, output_hidden_states, return_dict)
1256
1257 # decoder outputs consists of (dec_features, past_key_value, dec_hidden, dec_attn)
-> 1258 decoder_outputs = self.decoder(
1259 input_ids=decoder_input_ids,
1260 attention_mask=decoder_attention_mask,
~/Library/Python/3.8/lib/python/site-packages/torch/nn/modules/module.py in _call_impl(self, *args, **kwargs)
1499 def parameters(self, recurse: bool = True) -> Iterator[Parameter]:
1500 r"""Returns an iterator over module parameters.
-> 1501
1502 This is typically passed to an optimizer.
1503
~/Library/Python/3.8/lib/python/site-packages/transformers/models/marian/modeling_marian.py in forward(self, input_ids, attention_mask, encoder_hidden_states, encoder_attention_mask, head_mask, cross_attn_head_mask, past_key_values, inputs_embeds, use_cache, output_attentions, output_hidden_states, return_dict)
999
1000 # embed positions
-> 1001 positions = self.embed_positions(input_shape, past_key_values_length)
1002
1003 hidden_states = inputs_embeds + positions
~/Library/Python/3.8/lib/python/site-packages/torch/nn/modules/module.py in _call_impl(self, *args, **kwargs)
1499 def parameters(self, recurse: bool = True) -> Iterator[Parameter]:
1500 r"""Returns an iterator over module parameters.
-> 1501
1502 This is typically passed to an optimizer.
1503
~/Library/Python/3.8/lib/python/site-packages/torch/utils/_contextlib.py in decorate_context(*args, **kwargs)
~/Library/Python/3.8/lib/python/site-packages/transformers/models/marian/modeling_marian.py in forward(self, input_ids_shape, past_key_values_length)
138 past_key_values_length, past_key_values_length + seq_len, dtype=torch.long, device=self.weight.device
139 )
--> 140 return super().forward(positions)
141
142
~/Library/Python/3.8/lib/python/site-packages/torch/nn/modules/sparse.py in forward(self, input)
160 self.norm_type, self.scale_grad_by_freq, self.sparse)
161
--> 162 def extra_repr(self) -> str:
163 s = '{num_embeddings}, {embedding_dim}'
164 if self.padding_idx is not None:
~/Library/Python/3.8/lib/python/site-packages/torch/nn/functional.py in embedding(input, weight, padding_idx, max_norm, norm_type, scale_grad_by_freq, sparse)
2208 else:
2209 raise ValueError("mode has to be one of sum, mean or max")
-> 2210
2211 if max_norm is not None:
2212 # XXX: equivalent to
IndexError: index out of range in self
To replicate the error:
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
from transformers import pipeline
tokenizer = AutoTokenizer.from_pretrained("Helsinki-NLP/opus-mt-mul-en")
model = AutoModelForSeq2SeqLM.from_pretrained("Helsinki-NLP/opus-mt-mul-en")
translator = pipeline("translation", tokenizer=tokenizer, model=model, max_length=1024)
s = "תאגיד הדלק והכימיקלים של סין (באנגלית: China Petroleum & Chemical Corporation, בסינית: 中国石油化工股份有限公司) או סינופק (אנגלית: Sinopec Limited, סינית: 中国石化, סינית מסורתית: 中國石化, פין-יין: Zhōngguó Shíhuà) היא תאגיד נפט וגז ממשלתי סיני הממוקם בבייג'ינג."
translator(s, src_lang="he")
Found a few more inputs that causes the same error:
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
from transformers import pipeline
tokenizer = AutoTokenizer.from_pretrained("Helsinki-NLP/opus-mt-mul-en")
model = AutoModelForSeq2SeqLM.from_pretrained("Helsinki-NLP/opus-mt-mul-en")
translator = pipeline("translation", tokenizer=tokenizer, model=model, max_length=1024)
s = """לכל מכרי ומוקירי זכרי:מציאאות לפמיםם נס מממקום הכי פפחות צפוי אבל עם גב ללקיר הכל אפשרי וואני מבייט בגדדרר הירוקה לשברי כלים שהייתי מיועד לשם, כאשר עו"ס אקים משולב מרעהו ברפש לנפש לפקח על מה שתקנו "פיגור של גאונים" לטאטטא חצר בבית מלאכה ואחרי שנתייים אולי לתפור ידיעות לתיקי בתי ספר,ואז כבר התחלתי לגשש במעש אוותנטי לא רווחי להגיע ללעינים אחרות ואחרי שנתיים טסתי מעעבר לגדרות ולחומות,בטיפול מיטבי להסתיר כספי ירושה שאני טרחתי לאבי כבן שנואאת וגרושת הלב והכל ידעו ארבעים שנה לפני בהתעלמו גם הפדגוגיה. זכיתי בהכרת קרן ננובל לספרו,לא תיחום אמנותי לשמו,עדות קן הקוקיה כמציאות גהינומית וגדרות נעולות. פתרון סופי לא איחר לבוא, איש מכל מיודעי ואז דור הורי ככבר ירד מהבמה, ביגון למראה הילד החביב שכבר"לא יעשה צבא" שנותר פסיקה אספסופית להשאר אפס. צנועיםם,סולידים,אלטרואאיסטים ותרומיים מאכל לחייתו המדינה,אווי לשופטות ברצצחחנות חוכמה להררי ולנטול משפחה שואה או עקירה,ילדי באי עירק וצפון אפריקה נדונו לאותה שטנת הפקרה.כל כוחות דעת באנגלית בי"ל השקעתי למנוע מגדר ירוקה לסגור עלי..בשנתי ה70 "כוכב ההלכת של מר סאמלר". לסול בלו בעיר ואם"""
translator(s, src_lang="he")
and
s = """
במודל איינשטיין מ-1907 (בניגוד למודל דביי המאוחר יותר) אנו מתחשבים רק בגבול הטמפרטורה הגבוהה: k B T ≫ ℏ ω α . {\displaystyle k_{B}T\gg \hbar \omega _{\alpha }.\,} אזי 1 − e − ℏ ω α / k B T ≈ ℏ ω α / k B T {\displaystyle 1-e^{-\hbar \omega _{\alpha }/k_{B}T}\approx \hbar \omega _{\alpha }/k_{B}T\,} ואנו מקבלים F = N ε 0 + k B T ∑ α log ( ℏ ω α k B T ) . {\displaystyle F=N\varepsilon _{0}+k_{B}T\sum _{\alpha }\log \left({\frac {\hbar \omega _{\alpha }}{k_{B}T}}\right).} נגדיר את הממוצע הגאומטרי של התדירות להיות log ω ¯ = 1 M ∑ α log ω α , {\displaystyle \log {\bar {\omega }}={\frac {1}{M}}\sum _{\alpha }\log \omega _{\alpha },} כאשר M הוא סך כל דרגות החופש של המערכת."""
translator(s, src_lang="he")
Those look like long inputs but seems to be caused by long outputs generated:
s = """ד״ר שלומי קודש, מנהל ביה"ח סורוקה | על פרופ' שאול סוקניק ז"ל"""
translator(s, src_lang="he")