Skip to content

Цель проекта - построение автоматической абстрактивной суммаризации статей из Habr с качеством, не хуже заданного бейзлайна.

Notifications You must be signed in to change notification settings

dbadeev/habr_summarization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Суммаризация статей Habr с использованием YaGPT


Постановка задачи

Цель проекта - построение автоматической абстрактивной суммаризации статей из Habr с качеством, не хуже заданного бейзлайна.

Для 100 статей, собранных в файле данных, необходимо:

  • Построить автоматическую абстрактивную суммаризацию
  • Получить качество суммаризаций не хуже (с учетом статзначимости), чем у выбранного бейзлайна по оценке закрытой модели
  • Получить качество суммаризаций не хуже, чем = 0.557по оценке открытой модели
  • Оформить результат в нужном формате

Замечание: Закрытая модель используется, так как тестовые данные и модель для оценки качества открыты. Т.е. можно переобучиться и "обмануть" открытую модель оценки качества методом перебора.

Оценка качества

  • Качество оценивается моделью, обученной на метрику SEAHORSE Q6 Concise:
  • Обучение модели качества:
    • RU и EN данные взяты из статьи SEAHORSE: A Multilingual, Multifaceted Dataset for Summarization Evaluation
    • Для предсказания Q6 Concise модель-метрика обучена из датасета статьи (самая высокоуровневая метрика из предложенных)
      • 10% данных использовалось для dev/test
      • 90% данных использовалось для обучения модели (обучено ДВЕ модели: открытая и закрытая. Каждая из моделей обучена на 60% данных от полного датасета).

Замечание: На вход модели-метрике текст должен подаваться в следующем формате: "Текст статьи:\n" + Text + "\n\n" + "Краткое содержание:\n" + Summary as metric_input

Формат результата выполненного задания

  • json lines - в каждой строке json вида {'id': AAA, 'summary': "BBB"}

Начало Работы

Копирование

Для копирования файлов Проекта на локальный компьютер в папку <your_dir_on_local_computer> выполните:

    $ git clone git@github.com:dbadeev/habr_summarization.git <your_dir_on_local_computer>

Описание файлов

  • requirements.txt - список библиотек, необходимых для работы
  • summarization.ipynb - ноутбук проекта
  • models.py - утилиты "чистки" текста твитов
  • Папка data
    • test_articles_clear_100.json - файл со статьями из Habr, которые нужно суммаризовать
    • train_data.json - файл с примерами различных суммаризаций с оценкой открытой моделью, которые можно использовать для дообучения при необхдимости
    • train_llm.json - файл с примерами удовлетворяющих дополнительным требованиям по длине лучших суммаризаций среди данных в train_data.json для fewshot дообучения базовой модели YandexGPT
    • test_results_base.json - файл с суммаризациями статей, полученных с помощью базовой (фундаментальной) модели YandexGPT
    • test_results_fin.json - файл с обновленными суммаризациями статей, полученных с помощью дообученной (fewshot) базовой модели YandexGPT
    • test_output_jsonlines.json - окончательный файл в требуемом формате с обновленными суммаризациями статей,полученных с помощью дообученной (fewshot) базовой модели YandexGPT

Замечание: В текущем репозитарии содержится усеченный до 150 примеров файл train_data.json с различными суммаризациями и оценкой открытой моделью. Размер оригинального файла больше 250 Мб и содержит порядка 11К примеров.

Запуск

В файле summarization.ipynb приведена пошаговая реализация проекта с пояснениями и промежуточными результатами.

Результат

Дообученная на fewshot базовая модель YandexGPT даже на небольшом количестве (12) "хороших" примеров смогла повысить среднюю метрику качества суммаризации на 100 текстах с полученного на фундаментальной модели значения = 0.59060547 до = 0.62374512.

About

Цель проекта - построение автоматической абстрактивной суммаризации статей из Habr с качеством, не хуже заданного бейзлайна.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published