Views
No views yet
google/mt5-small для автоматической генерации музейных анонсов на английском и финском языках. Модель создана в рамках магистерской диссертации "Обучение языковой модели на материале текстов музейных анонсов" по профилю "цифровая лингвистика" (РГПУ им. А. И. Герцена, 2026).[EN], [FI])| Язык | BLEU (avg) | ROUGE-L F1 | Perplexity |
|---|---|---|---|
| Английский | 0.87 | 0.95 | 0.10 |
| Финский | 0.80 | 0.76 | 0.50 |
1pip install transformers torch sentencepiece
2from transformers import MT5ForConditionalGeneration, MT5Tokenizer
3
4model_name = "KK100000000000000/FEMA"
5
6tokenizer = MT5Tokenizer.from_pretrained("./FEMA-final")
7model = MT5ForConditionalGeneration.from_pretrained("./FEMA-final")
8
9# перенос на GPU, если доступен
10import torch
11device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
12model.to(device)
13
14def generate_announcement(text, language="en"):
15 """
16 Генерирует музейный анонс.
17 language: "en" или "fi"
18 text: запрос, например "Announcement of the exhibition"
19 """
20 input_text = f"[{language.upper()}] {text}"
21 inputs = tokenizer(input_text, return_tensors="pt", truncation=True, max_length=64)
22
23 inputs = {k: v.to(device) for k, v in inputs.items()}
24
25 outputs = model.generate(
26 **inputs,
27 max_length=128,
28 num_beams=5,
29 temperature=0.7,
30 do_sample=True,
31 early_stopping=True,
32 no_repeat_ngram_size=2
33 )
34
35 generated = tokenizer.decode(outputs[0], skip_special_tokens=True)
36
37# Примеры использования
38print("=== Английский ===")
39print(generate_announcement("Announcement of the exhibition", "en"))
40print("\n=== Финский ===")
41print(generate_announcement("Ilmoitus taidepajasta", "fi"))
42
43### Version_2
44```bash
45pip install transformers torch sentencepiece
46
47## Использование
48```python
49from transformers import GPT2LMHeadModel, GPT2Tokenizer
50
51model = GPT2LMHeadModel.from_pretrained("./FEMA-final")
52tokenizer = GPT2Tokenizer.from_pretrained("./FEMA-final")
53tokenizer.pad_token = tokenizer.eos_token
54
55def generate_announcement(text, language="en"):
56 input_text = f"{language}: {text} [SEP]"
57 inputs = tokenizer(input_text, return_tensors="pt", max_length=256, truncation=True)
58 outputs = model.generate(**inputs, max_new_tokens=150, num_beams=5)
59 return tokenizer.decode(outputs[0], skip_special_tokens=True).replace(input_text, "").strip()