Как стать автором
Обновить

«В чем сила?» — ищем ответ среди афоризмов. Сравнение 6 моделей для векторного поиска и так ли хорош OpenAi Large

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.5K

Введение

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

Большой тест GPT4, GPT3.5, YandexGPT, GigaChat, Saiga в RAG-задаче. Часть 1

Большой тест GPT4, GPT3.5, YandexGPT, GigaChat, Saiga в RAG-задаче. Часть 2/2

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

Что такое эмбеддинг

Эмбеддинг - что числовое представление текста в виде вектора (набора цифр), позволяя текстам, близким по смыслу, быть близкими и математически. Это обеспечивает поиск по метаматематике, а не по ключевым словам.

Когда мой хороший знакомый, админ канала "Технозаметки Малышева", опубликовал заметку о поиске афоризмов и цитат с помощью эмбеддинга Salesforce/SFR-Embedding-Mistral, я увидел в этом прекрасную возможность оценить качество моделей, которые появились за последние четыре месяца, и сравнить их с базовой моделью ai-forever/ruBert-large, которая использовалась в первых обзорах.

OpenAi анонсировал модели text-embedding-3-large, text-embedding-3-small утверждая, что они лучше чем прошлая модель. Также Microsoft анонсировал модель E5 intfloat/multilingual-e5-large.

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

Мы будем искать афоризмы, которые отвечают на извечный вопрос: В чем сила?

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

Превращаем набор 300+ афоризмов в вектор и ищем силу

В качестве базы для поиска я скормил в свой рабочий фреймворк список из 300+ афоризмов. Был сделано 6 слепков этого набора, используя разные модели токенайзеров:

  • text-embedding-ada-002

  • text-embedding-3-large

  • text-embedding-3-small

  • intfloat/multilingual-e5-large

  • ai-forever/ruBert-large

  • ai-forever/sbert_large_mt_nlu_ru

  • Salesforce/SFR-Embedding-Mistral (по итогу я выключил его из списка из-за того, что (1) предложение нужно правильно готовить, более сложно, чем e5 (2) он кушал неоправданно много памяти более 26 ГБ. )

Для каждого слепка я задавал один и тот же вопрос. Ответы представлены по мере убывания "близости". Близость рассчитывалась через косинус. Усреднение эмбедингов всех токенов через mean.

"В чем сила?"

text-embedding-ada-002

text-embedding-3-large

text-embedding-3-small

Сила в Ньютонах! 👍

Сила в Ньютонах! 👍

Сила в Ньютонах!👍

Где тонко, там и рвется. Где толсто, там и наслаивается. 👍

Тень Чака Норриса сминает все, на что падает. 👍

Где тонко, там и рвется. Где толсто, там и наслаивается.👍

Попытка — не пытка, а спрос — не беда.

Где тонко, там и рвется. Где толсто, там и наслаивается. 👍

Палка о двух концах: туда и сюда бьет.

Слово - не воробей. Вообще ничто не воробей, кроме самого воробья.

От работы кони дохнут, а люди — крепнут.👍

Не завидуй тому, кто силен и богат, За рассветом всегда наступает закат. С этой жизнью короткою, равною вдоху, Обращайся, как с данной тебе напрокат. 👍

Старость не радость, сядешь — не встанешь, побежишь — не остановишься.

Никогда не сдавайтесь, идите к своей цели! А если будет сложно – сдавайтесь.

Жи-ши пиши от души.

Пьяному море по колено, а лужа — по уши.

В здоровом теле здоровый дух — редкая удача.

Тише едешь – дальше будешь от того места, куда едешь.

2/6

4/6

3/6

intfloat/multilingual-e5-large

ai-forever/ruBert-large

ai-forever/sbert_large_mt_nlu_ru

Сила в Ньютонах!👍

Сила в Ньютонах!👍

Сила в Ньютонах!👍

Делай, как надо. Как не надо, не делай. 👍

Дело мастера боится, а иной мастер — дела.

Тень Чака Норриса сминает все, на что падает. 👍

Никогда не сдавайтесь, идите к своей цели! А если будет сложно – сдавайтесь.

Слово - не воробей. Вообще ничто не воробей, кроме самого воробья.

Рука руку моет, да обе свербят.

От работы кони дохнут, а люди — крепнут.👍

Первый парень на деревне, а деревня в два двора.

Горбатого могила исправит, а упрямого — дубина.

Где тонко, там и рвется. Где толсто, там и наслаивается. 👍

Один в поле не воин, а путник.

Чак Норрис может ударить циклопа между глаз👍

Запомни: всего одна ошибка – и ты ошибся.👍

Гол как сокол, а остер как топор.

Расти большой, да не будь лапшой, тянись верстой, да не будь простой. 👍

5/6

1/6

4/6

👍 - я отметил те афоризмы и цитаты, которые на мой взгляд были наиболее близки к запросу "В чем сила?". Оценка субъективная.

Кто победил и какие выводы?

На первом месте безусловно Чак Норис. Он вне конкуренции.

По остальным выводы следующие:

  • text-embedding-3-large безусловно лучший токенайзер чем прошлая версия text-embedding-ada-002. Small находится по-середине. Всё абсолютно так, как они заявляют официально

  • ai-forever/ruBert-large - модель старая и на последнем месте. Что не удивительно.
    Очень порадовал ai-forever/sbert_large_mt_nlu_ru, мой основной токенайзер в проектах, а в лидеры вышел intfloat/multilingual-e5-large.

В целом достаточно показательно, но к сожалению запросы в intfloat/multilingual-e5-large нужно готовить, а именно добавлять "query: " к каждой строке, что скорее всего потребует переделки текущего кода. Можно и без неё, но качество тогда 4/6.

А как бы Вы оценили результат?

Теперь попробуем сделать классификационную модель

Афоризмы - афоризмами, а насколько видно отличие токенайзера в задачах классификации?

У меня есть рабочий датасет на 15000 примеров по 30 классам (равномерно). 20% на валидацию, 80% на обучение. Создадим три модели, на трех разных токенайзеров и посмотрим validation _ accuracy, т.е. сколько % из валидационной выборки оказалось верно угаданным.

Черный график точности - intfloat/multilingual-e5-large

Красный - ai-forever/sbert_large_mt_nlu_ru

Синий - ai-forever/ruBert-large

Прирост качества на intfloat/multilingual-e5-large меня действительно поразил, в то время как Bert модели показали одинаковую результативность.

Да, общий процент % попадания низкий, но это особенность датасета. Там были очень размытые границы между классами.

Из минусов intfloat/multilingual-e5-large :

  • Достаточно много кушает памяти (более 6 гб)

  • Ограничение по размеру предложения: 512 символов.

Поэтому на коротких предложениях - intfloat/multilingual-e5-large действительно отличный вариант.

Теги:
Хабы:
+15
Комментарии4

Публикации

Истории

Работа

Data Scientist
60 вакансий

Ближайшие события