/ Модель

Характеристики

Контекст
32 768 токенов
Параметры
7,1 млрд
Размер весов
14,2 ГБ
Лицензия
CC BY-NC 4.0
Архитектура
mistral · dense
Опубликована
29 мая 2024

Linq-Embed-Mistral

ЭмбеддингиТекст → embedding9 профессий

Текстовая модель Linq Research для построения эмбеддингов и улучшения семантического поиска по запросам и документам.

4 789скачиваний за 30 дней142лайкавеса обновлены5 июн 2024

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Эмбеддинги» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

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

Публичные оценки32

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

  • Tatoeba

    main_score

    Результат

    0,1145

    Общий результат 0,7238
    MTEB

    Публичная таблицаревизия совпадает

  • MultiHateClassification

    main_score

    Результат

    0,8737

    Общий результат 0,7225
    MTEB

    Публичная таблицаревизия совпадает

  • STS22.v2

    main_score

    Результат

    0,6355

    Общий результат 0,5607
    MTEB

    Публичная таблицаревизия совпадает

  • SIB200ClusteringS2S

    main_score

    Результат

    0,2676

    Общий результат 0,5833Общий результат 0,5597Общий результат 0,395
    MTEB

    Публичная таблицаревизия совпадает

  • CQADupstackEnglishRetrieval

    main_score

    Результат

    0,5258

    MTEB

    Публичная таблицаревизия совпадает

  • MIRACLReranking

    main_score

    Результат

    0,7727

    MTEB

    Публичная таблицаревизия совпадает

  • MassiveScenarioClassification

    main_score

    Результат

    0,5989

    MTEB

    Публичная таблицаревизия совпадает

  • EPBench

    main_score

    Результат

    0,7794

    Общий результат 0,6821Общий результат 0,6373
    MTEB

    Публичная таблицаревизия совпадает

  • MTOPIntentClassification

    main_score

    Результат

    0,8649

    MTEB

    Публичная таблицаревизия совпадает

  • MassiveIntentClassification

    main_score

    Результат

    0,4747

    MTEB

    Публичная таблицаревизия совпадает

  • MLQARetrieval

    main_score

    Результат

    0,7295

    Общий результат 0,6792
    MTEB

    Публичная таблицаревизия совпадает

  • STS22

    main_score

    Результат

    0,7253

    Общий результат 0,7593
    MTEB

    Публичная таблицаревизия совпадает

  • MasakhaNEWSClusteringS2S

    main_score

    Результат

    0,6861

    MTEB

    Публичная таблицаревизия совпадает

  • KnowMeBench

    main_score

    Результат

    0,8185

    MTEB

    Публичная таблицаревизия совпадает

  • CUREv1

    main_score

    Результат

    0,5789

    MTEB

    Публичная таблицаревизия совпадает

  • MIRACLRetrievalHardNegatives

    main_score

    Результат

    0,457

    Общий результат 0,6233
    MTEB

    Публичная таблицаревизия совпадает

  • IndicGenBenchFloresBitextMining

    main_score

    Результат

    0,7667

    Общий результат 0,996Общий результат 0,9906Общий результат 0,9868
    MTEB

    Публичная таблицаревизия совпадает

  • NollySentiBitextMining

    main_score

    Результат

    0,253

    MTEB

    Публичная таблицаревизия совпадает

  • MemGovern

    main_score

    Результат

    0,94

    MTEB

    Публичная таблицаревизия совпадает

  • KorSTS

    main_score

    Результат

    0,8197

    MTEB

    Публичная таблицаревизия совпадает

  • TempReasonL2Pure

    main_score

    Результат

    0,1239

    MTEB

    Публичная таблицаревизия совпадает

  • WikipediaRerankingMultilingual

    main_score

    Результат

    0,8254

    MTEB

    Публичная таблицаревизия совпадает

  • MTOPDomainClassification

    main_score

    Результат

    0,9288

    MTEB

    Публичная таблицаревизия совпадает

  • MemBench

    main_score

    Результат

    0,5539

    MTEB

    Публичная таблицаревизия совпадает

  • OpenTenderClusteringS2S

    main_score

    Результат

    0,4691

    MTEB

    Публичная таблицаревизия совпадает

  • AmazonCounterfactualClassification

    main_score

    Результат

    0,8043

    Общий результат 0,87
    MTEB

    Публичная таблицаревизия совпадает

  • SIB200Classification

    main_score

    Результат

    0,8255

    MTEB

    Публичная таблицаревизия совпадает

  • OpusparcusPC

    main_score

    Результат

    0,9097

    MTEB

    Публичная таблицаревизия совпадает

  • NusaTranslationBitextMining

    main_score

    Результат

    0,8568

    MTEB

    Публичная таблицаревизия совпадает

  • TMD

    main_score

    Результат

    0,0355

    MTEB

    Публичная таблицаревизия совпадает

  • NorwegianParliamentClassification

    main_score

    Результат

    0,6098

    MTEB

    Публичная таблицаревизия совпадает

  • SemRel24STS

    main_score

    Результат

    0,7734

    MTEB

    Публичная таблицаревизия совпадает

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Linq-Embed-Mistral — модель текстовых эмбеддингов команды Linq Research, построенная на основе E5-mistral-7b-instruct и Mistral-7B-v0.1. Это плотная архитектура Mistral с 7,1 млрд параметров и контекстом до 32 768 токенов; модель предназначена для поиска по тексту и оценки сходства предложений.

Модель дообучена для улучшения текстового поиска: команда использовала отбор и подготовку данных, синтетические наборы и подбор отрицательных примеров с помощью учительских моделей. В README сообщается о высоких результатах на бенчмарках MTEB по состоянию на 29 мая 2024 года. Модель принимает текст и выдаёт эмбеддинги для запросов и документов, которые можно использовать для семантического поиска и ранжирования кандидатов.

Модель распространяется по лицензии CC BY-NC 4.0, которая ограничивает коммерческое использование; README также указывает, что проект предназначен для исследовательских целей. Условия лицензий сторонних наборов данных могут отличаться.

Сценарии применения

  • семантический поиск по коллекции документов
  • поиск релевантных фрагментов для RAG
  • сопоставление запросов с документами
  • поиск похожих предложений и текстов

Ограничения

Лицензия CC BY-NC 4.0 ограничивает коммерческое использование; README обозначает проект как предназначенный для исследований. Показатели MTEB приведены по состоянию на 29 мая 2024 года и не гарантируют качество на конкретных данных.

Для каких профессий подходит9

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Linq-Embed-Mistral

Linq-Embed-Mistral has been developed by building upon the foundations of the E5-mistral-7b-instruct and Mistral-7B-v0.1 models. We focus on improving text retrieval using advanced data refinement methods, including sophisticated data crafting, data filtering, and negative mining guided by teacher models, which are highly tailored to each task, to improve the quality of the synthetic data generated by LLM. These methods are applied to both existing benchmark dataset and highly tailored synthetic dataset generated via LLMs. Our efforts primarily aim to create high-quality triplet datasets (query, positive example, negative example), significantly improving text retrieval performance.

Linq-Embed-Mistral performs well in the MTEB benchmarks (as of May 29, 2024). The model excels in retrieval tasks, ranking 1st among all models listed on the MTEB leaderboard with a performance score of 60.2. This outstanding performance underscores its superior capability in enhancing search precision and reliability. The model achieves an average score of 68.2 across 56 datasets in the MTEB benchmarks, making it the highest-ranking publicly accessible model and third overall. (Please note that NV-Emb-v1 and voyage-large-2-instruct, ranked 1st and 2nd on the leaderboard as of May 29, reported their performance without releasing their models.)

This project is for research purposes only. Third-party datasets may be subject to additional terms and conditions under their associated licenses. Please refer to specific papers for more details:

For more details, refer to this blog post and this report.

How to use

Here is an example of how to encode queries and passages from the Mr.TyDi training dataset, both with Sentence Transformers or Transformers directly.

Sentence Transformers

from sentence_transformers import SentenceTransformer

# Load the model
model = SentenceTransformer("Linq-AI-Research/Linq-Embed-Mistral")

# Each query must come with a one-sentence instruction that describes the task
task = 'Given a question, retrieve Wikipedia passages that answer the question'
prompt = f"Instruct: {task}\nQuery: "
queries = [
    "최초의 원자력 발전소는 무엇인가?",
    "Who invented Hangul?"
]
passages = [
    "현재 사용되는 핵분열 방식을 이용한 전력생산은 1948년 9월 미국 테네시주 오크리지에 설치된 X-10 흑연원자로에서 전구의 불을 밝히는 데 사용되면서 시작되었다. 그리고 1954년 6월에 구소련의 오브닌스크에 건설된 흑연감속 비등경수 압력관형 원자로를 사용한 오브닌스크 원자력 발전소가 시험적으로 전력생산을 시작하였고, 최초의 상업용 원자력 엉더이로를 사용한 영국 셀라필드 원자력 단지에 위치한 콜더 홀(Calder Hall) 원자력 발전소로, 1956년 10월 17일 상업 운전을 시작하였다.",
    "Hangul was personally created and promulgated by the fourth king of the Joseon dynasty, Sejong the Great.[1][2] Sejong's scholarly institute, the Hall of Worthies, is often credited with the work, and at least one of its scholars was heavily involved in its creation, but it appears to have also been a personal project of Sejong."
]

# Encode the queries and passages. We only use the prompt for the queries
query_embeddings = model.encode(queries, prompt=prompt)
passage_embeddings = model.encode(passages)

# Compute the (cosine) similarity scores
scores = model.similarity(query_embeddings, passage_embeddings) * 100
print(scores.tolist())
# [[73.72908782958984, 30.122787475585938], [29.15508460998535, 79.25375366210938]]

Transformers

import torch
import torch.nn.functional as F
from torch import Tensor
from transformers import AutoTokenizer, AutoModel

def last_token_pool(last_hidden_states: Tensor,
                 attention_mask: Tensor) -> Tensor:
    left_padding = (attention_mask[:, -1].sum() == attention_mask.shape[0])
    if left_padding:
        return last_hidden_states[:, -1]
    else:
        sequence_lengths = attention_mask.sum(dim=1) - 1
        batch_size = last_hidden_states.shape[0]
        return last_hidden_states[torch.arange(batch_size, device=last_hidden_states.device), sequence_lengths]

def get_detailed_instruct(task_description: str, query: str) -> str:
    return f'Instruct: {task_description}\nQuery: {query}'

# Each query must come with a one-sentence instruction that describes the task
task = 'Given a question, retrieve Wikipedia passages that answer the question'
queries = [
    get_detailed_instruct(task, '최초의 원자력 발전소는 무엇인가?'),
    get_detailed_instruct(task, 'Who invented Hangul?')
]
# No need to add instruction for retrieval documents
passages = [
    "현재 사용되는 핵분열 방식을 이용한 전력생산은 1948년 9월 미국 테네시주 오크리지에 설치된 X-10 흑연원자로에서 전구의 불을 밝히는 데 사용되면서 시작되었다. 그리고 1954년 6월에 구소련의 오브닌스크에 건설된 흑연감속 비등경수 압력관형 원자로를 사용한 오브닌스크 원자력 발전소가 시험적으로 전력생산을 시작하였고, 최초의 상업용 원자력 엉더이로를 사용한 영국 셀라필드 원자력 단지에 위치한 콜더 홀(Calder Hall) 원자력 발전소로, 1956년 10월 17일 상업 운전을 시작하였다.",
    "Hangul was personally created and promulgated by the fourth king of the Joseon dynasty, Sejong the Great.[1][2] Sejong's scholarly institute, the Hall of Worthies, is often credited with the work, and at least one of its scholars was heavily involved in its creation, but it appears to have also been a personal project of Sejong."
]

# Load model and tokenizer
tokenizer = AutoTokenizer.from_pretrained('Linq-AI-Research/Linq-Embed-Mistral')
model = AutoModel.from_pretrained('Linq-AI-Research/Linq-Embed-Mistral')

max_length = 4096
input_texts = [*queries, *passages]
# Tokenize the input texts
batch_dict = tokenizer(input_texts, max_length=max_length, padding=True, truncation=True, return_tensors="pt")
outputs = model(**batch_dict)
embeddings = last_token_pool(outputs.last_hidden_state, batch_dict['attention_mask'])

# Normalize embeddings
embeddings = F.normalize(embeddings, p=2, dim=1)
scores = (embeddings[:2] @ embeddings[2:].T) * 100
print(scores.tolist())
# [[73.72909545898438, 30.122783660888672], [29.155078887939453, 79.25374603271484]]

MTEB Benchmark Evaluation

Check out unilm/e5 to reproduce evaluation results on the BEIR and MTEB benchmark.

Evaluation Result

MTEB (as of May 29, 2024)

Model NameRetrieval (15)Average (56)
Linq-Embed-Mistral60.268.2
NV-Embed-v159.469.3
SFR-Embedding-Mistral59.067.6
voyage-large-2-instruct58.368.3
GritLM-7B57.466.8
voyage-lite-02-instruct56.667.1
gte-Qwen1.5-7B-instruct56.267.3
e5-mistral-7b-instruct56.966.6
google-gecko.text-embedding-preview-040955.766.3
text-embedding-3-large55.464.6
Cohere-embed-english-v3.055.064.5

Linq Research Team.

Citation

@misc{LinqAIResearch2024,
  title={Linq-Embed-Mistral:Elevating Text Retrieval with Improved GPT Data Through Task-Specific Control and Quality Refinement},
  author={Junseong Kim, Seolhwa Lee, Jihoon Kwon, Sangmo Gu, Yejin Kim, Minkyung Cho, Jy-yong Sohn, Chanyeol Choi},
  howpublished={Linq AI Research Blog},
  year={2024},
  url={https://getlinq.com/blog/linq-embed-mistral/}
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Можно запустить

Подбираем GPU…

Класс архитектуры
MistralModel
Ревизия весов
0c1a0b0

0 моделей