GigaEmbeddings

1
7 месяцев назад
README.md

HF Link


Giga-Embeddings-instruct

  • Base Decoder-only LLM: GigaChat-3b
  • Pooling Type: Latent-Attention
  • Embedding Dimension: 2048

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

Ниже приведен пример кодирования запросов и текстов.

Requirements

Transformers

Sentence Transformers

LangChain

Метрики

giga-embeddings-instructe5-mistral-7b-instructmultilingual-e5-large-instruct
RuMTEB74.167.166.3

Инструктивность

Использование инструкций для улучшения качества эмбеддингов

Для достижения более точных результатов при работе с эмбеддингами, особенно в задачах поиска и извлечения информации (retrieval), рекомендуется добавлять инструкцию на естественном языке перед текстовым запросом (query). Это помогает модели лучше понять контекст и цель запроса, что положительно сказывается на качестве результатов. Важно отметить, что инструкцию нужно добавлять только перед запросом, а не перед документом.

Для симметричных задач, таких как классификация (classification) или семантическое сравнение текстов (semantic text similarity), инструкцию необходимо добавлять перед каждым запросом. Это связано с тем, что такие задачи требуют одинакового контекста для всех входных данных, чтобы модель могла корректно сравнивать или классифицировать их.

Примеры инструкций для симметричных задач:

  • "Retrieve semantically similar text"
  • "Given a text, retrieve semantically similar text"
  • "Дано предложение, необходимо найти его парафраз"
  • "Классифицируй отзыв на товар как положительный, отрицательный или нейтральный"
  • "Классифицируй чувствительную тему по запросу"

Для retrieval-задач (например, поиск ответа в тексте) можно использовать инструкцию:

'Дан вопрос, необходимо найти абзац текста с ответом'
.

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

Примеры инструкций для retrieval-задач:

  • 'Дан вопрос, необходимо найти абзац текста с ответом'
  • 'Given the question, find a paragraph with the answer'

Инструкции необходимо оборачивать в шаблон:

f'Instruct: {task_description}\nQuery: {query}'
. Использование инструкций позволяет значительно улучшить качество поиска и релевантность результатов, что подтверждается тестами на бенчмарках, таких как RuBQ, MIRACL. Для симметричных задач добавление инструкции перед каждым запросом обеспечивает согласованность и повышает точность модели.

Поддерживаемые языки

Эта модель инициализирована pretrain моделью GigaChat и дополнительно обучена на смеси английских и русских данных.

FAQ

  1. Нужно ли добавлять инструкции к запросу?

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

С другой стороны, добавлять инструкции на сторону документа не требуется.

  1. Почему мои воспроизведённые результаты немного отличаются от указанных в карточке модели?

Разные версии библиотек transformers и pytorch могут вызывать незначительные, но ненулевые различия в результатах.

Ограничения

Использование этой модели для входных данных, содержащих более 4096 токенов, невозможно.