/ Модель

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

Контекст
1 024 токена
Параметры
665 млн
Лицензия
CC BY-NC 4.0
Архитектура
m2m_100 · dense
Опубликована
24 окт 2023

SONAR_200_text_encoder

Сходство предложенийТекст → score10 профессий

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

3 672скачиваний за 30 дней11лайковвеса обновлены8 ноя 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Это перенос многоязычного текстового энкодера SONAR в формат Transformers из реализации fairseq2. Модель на архитектуре M2M100 содержит 665 млн параметров и формирует векторные представления текста для оценки сходства предложений. Перенесённые веса должны давать те же эмбеддинги, что и официальная реализация, которая остаётся эталонным источником.

Энкодер поддерживает 202 языка, как NLLB-200, и рассчитан на кодирование текстов длиной до 1024 токенов. Его можно использовать для поиска семантически близких предложений и сопоставления текстов на разных языках. Репозиторий содержит веса в форматах PyTorch и Safetensors. Лицензия CC BY-NC 4.0 разрешает использование с указанием авторства, но запрещает коммерческое применение.

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

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

Ограничения

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

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

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

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

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

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

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

Открыть на Hugging Face

This is a port of the multilingual SONAR text encoder (https://huggingface.co/facebook/SONAR) to the transformers format from fairseq2.

Its embeddings are expected be equal to those the official implementation (https://github.com/facebookresearch/SONAR), but the latter stays the source of truth.

The encoder supports the same 202 languages as NLLB-200 (see also the source model card and FLORES-200 lang code mapping).

How to compute embeddings:

# !pip install transformers sentencepiece -q

import torch
from transformers import AutoTokenizer
from transformers.models.m2m_100.modeling_m2m_100 import M2M100Encoder

model_name = "cointegrated/SONAR_200_text_encoder"
encoder = M2M100Encoder.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

def encode_mean_pool(texts, tokenizer, encoder, lang='eng_Latn', norm=False):
    tokenizer.src_lang = lang
    with torch.inference_mode():
        batch = tokenizer(texts, return_tensors='pt', padding=True)
        seq_embs = encoder(**batch).last_hidden_state
        mask = batch.attention_mask
        mean_emb = (seq_embs * mask.unsqueeze(-1)).sum(1) / mask.unsqueeze(-1).sum(1)
        if norm:
            mean_emb = torch.nn.functional.normalize(mean_emb)
    return mean_emb

sentences = ['My name is SONAR.', 'I can embed the sentences into vectorial space.']
embs = encode_mean_pool(sentences, tokenizer, encoder, lang="eng_Latn")
print(embs.shape)  
# torch.Size([2, 1024])
print(embs)
# tensor([[-0.0053,  0.0020, -0.0006,  ...,  0.0094, -0.0009,  0.0070],
#         [-0.0003, -0.0071,  0.0076,  ...,  0.0055,  0.0022, -0.0083]])

For advanced examples of usage, please take a look at the readme in https://github.com/facebookresearch/SONAR.

The model was repacked in this notebook.

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
M2M100Encoder
Ревизия весов
29f2eac

0 моделей