/ Модель

Характеристики

Параметры
404 млн
Лицензия
Apache 2.0
Архитектура
t5 · dense
Базовая модель
FRED-T5-large
Опубликована
17 дек 2023

FRED-T5-large-habr-summarizer

СуммаризацияТекст → текст3 профессии

Русскоязычный суммаризатор на базе FRED-T5-large для создания кратких пересказов статей с Habr.

38скачиваний за 30 дней10лайковвеса обновлены18 дек 2023

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Модель basic-go/FRED-T5-large-habr-summarizer — дообученный суммаризатор статей с Habr, созданный в рамках тестового задания GPT Week. Она построена на архитектуре T5 и базовой модели ai-forever/FRED-T5-large; содержит 403,9 млн параметров и распространяется в формате safetensors по лицензии Apache-2.0. Модель предназначена для абстрактивного создания краткого пересказа статьи на русском языке.

Обучение включало supervised fine-tuning, а также DPO для одного из вариантов; в итоговом подходе использовались расширенный набор кандидатов и постобработка. Для практического применения автор рекомендует предварительную и последующую обработку текста. В описанных экспериментах итоговый подход улучшил метрику на тестовом наборе относительно ранних вариантов.

Среди известных ограничений — возможные повторы или перефразирование фрагментов исходного текста. Постобработка помогает справиться с байтовыми последовательностями и незавершёнными предложениями; без неё выход может требовать дополнительной очистки. Модель специализирована на статьях Habr, поэтому её качество для других жанров не подтверждено.

Сценарии применения

  • составление краткого пересказа статьи с Habr
  • подготовка аннотации к технической публикации
  • сжатие длинной русскоязычной статьи перед чтением

Ограничения

Возможны повторы и перефразирование фрагментов; для обработки байтовых последовательностей и незавершённых предложений README рекомендует пред- и постобработку. Качество для текстов за пределами статей Habr не подтверждено.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Это абстрактивный суммаризатор для статей с Habr, обученный на данных тестового задания в рамках GPT Week. В качестве базовой модели выступает ai-forever/FRED-T5-large.

Использование

Использование подразумевает пред- и постобработку текста, как в этом примере:

import re
from transformers import pipeline


clean_expr = re.compile(r"[\xa0\x1a\x16\x1b\x17\x15\u2004]")
spaces_expr = re.compile(r"\s{2,}")

def process_text(text: str) -> str:
    """Осуществляет пред- и постобработку текста."""
    text = clean_expr.sub(" ", text)
    text = spaces_expr.sub(" ", text)

    if "." in text:
        index = text.rindex(".")
        text = text[:index + 1]
    
    return text


summarizer = pipeline("summarization", model="basic-go/FRED-T5-large-habr-summarizer", device=0)

ARTICLE = """
Трогательный инженерный бизиборд, Новый Год и волонтеры / Хабр                

31-12-2019
Зачем нужен бизиборд, когда у папы много интересных инструментов? Опасные убраны, а пассатижами пусть ребенок играет, шуруповерт нажимает, ручки осциллографа крутит. Но наступил момент и сделан инженерный бизиборд. Таким каким он должен быть, в противоположность фабричному изделию – красивому, глянцевому, красочному, со всеми закругленными углами и краями. Разноцветному для глаз, но однородному и скучному на ощупь. С чего все началось Началось с объявления чуть больше года назад в социальной сети, что московскому психоневралогическому интернату (ПНИ) требуются бизиборды: Что это такое Что такое ПНИ трудно представить, но можно посмотреть в youtube. И если волонтеры пишут, что в ПНИ проблема дефицита сенсорных впечатлений, значит это ОЧЕНЬ большая проблема. Мы, взрослые, ходим по строительному гипермаркету и крутим в руках железки, щупаем трубки, проводим рукой по оплетке и т.д. Женщины в магазине трогают вообще всё. Я инженер, регулярно покупаю какие-то детали, чтобы на столе лежали, и я достаточное количество раз их потрогал и постепенно понял – смогу ли применить как задумал. Каждый в детстве лежал на кровати и бесконечно долго разглядывал и щупал ковер. Или, провинившись, стоял в углу и ковырял обои. Щупать – это способность и потребность человека. Когда мы с товарищем увидели бизиборды, которые планируется купить для ПНИ, решили сделать максимально трогательный бизиборд сами. Трогательный в прямом смысле. Куплены парные раскручивающиеся фитинги из пластика, никелированной стали, бронзы, чугуна оцинкованного и черного чугуна. Медные трубки, гофрированная трубка из нержавеющей стали, по которой со звоном долго спускается шайба, если ее поднять и отпустить. Самый красивый материал, конечно, никелированная сталь. Но красота не главное, главное контраст. Поэтому рядом с никелированной деталью висит деталь из черного чугуна, и трудно сказать – какой материал даст больший чувственный опыт. «Чугунные игрушки» из анекдота – не насмешка, а необходимость; ребенку важно почувствовать тяжесть и грубую фактуру материала. Все фитинги по-разному закручиваются, интересней других крутить сложные составные фитинги для труб ПНД. Гофра для унитаза удивляет диаметром, и ее можно растягивать. Пеньковая веревка впечатляюще колюча. Отрезной диск красивый, брутальный, и на ощупь грубый. Образцы керамики вдали выглядят обычно, но красивые, если рассматривать их многослойное покрытие вблизи, проводя по рельефу пальцами. Как это сделано За основу взят лист фанеры 1500×1000×10 мм. В строительном гипермаркете есть услуга пила в размер, к основному листу дополнительно нарезали ребер жесткости. С размером листа ошибся, лист чуть-чуть не влез в автомобиль, а гипермаркет уже закрылся и пришлось в ночь идти с этим листом домой пешком – не надо так. Ребра жесткости прикручены шурупами 16 мм – стянут оба листа, но не выйдут с другой стороны. Всюду, где можно, использован детский труд. Детский труд экономит деньги – не нужно покупать очередной конструктор. Вон папе купили новое кресло, иди распаковывай и собирай, нужна будет помощь — позовешь. И детский труд – это педагогично, ребенок вырастет умеющим не только работать руками, но и делегировать задачи. Дети учатся не тому, чему их учат взрослые, а тому что взрослые при детях делают. Покрасили на лестничной площадке, постелив полиэтилен. Закрепили детали тросами в ПВХ-оплетке. Стальные тросы в ПВХ-оплетке — прекрасный материал, только пришлось отдельно ехать в магазин за кусачками, которые этот трос смогут перекусить. На обратной стороне тросы затянули узлами, а узлы залили термоклеем. Термоклей имеет хорошую адгезию к ПВХ, залитый узел сам не распустится и выдернуть его с лицевой стороны стенда невозможно. Чем все закончилось В «наш» ПНИ уже успели закупить готовые бизиборды, меня переправили к волонтерам другого ПНИ. Там фотографии посмотрели и сказали – а давайте отправим ваш стенд в Азовский интернат для умственно отсталых детей. Сказали – и отправили. В новогоднюю ночь приехала еще одна бригада волонтеров, погрузили стенд в огромный прицеп к АЗЛК 2141 уже забитый коробками с подарками интернату, и в метель уехали. Очень романтично. Дальше я долго пытался получить какую-то обратную связь от волонтеров, но смог лишь узнать телефон интерната. Там звонку удивились, обрадовались, сказали, что не поняли, что это им привезли и отдали в уголок труда. И сказали, что примут любую помощь, и чтобы я приходил и помогал. Я посмотрел фотографии интерната, посмотрел на детей и увидел, что стенд отправили совершенно не туда. Ситуация в интернате по сравнению с ПНИ роскошная, проблемы запертости в своем теле и на своей кровати у детей нет. Жил бы рядом с интернатом – приходил бы по субботам, учил бы этих детей программировать Ардуино. Опыт преподавания робототехники в школе есть, справился бы и в интернате. Но между нами 1100 км. А стенд все же нужен был в ПНИ. Выводы Все сделано правильно, только нужно самому говорить с тем, для кого что-то делаешь. Самому изучать потребность, самому получать обратную связь и самому делать следующий шаг. Стенд делается относительно легко, технология «фанера + тросы в пвх + термоклей» рабочая, предлагаю использовать наш опыт.
"""

ARTICLE = process_text(ARTICLE)

response = summarizer(ARTICLE, max_new_tokens=360, num_beams=2, do_sample=True, top_k=100,
    repetition_penalty=2.5, length_penalty=1.0)

summary = process_text(response[0]["summary_text"])

print(summary)

# Трогательный инженерный бизиборд, сделанный для московского психоневралогического интерната, был сделан самим автором. Он использовал парные раскручивающиеся фитинги из пластика, никелированной стали, бронзы, чугуна оцинкованного и черного чугуна, а также детские труд и инструменты. В новогоднюю ночь стенд был отправлен в Азовский интернат для умственно отсталых детей. Автор выражает благодарность волонтерам, которые помогли сделать этот стенд, и предлагает использовать их опыт для улучшения ситуации в интернате.

История подходов

Метрики на тестовом датасете в зависимости от подхода представлены в таблице ниже.

#extraSFTDPOpost-processingМетрика
1✓0.5168
2✓✓0.5525
3✓✓✓0.5664
4✓✓✓0.6075

На начальном этапе у модели выявлены следующие проблемы, негативно влияющие на метрику:

  • Генерация байт-последовательностей.

    Проблема решена пред- и постобработкой.

  • Модель часто не завершала последнее предложение.

    Решено через постобработку отрезанием незавершённой части. Для итоговой модели постобработка даёт небольшой вклад в метрику.

  • Повторение и перефразирование фрагментом текста.

    В итоговой модели проблема значительно нивелирована, однако повторы могут встречаться.

1. SFT

  • Делаем срез из обучающего набора данных по правилу metric > 0.65.
  • Разбиваем полученный срез на обучающую и валидационную часть в соотношении 4 : 1.
  • Обучаемся 4 эпохи с уменьшающимся шагом, начиная с 1e-4.

2. SFT + post-processing

  • Применяем функцию process_text из примера к текстовому ответу модели.

3. SFT + DPO + post-processing

  • Инференс на обучающем срезе SFT-моделью.
  • Одна эпоха DPO на полученных кандидатах с шагом 1e-7.

4. Extra + SFT + post-processing

Extra означает обучаться больше на большем датасете.

  • Инференс полученной на предыдущем шаге моделью на половине исходного обучающего датасета.
  • Объединение с предыдущими генерациями и отбор лучшего кандидата для каждой статьи.
  • Делаем новый срез кандидатов по правилу metric > 0.65, получаем увеличение набора данных на 30%.
  • Обучаемся с нуля 8 эпох с уменьшающимся шагом, начиная с 1e-4.

Что не получилось

Не удалось завести конфигурацию extra + SFT + DPO [+ post-processing]: нестабильное обучение, с некоторого момента модель начинала деградировать.

Возможные улучшения

В четвёртом подходе (extra and etc.) получилось использовать примерно 20% от всего исходного обучающего датасета. Меняя только параметры генерации и запуская снова инференс, можно добиться большего числа кандидатов, проходящих порог metric > 0.65. Предполагается, что обучение модели на датасете с большим числом качественных кандидатов (за счёт выросшего разнообразия) должно приводить к увеличению целевой метрики.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Можно запустить

Подбираем GPU…

Класс архитектуры
T5ForConditionalGeneration
Ревизия весов
3f1f340

0 моделей