/ Модель

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

Контекст
514 токенов
Параметры
110 млн
Лицензия
Apache 2.0
Архитектура
xlm-roberta · dense
Опубликована
29 мая 2023

multi-qa-en-id-mMiniLMv2-L6-H384

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

Модель создаёт эмбеддинги английских и индонезийских запросов и текстов для семантического и межъязыкового поиска.

162скачиваний за 30 дней0лайковвеса обновлены26 июн 2023

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

В подключённых источниках результатов для этой модели пока нет.

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

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

MultiQA-mMini-L6-H384 — модель эмбеддингов предложений, разработанная carlesoctav на основе nreimers/mMiniLMv2-L6-H384-distilled-from-XLMR-Large. Она дообучена методом дистилляции с учителем sentence-transformers/multi-qa-MiniLM-L6-dot-v1 на параллельных английских и индонезийских предложениях. Модель кодирует запросы, вопросы и текстовые фрагменты в плотные векторы размерности 384 для семантического поиска, поиска документов и межъязыкового информационного поиска.

Модель использует архитектуру XLM-RoBERTa и содержит 110,2 млн параметров. Эмбеддинги формируются с помощью CLS pooling и не нормализуются. Контекст модели составляет 514 токенов по метаданным, однако карточка указывает ограничение в 256 word pieces и обучение на текстах длиной до 80 word pieces, поэтому качество на более длинных фрагментах может снижаться. Валидационная точность для поиска параллельных текстов на паре английский—индонезийский составила 92%. Лицензия — Apache-2.0.

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

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

Ограничения

Карточка указывает усечение входов длиннее 256 word pieces; модель обучалась на текстах до 80 word pieces, поэтому качество на более длинных фрагментах может быть ниже. Эмбеддинги не нормализуются автоматически.

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

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

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

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

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

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

Открыть на Hugging Face

MultiQA-mMini-L6-H384

This model is a fine-tuned version of nreimers/mMiniLMv2-L6-H384-distilled-from-XLMR-Large on the carlesoctav/en-id-parallel-sentences dataset using the following procedure: Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation. It achieves 92% accuracy on the validation split of the dataset for the English-Indonesian language pair in the bitext mining task.

Model Description

Since we followed the approach outlined in Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation, we used sentence-transformers/multi-qa-MiniLM-L6-dot-v1 as the teacher model and nreimers/mMiniLMv2-L6-H384-distilled-from-XLMR-Large as the student model (multilingual).

Example of usage:


from transformers import AutoTokenizer, AutoModel
import torch

#CLS Pooling - Take output from first token
def cls_pooling(model_output):
    return model_output.last_hidden_state[:,0]

#Encode text
def encode(texts):
    # Tokenize sentences
    encoded_input = tokenizer(texts, padding=True, truncation=True, return_tensors='pt')

    # Compute token embeddings
    with torch.no_grad():
        model_output = model(**encoded_input, return_dict=True)

    # Perform pooling
    embeddings = cls_pooling(model_output)

    return embeddings


# Sentences we want sentence embeddings for
query = "How many people live in London?"
docs = ["Around 9 Million people live in London", "London is known for its financial district", "sekitar 9 juta orang tinggal di london", " London terkenal sebagai distrik finansial"]

# Load model from HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained("carlesoctav/multi-qa-en-id-mMiniLMv2-L6-H384")

model = AutoModel.from_pretrained("carlesoctav/multi-qa-en-id-mMiniLMv2-L6-H384", from_tf = True)

#Encode query and docs
query_emb = encode(query)
doc_emb = encode(docs)

#Compute dot score between query and all document embeddings
scores = torch.mm(query_emb, doc_emb.transpose(0, 1))[0].cpu().tolist()

#Combine docs & scores
doc_score_pairs = list(zip(docs, scores))

#Sort by decreasing score
doc_score_pairs = sorted(doc_score_pairs, key=lambda x: x[1], reverse=True)

#Output passages & scores
for doc, score in doc_score_pairs:
    print(score, doc)

Take a look at the demo on Google Colab here.

Intended Uses & Limitations

Our model is intended to be used for semantic search. It encodes queries/questions and text paragraphs into dense vectors, allowing it to find relevant documents based on the given passages.

The model is designed to create sentence embeddings specifically for semantic search and information retrieval tasks. As the student model, it inherits this capability from the fine-tuned teacher model. It supports both English and Indonesian languages, making it suitable for cross-lingual information retrieval tasks.

Please note that there is a limit of 256 word pieces, and any text longer than that will be truncated. Additionally, the model was trained using input text up to 80 word pieces, so it may not perform optimally on longer text.

In the following some technical details how this model must be used:

SettingValue
Dimensions384
Produces normalized embeddingsNo
Pooling-MethodCLS pooling
Suitable score functionsdot-product (e.g. util.dot_score)

Training and Evaluation Data

We utilized the carlesoctav/en-id-parallel-sentences dataset for training and evaluation purposes. The data was dynamically split into 95% for training and 5% for validation.

Training Procedure

The complete training script can be found in the current repository under the name train.py.

Framework Versions

The following framework versions were used:

  • Transformers 4.29.1
  • TensorFlow 2.12.0
  • Datasets 2.12.0
  • Tokenizers 0.13.3

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
XLMRobertaModel
Ревизия весов
8da722c

0 моделей