Содержание курса 32 / 37

32 / 37 · Задачи NLP

Суммаризация

Две постановки: выбрать части входа (экстрактивная) или написать новый текст (абстрактивная). Заметка определяет ROUGE и то, что эта метрика вознаграждает, показывает предсказуемый провал экстрактивного классификатора на уровне токенов, дообучает энкодер–декодер T5 на однопредложенческих резюме новостей, сравнивает его с небольшой языковой моделью с промптом и перечисляет ловушки, которых ROUGE не видит.

На этой странице 12

Резюме — короткий текст, сохраняющий то, что важно в длинном. Два определения слова «сохраняет» дают две задачи: экстрактивное резюме состоит из кусков входа, а абстрактивное — новый текст о нём. Первая — задача разметки, как в предыдущих заметках; вторая — порождение, и именно здесь естественно применяется семейство энкодеров–декодеров из заметки о семействах моделей. Метрика для обеих одна и та же и благоволит первой.

Обозначения. Документ dd, эталонное резюме rr, резюме системы ss; nn-граммы текста считаются с кратностью.

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

Вход: документ (новостная статья, диалог, научная статья). Выход: резюме, длина которого задаётся соглашением набора данных. В этой заметке встречаются два набора данных:

Набор данныхВходЭталонРазмер обучающей части
XSum (Narayan, Cohen and Lapata, 2018)статья BBCеё вводное резюме в одно предложение, написанное журналистом204 045
SAMSum (Gliwa et al., 2019)короткий диалог в чатерезюме в одно–два предложения от третьего лица14 732

Оба эталона абстрактивны: они перефразируют, а предложения XSum намеренно нет в статье. Этот выбор важен для того, что может измерить метрика.

ROUGE#

ROUGE (Lin, 2004) считает пересечение nn-грамм между резюме системы и эталоном. Исходный вариант ориентирован на полноту («какая часть эталона покрыта»), обычно же приводят форму F1F_1:

ROUGE-nrecall=∣n-граммы(s)∩n-граммы(r)∣∣n-граммы(r)∣,ROUGE-nprec=∣n-граммы(s)∩n-граммы(r)∣∣n-граммы(s)∣,\mathrm{ROUGE\text{-}}n_{\text{recall}} = \frac{|\text{$n$-граммы}(s) \cap \text{$n$-граммы}(r)|}{|\text{$n$-граммы}(r)|}, \qquad \mathrm{ROUGE\text{-}}n_{\text{prec}} = \frac{|\text{$n$-граммы}(s) \cap \text{$n$-граммы}(r)|}{|\text{$n$-граммы}(s)|},

а F1F_1 — их среднее гармоническое. 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 F1=66.7F_1 = 66.7. Пересечение биграмм: только the cat (эталонное the mat превратилось в a mat), 1 из 5, ROUGE-2 F1=20.0F_1 = 20.0. Резюме, скопировавшее предложение, получило бы 100 по обеим. Резюме a feline rested on the rug — верное и другими словами — получает 33.3 и 20.0: половину ROUGE-1 почти копии и такой же ROUGE-2, целиком за счёт on the:

Рисунок

Что считает ROUGE

Совпадения униграмм и биграмм с эталономэталон: the cat sat on the mat. почти копия: the cat lay on a mat, ROUGE-1 66.7, ROUGE-2 20.0. верный пересказ: a feline rested on the rug, ROUGE-1 33.3, ROUGE-2 20.0.эталонthecatsatonthematпочти копия66.7 / 20.0thecatlayonamatверный пересказ33.3 / 20.0afelinerestedontherugROUGE-1 / ROUGE-2Совпадения униграмм и биграмм с эталономэталон: the cat sat on the mat. почти копия: the cat lay on a mat, ROUGE-1 66.7, ROUGE-2 20.0. верный пересказ: a feline rested on the rug, ROUGE-1 33.3, ROUGE-2 20.0.эталонthecatsatonthematпочти копия66.7 / 20.0thecatlayonamatверный пересказ33.3 / 20.0afelinerestedontherugROUGE-1 / ROUGE-2
Два кандидата против одного эталона. Зелёные клетки — униграммы, совпавшие с эталоном (каждое слово эталона засчитывается не больше раз, чем встречается); зелёная черта под парой слов — совпавшая биграмма. Почти копия с одной заменой слова получает 66.7 по ROUGE-1. Верный пересказ другими словами получает 33.3 — и только за счёт on the, а по ROUGE-2 столько же, сколько почти копия, 20.0: единственная совпавшая биграмма у каждого своя. ROUGE измеряет пересечение слов с эталоном, а не смысл.

Это свойство и нужно держать в голове: ROUGE измеряет лексическое пересечение с одним эталоном. Метрика дешёвая, воспроизводимая и на суммаризации новостей коррелирует с человеческими оценками при сравнении систем; она не замечает выдуманную деталь, которая повторяет слова статьи, и наказывает верный пересказ.

Экстрактивная суммаризация#

Базовый уровень. Для новостей — взять первые kk предложений (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. Функция потерь — кросс-энтропия на токенах цели; паддинг в целях заменяется на −100-100, чтобы игнорироваться. Порождение использует лучевой поиск или жадное декодирование, а оценка декодирует порождённые идентификаторы в текст и сравнивает их с декодированными эталонами по ROUGE.

Результаты на 1000 валидационных статьях XSum с t5-small (60 млн параметров):

МодельROUGE-1ROUGE-2ROUGE-LСредняя длина
t5-small без дообучения на XSum16.82.113.319.9 токена
t5-small после 500 шагов дообучения (батч 8, шаг 2×10−52 \times 10^{-5})не оценивалась; средняя функция потерь на обучении 3.13
Qwen2.5-0.5B-Instruct с промптом, 10 статей19.13.713.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-nn — F1F_1 пересечения nn-грамм с эталоном; 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 новыми токенами и оценивают их (последняя строка).

Дальше#

Классификация, разметка, извлечение фрагментов и суммаризация брали по одной модели и одному выходному слою. Задачи, которые важнее всего на практике сегодня, собираются из нескольких частей: поисковая модель, находящая нужный текст, порождающая модель, пишущая по нему, инструменты, которые порождающая модель может вызвать, и оценка всей цепочки. Следующий раздел курса собирает такие системы, начиная с заметки об эмбеддингах и поиске, где контекстные векторы энкодера становятся индексом.

Литература#