

Платная версия общедоменного рерайтера
Возможности
Рерайтер PRO переписывает текст другими словами, сохраняя смысл исходного текста. В отличие от более простых моделей перефразирования, Рерайтер PRO решает эту задачу на уровне текста целиком, а не отдельными предложениями, и может работать с текстами произвольной длины.
Рерайтер PRO обучен на основе генеративной модели ruT5-large и представляет собой не одну модель, а целый комплекс систем, позволяющий значительно повысить качество генерации и привносящий ряд новых возможностей. Для обучения использовались как готовые открытые наборы данных (отфильтрованные TaPaCo, ParaPhraser Plus), так и данные, специально собранные semi-supervised методами, из разговорных текстов, отзывов, художественной литературы, научных публикаций и т.д.
Преимущества новой версии
Качество генерации
Генеративные модели в общем случае склонны к искажению фактов, дегенерации и галлюцинациям. В отличии от предыдущих версий, Рерайтер PRO содержит многоуровневую логику для улучшения качества итогового текста:
- Генерация кандидатов. На первом этапе модель генерирует не один, а сразу несколько возможных вариантов перефразирования. Мы значительно расширили наборы обучающих данных, включив в них тексты из таких доменов как: научный, юридический, технический, публицистический, рекламный, художественный, разговорный. Таким образом, Рерайтер PRO теперь знаком с особенностями стилистики и со специальной терминологией во всех этих областях.
- Проверка фактов. После чего дополнительная модель проверки фактов позволяет обнаружить варианты, в которых есть логические несоответствия, и не предлагать их пользователю.
- Ранжирование кандидатов. На третьем этапе отфильтрованный список кандидатов с помощью еще одной модели сортируется по качеству текста. Пользователю предлагается вариант, признанный по итогу лучшим. Сортировку по качеству можно производить одним из двух методов на выбор: BertScore (по умолчанию) или DepthScore.
Новые возможности
- Style-transfer. Новая, дискриминативная, модель GeDi, включенная в Рерайтер PRO позволяет при перефразировании дополнительно изменять тон текста в сторону более позитивного или более негативного. Степень этих изменений можно регулировать с помощью отдельного параметра.
- Batch-обработка. Позволяет ускорить преобразование большого количества текстов за счет подачи их в API пакетами по несколько штук и параллельной обработки на GPU.
- Уровень перефразирования. Позволяет выбрать, трансформировать текст целиком или отдельными предложениями. В первом случае модель получает больше свободы в обращении с текстом, и может выдавать более разнообразные варианты. Во втором остается ближе к исходному тексту.
- Расширенное управление генерацией. В версии Рерайтер PRO предоставлен прямой доступ к генеративной модели и к большому количеству параметров генерации, сходных с теми, которые доступны в интерфейсе HuggingFace.
Статьи и выступления
- Статья от разработчиков о практическом применении генеративных моделей и создании "Рерайтера", Habr
- Статья про тестирование моделей от контент-менеджера "Меня скоро заменит AI. Почему это офигенно?", Habr
- Видео “Что нового в AI Services для текстовой редактуры?”, Salute AI Day 2022
Примеры работы
Обычный рерайт
На входе | Операция | На выходе |
---|---|---|
Глава МИД Австралии не видит в России и Китае военной угрозы для страны. | REWRITE (уровень предложения) | Глава МИД Австралии заявил, что Россия и Китай не представляют собой военной угрозы для страны. |
В российском «Университете 20.35» тестируют систему поиска наилучшего места работы. Так пишут «Известия». Алгоритм предложит интересные и высокооплачиваемые вакансии, отсортировав данные рынка труда и наложив их на личные особенности человека. Что учитывает сервис? Привычки и ценности тестируемого, его нормы морали и этики. А также «универсальные компетенции», пример которых привёл Андрей Комиссаров, разработчик. | REWRITE (уровень текста) | В российском Университете 20.35» тестируют систему поиска лучших мест работы. Это пишет газета Известия. Алгоритм предложит интересные и высокооплачиваемые вакансии, отсортировав данные рынка труда и наложив их на личные качества человека. Что учитывает сервис? Привычки и ценности тестируемого, его нормы морали и этики, а также универсальные компетенции, пример которых приводит Андрей Комиссаров, разработчик. |
Рерайт с переносом стиля
На входе | Операция | На выходе |
---|---|---|
Вещь нормальная, швы крепкие, бусины не отрываются, ткань одна понравилась, другая показалась менее надежной, зато размер точь-в-точь как указан в таблице. | POSITIVE | Отличная вещь, швы крепкие, бусинки не отрываются, ткань одна понравилась, а другая — менее крепкая, зато размер точно как указано в таблице. |
Произошла не очень хорошая ситуация: мои документы потерялись, и мне пришлось заново подавать их в университет. | NEGATIVE | Произошла ужаснейшая история, когда мои документы не были приняты в университет. |
Метрики
Смысл и оригинальность полученного текста
Качество работы моделей проверяют и сравнивают с помощью автоматических метрик. Такая проверка выполняется на тестовом сете: отдельно собранном наборе данных, репрезентативном для разных доменов и длин текстов, который модели не видели в процессе обучения.
Модель метрика | bleu | rouge-1 | rouge-2 | rouge-l | bertscore | labse_score | meteor | chrf |
---|---|---|---|---|---|---|---|---|
Рерайтер PRO с ранжировщиком DepthScore | 15.04 | 0.393 | 0.17 | 0.336 | 0.805 | 0.862 | 0.39 | 46 |
Рерайтер PRO с ранжировщиком BertScore | 14.6 | 0.39 | 0.14 | 0.335 | 0.804 | 0.86 | 0.38 | 45.45 |
Рерайтер PRO без проверки фактов и ранжирования | 12.9 | 0.354 | 0.15 | 0.312 | 0.78 | 0.83 | 0.34 | 42.7 |
Рерайтер Free | 11.3 | 0.33 | 0.13 | 0.282 | 0.777 | 0.817 | 0.326 | 41.09 |
Скорость работы
Усредненная скорость обработки 1000 символов при разных конфигурациях, в секундах. Без применения пакетной обработки (batching).
Задача / ранжировщик | BertScore | DepthScore |
---|---|---|
Текст целиком | 2.3 сек | 20 сек |
По предложениям | 5 сек | - |
Максимальный размер запроса
Суммарное ограничение длины одного запроса в символах. При использовании пакетной обработки (batching), оно делится на все строки в запросе.
Задача ранжировщик | BertScore | DepthScore |
---|---|---|
Обычный рерайт | 30.000 симв. | 10.000 симв. |
Рерайт с переносом стиля | ~300 симв. | - |
Инструкция по использованию
Endpoint для обычного рерайта — predict
Входные параметры:
`text` - оригинальный текст для переписывания (обязательный параметр)
`gen_mode` - выбор режима генерации (по умолчанию `best`)
`best` - обрабатывать текст целиком. использовать проверку
фактов, ранжирование, а также параметры генерации, подобранные
разработчиками. для изменения доступны только параметры
сэмплирования.
`sentences` - обрабатывать текст отдельными предложениями.
использовать проверку фактов, ранжирование и параметры генерации,
подобранные разработчиками. из параметров генерации доступны для
изменения только параметры сэмплирования. выбор ранжировщика
не доступен, применяется BertScore.
`user` - отключить проверку фактов и ранжирование. можно
произвольно установить любые параметры генерации.
`scorer` - выбор ранжировщика (только для режима `best`)
`bertscore` - BertScore (более быстрый, по умолчанию)
`depth` - DepthScore
дополнительные параметры генерации
(стандартные для huggingface):
`num_return_sequences` - количество генераций, из которых
выбирается лучший рерайт (по умолчанию 5)
`do_sample` - использование сэмплинга (по умолчанию sampling)
`temperature` - температура сэмплирования (по умолчанию 0.95)
`top_k` - top_k для сэмплирования (по умолчанию 50)
`top_p` - top_p для сэмплирования (по умолчанию 0.90)
`num_beams` - количество лучей для beam search (по умолчанию 5)
`no_repeat_ngram_size` - размер ngrams, которые не должны
встречаться больше одного раза при генерации (по умолчанию 2)
`repetition_penalty` - штраф за повторные реплики (по умолчанию 1.5)
Пример запроса:
{
"instances": [{"text": text, "gen_mode": "best"}]
}
Пример ответа:
{'comment': ['Фильтры пройдены.'], 'origin': ['привет, скажи гороскоп для девы'], 'prediction_best': ['Привет, скажи гороскоп для девы.'], 'predictions_all': [['Привет, скажи гороскоп для девушки.', 'Привет, скажи гороскоп для девы.', 'Привет, привет, скажи гороскоп для девы.']]}
Для объединения нескольких запросов в пакет (batching):
{"instances":
[{"text": "....", "top_p": 0.7}, {"text": ... }, {"text": ...}]
}
`text` - оригинальный текст для переписывания, должен содержаться
в каждом элементе запроса.
Параметры генерации можно указать только в первом элементе запроса,
они будут также применены и ко всем последующим элементам.
Формат ответа при пакетном запросе:
`origin` - List[str] оригинальные тексты
`predictions_all` - List[List[str]] массив всех перефразированных текстов
`prediction_best` - List[str] лучшие варианты генерации
Endpoint **для рерайта с переносом стиля — explain
Входные параметры:
{"instances":
[{"text": "....", "gedi_logit_coef": 10, "style": "negative"}]
}
`text` - оригинальный текст для переписывания
`gedi_logit_coef` - сила изменения стиля: от 0 (без изменений)
до 20 (сильное изменение). По умолчанию 10.
`style` - Выбор стиля: `positive`, `negative`. По умолчанию `positive`.
`top_p_gedi` - top_p параметр для стилевого трансфера. По умолчанию 0.8
`top_k_gedi` - top_k параметр для стилевого трансфера. По умолчанию 50
`temperature_gedi` - температура для стилевого трансфера. По умолчанию 0.95
В ответ возвращается словарь со следующими полями:
`origin` - оригинальный текст
`predictions_all` - все удачные перефразированные варианты
`prediction_best` – лучший сгенерированный вариант в режиме `best`
Обратите внимание:
💡 Рерайт с изменением стиля работает на уровне предложений, не текстов. Проверка фактов не используется. Доступен только ранжировщик BertScore. Батчинг не предусмотрен, обработка только по одному тексту.
Условия лицензирования
Базовая модель ruT5-large, на основе которой сделан сервис, и её исходный код поставляются по открытой лицензии Apache 2.0. Рерайтер PRO является проприетарной разработкой, для его использования необходимо заключить договор с ML Space / SberCloud.
Контактная информация
По вопросам, связанным с работой и применением модели можно обращаться к менеджеру продукта: Павел Лебедев PIgLebedev@sberbank.ru