DmitriyVasiliev's picture
Update README.md
91213f5
metadata
language:
  - ru
tags:
  - Simplification
  - Summarization
  - paraphrase

Данная модель является дообучнной версией "ai-forever/ruT5-base" (ранее"sberbank-ai/ruT5-base") на задаче упрощения текста (text simplification). Набор данных (https://drive.google.com/file/d/14lCIp0TJ78R8E9miVm5Ac88guEjCkgFR) был собран из материалов конференции "Dialog-21" (https://github.com/dialogue-evaluation/RuSimpleSentEval), корпуса "RuAdapt" (https://github.com/Digital-Pushkin-Lab/RuAdapt), а также уникальных данных, предоставленными институтом ИФиЯК СФУ. Параметры обучения: данные из файла "dia_train", Learning Rate = 3e-5, batch size = 1, optimizer = AdamW. Оценка SARI (среднее на файле "dia_test") = 33,14

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

model_name = "DmitriyVasiliev/ruT5-base-simplification"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(model_name)

input_text = "Хотя мечте Петра не суждено было сбыться, именно зарубежный опыт лёг в основу дальнейшей застройки."
ml = 2048


import re
def out_gen(input_line):
  WHITESPACE_HANDLER = lambda k: re.sub('\s+', ' ', re.sub('\n+', ' ', k.strip()))
  input_ids = tokenizer(
      [WHITESPACE_HANDLER(input_line)],
      return_tensors="pt",
      padding="max_length",
      truncation=True,
      max_length=ml
    )["input_ids"].to(device)
  output_ids = model.generate(
      input_ids=input_ids,
      max_length=ml,
      no_repeat_ngram_size=2,
      num_beams=5,
    )[0].to(device)
  summary = tokenizer.decode(
    output_ids,
    skip_special_tokens=True,
    clean_up_tokenization_spaces=False
  )
  return summary

answer = out_gen(input_text)