В предыдущих постах про рерайтер и суммаризатор мы рассказывали о том, как решали некоторые популярные генеративные задачи с помощью отдельных моделей, и какие возможности дают сервисы на их основе. Однако технологии не стоят на месте. Недавно доступ в GigaChat стал открытым для всех. В этом посте мы решили исследовать его способности и рассказать вам, как GigaChat справляется с рядом задач в сравнении со «старыми» подходами, ответив на вопросы:
— Может ли модель переписать текст, сохранив его смысл?
— Насколько хорошо GigaChat суммаризирует тексты?
— Умеет ли он стилизовать текст, упрощать, или, например, заменять англицизмы?
Спойлер: оказалось, что GigaChat в формате zero-shot часто обходит классические подходы, использующиеся в наших исходных сервисах, генерируя качественные, осмысленные и грамматически корректные тексты. Так что, кажется, есть все основания полагать, что очень скоро мы все перейдём на GigaChat ;)
Как использовать GigaChat?
В предыдущих сериях наши команды выложили в открытый доступ претрейн-модель, лежащую в основе GigaChat. На её основе можно обучить различные адаптеры на ваших специализированных данных (например, LoRA) или сделать дообучение (файнтюнинг) на инструктивном сете, если у вас есть мощности и большое количество данных. Мы проанализировали возможности такой конфигурации (претрейн + LoRA) на разных генеративных задачах, а также протестировали GigaChat (чекпоинт версии v.1.17.0, то есть обученную на инструкциях SFT-версию модели) в zero-/few-shot сеттинге. Данные подходы мы сравнили с ChatGPT, а также с предложенными ранее «более классическими» решениями этих задач. Но сперва давайте поговорим про тестируемые задачи, сеты и метрики.
На каких задачах тестируем?
Парафраз текста
Одна из самых традиционных seq2seq задач — парафраз или рерайт текста, когда мы хотим переписать текст другими словами, сохранив его смысл. Для этих целей мы уже разрабатывали генеративный прототип рерайтера на основе ruT5-large, который решает задачи рерайтинга на уровне как текста целиком, так и отдельного предложения. Сеты обучения и теста мы взяли для корректного сравнения такие же, как в посте: около 7000 обучающих примеров и золотой тест — данные из различных доменов. В качестве автоматических метрик для обучения используем классические CHRF++, BLEU, Rouge-L, BERTScore, LaBSE.
Суммаризация текста
В посте про суммаризатор год назад мы рассказывали, как решали одну из самых востребованных генеративных задач с помощью разных классических моделей (ruT5, mBART, ruGPT). Тогда по разным метрикам мы выбрали модель ruT5-large и на основе неё сделали сервис с API для разработчиков. Сейчас для экспериментов с адаптером мы использовали два вида данных: 1) инструкции с разными текстовыми затравками (промптами) (≈12 тысяч примеров), 2) датасет ПРО-версии суммаризатора, описанный в предыдущих сериях (≈4 тысячи чистых примеров из разных доменов). Для корректного сравнения с предыдущими нашими прототипами в экспериментах ниже использовался аналогичный тестовый сет.
Стилевой трансфер
Перефразирование англицизмов
Замена англицизмов в текстах — актуальная задача на сегодняшний день. В данном случае речь идёт о практическом кейсе обработки текста, посвящённого специфической теме и переполненного англицизмами, которые затрудняют его понимание. Например, когда мы пытаемся объяснить далеким от IT родственникам, что «радуемся, что выбили СОТу на лидерборде и закрыли тем самым таску за три дня до конца спринта» =)
Здесь не рассматривается использование общепринятых заимствованных слов типа «компьютер»,«термометр» и т. д.
Для оценки этой задачи мы взяли новый датасет Англицизмов, который содержит 1007 + 77 (обучение + тест) примеров с современными англицизмами.
В данном случае задача — переписать текст без использования англицизмов с сохранением исходного смысла.
Замечание: безусловно, при замене англицизма мы можем потерять некоторый оттенок смысла, который ни один его синоним или синонимическая группа слов не сможет передать. Речь идёт о сохранении общего смысла предложения и отсутствии искажения фактов.
Основные метрики качества использовались те же, что и для задачи парафраза. Дополнительно мы считали success_em — долю предложений, в которых были заменены все англицизмы (если в предложении 2 англицизма, считается только полная замена обоих), — и success_elimination_perc — долю удаленных англицизмов.
Задача симплификации
Как отдельный подтип задачи переноса стиля можно также выделить упрощение/усложнение текстов. Задача симплификации — упрощение текста с сохранением смысла — широко известна и в сообществе была представлена на конференции Диалог. На проведенном в ее рамках соревновании были представлены бейзлайны и стандартные датасеты, которыми мы и воспользовались при сравнении с GigaChat, соревнуясь по метрике SARI.
Эксперименты. Что в результате получилось?
Zero-shot
На текущий момент у большинства пользователей уже появился GigaChat. Проще всего использовать его в формате zero-shot, подавая на вход промпт с заданием. Мы провели внутреннее тестирование этой модели (версия v.1.17.0) на задачах, описанных выше, в zero-shot с различными промптами. Ниже выходы генерации, а числовые метрики будут дальше в таблицах.
Примеры для замены англицизмов:
промпт «Перепиши этот текст без англицизмов»
Задачи, которые повторяются постоянно и не требуют креатива, должны выполняться чётко в соответствии с определёнными правилами.
⇒ Задачи, которые возникают постоянно и не требуют творческого подхода, должны выполняться согласно определенным правилам.
Для частного детектива смена имиджа до неузнаваемости – это порой половина успеха в расследовании.
⇒ Для частного детектива изменение внешности до неузнаваемости — это зачастую половина успеха в расследовании.
Примеры для задачи рерайтинга:
промпт «Перепиши текст»
На выставке представлены работы фотографов из Японии, Франции, Италии, ЮАР, США, Грузии и России.
⇒ На выставке можно увидеть фотографии, созданные фотографами из разных стран мира, включая Японию, Францию, Италию, Южную Африку, США, Грузию и Россию.Вероятно, число не выживших в землетрясении на Гаити составит несколько тысяч человек, а всего от стихии пострадали десятки тысяч, информирует РИА Новости. Предположительные оценки результатов разгула стихии поступили от Геологической службы США (USGS).
⇒ По предварительной оценке Геологической службы США (USGS), количество погибших в результате землетрясения на Гаити может составить несколько тысяч человек, а всего от стихии пострадали десятки тысяч людей.
Пример для упрощения текста:
промпт: «Упрости текст»14 апреля 2003 году архиепископом Новосибирским и Бердским Тихоном пострижен в монашество с наречением имени Феодор в честь праведного Феодора Томского.
⇒ 14 апреля 2003 года архиепископ Новосибирский и Бердский Тихон принял постриг в монахи с именем Феодор в честь святого Феодора Томского.
Пример суммаризации небольшого текста:
промпт «Сократи текст до одного предложения»
Так вот, запись этой песни и голос Веги были настолько чистыми, что их использовали для усовершенствования алгоритма сжатия MP3. Один из разработчиков формата MP3 брал эту песню для тестирования своего алгоритма, слушая ее снова и снова, и все лучше настраивал алгоритм для более точной передачи голоса Веги. Можно даже сказать, что в некоторой степени алгоритм MP3 специально настроен на песню «Tom»s Diner»
⇒ Запись этой песни и голос Веги использовались для улучшения алгоритма сжатия MP3.
GigaChat очень неплохо справляется с задачами, особенно перефразирования и изменения стиля. Однако было замечено, что качество сильно зависит от поданной на вход инструкции (как и у большинства генеративных моделей). Это может быть и преимуществом: GigaChat не требует дообучения и может сократить текст до любого объёма в зависимости от содержания промпта. Ещё одной проблемой таких моделей является склонность к повторению, избежать этого можно либо настройкой штрафов на инференсе, либо подбором правильного промпта. Отсюда ключевой совет пользователям: с промптом нужно плотно работать, от него существенно зависит качество решения задачи.
LoRA
Не у всех есть возможность собрать сложный инструктивный сет и, тем более, обучить на большом объёме данных модель. Но и большой необходимости в этом нет, можно взять открытый претрейн ruGPT-3.5-13B и дообучить на своих данных один или несколько легковесных адаптеров (почитать про различные варианты адаптеров и их сравнение можно, например, в статье). Мы экспериментировали с наиболее популярным адаптером LoRA в связке с библиотекой PEFT для загрузки, квантизации и обучения модели.
Под описанные задачи мы подбирали параметры обучения адаптера, ранги, и слои, определяли степень влияния на них разных объёмов данных.
Таблица ниже показывает зависимость качества решения задачи переписывания англицизмов при фиксированном наборе слоев для разных рангов разложения в LoRA (в библиотеке PEFT, параметр r в документации PEFT):
rank |
success |
success |
labse |
rouge-l |
BLEU |
bertscore |
chrf++ |
16 |
0.40 |
0.44 |
0.97 |
91.98 |
84.24 |
0.97 |
91.15 |
8 |
0.40 |
0.44 |
0.97 |
91.57 |
83.40 |
0.97 |
90.78 |
4 |
0.40 |
0.44 |
0.97 |
91.21 |
83.19 |
0.97 |
90.73 |
2 |
0.42 |
0.46 |
0.97 |
91.51 |
83.33 |
0.97 |
90.85 |
GigaChat |
0.22 |
0.23 |
0.84 |
73.93 |
68.86 |
0.90 |
76.63 |
Результаты сходятся с оценками, которые представили авторы датасета Англицизмов. Заметно, что GigaChat более склонен к переписыванию входа, тогда как обученная нами LoRA вне зависимости от используемого ранга старается сохранить содержимое текста.
В задаче симплификации мы также попробовали оценить влияние рангов:
rank |
dataset |
SARI |
bertscore |
16 |
public |
42.71 |
0.981 |
16 |
private |
42.22 |
0.979 |
4 |
public |
42.69 |
0.98 |
4 |
private |
42.17 |
0.98 |
GigaChat (zero-shot) |
public |
42.45 |
0.80 |
GigaChat (zero-shot) |
private |
42.48 |
0.80 |
Несмотря на то, что в этой задаче значительно больше обучающих данных, чем в экспериментах выше, влияние выбора ранга остаётся небольшим. При этом zero-shot на чекпоинте GigaChat показывает результаты лучше и по метрикам, и по визуальной оценке примеров.
Для рерайтинга мы в дополнение к рангу разложения оценили влияние выбора раскладываемых матриц в блоках self-attention (в PEFT можно указать в параметре target_modules, подробнее в документации):
r=8, LoRA_alpha=32, LoRA_dropout=0.1, target_modules=['c_attn', ‘c_proj’, ‘c_fc’]
r=32, LoRA_alpha=64, LoRA_dropout=0.1, target_modules=['c_attn']
chrf++ |
bleu |
rouge-l |
labse |
bertscore |
|
LoRA_1 |
36.2 |
2.4 |
24 |
83 |
78 |
LoRA_2 |
34.2 |
2.3 |
23 |
81 |
77 |
GigaChat |
40.4 |
11.3 |
29 |
84 |
78 |
Мы перепробовали множество комбинаций, лучше всего получается, когда обучающих параметров 0.20%.
Задача суммаризации самая сложная из перечисленных, количество данных при этом небольшое. Поверх претрейна мы дообучили на двух сетах данных LoRA адаптеры.
обучение на данных суммаризатора ПРО
rouge-1 |
rouge-2 |
rouge-l |
bertscore |
meteor |
labsescore |
chrf++ |
0.122499 |
0.007525 |
0.111596 |
0.679537 |
0.144014 |
0.658467 |
23.507288 |
обучение на инструктивных данных
rouge-1 |
rouge-2 |
rouge-l |
bertscore |
meteor |
labsescore |
chrf++ |
0.079839 |
0.003796 |
0.075093 |
0.652626 |
0.090881 |
0.552206 |
18.094983 |
Для данной задачи оптимальное число параметров обучения варьировалось в пределах 0,14–0,29%. По метрикам видно, что выигрывает адаптер, обученный без инструкций на чистых данных суммаризатора ПРО.
Выводы по LoRA:
— В зависимости от задачи и объёма данных нужно подбирать ранг и число обучаемых параметров. Для небольшого количества примеров и простых задач ранг не сильно влияет, однако с ростом размера обучающего датасета (>5000), ранг лучше повышать. Для сопоставимого качества на конкретной задаче с SFT рекомендуется от 10000 примеров для LoRA.
— Если сравнить результаты GigaChat + LoRA c zero-shot SFT GigaChat, то адаптеры проигрывают, но для задач с небольшой вариативностью и строгим форматом заданий это неплохой вариант с минимум затрат на обучение.
Сравнение с другими моделями
Конечно, мы не могли пройти мимо ChatGPT и не сделать сравнительные замеры для моделей от OpenAI, а также для других открытых решений по каждой из задач.
Результаты суммаризации
model |
rouge-1 |
rouge-2 |
rouge-l |
bertscore |
meteor |
labsescore |
chrf++ |
0.171 |
0.039 |
0.152 |
0.688 |
0.139 |
0.632 |
21.822 |
|
cointegrated/rut5-base-absum |
0.101 |
0.022 |
0.093 |
0.668 |
0.067 |
0.525 |
11.128 |
UrukHan/t5-russian-summarization |
0.094 |
0.011 |
0.085 |
0.611 |
0.067 |
0.467 |
11.299 |
csebuetnlp/mT5_multilingual_XLSum |
0.066 |
0.010 |
0.061 |
0.620 |
0.037 |
0.416 |
8.181 |
summarizer FREE |
0.163 |
0.030 |
0.150 |
0.694 |
0.154 |
0.650 |
24.174 |
summarizer PRO |
0.256 |
0.087 |
0.240 |
0.738 |
0.290 |
0.786 |
38.521 |
GigaChat (zero-shot) |
0.187 |
0.038 |
0.175 |
0.714 |
0.218 |
0.727 |
31.911 |
Мы автоматически оценили открытые бейзлайны и решения для русского языка.
Модели OpenAI, представленные в таблице ниже, справляются с задачей весьма неплохо. Но, как и в случае с GigaChat-ом, для хорошего результата нужно долго экспериментировать с инструкцией.
model |
rouge-1 |
rouge-2 |
rouge-l |
bertscore |
meteor |
labsescore |
chrf |
gpt_4 |
0.208 |
0.053 |
0.195 |
0.721 |
0.214 |
0.752 |
33.023 |
textdavinci003 |
0.204 |
0.050 |
0.193 |
0.721 |
0.215 |
0.748 |
32.913 |
gpt3turbo |
0.215 |
0.055 |
0.202 |
0.725 |
0.218 |
0.753 |
33.213 |
Результаты рерайтинга
модель/ |
chrf++ |
bleu |
rouge-l |
bertscore |
labse |
gpt_4 |
49.6 |
16.0 |
0.397 |
0.814 |
0.898 |
textdavinci003 |
49.9 |
15.2 |
0.385 |
0.815 |
0.897 |
gpt3turbo |
51.2 |
16.8 |
0.399 |
0.82 |
0.90 |
человек |
53.6 |
20.9 |
0.44 |
0.83 |
0.91 |
рерайтер про |
72.5 |
53.4 |
0.74 |
0.91 |
0.94 |
GigaChat |
40.4 |
11.3 |
0.29 |
0.84 |
0.78 |
Можно заметить по n-граммным метрикам, что ChatGPT генерирует примеры намного разнообразнее, чем базовое решение, при этом сохраняя смысл на высоком уровне, что очень близко к человеческим оценкам. По оценкам GigaChat заметно, что примеры ещё более разнообразны, часто он дописывает что-то ещё, смысл при этом очень близок к оригиналу.
Результаты англицизмов
Из результатов видно, что несмотря на чувствительность к промптам, ChatGPT и GPT-4 пока ещё лучше справляются с задачей переписывания англицизмов, однако это часто происходит за счет большего изменения предложения, о чём свидетельствуют более низкие значения нечетких метрик.
Результаты симплификации
Мы сравнялись с результатами моделей OpenAI, решений участников соревнования RuSimpleSentEval, классических подходов на основе дообучения модели ruT5-large и управляемой генерации текста с помощью алгоритма ParaGedi, представленными на конференции Диалог в этом году.
Модель |
SARI (public) |
SARI (private) |
Golden Test |
66,106 |
66,106 |
FT ruT5-large |
41,819 |
41,643 |
#1 RusimpleSentEval |
40,501 |
39,68 |
GigaChat (zero-shot) |
42,14 |
42,14 |
gpt3turbo |
42,38 |
43,34 |
gpt4 |
43,19 |
43,36 |
В случае задачи симплификации GigaChat хорошо работает в zero-shot, и сгенерированные им предложения по большей части действительно являются корректными упрощенными парафразами исходного предложения. Значение целевой метрики SARI превосходит значения top-3 результатов RuSimpleSentEval и результаты на основе рерайтера и GeDi.
В заключении
Мы протестировали GigaChat на разных генеративных задачах, и во всех экспериментах можно выделить общий тренд: GigaChat — это универсальный инструмент, который позволяет единообразно решать множество разных генеративных задач. Он работает на уровне, сравнимом с целевыми моделями, обученными решать одну проблему, а на простых задачах даже превосходит их. Решения, созданные на базе моделей предыдущего поколения становятся хорошим бейзлайном и стартовой точкой, если у вас меньше ресурсов и нет возможности использовать большие модели. Что касается LoRA, этот подход нужно использовать с умом, аккуратно подбирая гиперпараметры в зависимости от объёма и характеристик обучающих данных.
Мы активно движемся к уровню ChatGPT и надеемся в следующих версиях модели GigaChat порадовать вас ещё более высоким качеством. Кстати, GigaChat с сегодняшнего дня также доступен всем желающим прямо в Telegram-боте — достаточно просто открыть, нажать «Начать» и вступить в диалог. Заходите попробовать :-)
Ссылки:
Модель претрейна ai-forever/ruGPT-3.5-13B на Hugging Face
Хабр cтатья про претрейн GigaChat
Официальный аккаунт в Телеграме GigaChat
#lms #языковые модели #NLP #рерайтинг #стайл-трансфер #суммаризатор
Команда разработчиков: SberDevices, AGI NLP
@mashkka_t, @Colindonolwe, @arorlov, @DanAsOne, @averkij, и co.
Комментарии (4)
vagon333
15.09.2023 11:09ChatGPT более эффективен с англоязычными текстами.
Было-бы правильнее сравнивать ваш GigaChat используя русскоязычный и англоязычный текст.
niccolo2019
Алёна, я бы посоветовал переписать статью на нормальном русском языке, раз уж о нём речь, вместо кривого, с кучей заимствований, с которыми вы боретесь, «типа-русского» языка итишников.
Рерайтинг - в советской школе на уроках русского языка это называлось изложением.
Суммаризатор - аннотатор; суммаризирование — аннотирование, резюмирование
Симплификация — упрощение, упрощённое изложение, лаконичное изложение
бейзлайн ??? (обычно говорят и пишут через «с»). Да и тут это заимствование совсем не оправдано.
претрейн — подготовка
Было бы интересно посмотреть на то, как ваша система исправит вашу статью от англицизмов и заимствований.
Во-вторых, я конечно понимаю смысл слова «генеративный» но изложение другого материала частично другими словами не является созданием.... Это скорее инструмент плагиаторов и прочих бумагомарателей для обеспечения соответствия требованиям к уникальности текста.....
В-третьих, меряние достоинствами для кого-то здорово, для кого-то глупо, но хотелось бы увидеть примеры решения с вашей системой реальных задач? Помните цитату, приписываемую Фейнману «Если вы ... не можете ... объяснить ... ребёнку, чем вы занимаетесь, — вы шарлатан.
Без реальных практических задач, кроме «облагораживания» плагиата, ваша статья напоминает типичную шарлатанскую шумиху вокруг ИИ.
В-четвёртых, пример с архиепископом не совсем удачный. Система исказила смысл в принципе несложного предложения (архиепископом пострижен кто-то и архиепископ принял постриг), что поднимает массу вопросов к реальной зрелости технологии ...
alenusch Автор
Спасибо за Ваши комментарии
Поясню, в научном сообществе приняты термины и постановки задач определенным образом. Для того, чтобы корректно сравниться с известными решениями по ряду прикладных задач есть датасеты и рейтинги систем, описанные в научных статьях (ссылки на которые мы прикладываем в тексте). Там же описаны базовые решения, с которыми мы сравниваемся и соотвествующие автоматические метрики. Для просты изложения, в данной статье мы старались соблюдать названия, принятые в международной литературе.
Попробуйте использовать GigaChat для замены англицизмов или задачи парафраза той части хабр-статьи, которая вас смущает. Это действительно хороший практический пример!
niccolo2019
Алёна
1. Когда говорят приняты, подразумевают некий документ, которым они приняты, например терминологический стандарт. Пока уместнее говорить о терминологии, используемой в вашей компании или русскоязычном сообществе разработчиков ИИ.
2. Хабр - скорее околонаучное сообщество, примерно как в советское время подписчики журнала «Наука и жизнь». Почитайте его на досуге хотя бы для общего развития.
3.Для сравнения с другими системами есть наборы тестов. Это понятно... Но речь идёт о датасетах для тренировки/обучения модели... Получить из одних наборов данных с примерно одинаковыми подходами и квалификацией кардинально разные результаты - надо постараться. Скорее всего борьба будет за проценты и доли процентов, которые пользователи не заметят (пример - проценты улучшения распознавания в новых версиях Файнридер уже 15 лет, которые всё никак не достигнут 100%). Чего вы добиваетесь? Не сизифов ли труд делаете?
4. По поводу принятого для темы, которую стали раскручивать меньше года назад, я бы рекомендовал использовать другое слово - используемые.
5. Скажите, зачем пользователям пробовать ваши решения для ваших задач? Пользователям нужно решать свои задачи. Вот поэтому я и спрашиваю, а какая работа проделана с потенциальными пользователями в плане определения их задач, допустимой цены и условий их решения, и какие шаги предпринимаются для удовлетворения потенциальных пользователей, а не соревнований непонятно с кем в циферках?
Как я вижу, подобные системы могли бы быть очень эффективны в автоматическом исправлении орфографических ошибок / ошибок распознавания в тексте за счёт огромной базы, покрывающей все возможные варианты. Если ошибка в слове может быть исправлена 3 способами, то расширение охвата проверки на словосочетание позволит исключить большинство неверных альтернативных вариантов...
Но опять-таки, учитывая закат ОРФО-Информатика и невысокий потенциальный интерес к такой функции онлайн (кто захочет проверять свои документы, отправляя их непонятно кому) я не вижу здесь даже таких финансовых перспектив, которые бы позволили окупить разработку на текущем уровне (даже купить пару H100)
Второе, что вижу, как уже написал - изложение/рерайтинг для антиплагиата и написания текста/перевода на русский неносителями.... Тоже ниша так себе....
Напишите - для решения каких пользовательских (причём желательно без наличия RTX4090) задач вы разрабатываете продукт и какие понятные цели (не циферки с процентиками) вы планируете достичь?
PS. Мне тут минусцов накидали, поэтому могу писать только 1 пост в сутки. Поэтому если дискуссия продолжится, она не будет особо активной.