mT5_ru_XLSum / README.md
Nehc's picture
Update README.md
5b1a657 verified
metadata
licenses:
  - cc-by-nc-sa-4.0
language:
  - ru
  - en
tags:
  - summarization
  - dialogue-summarization
  - text2text-generation
  - mT5
widget:
  - example_title: Russian Joke
    text: >-
      С точки зрения банальной эрудиции, в аспекте призматической
      парадоксальности, цинизм ваших слов в данной конспекции ассоциируется
      мистификацией парадоксальных иллюзий. Разложим его семилинейным
      функционалом в матpицy пpямоyгольнyю тpоеpанговyю обводимyю собственной
      неодноpодностью непpеpывно интегpиpyемой в pазpыв попеpек интеpвала
      pасходимости кpиволинейным экстpемyмом чеpез область целостности!
  - example_title: Diploma Introduction
    text: >
      Актуальность проблемы. Электронная информация играет все большую  роль во
      всех сферах жизни современного общества. В последние годы объем
      научно-технической текстовой информации в электронном виде возрос
      настолько, что возникает угроза обесценивания этой информации в связи с
      трудностями поиска необходимых сведений среди множества доступных текстов.
      Развитие информационных ресурсов Интернет многократно усугубило проблему
      информационной перегрузки. В этой ситуации особенно актуальными становятся
      методы автоматизации реферирования текстовой информации, то есть методы
      получения сжатого представления текстовых документов–рефератов
      (аннотаций). Постановка  проблемы  автоматического реферирования текста и
      соответственно попытки ее решения с использованием различных подходов
      предпринимались многими исследователями. История применения вычислительной
      техники для реферирования  насчитывает уже более 50 лет и связана с
      именами таких исследователей, как Г.П. Лун, В.Е. Берзон, И.П. Cевбо, Э.Ф.
      Скороходько, Д.Г. Лахути, Р.Г. Пиотровский и др. За эти годы  выработаны 
      многочисленные подходы к решению данной проблемы, которые достаточно четко
      подразделяются на два направления: автоматическое реферирование,
      основанное на экстрагировании из первичных документов с помощью
      определенных формальных признаков «наиболее информативных» фраз
      (фрагментов), совокупность которых образует некоторый экстракт;
      автоматическое реферирование, основанное на выделении из текстов с помощью
      специальных информационных языков наиболее существенной информации и
      порождении новых текстов (рефератов), содержательно обобщающих первичные 
      документы.
  - example_title: Biological Info
    text: >-
      Первую многоножку, у которой более тысячи ног, обнаружили в австралийских
      пещерах биологи, изучавшие там подземные воды. Предыдущей рекордсменкой по
      количеству ног была 700-ногая многоножка. Новый вид имеет длинное тонкое
      тело, похожее на нить, и большое количество конечностей, по-видимому, дает
      преимущества для быстрого перемещения и проникновения в труднодоступные
      места — ученые полагают, такая многоножка может спокойно перемещаться по
      трещинам в камнях. Австралия известна своими огромными и жутковатыми
      животными вроде 25-сантиметровых пауков. Теперь список пугающих
      членистоногих пополнился самой «многоногой» в мире многоножкой, у которой
      более тысячи ног. Необычное животное обнаружила группа исследователей из
      Австралии и США в пещерах на западе страны. Подробнее многоножку ученые
      описали в статье в журнале Scientific Reports. Исследователи занимались
      оценкой воздействия подземных вод на окружающую среду в зоне добычи
      полезных ископаемых на западе страны, когда наткнулись на новый вид
      многоножек. В отличие от большинства сородичей, живущих на поверхности,
      эти многоножки обитали в пещерах на глубине до 60 метров. Новый вид
      исследователи назвали Eumillipes persephone, в честь Персефоны —
      древнегреческой богини подземного мира. У многоножки оказалось 1306 ног —
      больше, чем у любого другого известного вида. Предыдущей рекордсменкой
      была калифорнийская Illacme plenipes, у которой насчитывалось до 750 ног.
      «Эти животные были настолько уникальны, — говорит биолог Бруно Бузатто. —
      Как только я понял, какой длины они были... Стало ясно, что это что-то
      совершенно новое». У Е. persephone нитевидное тело длиной около 9,5 см и
      шириной всего миллиметр, состоящее из 330 сегментов, короткие ноги и
      конусообразная голова. Как и другие животные, живущие в постоянной
      темноте, эти многоножки бледны и слепы. Энтомолог Пол Марек сравнивает ее
      с белой нитью, выдернутой из рубашки. Чтобы посчитать количество ног,
      ученым пришлось сначала снять многоножку в высоком разрешении, а затем
      закрашивать на фото каждый десяток ног другим цветом.
      (https://www.gazeta.ru/science/2021/12/17_a_14325355.shtml)
pipeline_tag: summarization

mT5_ru_XLSum

Mod of https://huggingface.co/csebuetnlp/mT5_multilingual_XLSum. Shrink tokenizer to 32K (ru+en) with David's Dale manual.

Using this model in transformers

import re
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

WHITESPACE_HANDLER = lambda k: re.sub('\s+', ' ', re.sub('\n+', ' ', k.strip()))

article_text = """
С точки зрения банальной эрудиции, в аспекте призматической парадоксальности,
цинизм ваших слов в данной конспекции ассоциируется мистификацией парадоксальных иллюзий.
Разложим его семилинейным функционалом в матpицy пpямоyгольнyю тpоеpанговyю обводимyю
собственной неодноpодностью непpеpывно интегpиpyемой в pазpыв попеpек интеpвала
pасходимости кpиволинейным экстpемyмом чеpез область целостности!
"""

model_name = "Nehc/mT5_ru_XLSum"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(model_name)

input_ids = tokenizer(
    [WHITESPACE_HANDLER(article_text)],
    return_tensors="pt",
    padding="max_length",
    truncation=True,
    max_length=512
)["input_ids"]

output_ids = model.generate(
    input_ids=input_ids,
    max_length=84,
    no_repeat_ngram_size=2,
    num_beams=3
)[0]

summary = tokenizer.decode(
    output_ids,
    skip_special_tokens=True,
    clean_up_tokenization_spaces=False
)

print(summary)