32 / 37 · Задачи NLP
Суммаризация
Две постановки: выбрать части входа (экстрактивная) или написать новый текст (абстрактивная). Заметка определяет ROUGE и то, что эта метрика вознаграждает, показывает предсказуемый провал экстрактивного классификатора на уровне токенов, дообучает энкодер–декодер T5 на однопредложенческих резюме новостей, сравнивает его с небольшой языковой моделью с промптом и перечисляет ловушки, которых ROUGE не видит.
Ответы на вопросы · Энкодеры, декодеры и модели энкодер–декодер
На этой странице 12
Резюме — короткий текст, сохраняющий то, что важно в длинном. Два определения слова «сохраняет» дают две задачи: экстрактивное резюме состоит из кусков входа, а абстрактивное — новый текст о нём. Первая — задача разметки, как в предыдущих заметках; вторая — порождение, и именно здесь естественно применяется семейство энкодеров–декодеров из заметки о семействах моделей. Метрика для обеих одна и та же и благоволит первой.
Обозначения. Документ , эталонное резюме , резюме системы ; -граммы текста считаются с кратностью.
Постановка задачи и данные#
Вход: документ (новостная статья, диалог, научная статья). Выход: резюме, длина которого задаётся соглашением набора данных. В этой заметке встречаются два набора данных:
| Набор данных | Вход | Эталон | Размер обучающей части |
|---|---|---|---|
| XSum (Narayan, Cohen and Lapata, 2018) | статья BBC | её вводное резюме в одно предложение, написанное журналистом | 204 045 |
| SAMSum (Gliwa et al., 2019) | короткий диалог в чате | резюме в одно–два предложения от третьего лица | 14 732 |
Оба эталона абстрактивны: они перефразируют, а предложения XSum намеренно нет в статье. Этот выбор важен для того, что может измерить метрика.
ROUGE#
ROUGE (Lin, 2004) считает пересечение -грамм между резюме системы и эталоном. Исходный вариант ориентирован на полноту («какая часть эталона покрыта»), обычно же приводят форму :
а — их среднее гармоническое. ROUGE-1 и ROUGE-2 используют униграммы и биграммы; ROUGE-L использует наибольшую общую подпоследовательность двух текстов, что вознаграждает совпадения по порядку, не требуя смежности, а rougeLsum применяет её по предложениям. Стемминг обычно включён. Значения умножаются на 100.
Игрушечный пример: эталон the cat sat on the mat, система the cat lay on a mat. Пересечение униграмм: the, cat, on, mat — 4 из 6 униграмм эталона и 4 из 6 униграмм системы, так что ROUGE-1 . Пересечение биграмм: только the cat (эталонное the mat превратилось в a mat), 1 из 5, ROUGE-2 . Резюме, скопировавшее предложение, получило бы 100 по обеим. Резюме a feline rested on the rug — верное и другими словами — получает 33.3 и 20.0: половину ROUGE-1 почти копии и такой же ROUGE-2, целиком за счёт on the:
Что считает ROUGE
Это свойство и нужно держать в голове: ROUGE измеряет лексическое пересечение с одним эталоном. Метрика дешёвая, воспроизводимая и на суммаризации новостей коррелирует с человеческими оценками при сравнении систем; она не замечает выдуманную деталь, которая повторяет слова статьи, и наказывает верный пересказ.
Экстрактивная суммаризация#
Базовый уровень. Для новостей — взять первые предложений (Lead-3). На наборах данных со стилем, смещённым к началу, его трудно превзойти; на XSum, где эталоны написаны так, чтобы не совпадать с началом, он слаб. Классический обучаемый подход оценивает предложения по позиции, длине, частоте терминов и сходству с центроидом документа и выбирает лучшие (Nenkova and McKeown, 2011).
Нейросетевая экстрактивная суммаризация — разметка последовательности на уровне предложений: закодировать документ, представить каждое предложение (BERTSum вставляет [CLS] перед каждым предложением и читает его вектор, Liu and Lapata, 2019) и классифицировать каждое как входящее в резюме или нет. Метки берутся из эталона оракулом: жадно добавлять предложения, которые сильнее всего повышают ROUGE относительно эталона. На выходе — набор целых предложений, грамматичных по построению.
Более грубая версия, опробованная на SAMSum, показывает, что идёт не так, когда единица слишком мала: пометить каждый токен диалога единицей, если подстрока, покрытая каким-то токеном эталонного резюме, встречается в диалоге, и нулём иначе, затем обучить линейный выходной слой на замороженном BERT предсказывать эти метки и склеить положительные токены. На чате из шести строк с эталоном Laura is going to buy a printer. получается
Laura new : Laura: thinking about Laura: _ : new ? Jamie buy hand one Laura: be
Процедура проваливается ещё до обучения модели. Метки токенов, построенные сравнением строк, отмечают каждое вхождение Laura, new и buy, где бы оно ни встречалось, так что положительное множество — мешок слов, а не фрагмент, и «резюме» — этот мешок, прочитанный по порядку. Извлекать нужно единицы, читаемые сами по себе (предложения или хотя бы клаузы), а оракул должен оценивать кандидатов-единицы, а не сопоставлять токены. Сам классификатор (1538 обученных параметров на замороженных признаках, функция потерь на оценке 0.12) делает то, о чём его просили; просили его о неверном.
Абстрактивная суммаризация#
Модель — предобученный трансформер энкодер–декодер из заметки о переводе. T5 (Raffel et al., 2020) оформляет задачу как «текст в текст» с префиксом: вход — summarize: + статья, обрезанная до 1024 токенов; цель — эталон, обрезанный до 128. Функция потерь — кросс-энтропия на токенах цели; паддинг в целях заменяется на , чтобы игнорироваться. Порождение использует лучевой поиск или жадное декодирование, а оценка декодирует порождённые идентификаторы в текст и сравнивает их с декодированными эталонами по ROUGE.
Результаты на 1000 валидационных статьях XSum с t5-small (60 млн параметров):
| Модель | ROUGE-1 | ROUGE-2 | ROUGE-L | Средняя длина |
|---|---|---|---|---|
t5-small без дообучения на XSum | 16.8 | 2.1 | 13.3 | 19.9 токена |
t5-small после 500 шагов дообучения (батч 8, шаг ) | не оценивалась; средняя функция потерь на обучении 3.13 | |||
| Qwen2.5-0.5B-Instruct с промптом, 10 статей | 19.1 | 3.7 | 13.2 | — |
Две оговорки к таблице. Предобученный T5 уже выдаёт нечто похожее на резюме, потому что предобучался на многих задачах с тем же префиксом; его 16.8 по ROUGE-1 — отправная точка, при функции потерь на валидации 3.83. Прогон в 500 шагов (4000 статей, 2% обучающей выборки) сообщает среднюю функцию потерь на обучении 3.13 по своим шагам, которую нельзя прямо сравнивать с функцией потерь на валидации, а дообученную модель не оценивали. Числа модели на 0.5 млрд с промптом получены по десяти статьям и измеряют разве что то, что она выдаёт резюме. Для ориентира: лучшая абстрактивная модель статьи о XSum набрала на тесте 31.9 / 11.5 / 25.8, а дообученные энкодеры–декодеры на несколько сотен миллионов параметров достигают середины 40-х по ROUGE-1 (Lewis et al., 2020). ROUGE-2 на XSum низок у любой системы, потому что эталон — одно абстрактивное предложение.
Языковые модели как средство суммаризации#
Декодер, обученный на инструкциях, суммаризирует по промпту, без дообучения, в любом стиле, о котором попросит промпт. По сравнению с дообученным энкодером–декодером это обмен: данные для обучения не нужны, длиной и фокусом можно управлять, гладкость и перефразирование лучше; хуже следование соглашениям набора данных (отсюда ниже ROUGE относительно его эталонов), выше цена на документ и тот же риск неверности фактам, что у любого порождающего метода. Исследования с оценками людей обнаруживали, что большие модели, обученные на инструкциях, в суммаризации новостей предпочитают дообученным системам даже там, где ROUGE говорит обратное (Goyal, Li and Durrett, 2022), — и это утверждение не меньше о метрике, чем о моделях.
Что изменилось#
| Экстрактивная (классическая / нейросетевая) | Абстрактивная (энкодер–декодер) | ЯМ с промптом | |
|---|---|---|---|
| Выход | предложения входа | новый текст | новый текст |
| Грамматичность | по построению | выучена | выучена |
| Верность фактам | по построению (но может вводить в заблуждение умолчанием) | может выдумывать | может выдумывать |
| Обучение | метки предложений от оракула | эталонные резюме | нет |
| ROUGE на абстрактивных эталонах | низкий потолок | наибольший при дообучении | ниже; несовпадение стиля |
Ловушки оценки#
- ROUGE вознаграждает копирование. Экстрактивные выходы и почти копии получают высокие оценки; пересказ — низкие. Приводить её вместе с проверкой верности фактам.
- Выдумка невидима для пересечения. Резюме, добавившее неверное число словами статьи, ничего не теряет по ROUGE. Нужны метрики верности фактам (модели логического следования, проверки через QA) или модель-судья — с оговорками из заметки об оценке LLM.
- Один эталон. Хороших резюме много; единственный эталон делает метрику шумной, а реализации различаются токенизацией и стеммингом.
- Длина. Более длинные резюме поднимают оценки, основанные на полноте; длину нужно фиксировать или приводить.
- Крошечные оценочные выборки (10 статей) ничего не измеряют.
Ограничения#
- Экстрактивные методы не умеют сжимать через границы предложений или разрешать местоимения; абстрактивные могут выдумывать.
- Длина входа здесь ограничена прогоном, а не фиксированной таблицей позиций. Входы обрезались до 1024 токенов; относительные позиции T5 с корзинами допускают и более длинные входы, но память внимания растёт с квадратом длины, а T5 предобучалась на входах из 512 токенов, так что длинным входам нужны память и проверка, а длинным документам — по-прежнему разбиение на куски и второй проход.
- Предметная область и стиль выучиваются по эталонам; модель, дообученная на однопредложенческих резюме BBC, пишет однопредложенческие резюме BBC.
Что нужно запомнить#
- Экстрактивная: выбирать единицы входа (предложения, через оракул); абстрактивная: порождать энкодером–декодером или декодером с промптом.
- ROUGE- — пересечения -грамм с эталоном; ROUGE-L использует наибольшую общую подпоследовательность. Метрика вознаграждает копирование и не видит выдумки.
- Извлечение на уровне токенов с метками по сравнению строк даёт словесный салат; единица должна быть читаемой.
- T5 решает суммаризацию как «текст в текст» с префиксом
summarize:, целями, обрезанными до 128 токенов, и паддингом, игнорируемым в функции потерь. - Языковые модели с промптом суммаризируют без обучения и получают меньший ROUGE, чем дообученные модели, хотя люди их часто предпочитают.
Ноутбук#
Два ноутбука. Номера ячеек считают все ячейки, включая текстовые, начиная с 1. Приведённые числа взяты из прогона, сохранённого в курсе; у ячеек, изменённых с тех пор под текущие версии библиотек, сохранённого выхода нет.
week07_nlp_tasks.ipynb, ячейки 70–81: попытка экстрактивной суммаризации на уровне токенов на SAMSum — от построения меток сравнением строк (ячейка 72) через классификатор на замороженном BERT (ячейка 74, 1538 обучаемых параметров) и три эпохи обучения (ячейка 79, функция потерь на оценке 0.123) до приведённого выше демонстрационного выхода (ячейка 81).
Ноутбук о суммаризации (part 2 ноутбука задач): ячейки 19–30 загружают XSum и метрику ROUGE; ячейки 41–48 выполняют предобработку с префиксом summarize: , входами в 1024 токена и целями в 128; ячейки 52–62 настраивают Seq2SeqTrainer с predict_with_generate, валидационное подмножество из 1000 примеров и compute_metrics, который перед подсчётом разбивает текст на предложения; ячейка 63 оценивает предобученную контрольную точку (первая строка таблицы); ячейка 65 обучает 500 шагов (функция потерь на обучении 3.129), и дообученную модель сохранённый прогон не оценивает; ячейки 70–76 запускают Qwen2.5-0.5B-Instruct с промптом на первых десяти валидационных статьях с не более чем 512 новыми токенами и оценивают их (последняя строка).
Дальше#
Классификация, разметка, извлечение фрагментов и суммаризация брали по одной модели и одному выходному слою. Задачи, которые важнее всего на практике сегодня, собираются из нескольких частей: поисковая модель, находящая нужный текст, порождающая модель, пишущая по нему, инструменты, которые порождающая модель может вызвать, и оценка всей цепочки. Следующий раздел курса собирает такие системы, начиная с заметки об эмбеддингах и поиске, где контекстные векторы энкодера становятся индексом.
Литература#
- C.-Y. Lin. ROUGE: A Package for Automatic Evaluation of Summaries. ACL Workshop on Text Summarization, 2004.
- S. Narayan, S. B. Cohen, M. Lapata. Don’t Give Me the Details, Just the Summary! Topic-Aware Convolutional Neural Networks for Extreme Summarization. EMNLP, 2018. XSum.
- B. Gliwa, I. Mochol, M. Biesek, A. Wawer. SAMSum Corpus: A Human-annotated Dialogue Dataset for Abstractive Summarization. EMNLP Workshop, 2019.
- A. Nenkova, K. McKeown. Automatic Summarization. Foundations and Trends in Information Retrieval, 5(2–3), 2011.
- Y. Liu, M. Lapata. Text Summarization with Pretrained Encoders. EMNLP, 2019. BERTSum.
- C. Raffel et al. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. JMLR, 21(140), 2020. T5.
- M. Lewis et al. BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension. ACL, 2020. Результаты на XSum в таблице 3.
- T. Goyal, J. J. Li, G. Durrett. News Summarization and Evaluation in the Era of GPT-3. arXiv, 2022.
- Hugging Face. Summarization. Рецепт дообучения, использованный в ноутбуке.