/ Модель

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

Контекст
1 024 токена
Параметры
91,7 млн
Лицензия
Apache 2.0
Архитектура
bert · dense
Опубликована
25 мар 2024

Dmeta-embedding-zh-small

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

Компактная китайскоязычная BERT-модель для построения текстовых эмбеддингов в поиске, семантическом сопоставлении и RAG-системах.

163скачиваний за 30 дней19лайковвеса обновлены28 мар 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

  • FalseFriendsGermanEnglish

    main_score

    Результат

    0,487

    MTEB

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

  • OnlineShopping

    main_score

    Результат

    0,9312

    MTEB

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

  • BlurbsClusteringS2S

    main_score

    Результат

    0,0841

    MTEB

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

  • Cmnli

    main_score

    Результат

    0,8271

    MTEB

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

  • CMedQAv1-reranking

    main_score

    Результат

    0,8678

    MTEB

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

  • ThuNewsClusteringP2P

    main_score

    Результат

    0,6515

    MTEB

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

  • TenKGnadClusteringS2S

    main_score

    Результат

    0,0931

    MTEB

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

  • CovidRetrieval

    main_score

    Результат

    0,7563

    MTEB

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

  • PAWSX

    main_score

    Результат

    0,4297

    MTEB

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

  • LCQMC

    main_score

    Результат

    0,7873

    MTEB

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

  • MMarcoReranking

    main_score

    Результат

    0,2739

    MTEB

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

  • AmazonCounterfactualClassification

    main_score

    Результат

    0,6193

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

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

  • STS22

    main_score

    Результат

    0,6676

    MTEB

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

  • JDReview

    main_score

    Результат

    0,8557

    MTEB

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

  • CMedQAv2-reranking

    main_score

    Результат

    0,8739

    MTEB

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

  • PawsXPairClassification

    main_score

    Результат

    0,513

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

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

  • CLSClusteringS2S

    main_score

    Результат

    0,3843

    MTEB

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

  • TNews

    main_score

    Результат

    0,518

    MTEB

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

  • MTOPIntentClassification

    main_score

    Результат

    0,3935

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

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

  • BlurbsClusteringP2P

    main_score

    Результат

    0,1095

    MTEB

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

  • MedicalRetrieval

    main_score

    Результат

    0,5995

    MTEB

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

  • QBQTC

    main_score

    Результат

    0,4103

    MTEB

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

  • Waimai

    main_score

    Результат

    0,8618

    MTEB

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

  • T2Reranking

    main_score

    Результат

    0,6611

    MTEB

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

  • BQ

    main_score

    Результат

    0,7031

    MTEB

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

  • AmazonReviewsClassification

    main_score

    Результат

    0,2764

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

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

  • MassiveIntentClassification

    main_score

    Результат

    0,3452

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

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

  • CmedqaRetrieval

    main_score

    Результат

    0,4269

    MTEB

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

  • ATEC

    main_score

    Результат

    0,5863

    MTEB

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

  • MTOPDomainClassification

    main_score

    Результат

    0,6396

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

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

  • DuRetrieval

    main_score

    Результат

    0,7989

    MTEB

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

  • ThuNewsClusteringS2S

    main_score

    Результат

    0,5882

    MTEB

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

  • MMarcoRetrieval

    main_score

    Результат

    0,7075

    MTEB

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

  • MultilingualSentiment

    main_score

    Результат

    0,7439

    MTEB

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

  • TenKGnadClusteringP2P

    main_score

    Результат

    0,2097

    MTEB

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

  • CLSClusteringP2P

    main_score

    Результат

    0,4079

    MTEB

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

  • STSB

    main_score

    Результат

    0,7909

    MTEB

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

  • Ocnli

    main_score

    Результат

    0,8116

    MTEB

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

  • IFlyTek

    main_score

    Результат

    0,4911

    MTEB

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

  • MassiveScenarioClassification

    main_score

    Результат

    0,4349

    MTEB

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

  • EcomRetrieval

    main_score

    Результат

    0,6448

    MTEB

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

  • T2Retrieval

    main_score

    Результат

    0,799

    MTEB

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

  • AFQMC

    main_score

    Результат

    0,5954

    MTEB

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

  • VideoRetrieval

    main_score

    Результат

    0,683

    MTEB

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

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

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

DMetaSoul разработала Dmeta-embedding-zh-small — компактную китайскоязычную модель для получения текстовых эмбеддингов. Это дистиллированная версия Dmeta-embedding-zh на архитектуре BERT из 8 слоёв; в метаданных указаны 91,7 млн параметров и контекст до 1024 токенов. Модель предназначена для поиска, семантического сопоставления текстов, вопросно-ответных систем, интеллектуальной поддержки клиентов и приложений с RAG. Её можно загружать через Transformers, Sentence-Transformers и LangChain.

По сравнению с исходной моделью размер уменьшен примерно на треть, а скорость вывода в приведённом тесте выросла примерно на 30%; средний результат MTEB снизился примерно на 1,4 пункта, с наибольшими потерями в задачах поиска и семантического сходства. Модель принимает текст и выдаёт векторные представления. Распространяется по лицензии Apache-2.0.

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

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

Ограничения

В сравнении с исходной Dmeta-embedding-zh точность ниже примерно на 1,4 пункта в среднем по приведённой оценке MTEB; наибольшее снижение показано для поиска и семантического сходства. Контекст ограничен 1024 токенами.

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

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

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

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

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

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

Открыть на Hugging Face
  • Dmeta-embedding系列模型是跨领域、跨任务、开箱即用的中文 Embedding 模型,适用于搜索、问答、智能客服、LLM+RAG 等各种业务场景,支持使用 Transformers/Sentence-Transformers/Langchain 等工具加载推理。
  • Dmeta-embedding-zh-small是开源模型Dmeta-embedding-zh的蒸馏版本(8层BERT),模型大小不到300M。相较于原始版本,Dmeta-embedding-zh-small模型大小减小三分之一,推理速度提升约30%,总体精度下降约1.4%。

Evaluation

这里主要跟蒸馏前对应的 teacher 模型作了对比:

性能:(基于1万条数据测试,GPU设备是V100)

TeacherStudentGap
ModelDmeta-Embedding-zh (411M)Dmeta-Embedding-zh-small (297M)0.67x
Cost127s89s-30%
Latency13ms9ms-31%
Throughput78 sentence/s111 sentence/s1.4x

精度:(参考自MTEB榜单)

ClassificationClusteringPair ClassificationRerankingRetrievalSTSAvg
Dmeta-Embedding-zh7050.9688.9267.1770.4164.8967.51
Dmeta-Embedding-zh-small69.8950.887.5766.9267.762.1366.1
Gap-0.11-0.16-1.35-0.25-2.71-2.76-1.41

Usage

目前模型支持通过 Sentence-Transformers, Langchain, Huggingface Transformers 等主流框架进行推理,具体用法参考各个框架的示例。

Sentence-Transformers

Dmeta-embedding 模型支持通过 sentence-transformers 来加载推理:

pip install -U sentence-transformers
from sentence_transformers import SentenceTransformer
texts1 = ["胡子长得太快怎么办?", "在香港哪里买手表好"]
texts2 = ["胡子长得快怎么办?", "怎样使胡子不浓密!", "香港买手表哪里好", "在杭州手机到哪里买"]
model = SentenceTransformer('DMetaSoul/Dmeta-embedding-zh-small')
embs1 = model.encode(texts1, normalize_embeddings=True)
embs2 = model.encode(texts2, normalize_embeddings=True)
# 计算两两相似度
similarity = embs1 @ embs2.T
print(similarity)
# 获取 texts1[i] 对应的最相似 texts2[j]
for i in range(len(texts1)):
    scores = []
    for j in range(len(texts2)):
        scores.append([texts2[j], similarity[i][j]])
    scores = sorted(scores, key=lambda x:x[1], reverse=True)
    print(f"查询文本:{texts1[i]}")
    for text2, score in scores:
        print(f"相似文本:{text2},打分:{score}")
    print()

示例输出如下:

查询文本:胡子长得太快怎么办?
相似文本:胡子长得快怎么办?,打分:0.965681254863739
相似文本:怎样使胡子不浓密!,打分:0.7353651523590088
相似文本:香港买手表哪里好,打分:0.24928246438503265
相似文本:在杭州手机到哪里买,打分:0.2038613110780716

查询文本:在香港哪里买手表好
相似文本:香港买手表哪里好,打分:0.9916468262672424
相似文本:在杭州手机到哪里买,打分:0.498248815536499
相似文本:胡子长得快怎么办?,打分:0.2424771636724472
相似文本:怎样使胡子不浓密!,打分:0.21715955436229706

Langchain

Dmeta-embedding 模型支持通过 LLM 工具框架 langchain 来加载推理:

pip install -U langchain
import torch
import numpy as np
from langchain.embeddings import HuggingFaceEmbeddings
model_name = "DMetaSoul/Dmeta-embedding-zh-small"
model_kwargs = {'device': 'cuda' if torch.cuda.is_available() else 'cpu'}
encode_kwargs = {'normalize_embeddings': True} # set True to compute cosine similarity
model = HuggingFaceEmbeddings(
    model_name=model_name,
    model_kwargs=model_kwargs,
    encode_kwargs=encode_kwargs,
)
texts1 = ["胡子长得太快怎么办?", "在香港哪里买手表好"]
texts2 = ["胡子长得快怎么办?", "怎样使胡子不浓密!", "香港买手表哪里好", "在杭州手机到哪里买"]
embs1 = model.embed_documents(texts1)
embs2 = model.embed_documents(texts2)
embs1, embs2 = np.array(embs1), np.array(embs2)
# 计算两两相似度
similarity = embs1 @ embs2.T
print(similarity)
# 获取 texts1[i] 对应的最相似 texts2[j]
for i in range(len(texts1)):
    scores = []
    for j in range(len(texts2)):
        scores.append([texts2[j], similarity[i][j]])
    scores = sorted(scores, key=lambda x:x[1], reverse=True)
    print(f"查询文本:{texts1[i]}")
    for text2, score in scores:
        print(f"相似文本:{text2},打分:{score}")
    print()

HuggingFace Transformers

Dmeta-embedding 模型支持通过 HuggingFace Transformers 框架来加载推理:

pip install -U transformers
import torch
from transformers import AutoTokenizer, AutoModel
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)
def cls_pooling(model_output):
    return model_output[0][:, 0]
texts1 = ["胡子长得太快怎么办?", "在香港哪里买手表好"]
texts2 = ["胡子长得快怎么办?", "怎样使胡子不浓密!", "香港买手表哪里好", "在杭州手机到哪里买"]
tokenizer = AutoTokenizer.from_pretrained('DMetaSoul/Dmeta-embedding-zh-small')
model = AutoModel.from_pretrained('DMetaSoul/Dmeta-embedding-zh-small')
model.eval()
with torch.no_grad():
    inputs1 = tokenizer(texts1, padding=True, truncation=True, return_tensors='pt')
    inputs2 = tokenizer(texts2, padding=True, truncation=True, return_tensors='pt')
    model_output1 = model(**inputs1)
    model_output2 = model(**inputs2)
    embs1, embs2 = cls_pooling(model_output1), cls_pooling(model_output2)
    embs1 = torch.nn.functional.normalize(embs1, p=2, dim=1).numpy()
    embs2 = torch.nn.functional.normalize(embs2, p=2, dim=1).numpy()
# 计算两两相似度
similarity = embs1 @ embs2.T
print(similarity)
# 获取 texts1[i] 对应的最相似 texts2[j]
for i in range(len(texts1)):
    scores = []
    for j in range(len(texts2)):
        scores.append([texts2[j], similarity[i][j]])
    scores = sorted(scores, key=lambda x:x[1], reverse=True)
    print(f"查询文本:{texts1[i]}")
    for text2, score in scores:
        print(f"相似文本:{text2},打分:{score}")
    print()

Contact

您如果在使用过程中,遇到任何问题,欢迎前往讨论区建言献策。 您也可以联系我们:赵中昊 zhongh@dmetasoul.com, 肖文斌 xiaowenbin@dmetasoul.com, 孙凯 sunkai@dmetasoul.com 同时我们也开通了微信群,可扫码加入我们(人数超200了,先加管理员再拉进群),一起共建 AIGC 技术生态!

License

Dmeta-embedding 系列模型采用 Apache-2.0 License,开源模型可以进行免费商用私有部署。

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей