Views
No views yet
1from transformers import MT5ForConditionalGeneration, AutoTokenizer
2MODEL_NAME = "Livyatan/mT5-small-Hebrew-ParaShoot-QA"
3tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
4model = MT5ForConditionalGeneration.from_pretrained(MODEL_NAME)1def generate_answer(question, context):
2input_encoding = tokenizer(
3question,
4context,
5max_length = len(context),
6padding="max_length",
7truncation="only_second",
8return_attention_mask=True,
9add_special_tokens=True,
10return_tensors="pt"
11).to(DEVICE)
12
13with torch.no_grad():
14generated_ids = model.generate(
15input_ids = input_encoding['input_ids'].to(DEVICE),
16attention_mask = input_encoding['attention_mask'].to(DEVICE),
17max_length=20,
18)
19
20preds = [
21tokenizer.decode(generated_id, skip_special_tokens=True, clean_up_tokenization_spaces=True)
22for generated_id in generated_ids
23]
24
25return "".join(preds)
26
27context = 'סדרת הלווייתנאים כוללת כ-90 מינים, שכולם חיים באוקיינוסים מלבד חמישה מיני דולפינים החיים במים מתוקים. הלווייתנאים החיים מחולקים לשתי תת-סדרות: לווייתני מזיפות (Mysticeti) ולווייתני שיניים (Odontoceti; ובהם גם דולפינים); בעבר התקיימה תת-סדרה נוספת: לווייתנים קדומים (Archaeoceti), שנכחדה. במרבית המקרים לווייתני המזיפות גדולים באופן משמעותי מלווייתני השיניים, הקטנים והמהירים יותר, וכמה מלווייתני המזיפות הם מבעלי החיים הגדולים ביותר בכדור הארץ. לווייתני השיניים מתאפיינים בשיניים חדות, והם ציידים מהירים שניזונים מדגים ומיצורים ימיים אחרים. לעומתם לווייתני המזיפות הם חסרי שיניים ובמקום זאת יש להם מזיפות ארוכות דמויות מסננת, שבעזרתן הם מסננים פלנקטון מהמים.'
28question = 'כמה מינים כוללת סדרת הלווייתנאים?'
29answer = generate_answer(question, context)
30print(answer)
31>>> 'כ-90 מינים'