В предыдущих постах про рерайтер и суммаризатор мы рассказывали о том, как решали некоторые популярные генеративные задачи с помощью отдельных моделей, и какие возможности дают сервисы на их основе. Однако технологии не стоят на месте. Недавно доступ в 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.