/ Модель

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

Контекст
512 токенов
Параметры
129 млн
Архитектура
bert · dense
Опубликована
4 сен 2023

piccolo-base-zh

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

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

444скачиваний за 30 дней36лайковвеса обновлены8 сен 2023

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

  • LCQMC

    main_score

    Результат

    0,754

    MTEB

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

  • ATEC

    main_score

    Результат

    0,5259

    MTEB

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

  • CovidRetrieval

    main_score

    Результат

    0,845

    MTEB

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

  • T2Reranking

    main_score

    Результат

    0,6646

    MTEB

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

  • JDReview

    main_score

    Результат

    0,8426

    MTEB

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

  • CmedqaRetrieval

    main_score

    Результат

    0,4203

    MTEB

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

  • T2Retrieval

    main_score

    Результат

    0,8238

    MTEB

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

  • AmazonCounterfactualClassification

    main_score

    Результат

    0,5994

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

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

  • PawsXPairClassification

    main_score

    Результат

    0,5273

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

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

  • PAWSX

    main_score

    Результат

    0,3158

    MTEB

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

  • ThuNewsClusteringP2P

    main_score

    Результат

    0,6144

    MTEB

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

  • BQ

    main_score

    Результат

    0,6268

    MTEB

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

  • BlurbsClusteringP2P

    main_score

    Результат

    0,1093

    MTEB

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

  • MTOPDomainClassification

    main_score

    Результат

    0,6223

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

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

  • MassiveScenarioClassification

    main_score

    Результат

    0,4652

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

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

  • MTOPIntentClassification

    main_score

    Результат

    0,4673

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

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

  • QBQTC

    main_score

    Результат

    0,3648

    MTEB

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

  • MassiveIntentClassification

    main_score

    Результат

    0,4312

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

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

  • AmazonReviewsClassification

    main_score

    Результат

    0,2711

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

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

  • FalseFriendsGermanEnglish

    main_score

    Результат

    0,4851

    MTEB

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

  • CLSClusteringP2P

    main_score

    Результат

    0,3836

    MTEB

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

  • CLSClusteringS2S

    main_score

    Результат

    0,3565

    MTEB

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

  • OnlineShopping

    main_score

    Результат

    0,8993

    MTEB

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

  • TenKGnadClusteringP2P

    main_score

    Результат

    0,2259

    MTEB

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

  • STS22

    main_score

    Результат

    0,6651

    MTEB

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

  • MedicalRetrieval

    main_score

    Результат

    0,5809

    MTEB

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

  • DuRetrieval

    main_score

    Результат

    0,8826

    MTEB

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

  • MMarcoReranking

    main_score

    Результат

    0,2887

    MTEB

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

  • EcomRetrieval

    main_score

    Результат

    0,6288

    MTEB

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

  • CMedQAv2-reranking

    main_score

    Результат

    0,8615

    MTEB

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

  • MultilingualSentiment

    main_score

    Результат

    0,7025

    MTEB

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

  • Cmnli

    main_score

    Результат

    0,7478

    MTEB

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

  • ThuNewsClusteringS2S

    main_score

    Результат

    0,5302

    MTEB

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

  • Waimai

    main_score

    Результат

    0,847

    MTEB

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

  • Ocnli

    main_score

    Результат

    0,6557

    MTEB

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

  • BlurbsClusteringS2S

    main_score

    Результат

    0,0795

    MTEB

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

  • STSB

    main_score

    Результат

    0,706

    MTEB

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

  • TenKGnadClusteringS2S

    main_score

    Результат

    0,0759

    MTEB

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

  • VideoRetrieval

    main_score

    Результат

    0,7354

    MTEB

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

  • TNews

    main_score

    Результат

    0,4681

    MTEB

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

  • MMarcoRetrieval

    main_score

    Результат

    0,7792

    MTEB

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

  • CMedQAv1-reranking

    main_score

    Результат

    0,8525

    MTEB

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

  • AFQMC

    main_score

    Результат

    0,514

    MTEB

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

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

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

piccolo-base-zh — текстовая embedding-модель, обученная General Model Group компании SenseTime Research. Модель основана на архитектуре BERT, содержит 129,5 млн параметров и принимает последовательности длиной до 512 токенов.

Модель предназначена для получения векторных представлений китайских текстов и подходит для семантического поиска, поиска по запросам и документам, сравнения смысловой близости, классификации и кластеризации. Обучение проходило в два этапа: на 400 млн слабонаблюдаемых пар текстов с контрастивной функцией потерь, затем на 20 млн размеченных пар с трудными отрицательными примерами. Авторы приводят результаты оценки семейства piccolo на C-MTEB; размерность векторов piccolo-base-zh — 768.

Модель рассчитана прежде всего на китайский язык. Контекст ограничен 512 токенами; для запросов при описанном авторами дообучении использовалась длина до 64 токенов. В README и метаданных лицензия не приведена, поэтому условия использования по этим источникам установить нельзя.

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

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

Ограничения

Поддержка ориентирована на китайский язык, а максимальная длина последовательности составляет 512 токенов. Лицензия в предоставленных источниках не указана.

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

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

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

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

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

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

Открыть на Hugging Face

piccolo-base-zh

piccolo是一个通用embedding模型(中文), 由来自商汤科技的通用模型组完成训练。piccolo借鉴了E5以及GTE的训练流程,采用了两阶段的训练方式。 在第一阶段中,我们搜集和爬取了4亿的中文文本对(可视为弱监督文本对数据),并采用二元组的softmax对比学习损失来优化模型。 在第二阶段中,我们搜集整理了2000万人工标注的中文文本对(精标数据),并采用带有难负样本的三元组的softmax对比学习损失来帮助模型更好地优化。 目前,我们提供了piccolo-base-zh和piccolo-large-zh两个模型。

piccolo is a general text embedding model(chinese), powered by General Model Group from SenseTime Research. Inspired from E5 and GTE, piccolo is trained using a two stage pipeline. On the first stage, we collect and crawl 400 million weakly supervised Chinese text pairs from the Internet, and train the model with the pair(text and text pos) softmax contrastive loss. On the second stage, we collect 20 million human labeled chinese text pairs dataset, and finetune the model with tiplet (text, text_pos, text_neg) contrastive loss. Currently here we offer two different sizes of models, including piccolo-base-zh, piccolo-large-zh.

Metric

我们将piccolo与其他的开源embedding模型在CMTEB榜单上进行了比较,请参考CMTEB榜单。我们在eval文件夹中提供了复现结果的脚本。

We compared the performance of the piccolo with other embedding models on the C-MTEB benchmark. please refer to the C-MTEB leaderboard. we provide scripts in "eval" folder for results reproducing.

Model NameModel Size (GB)DimensionSequence LengthAverage (35)Classification (9)Clustering (4)Pair Classification (2)Reranking (4)Retrieval (8)STS (8)
[piccolo-large-zh]0.65102451264.1167.0347.0478.3865.9870.9358.02
[bge-large-zh]1.3102451263.9668.3248.3978.9465.1171.5254.98
[piccolo-base-zh]0.276851263.6666.9847.1276.6166.6871.255.9
[bge-large-zh-no-instruct]1.3102451263.468.5850.0176.7764.970.5453
[bge-base-zh]0.4176851262.867.0747.6477.564.9169.5354.12

Usage

在sentence-transformer package中可以很容易地调用piccolo模型

# for s2s dataset, you can use piccolo as below
# 对于短对短数据集,下面是通用的使用方式
from sentence_transformers import SentenceTransformer
sentences = ["数据1", "数据2"]
model = SentenceTransformer('sensenova/piccolo-base-zh')
embeddings_1 = model.encode(sentences, normalize_embeddings=True)
embeddings_2 = model.encode(sentences, normalize_embeddings=True)
similarity = embeddings_1 @ embeddings_2.T
print(similarity)

# for s2p dataset, we recommend to add instruction for passage retrieval
# 对于短对长数据集,我们推荐添加instruction,来帮助模型更好地进行检索。
from sentence_transformers import SentenceTransformer
queries = ['query_1', 'query_2']
passages = ["doc_1", "doc_2"]

model = SentenceTransformer('sensenova/piccolo-base-zh')
q_embeddings = model.encode(["查询:" + q for q in queries], normalize_embeddings=True)
p_embeddings = model.encode(["结果:" + p for p in passages], normalize_embeddings=True)
scores = q_embeddings @ p_embeddings.T

Training Detail

pretrain

pretrain 通常不需要太大的max length, 推荐128。小的max length用以提高batch size,加快训练速度,从而适应大规模数据。 pretrain 损失我们采用二元组contrastive loss,不加入hard negative, 直接采用inbatch negative,在实际训练中,我们使用了32张40G A100进行训练,单卡的batch size为1024。

Pretrain usually does not require a large max length, and 128 is recommended. A small max length is used to increase batch size and speed up training to adapt to large-scale data. We use binary contrastive loss for pretrain loss, without adding hard negative, and directly use inbatch negative. In actual training, we used 32 40G A100 for training, and the batch size of a single card is 1024.

finetune

finetune 通常会将 max length扩增到512。用以适应更大长度的文本输入,finetune时会多sample S2P的数据,以增强模型在retrieval任务上的性能。 finetune 损失采用三元组contrastive loss,加入hard negative,neg num通常设置为2-7,loss计算方式可以参考GTE里的improved contrastive loss。 注意: 我们给query和passage设置了不同的max length,query的max length始终保持在64。

For finetuning, we usually expands the max length to 512. To adapt to larger length text input, finetune will sample more S2P data to enhance the performance of the model on retrieval tasks. The finetune loss uses triple contrastive loss, adding hard negative. Neg num is usually set to 2-7. The loss calculation method can refer to the improved contrastive loss in GTE. Note: We set different max lengths for query and passage, and the max length of query is always kept at 64.

Others

一些有用的trick:

  1. 减小显存的方式: fp16 + gradient checkpointing + ZERO STAGE1 (stage2 不支持双塔结构下的gradient checkpointing) 相关issue见: https://github.com/microsoft/DeepSpeed/issues/988
  2. dataset sampler,我们采用了M3E的dataset sampler,用以保证每个batch里的样本均来自于一个dataset,负样本更有价值。
  3. instruction。instruction在我们的实验中对retrieval任务有非常大的性能提升,我们在每个训练样本前都加入'查询: '和'结果: '这样的instruction。

some useful tricks:

  1. The way to reduce memory usage: fp16 + gradient checkpointing + ZERO STAGE1 (stage2 does not support gradient checkpointing under the double-tower structure) For related issues, see: https://github.com/microsoft/DeepSpeed/issues/ 988
  2. Dataset sampler, we use M3E's dataset sampler to ensure that the samples in each batch come from a dataset, and negative samples are more valuable.
  3. instruction. Instruction has greatly improved the performance of the retrieval task in our experiments. We added instructions like 'query: ' and 'result: ' before each training sample.

Reference

这里我们列出了我们参考过的embedding项目和论文

  1. M3E。非常棒的中文开源embedding项目,收集和整理了较多的中文高质量数据集,uniem也是一个不错的框架。
  2. Text2vec。另一个一个非常棒的中文开源embedding项目。
  3. FlagEmbedding。智源AI开源的embedding模型,收集和整理了CMTEB benchmark,填补了中文embedding系统性评测的空缺。
  4. E5。来自微软的一篇文章,有非常详细的消融实验以及数据处理过滤细节。
  5. GTE。一篇来自阿里达摩的embedding论文。

Here we list the embedding projects and papers we have referenced

  1. M3E. A great Chinese open source embedding project that collects and organizes a large number of high-quality Chinese datasets. Uniem is also a good framework.
  2. Text2vec. Another great Chinese open source embedding project.
  3. Flag Embedding. Zhiyuan AI’s open source embedding model.They collect and organize CMTEB benchmark, filling the gap in systematic evaluation of Chinese embeddings.
  4. E5. Powerd by microsoft,producing very detailed ablation experiments and data processing filtering details.
  5. GTE. An embedding paper from Alibaba Damo.

License

Piccolo 使用 MIT License,免费商用。 Piccolo use MIT License. It can be used for commercial purposes free of charge.

Acknowledgement

piccolo 由来自商汤科技研究院的通用模型组完成训练,Jinkin 完成了代码实现和模型训练, Jinkin, CCCCxxx 一起完成了数据搜集、整理和评测工作. 项目由 Gaomengya 和 chaorenwu111 主导。 同时,感谢lux0933以及yangkai001的交流与讨论,提供了非常多有用的建议。

piccolo is powered by Genral Model group from SenseTime Research. Jinkin complete code implementation and model training. Jinkin, CCCCxxx completed the data collection、processing and model evaluation together. Project is led by Gaomengya and chaorenwu111. At the same time, thank lux0933 and yangkai001 for the discussion, which provide a lot of useful suggestions.

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей