Всем привет! Меня зовут Роман Соломатин, я представляю команду AI-Run из X5 Tech, мы занимаемся генеративными сетями в целом и языковыми моделями в частности. Несколько месяцев назад русскоязычное сообщество разработчиков искусственного интеллекта получило инструмент для оценки моделей — бенчмарк ruMTEB (Massive Text Embedding Benchmark). Он предназначен для оценки репрезентации русскоязычных текстов и позволяет объективно сравнивать различные эмбеддинговые модели, которые превращают текст в вектора чисел, ориентированные на работу с русским языком (подробнее в статье авторов). Однако, первая версия ruMTEB имела 6 протестированных моделей, но при этом отсутствовал удобный лидерборд.

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

Состояние лидерборда ruMTEB по состоянию на 23.09.2024
Состояние лидерборда ruMTEB по состоянию на 23.09.2024

Для чего применяется векторизация

Модель преобразует текст в числовые векторы, что позволяет эффективно работать с текстовыми данными.

Вот ключевые области его применения:

  • Классификация текста (Classification) — распределения текста по категориям.

  • Семантический анализ (STS) — определение схожести предложений.

  • Кластеризация текста (Clustering) — кластеризация текстов.

  • Машинный перевод (Bitextmining) — поиск наиболее подходящего предложения на другом языке.

  • Поиск (Retrieval) — поиск похожих текстов по запросу.

Подробнее о применении LLM и эмбеддингов читайте в нашей статье «Интеграция LLM в корпоративные чат-боты: RAG-подход и эксперименты».

Тестируемые модели

Мы протестировали следующие модели:

Результаты и рекомендации

На основе бенчмарка можно сделать следующие выводы:

  • Максимальная производительность: если у вас есть возможность выделить значительные ресурсы, то лучшим выбором будет модель intfloat/e5-mistral-7b-instruct. Она показывает лучшие результаты, но требует много памяти и вычислительной мощности.

  • Оптимальный баланс: если у вас есть немного свободных гигабайт VRAM, то стоит обратить внимание на модели deepvk/USER-bge-m3, BAAI/bge-m3 и intfloat/multilingual-e5-large-instruct. Они предлагают хорошее соотношение между производительностью и потреблением ресурсов.

  • Ресурсоэффективные решения: для разработчиков с ограниченными ресурсами подойдут модели sergeyzh/LaBSE-ru-turbo и deepvk/USER-base. Эти модели способны работать на средних конфигурациях и обеспечивают достойное качество репрезентации текста.

  • Минимальные требования: Если у вас практически нет ресурсов, то модель sergeyzh/rubert-tiny-turbo будет лучшим выбором. Она может работать даже на очень скромных конфигурациях, оставаясь при этом достаточно эффективной.

Как вам попасть в лидерборд

Если вы хотите протестировать свою модель и добавить её в лидерборд ruMTEB, выполните следующие шаги:

1. Запуск модели на MTEB

Для начала вам нужно запустить вашу модель на MTEB (Multilingual Task Embedding Benchmark). Это можно сделать двумя способами: 

  1. через Python API;

  2. используя командную строку.

Использование Python API:

import mteb
from sentence_transformers import SentenceTransformer

model = SentenceTransformer(model_name)
benchmark = mteb.get_benchmark("MTEB(rus)")
evaluation = mteb.MTEB(tasks=benchmark)
evaluation.run(model, output_folder="results")

Использование командной строки:

mteb run -m {название_вашей_модели} -t {названия_задач}

Эти команды сохранят результаты в папке results/{model_name}/{model_revision}.

2. Форматирование результатов

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

mteb create_meta --results_folder results/{model_name}/{model_revision} --output_path model_card.md

Если у вашей модели уже существует файл README.md, вы можете объединить результаты с существующим описанием:

mteb create_meta --results_folder results/{model_name}/{model_revision} --output_path model_card.md --from_existing ваш_существующий_readme.md

3. Добавление метаданных в репозиторий модели

Скопируйте содержимое файла model_card.md в начало файла README.md вашего репозитория модели на Hugging Face. Это необходимо для того, чтобы ваши результаты были учтены в лидерборде. Пример файла README.md

4. Ожидание обновления лидерборда

После добавления метаданных в README.md вашей модели, просто подождите, пока лидерборд автоматически обновится. Обновление происходит ежедневно, и ваша модель появится в списке при следующем обновлении.

Заключение

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

Авторы: Роман Соломатин, Мичил Егоров

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