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

success
elimination
_perc

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
(zero-shot)

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, подробнее в документации):

  1. r=8, LoRA_alpha=32, LoRA_dropout=0.1, target_modules=['c_attn', ‘c_proj’, ‘c_fc’]

  2. 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
(zero-shot)

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++

IlyaGusev/mbart_ru_sum_gazeta

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
(zero-shot)

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-боте — достаточно просто открыть, нажать «Начать» и вступить в диалог. Заходите попробовать :-)

Ссылки:

#lms #языковые модели #NLP #рерайтинг #стайл-трансфер #суммаризатор

Команда разработчиков: SberDevices, AGI NLP
@mashkka_t, @Colindonolwe, @arorlov, @DanAsOne, @averkij, и co.

Комментарии (4)


  1. niccolo2019
    15.09.2023 11:09
    -1

    Алёна, я бы посоветовал переписать статью на нормальном русском языке, раз уж о нём речь, вместо кривого, с кучей заимствований, с которыми вы боретесь, «типа-русского» языка итишников.
    Рерайтинг - в советской школе на уроках русского языка это называлось изложением.
    Суммаризатор - аннотатор; суммаризирование — аннотирование, резюмирование
    Симплификация — упрощение, упрощённое изложение, лаконичное изложение
    бейзлайн ??? (обычно говорят и пишут через «с»). Да и тут это заимствование совсем не оправдано.
    претрейн — подготовка
    Было бы интересно посмотреть на то, как ваша система исправит вашу статью от англицизмов и заимствований.

    Во-вторых, я конечно понимаю смысл слова «генеративный» но изложение другого материала частично другими словами не является созданием.... Это скорее инструмент плагиаторов и прочих бумагомарателей для обеспечения соответствия требованиям к уникальности текста.....

    В-третьих, меряние достоинствами для кого-то здорово, для кого-то глупо, но хотелось бы увидеть примеры решения с вашей системой реальных задач? Помните цитату, приписываемую Фейнману «Если вы ... не можете ... объяснить ... ребёнку, чем вы занимаетесь, — вы шарлатан.
    Без реальных практических задач, кроме «облагораживания» плагиата, ваша статья напоминает типичную шарлатанскую шумиху вокруг ИИ.

    В-четвёртых, пример с архиепископом не совсем удачный. Система исказила смысл в принципе несложного предложения (архиепископом пострижен кто-то и архиепископ принял постриг), что поднимает массу вопросов к реальной зрелости технологии ...



    1. alenusch Автор
      15.09.2023 11:09

      Спасибо за Ваши комментарии

      Поясню, в научном сообществе приняты термины и постановки задач определенным образом. Для того, чтобы корректно сравниться с известными решениями по ряду прикладных задач есть датасеты и рейтинги систем, описанные в научных статьях (ссылки на которые мы прикладываем в тексте). Там же описаны базовые решения, с которыми мы сравниваемся и соотвествующие автоматические метрики. Для просты изложения, в данной статье мы старались соблюдать названия, принятые в международной литературе.

      Попробуйте использовать GigaChat для замены англицизмов или задачи парафраза той части хабр-статьи, которая вас смущает. Это действительно хороший практический пример!


      1. niccolo2019
        15.09.2023 11:09

        Алёна
        1. Когда говорят приняты, подразумевают некий документ, которым они приняты, например терминологический стандарт. Пока уместнее говорить о терминологии, используемой в вашей компании или русскоязычном сообществе разработчиков ИИ.
        2. Хабр - скорее околонаучное сообщество, примерно как в советское время подписчики журнала «Наука и жизнь». Почитайте его на досуге хотя бы для общего развития.
        3.Для сравнения с другими системами есть наборы тестов. Это понятно... Но речь идёт о датасетах для тренировки/обучения модели... Получить из одних наборов данных с примерно одинаковыми подходами и квалификацией кардинально разные результаты - надо постараться. Скорее всего борьба будет за проценты и доли процентов, которые пользователи не заметят (пример - проценты улучшения распознавания в новых версиях Файнридер уже 15 лет, которые всё никак не достигнут 100%). Чего вы добиваетесь? Не сизифов ли труд делаете?
        4. По поводу принятого для темы, которую стали раскручивать меньше года назад, я бы рекомендовал использовать другое слово - используемые.
        5. Скажите, зачем пользователям пробовать ваши решения для ваших задач? Пользователям нужно решать свои задачи. Вот поэтому я и спрашиваю, а какая работа проделана с потенциальными пользователями в плане определения их задач, допустимой цены и условий их решения, и какие шаги предпринимаются для удовлетворения потенциальных пользователей, а не соревнований непонятно с кем в циферках?

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

        Но опять-таки, учитывая закат ОРФО-Информатика и невысокий потенциальный интерес к такой функции онлайн (кто захочет проверять свои документы, отправляя их непонятно кому) я не вижу здесь даже таких финансовых перспектив, которые бы позволили окупить разработку на текущем уровне (даже купить пару H100)
        Второе, что вижу, как уже написал - изложение/рерайтинг для антиплагиата и написания текста/перевода на русский неносителями.... Тоже ниша так себе....

        Напишите - для решения каких пользовательских (причём желательно без наличия RTX4090) задач вы разрабатываете продукт и какие понятные цели (не циферки с процентиками) вы планируете достичь?

        PS. Мне тут минусцов накидали, поэтому могу писать только 1 пост в сутки. Поэтому если дискуссия продолжится, она не будет особо активной.


  1. vagon333
    15.09.2023 11:09

    ChatGPT более эффективен с англоязычными текстами.
    Было-бы правильнее сравнивать ваш GigaChat используя русскоязычный и англоязычный текст.