Тестируем LLM для русского языка: Какие модели справятся с вашими задачами?

7ac189362de9a1d71adefbbaa5494675.png

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

Готовые LLM для русского языка часто показывают низкую точность и ограниченные возможности. Проблемы конфиденциальности также вынуждают компании выбирать локальные модели.

Наша компания давно занимается искусственным интеллектом и стала часто получать подобные запросы от клиентов — создание ИИ-решения с локальной обработкой данных. Мы задались вопросом, какие LLM хороши для таких решений, что мы можем предложить заказчику? Всё это вылилось в большой рисеч разных языковых моделей.

В статье рассмотрим, какие LLM подходят для задач на русском языке, протестируем их по разным параметрам и выявим лидеров. Мы оценили генерацию текста, ответы на вопросы, исправление ошибок и другие функции.

Содержание (лонгрид)

Задачи исследования

Цель данного исследования — оценить несколько больших языковых моделей (LLM), которые могут быть использованы для проектов, связанных с русским языком, и выбрать оптимальное решение для локальной работы с документами и текстами.

Мы выбрали следующие аспекты работы с текстом и данными, для выявления наилучшей LLM:

052b7b5a50f5d5c52e152c845c19408e.png

  1. Генерация текста:

    • Генерация связного текста

    • Ответы на известные вопросы

    • Ответы на вопросы в формате диалога

    • Исправление грамматических ошибок

  2. Структуризация текста:

    • Краткий пересказ текста

    • Ответы на вопросы по тексту

    • Извлечение структурированных данных

  3. Написание SQL-запросов

Для применения LLM на практике модель должна не только хорошо генерировать текст, но и справляться с различными типами запросов: от корректировки грамматики до создания сложных SQL-запросов. Навыки составления SQL-запросов крайне важна, потому что помогает LLM доставать нужную информацию из БД, ведь не всегда у заказчика в качестве входных данных используются документы.

Поэтому каждую модель мы тестировали по этим задачам и оценивали, насколько она готова к применению в реальных бизнес-задачах.

Какие модели мы тестировали?

cc620e31436db8c457234f7543b42aa4.png

В рамках исследования были протестированы 6 самых перспективных на наш взгляд больших языковых моделей (LLM), доступных для работы с русским языком. Каждая из которых имеет свои уникальные особенности.

OpenChat 3.5 — мультиязычная модель с открытым исходным кодом, обученная на множестве данных с различных языков, включая русский. Модель предназначена для обработки запросов, генерации текста и выполнения других задач, связанных с естественным языком.

YandexGPT — разработка компании Яндекс, оптимизированная для работы с русским языком. Модель доступна через платное API, что ограничивает её использование в локальных системах.

GigaChat — модель, разработанная компанией Сбербанк для мультиязычной поддержки, в том числе и русского языка. Она ориентирована на обработку текстов и генерацию контента.

Mistral — модель от одноимённого французского стартапа. На конец сентября 2023 года была лучшей LLM с размером 7 млрд параметров. Она используется для различных целей, от написания кода до генерации контента на множестве языков, включая русский.

Saiga-Mistral-7b-Lora — это версия модели Mistral, дообученная на русском датасете с использованием технологии LoRA (Low-Rank Adaptation). Модель специально адаптирована для задач на русском языке.

Saiga-Llama3–8b — версия модели Llama3, дообученная на русском датасете. Это мощная модель, способная выполнять задачи различной сложности, связанные с текстом.

Методология исследования

Все протестированные модели оценивались в одинаковых условиях по широкому спектру задач, чтобы объективно оценить их способности.

Сценарии

d115570447ee2de811a6ee0008703590.png

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

Генерация текста:  мы предложили моделям создать текст на заданную тему, например, описание дня туриста на Марсе или формальный приказ для юридической компании. Оценивались связность текста, грамматика и отсутствие вставок на английском языке.

Ответы на вопросы:  моделям задавались простые вопросы (например, «Кто написал 'Ромео и Джульетту'?» или «Что такое теория относительности?»). Оценивалась точность и краткость ответов.

Ответы в диалоге:  здесь проверялась способность моделей удерживать контекст разговора, когда несколько связанных вопросов задавались последовательно. Например: «Сколько весит Луна?» — «А Марс?» — «А в фунтах?» — «Какое расстояние между ними?».

Исправление ошибок:  моделям предлагались тексты с ошибками, которые они должны были исправить, сохраняя оригинальный смысл и структуру текста.

Краткий пересказ текста:  Мы предложили моделям пересказать длинные тексты (как художественные, так и юридические) в сжатой форме, сохраняя их основную суть.

Ответы на вопросы по тексту:  мы предложили моделям ответить на три фактологических вопроса по различным текстам — художественному и юридическому документу.

Извлечение данных:  моделям был представлен юридический текст, из которого они должны были извлечь такие данные, как имена, даты, суммы, типы документов, и представить их в формате JSON.

Написание SQL-запросов:  модели должны были сгенерировать SQL-запросы на основе описания базы данных и условий запроса. Оценивались правильность синтаксиса и логика запроса.

Критерии оценки

c587c0b22940a01ae9585701d8d4926f.png

Для каждой задачи были разработаны следующие критерии оценки:

  • Точность ответов — насколько правильно модель выполнила задачу.

  • Связность текста — насколько логичен и структурирован был текст, созданный моделью.

  • Ясность изложения — насколько ответ понятен человеку.

  • Грамматическая корректность — проверка на наличие грамматических и стилистических ошибок.

  • Креативность — насколько модель проявляет оригинальность в своих ответах.

  • Умение суммаризировать — насколько модель хорошо умеет составлять резюме на основе текста.

  • Общение на русском языке — насколько модели удается понимать контекст на русском языке.

Каждый критерий оценивался от 0 до 5, где 5 — наивысший балл, который может получить модель, если отлично выполнит поставленную перед ней задачу.

Также мы оценивали в целом выполнение задачи, насколько хорошо модели справились с поставленными задачами: 0 — модель вообще не справилась с задачей, 1 — справилась, но со значительными помарками, 2 — справилась почти идеально.

Среда тестирования

Все тестирования проводились в одинаковых условиях, используя Google Collab с заданными ресурсами:

Такой подход позволил обеспечить равные условия для каждой модели и оценить их производительность на одинаковом оборудовании.

Однако, если модель не справлялась с задачей с первого раза, промт редактировался для получения более точного результата. Это позволяло проверить гибкость и адаптивность моделей к изменениям запросов.

Результаты тестирования

Поскольку каждая модель тестировалась по определенной задаче, будет логично рассмотреть все 6 моделей в разрезе каждой задачи.

1. Генерация связного текста

Задача: модели должны были сгенерировать связный текст по заданной теме. В этой задаче хотели протестировать качество сгенерированного текста: грамматику, наличие вставок английских слов или букв, связность текста, стиль повествования и соответствие теме.

Использовалось два промта:

462acc020164d8ffbee2dd22c28ed551.png

Второй промт предлагал составить юридический документ:

c2865a0f9e71d7a75c79ed5ddfd627b6.png

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

Saiga-Mistral-7b-Lora:  Также показала отличные результаты, генерируя текст высокого качества с хорошей структурой и минимальными ошибками. Текст был креативным и полностью соответствовал заданной теме (2 балла за выполнение).

OpenChat3.5:  Результаты были удовлетворительными, однако встречались вставки английских слов и недочеты в структуре текста. Текст мог быть связанным, но не всегда соответствовал стилю или контексту (1 балл за выполнение).

GigaChat:  Модель показала хорошие результаты. Текст был менее структурированным и встречались ошибки в согласовании предложений, но все равно модель заслужила высокий балл (2 балла за выполнение).

Mistral:  Генерация текста была неплохой, но в некоторых случаях модель допускала синтаксические ошибки и не всегда удачно выбирала стиль текста (2 балла за выполнение).

Saiga-Llama3–8b:  Текст был грамматически правильным, но менее связным по сравнению с лидерами. Иногда наблюдались небольшие несоответствия в стиле (1 балл за выполнение).

Лучшими моделями для генерации связного текста оказались YandexGPT и Saiga-Mistral-7b-Lora, обе модели обеспечили высокий уровень грамматической точности и стилевого соответствия.

2. Ответы на общеизвестные вопросы

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

d5f3a3267b5adf07ca1e6d96e458ecf8.png

YandexGPT:  Показала превосходные результаты. Модель отвечала кратко, точно и без ошибок. Поддерживался правильный стиль ответа без лишних отклонений (2 балла за выполнение).

Saiga-Mistral-7b-Lora:  Хорошо справилась с задачей, давая точные ответы, однако иногда ответы были немного длиннее, чем требовалось (2 балла за выполнение).

OpenChat3.5:  Модель часто повторяла вопрос в ответе, что делало ответы менее эффективными. Были недочеты в краткости и точности (1 балл за выполнение).

GigaChat:  Ответы были неплохими, но иногда модель отклонялась от темы или давала излишне подробные ответы (2 балла за выполнение).

Mistral:  Ответы были точными, но не всегда краткими. Модель иногда предоставляла дополнительные данные, что не требовалось (1 балл за выполнение).

Saiga-Llama3–8b:  В целом справилась с задачей, дала хорошие ответы (2 балла за выполнение).

Лучшими моделями для точных и кратких ответов на вопросы стали YandexGPT и Saiga-Llama3–8b.

3. Ответы на вопросы в формате диалога

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

b577388ca5eec9ac6d46fb6d6168c78d.png

YandexGPT:  Отлично справилась с задачей. Модель удерживала контекст на протяжении всего диалога, четко и последовательно отвечала на вопросы, не теряя нить разговора (2 балла за выполнение).

Saiga-Mistral-7b-Lora:  Показала хорошие результаты, удерживая контекст и отвечая на вопросы последовательно. Лишь в редких случаях ответы могли быть немного отклонены от основной темы (1 балл за выполнение).

OpenChat3.5:  Модель плохо справлялась с диалогом, иногда теряла контекст, особенно при длинной последовательности вопросов (0 баллов за выполнение).

GigaChat:  Результаты были средними. Модель иногда теряла контекст и давала ответы, которые не соответствовали предыдущим вопросам (1 балл за выполнение).

Mistral:  Модель не хранит контекст, если задавать вопросы последовательно. Но отвечает на вопросы, заданные в одном промте (0 баллов за выполнение).

Saiga-Llama3–8b:  Модель потеряла контекст при длинных диалогах и допускала ошибки в последовательности ответов (0 баллов за выполнение).

Лучшими моделями для ведения диалога оказались YandexGPT,  GigaChat и Saiga-Mistral-7b-Lora, благодаря их способности точно поддерживать контекст.

4. Исправление грамматических ошибок

Задача: Исправить грамматические ошибки в тексте, сохраняя оригинальный смысл. Оценивали соответствие грамматическим нормам русского языка.

76300e3e4220d275cefb510f81972055.png

YandexGPT:  Модель справилась практически идеально. Ошибки были исправлены грамотно и текст стал полностью правильным, однако присутствовали англоязычные слова (1 балл за выполнение).

Saiga-Mistral-7b-Lora:  Показала высокие результаты. Модель успешно исправила ошибки и выдала грамматически правильный текст (2 балла за выполнение).

OpenChat3.5:  Модель исправила текст, но оставила множество ошибок и недочетов, из чего сделан вывод, что она не справилась (0 баллов за выполнение).

GigaChat:  Результаты были почти идеальными — все ошибки были исправлены (2 балла за выполнение).

Mistral:  Исправила часть ошибок, но не все корректно, сделан вывод, что модель не справилась (0 баллов за выполнение).

Saiga-Llama3–8b:  Справилась с задачей, но иногда оставляла ошибки в тексте (2 балла за выполнение).

GigaChat,  Saiga-Mistral-7b-Lora и Saiga-Llama3–8b показали лучшие результаты в исправлении грамматических ошибок.

5. Краткий пересказ текста

Задача: модель должна пересказать длинный текст, сохраняя его основную суть. Здесь мы оценивали связность текста и то, ухватит ли модель основную суть. Моделям предлагался отрывок из произведенич «Идиот» Ф.М. Достоевского почти на тысячу знаков.

4595dc7e7b8dc9b64c2ae5ec15813a1c.png

В качестве второго промта предлагали текст из юридического документа.

5f361b4264d6a72492538f7fbffcb6ec.png

Saiga-Mistral-7b-Lora:  Показала отличные результаты в кратком пересказе текста, сохраняя основные моменты и делая текст лаконичным (2 балла за выполнение).

Saiga-Llama3–8b:  Хорошо справлялась с задачей, сокращая текст, но иногда упуская некоторые важные детали (1 балл за выполнение).

YandexGPT:  Пересказы были точными, но иногда длились чуть больше необходимого (2 балла за выполнение).

OpenChat3.5:  Модель в целом пересказывала текст, но иногда пропускала важные моменты или делала текст менее связным и некрасивым (0 баллов за выполнение).

GigaChat:  Результаты были средними — пересказ был либо слишком коротким, либо терял ключевые элементы текста (1 балл за выполнение).

Mistral:  Пересказ был недостаточно точным и текст мог терять важные аспекты (1 балл за выполнение).

Лидерами в этой категории стали YandexGPT,  Saiga-Mistral-7b-Lora и Saiga-Llama3–8b.

6. Вопросы по тексту

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

Мы предложили моделям те же тексты, которые использовали для краткого пересказа. Вопросы по текстам выглядели следующим образом:

a0f3ee3fbdca56fe0817a46914738b04.png

YandexGPT:  Показала отличные результаты. Модель давала точные и краткие ответы на вопросы по тексту, чётко следуя контексту и сохраняя логику (2 балла за выполнение).

Saiga-Mistral-7b-Lora:  Хорошо справляется с ответами, поддерживает контекст и даёт точные ответы, но иногда склонна к избыточным деталям в ответах (2 балла за выполнение).

Saiga-Llama3–8b:  Достаточно точна в ответах на вопросы, но иногда упускает детали или дает менее чёткие ответы по сравнению с лидерами (2 балла за выполнение).

OpenChat3.5:  Модель отвечает на вопросы, но с недочетами, вроде некрасивого текста и стиля языка (1 балл за выполнение).

GigaChat:  отличные результаты (2 балла за выполнение).

Mistral:  Показала слабые результаты. Часто давала неточные или неполные ответы, особенно на более сложные вопросы по тексту (1 балл за выполнение).

Наилучшие результаты в решении этой задачи показала YandexGPT. Модель демонстрировала высокую точность и краткость ответов, уверенно удерживала контекст и справлялась как с простыми, так и с более сложными вопросами. Saiga-Mistral-7b-Lora также показала хорошие результаты, но иногда давала избыточно детализированные ответы, что могло быть излишним.

7. Извлечение структурированных данных

Задача: извлечь ключевые данные (имена, даты, суммы и т.д.) из юридического текста и представить их в формате JSON.

b1b6b72132b2326914d30b24c0dad68e.png

Saiga-Llama3–8b:  Модель продемонстрировала хорошие результаты, однако извлекла не все данные (1 балл за выполнение).

YandexGPT:  Также хорошо справилась с извлечением данных, но иногда могла допускать ошибки при сложных запросах (1 балл за выполнение).

Saiga-Mistral-7b-Lora:  Показала хорошие результаты, но в сложных случаях иногда могла пропустить важные детали (1 балл за выполнение).

OpenChat3.5:  Модель не справилась с задачей совсем (0 баллов за выполнение).

GigaChat:  Результаты были идеальными, модель всегда извлекала данные корректно (2 балла за выполнение).

Mistral:  Модель справилась хуже остальных, часто теряя данные и предоставляя их в некорректной форме (0 баллов за выполнение).

GigaChat стала лучшей моделью для извлечения структурированных данных.

76956ec231a5d17bd50a6eabc9d44ca0.png

8. Написание SQL-запросов

Задача: Генерация SQL-запросов на основе текстового описания базы данных и условий запроса.

968ee99b8fa2471e3b802ed6054f1d54.png

YandexGPT:  Продемонстрировала высокие результаты, генерируя SQL-запросы с минимальными ошибками. Модель понимала структуру базы данных и могла писать логически корректные запросы (2 балла за выполнение).

Saiga-Mistral-7b-Lora:  Также показала хорошие результаты, но иногда допускала незначительные ошибки в синтаксисе (2 балла за выполнение).

OpenChat3.5:  Модель не справлялась с задачей, даже если мы начинали общение на английском языке (0 баллов за выполнение).

GigaChat:  Модель решала задачу, результаты были хорошими (2 балла за выполнение).

Mistral:  SQL-запросы были неправильными, модель не решала задачу (0 баллов за выполнение).

Saiga-Llama3–8b:  Модель справилась с задачей (2 балла за выполнение).

YandexGPT,  GigaChat,  Saiga-Llama3–8b и Saiga-Mistral-7b-Lora лучше всего справлялись с задачей написания SQL-запросов.

8050aea112895ee3b35c5876e046322e.png

Выводы

Результаты тестирования показали, что каждая из протестированных моделей обладает своими уникальными преимуществами и недостатками. В зависимости от специфики задачи, одна модель может быть более подходящей, чем другая.

Мы протестировали 4 LLM модели, которые можно поднять локально, и 2 облачных решения (YandexGPT и GigaChat) на ряде синтетических задач, которые показывают возможности моделей с разных сторон: генерация новых текстов, либо работа с уже готовыми текстами, их анализ и систематизация.

Оценка на основе критериев

Мы свели оценки по каждому критерию и решаемой задаче в общую таблицу для наглядности. Оценка по каждому критерию может иметь оценку от 0 до 5. Ниже представлена таблица с критериями, по которым мы оценили данную модель (в качестве эталонных ответов взяли ответы YandexGPT):

b9ebb13a57b5667673e2e10874acaa39.png

Оба облачных решения хорошо справились с синтетическими задачами, и только 2 локальных модели из 5 локальных показали сравнимый по качеству результат: Saiga-Mistral-7b-Lora и Saiga-Llama3–8b.

Оценка на основе задач

Ниже приведена таблица с результатами по всем моделям, насколько хорошо они справились с поставленными задачами: 0 — модель вообще не справилась с задачей, 1 — справилась, но со значительными помарками, 2 — справилась почти идеально.

8f0c1269f9168203e4d76e8803e68cf2.png

По результатам этой таблицы Saiga-Mistral-7b-Lora является лучшим выбором в качестве локальной языковой модели.

Заключение

На основе двух вариантов оценки мы делаем вывод, что лучшие решения для работы с русскоязычными документами — облачные платформы YandexGPT и GigaChat.

Но в ситуациях, когда необходимо использовать локальную языковую модель, стоит рассмотреть Saiga-Mistral-7b-Lora.

Модели YandexGPT и Saiga-Mistral-7b-Lora показали наилучшие результаты в большинстве задач, связанных с генерацией текста, диалогами и исправлением ошибок.

Saiga-Llama3–8b стала лучшим выбором для задач извлечения данных и анализа документов, что делает её отличным инструментом для автоматизации обработки документов.

В будущем, с развитием технологий NLP, можно ожидать появления ещё более точных и производительных языковых моделей, которые смогут решать задачи на ещё более высоком уровне.

Кроме того, возможность дообучения моделей на специализированных датасетах (как это было сделано с Saiga-Mistral-7b-Lora и Saiga-Llama3–8b) позволит адаптировать их под конкретные нужды компаний, работающих с русским языком.

© Habrahabr.ru