Цель проекта - построение автоматической абстрактивной суммаризации статей из 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
.