/ Модель

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

Контекст
512 токенов
Параметры
129 млн
Лицензия
Apache 2.0
Архитектура
bert · dense
Библиотека
sentence-transformers
Опубликована
2 мар 2022

text2vec-base-chinese

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

Китайская BERT-модель text2vec кодирует предложения и короткие абзацы в эмбеддинги для семантического поиска и сопоставления текстов.

970 тыс.скачиваний за 30 дней807лайковвеса обновлены14 ноя 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

  • CovidRetrieval

    map_at_1 · выше — лучше

    Результат

    0,3261

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

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

  • LegalSummarization

    main_score

    Результат

    0,3686

    MTEB

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

  • Ocnli

    manhattan.recall · выше — лучше

    Результат

    0,9947

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

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

  • MMarcoRetrieval

    mrr_at_100 · выше — лучше

    Результат

    0,4101

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

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

  • CMedQAv2

    map · выше — лучше

    Результат

    0,5982

    MTEB

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

  • Cmnli

    cos_sim.f1 · выше — лучше

    Результат

    0,7054

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

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

  • CUREv1

    main_score

    Результат

    0,0044

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

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

  • MedicalRetrieval

    recall_at_10 · выше — лучше

    Результат

    0,351

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

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

  • STSB

    cos_sim.spearman · выше — лучше

    Результат

    0,793

    MTEB

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

  • T2Reranking

    map · выше — лучше

    Результат

    0,6595

    MTEB

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

  • VideoRetrieval

    precision_at_10 · выше — лучше

    Результат

    0,0512

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

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

  • DuRetrieval

    recall_at_10 · выше — лучше

    Результат

    0,5332

    MTEB

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

  • QBQTC

    euclidean.pearson · выше — лучше

    Результат

    0,2236

    MTEB

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

  • T2Retrieval

    ndcg_at_10 · выше — лучше

    Результат

    0,5167

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

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

  • STS22

    zh.manhattan.spearman · выше — лучше

    Результат

    0,5452

    MTEB

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

  • MultilingualSentiment

    accuracy · выше — лучше

    Результат

    0,6098

    MTEB

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

  • CmedqaRetrieval

    ndcg_at_100 · выше — лучше

    Результат

    0,2124

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

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

  • EcomRetrieval

    ndcg_at_10 · выше — лучше

    Результат

    0,346

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

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

  • AFQMC

    cos_sim.spearman · выше — лучше

    Результат

    0,2606

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

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

  • MIRACLRetrievalHardNegatives

    main_score

    Результат

    0,0621

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

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

  • EnglishFinance3Retrieval

    main_score

    Результат

    0,128

    MTEB

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

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

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

text2vec-base-chinese — модель эмбеддингов предложений, обученная проектом text2vec на базе hfl/chinese-macbert-base с методом CoSENT. Она кодирует китайские предложения и короткие абзацы в плотные векторы размерности 768 для семантического поиска, сопоставления текстов, кластеризации и оценки сходства. Модель построена на архитектуре BERT, содержит около 129,5 млн параметров и принимает последовательности длиной до 512 токенов по метаданным; README указывает усечение входа длиннее 256 WordPiece-токенов.

Модель предназначена прежде всего для китайских текстов. В README описана настройка на китайских данных STS-B с контрастивной функцией потерь и приведены результаты на китайских наборах для сопоставления предложений. Доступны веса в форматах PyTorch, Safetensors, ONNX и OpenVINO; автор также сообщает об ускоренных вариантах ONNX и OpenVINO.

Лицензия — Apache-2.0. Модель выдаёт векторы, а не готовые ответы или текст; для поиска и сравнения требуется последующая обработка эмбеддингов. Её специализация на китайском языке и усечение длинных входов ограничивают применение к другим языкам и длинным документам.

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

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

Ограничения

Модель ориентирована на китайский язык и усекает входы длиннее 256 WordPiece-токенов согласно README. Она возвращает векторы, поэтому для поиска, кластеризации или ранжирования требуется отдельный компонент обработки.

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

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

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

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

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

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

Открыть на Hugging Face

shibing624/text2vec-base-chinese

This is a CoSENT(Cosine Sentence) model: shibing624/text2vec-base-chinese.

It maps sentences to a 768 dimensional dense vector space and can be used for tasks like sentence embeddings, text matching or semantic search.

Evaluation

For an automated evaluation of this model, see the Evaluation Benchmark: text2vec

  • chinese text matching task:
ArchBaseModelModelATECBQLCQMCPAWSXSTS-BSOHU-ddSOHU-dcAvgQPS
Word2Vecword2vecw2v-light-tencent-chinese20.0031.4959.462.5755.7855.0420.7035.0323769
SBERTxlm-roberta-basesentence-transformers/paraphrase-multilingual-MiniLM-L12-v218.4238.5263.9610.1478.9063.0152.2846.463138
Instructorhfl/chinese-roberta-wwm-extmoka-ai/m3e-base41.2763.8174.8712.2076.9675.8360.5557.932980
CoSENThfl/chinese-macbert-baseshibing624/text2vec-base-chinese31.9342.6770.1617.2179.3070.2750.4251.613008
CoSENThfl/chinese-lert-largeGanymedeNil/text2vec-large-chinese32.6144.5969.3014.5179.4473.0159.0453.122092
CoSENTnghuyong/ernie-3.0-base-zhshibing624/text2vec-base-chinese-sentence43.3761.4373.4838.9078.2570.6053.0859.873089
CoSENTnghuyong/ernie-3.0-base-zhshibing624/text2vec-base-chinese-paraphrase44.8963.5874.2440.9078.9376.7063.3063.083066
CoSENTsentence-transformers/paraphrase-multilingual-MiniLM-L12-v2shibing624/text2vec-base-multilingual32.3950.3365.6432.5674.4568.8851.1753.674004

说明:

  • 结果评测指标:spearman系数
  • shibing624/text2vec-base-chinese模型,是用CoSENT方法训练,基于hfl/chinese-macbert-base在中文STS-B数据训练得到,并在中文STS-B测试集评估达到较好效果,运行examples/training_sup_text_matching_model.py代码可训练模型,模型文件已经上传HF model hub,中文通用语义匹配任务推荐使用
  • shibing624/text2vec-base-chinese-sentence模型,是用CoSENT方法训练,基于nghuyong/ernie-3.0-base-zh用人工挑选后的中文STS数据集shibing624/nli-zh-all/text2vec-base-chinese-sentence-dataset训练得到,并在中文各NLI测试集评估达到较好效果,运行examples/training_sup_text_matching_model_jsonl_data.py代码可训练模型,模型文件已经上传HF model hub,中文s2s(句子vs句子)语义匹配任务推荐使用
  • shibing624/text2vec-base-chinese-paraphrase模型,是用CoSENT方法训练,基于nghuyong/ernie-3.0-base-zh用人工挑选后的中文STS数据集shibing624/nli-zh-all/text2vec-base-chinese-paraphrase-dataset,数据集相对于shibing624/nli-zh-all/text2vec-base-chinese-sentence-dataset加入了s2p(sentence to paraphrase)数据,强化了其长文本的表征能力,并在中文各NLI测试集评估达到SOTA,运行examples/training_sup_text_matching_model_jsonl_data.py代码可训练模型,模型文件已经上传HF model hub,中文s2p(句子vs段落)语义匹配任务推荐使用
  • sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2模型是用SBERT训练,是paraphrase-MiniLM-L12-v2模型的多语言版本,支持中文、英文等
  • w2v-light-tencent-chinese是腾讯词向量的Word2Vec模型,CPU加载使用,适用于中文字面匹配任务和缺少数据的冷启动情况

Usage (text2vec)

Using this model becomes easy when you have text2vec installed:

pip install -U text2vec

Then you can use the model like this:

from text2vec import SentenceModel
sentences = ['如何更换花呗绑定银行卡', '花呗更改绑定银行卡']

model = SentenceModel('shibing624/text2vec-base-chinese')
embeddings = model.encode(sentences)
print(embeddings)

Usage (HuggingFace Transformers)

Without text2vec, 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.

Install transformers:

pip install transformers

Then load model and predict:

from transformers import BertTokenizer, BertModel
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)

# Load model from HuggingFace Hub
tokenizer = BertTokenizer.from_pretrained('shibing624/text2vec-base-chinese')
model = BertModel.from_pretrained('shibing624/text2vec-base-chinese')
sentences = ['如何更换花呗绑定银行卡', '花呗更改绑定银行卡']
# 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)

Usage (sentence-transformers)

sentence-transformers is a popular library to compute dense vector representations for sentences.

Install sentence-transformers:

pip install -U sentence-transformers

Then load model and predict:

from sentence_transformers import SentenceTransformer

m = SentenceTransformer("shibing624/text2vec-base-chinese")
sentences = ['如何更换花呗绑定银行卡', '花呗更改绑定银行卡']

sentence_embeddings = m.encode(sentences)
print("Sentence embeddings:")
print(sentence_embeddings)

Model speed up

ModelATECBQLCQMCPAWSXSTSB
shibing624/text2vec-base-chinese (fp32, baseline)0.319280.426720.701570.172140.79296
shibing624/text2vec-base-chinese (onnx-O4, #29)0.319280.426720.701570.172140.79296
shibing624/text2vec-base-chinese (ov, #27)0.319280.426720.701570.172140.79296
shibing624/text2vec-base-chinese (ov-qint8, #30)0.30778 (-3.60%)0.43474 (+1.88%)0.69620 (-0.77%)0.16662 (-3.20%)0.79396 (+0.13%)

In short:

  1. ✅ shibing624/text2vec-base-chinese (onnx-O4), ONNX Optimized to O4 does not reduce performance, but gives a ~2x speedup on GPU.
  2. ✅ shibing624/text2vec-base-chinese (ov), OpenVINO does not reduce performance, but gives a 1.12x speedup on CPU.
  3. 🟡 shibing624/text2vec-base-chinese (ov-qint8), int8 quantization with OV incurs a small performance hit on some tasks, and a tiny performance gain on others, when quantizing with Chinese STSB. Additionally, it results in a 4.78x speedup on CPU.
  • usage: shibing624/text2vec-base-chinese (onnx-O4), for gpu
from sentence_transformers import SentenceTransformer

model = SentenceTransformer(
    "shibing624/text2vec-base-chinese",
    backend="onnx",
    model_kwargs={"file_name": "model_O4.onnx"},
)
embeddings = model.encode(["如何更换花呗绑定银行卡", "花呗更改绑定银行卡", "你是谁"])
print(embeddings.shape)
similarities = model.similarity(embeddings, embeddings)
print(similarities)
  • usage: shibing624/text2vec-base-chinese (ov), for cpu
# pip install 'optimum[openvino]'

from sentence_transformers import SentenceTransformer

model = SentenceTransformer(
    "shibing624/text2vec-base-chinese",
    backend="openvino",
)

embeddings = model.encode(["如何更换花呗绑定银行卡", "花呗更改绑定银行卡", "你是谁"])
print(embeddings.shape)
similarities = model.similarity(embeddings, embeddings)
print(similarities)
  • usage: shibing624/text2vec-base-chinese (ov-qint8), for cpu
# pip install optimum
from sentence_transformers import SentenceTransformer

model = SentenceTransformer(
    "shibing624/text2vec-base-chinese",
    backend="onnx",
    model_kwargs={"file_name": "model_qint8_avx512_vnni.onnx"},
)
embeddings = model.encode(["如何更换花呗绑定银行卡", "花呗更改绑定银行卡", "你是谁"])
print(embeddings.shape)
similarities = model.similarity(embeddings, embeddings)
print(similarities)

Full Model Architecture

CoSENT(
  (0): Transformer({'max_seq_length': 128, 'do_lower_case': False}) with Transformer model: BertModel 
  (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_mean_tokens': True})
)

Intended uses

Our model is intented to be used as a sentence and short paragraph encoder. Given an input text, it ouptuts a vector which captures the semantic information. The sentence vector may be used for information retrieval, clustering or sentence similarity tasks.

By default, input text longer than 256 word pieces is truncated.

Training procedure

Pre-training

We use the pretrained hfl/chinese-macbert-base model. Please refer to the model card for more detailed information about the pre-training procedure.

Fine-tuning

We fine-tune the model using a contrastive objective. Formally, we compute the cosine similarity from each possible sentence pairs from the batch. We then apply the rank loss by comparing with true pairs and false pairs.

Hyper parameters

Citing & Authors

This model was trained by text2vec.

If you find this model helpful, feel free to cite:

@software{text2vec,
  author = {Xu Ming},
  title = {text2vec: A Tool for Text to Vector},
  year = {2022},
  url = {https://github.com/shibing624/text2vec},
}

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
BertModel
Ревизия весов
183bb99

0 моделей