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

от автора

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Сценарии

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • ОЗУ: 53 GB

  • GPU: L4 GPU с объемом памяти 22.5 GB

  • Диск: 201.2 GB

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Выводы

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

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

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

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

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

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

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

По результатам этой таблицы 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) позволит адаптировать их под конкретные нужды компаний, работающих с русским языком.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Какая из LLM используется у вас на проекте?

12.5% OpenChat 3.52
37.5% YandexGPT6
12.5% GigaChat2
12.5% Mistral2
0% Saiga-Mistral-7b-Lora0
25% Saiga-Llama3-8b4

Проголосовали 16 пользователей. Воздержались 23 пользователя.

ссылка на оригинал статьи https://habr.com/ru/articles/856436/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *