ruT5-base-pls / README.md
r1char9's picture
Update README.md
411f2a0 verified
metadata
language:
  - ru
tags:
  - Simplification
  - Summarization
  - paraphrase

Данная модель является дообучнной версией "ai-forever/ruT5-base" (ранее"sberbank-ai/ruT5-base") на задаче упрощения текста (text simplification). Набор данных был собран из корпуса "RuSimpleSentEval" (https://github.com/dialogue-evaluation/RuSimpleSentEval), а также "RuAdapt" (https://github.com/Digital-Pushkin-Lab/RuAdapt). Метрики обучения bleu:100.0 sari:28.699 fkgl:31.931 (из файла "train.logs")

import torch
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

model_name = "r1char9/ruT5-base-pls"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(model_name)

input_text='''Война Советского Союза против фашистской Германии и её союзников
              (Венгрии, Италии, Румынии, Словакии, Хорватии, Финляндии, Японии);
              составная часть Второй мировой войны 1939-1945 гг.'''

def example(source, model, tokenizer):
    """
    Пример упрощения текста моделью
    :param source: Сложный текст
    :param model: Модель
    :param tokenizer: Токенизатор
    :return: Текст, упрощенный моделью
    """
    print(f'SOURCE: {source}')
    input_ids, attention_mask = tokenizer(source, return_tensors = 'pt').values()
    with torch.no_grad():
        output = model.generate(input_ids = input_ids.to(model.device),
                 attention_mask = attention_mask.to(model.device),
                 max_new_tokens=input_ids.size(1)*2, min_length=0)
    return tokenizer.decode(output.squeeze(0), skip_special_tokens = True)

example(input_text, model, tokenizer)