/ Модель

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

Контекст
8 194 токена
Параметры
659 млн
Архитектура
xlm-roberta · dense
Базовая модель
bge-m3
Библиотека
sentence-transformers
Опубликована
9 авг 2024

bge-m3-korean

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

Корейская дообученная версия BGE-M3 для получения векторных представлений и сравнения смысловой близости предложений и абзацев.

34 430скачиваний за 30 дней66лайковвеса обновлены9 авг 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

  • MrTidyRetrieval

    main_score

    Результат

    0,5501

    MTEB

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

  • MultiLongDocRetrieval

    main_score

    Результат

    0,2197

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

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

  • Ko-StrategyQA

    main_score

    Результат

    0,7528

    MTEB

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

  • BelebeleRetrieval

    main_score

    Результат

    0,8731

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

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

  • MIRACLRetrieval

    main_score

    Результат

    0,5989

    MTEB

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

  • PublicHealthQA

    main_score

    Результат

    0,7756

    MTEB

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

  • AutoRAGRetrieval

    main_score

    Результат

    0,7295

    MTEB

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

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

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

upskyy/bge-m3-korean — модель Sentence Transformers, дообученная разработчиком upskyy на базе BAAI/bge-m3 на наборах korsts и kornli. Она кодирует предложения и абзацы в плотные векторы размерностью 1024 и предназначена для сравнения смысловой близости текстов; сходство оценивается косинусной мерой. Архитектура основана на XLM-RoBERTa с усреднением токенных представлений, максимальная длина последовательности — 8192 токена.

Модель подходит для семантического поиска, поиска перефразировок, кластеризации и классификации текстов. Основной целевой язык — корейский; метаданные также отмечают многоязычную поддержку. В README приведена оценка на sts-dev: корреляция Спирмена для косинусного сходства 0,8724. В репозитории указаны веса safetensors. Лицензия в предоставленных данных не приведена.

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

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

Ограничения

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

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

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

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

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

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

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

Открыть на Hugging Face

upskyy/bge-m3-korean

This model is korsts and kornli finetuning model from BAAI/bge-m3. It maps sentences & paragraphs to a 1024-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.

Model Details

Model Description

  • Model Type: Sentence Transformer
  • Base model: BAAI/bge-m3
  • Maximum Sequence Length: 8192 tokens
  • Output Dimensionality: 1024 tokens
  • Similarity Function: Cosine Similarity

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 8192, 'do_lower_case': False}) with Transformer model: XLMRobertaModel 
  (1): Pooling({'word_embedding_dimension': 1024, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
)

Usage

Usage (Sentence-Transformers)

First install the Sentence Transformers library:

pip install -U sentence-transformers

Then you can load this model and run inference.

from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("upskyy/bge-m3-korean")

# Run inference
sentences = [
    '아이를 가진 엄마가 해변을 걷는다.',
    '두 사람이 해변을 걷는다.',
    '한 남자가 해변에서 개를 산책시킨다.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1024]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
print(similarities)
# tensor([[1.0000, 0.6173, 0.3672],
#         [0.6173, 1.0000, 0.4775],
#         [0.3672, 0.4775, 1.0000]])

Usage (HuggingFace Transformers)

Without sentence-transformers, you can use the model like this: First, you pass your input through the transformer model, then you have to apply the right pooling-operation on-top of the contextualized word embeddings.

from transformers import AutoTokenizer, AutoModel
import torch


# Mean Pooling - Take attention mask into account for correct averaging
def mean_pooling(model_output, attention_mask):
    token_embeddings = model_output[0] # First element of model_output contains all token embeddings
    input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()
    return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)


# Sentences we want sentence embeddings for
sentences = ["안녕하세요?", "한국어 문장 임베딩을 위한 버트 모델입니다."]

# Load model from HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained("upskyy/bge-m3-korean")
model = AutoModel.from_pretrained("upskyy/bge-m3-korean")

# Tokenize sentences
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors="pt")

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

# Perform pooling. In this case, mean pooling.
sentence_embeddings = mean_pooling(model_output, encoded_input["attention_mask"])

print("Sentence embeddings:")
print(sentence_embeddings)

Evaluation

Metrics

Semantic Similarity

MetricValue
pearson_cosine0.874
spearman_cosine0.8724
pearson_manhattan0.8593
spearman_manhattan0.8688
pearson_euclidean0.8598
spearman_euclidean0.8694
pearson_dot0.8684
spearman_dot0.8666
pearson_max0.874
spearman_max0.8724

Framework Versions

  • Python: 3.10.13
  • Sentence Transformers: 3.0.1
  • Transformers: 4.42.4
  • PyTorch: 2.3.0+cu121
  • Accelerate: 0.30.1
  • Datasets: 2.16.1
  • Tokenizers: 0.19.1

Citation

BibTeX

@misc{bge-m3,
      title={BGE M3-Embedding: Multi-Lingual, Multi-Functionality, Multi-Granularity Text Embeddings Through Self-Knowledge Distillation}, 
      author={Jianlv Chen and Shitao Xiao and Peitian Zhang and Kun Luo and Defu Lian and Zheng Liu},
      year={2024},
      eprint={2402.03216},
      archivePrefix={arXiv},
      primaryClass={cs.CL}
}
@inproceedings{reimers-2019-sentence-bert,
    title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
    author = "Reimers, Nils and Gurevych, Iryna",
    booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
    month = "11",
    year = "2019",
    publisher = "Association for Computational Linguistics",
    url = "https://arxiv.org/abs/1908.10084",
}

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

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

GPU в ailist

Универсальный рантайм · sentence-transformers

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

Подбираем GPU…

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

0 моделей