模型简介
模型特点
模型能力
使用案例
🚀 微调后的Nomic v2
这是一个基于 sentence-transformers 框架,在JSON数据集上对 nomic-ai/nomic-embed-text-v2-moe 模型进行微调得到的模型。它可以将句子和段落映射到一个768维的密集向量空间,可用于语义文本相似度计算、语义搜索、释义挖掘、文本分类、聚类等任务。
🚀 快速开始
直接使用(Sentence Transformers)
首先安装Sentence Transformers库:
pip install -U sentence-transformers
然后你可以加载这个模型并进行推理:
from sentence_transformers import SentenceTransformer
# 从🤗 Hub下载模型
model = SentenceTransformer("DGSMsRzJ6xC2JthtHG9W/nomic-v2-tuned-1")
# 进行推理
sentences = [
'Если гражданин, ограниченный в дееспособности из-за психического расстройства, совершил сделку, повлекшую имущественные потери, кто несет ответственность за причиненный ущерб и на каких основаниях?',
'<p>Гражданин, ограниченный судом в дееспособности по основаниям, предусмотренным настоящим пунктом, может распоряжаться выплачиваемыми на него алиментами, социальной пенсией, возмещением вреда здоровью и в связи со смертью кормильца и иными предоставляемыми на его содержание выплатами с письменного согласия попечителя, за исключением выплатами, которые указаны в подпункте 1 пункта 2 статьи 26 настоящего Кодекса и которыми он вправе распоряжаться самостоятельно. Такой гражданин вправе распоряжаться указанными выплатами в течение срока, определенного попечителем. Распоряжение указанными выплатами может быть прекращено до истечения данного срока по решению попечителя.</p><p>При наличии достаточных оснований суд по ходатайству попечителя либо органа опеки и попечительства может ограничить или лишить такого гражданина права самостоятельно распоряжаться своими доходами, указанными в подпункте 1 пункта 2 статьи 26 настоящего Кодекса.</p><p>Гражданин, дееспособность которого ограничена вследствие психического расстройства, самостоятельно несет имущественную ответственность по сделкам, совершенным им в соответствии с настоящей статьей. За причиненный им вред такой гражданин несет ответственность в соответствии с настоящим Кодексом.</p><p>(Пункт в редакции Федерального закона <a href="102162486">от 30.12.2012 № 302-ФЗ</a>)</p><p>3. Если основания, в силу которых гражданин был ограничен в дееспособности, отпали, суд отменяет ограничение его дееспособности. На основании решения суда отменяется установленное над гражданином попечительство.</p><p>Если психическое состояние гражданина, который вследствие психического расстройства был в соответствии с пунктом 2 настоящей статьи ограничен в дееспособности, изменилось, суд признает его недееспособным в соответствии со статьей 29 настоящего Кодекса или отменяет ограничение его дееспособности.</p><p>(Дополнение пунктом - Федеральный закон <a href="102162486">от 30.12.2012 № 302-ФЗ</a>)</p>',
'<p>1. По договору складского хранения товарный склад (хранитель) обязуется за вознаграждение хранить товары, переданные ему товаровладельцем (поклажедателем), и возвратить эти товары в сохранности.</p><p>Товарным складом признается организация, осуществляющая в качестве предпринимательской деятельности хранение товаров и оказывающая связанные с хранением услуги.</p><p>2. Письменная форма договора складского хранения считается соблюденной, если его заключение и принятие товара на склад удостоверены складским документом (статья 912).</p>',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]
# 获取嵌入向量的相似度得分
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
✨ 主要特性
该模型具有以下特性:
- 将句子和段落映射到768维的密集向量空间。
- 可用于语义文本相似度计算、语义搜索、释义挖掘、文本分类、聚类等多种自然语言处理任务。
📚 详细文档
模型详情
模型描述
属性 | 详情 |
---|---|
模型类型 | 句子转换器(Sentence Transformer) |
基础模型 | nomic-ai/nomic-embed-text-v2-moe |
最大序列长度 | 512个标记 |
输出维度 | 768维 |
相似度函数 | 余弦相似度 |
训练数据集 | json |
语言 | 英语 |
许可证 | MIT |
模型来源
- 文档:Sentence Transformers文档
- 仓库:GitHub上的Sentence Transformers
- Hugging Face:Hugging Face上的Sentence Transformers
完整模型架构
SentenceTransformer(
(0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: NomicBertModel
(1): Pooling({'word_embedding_dimension': 768, '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})
(2): Normalize()
)
评估
指标
信息检索
- 数据集:
dim_768
、dim_512
和dim_256
- 评估方法:使用
InformationRetrievalEvaluator
进行评估
指标 | dim_768 | dim_512 | dim_256 |
---|---|---|---|
cosine_accuracy@1 | 0.0068 | 0.0075 | 0.0068 |
cosine_accuracy@3 | 0.0832 | 0.0737 | 0.075 |
cosine_accuracy@5 | 0.4625 | 0.4434 | 0.4222 |
cosine_accuracy@10 | 0.7933 | 0.7851 | 0.7701 |
cosine_precision@1 | 0.0068 | 0.0075 | 0.0068 |
cosine_precision@3 | 0.0277 | 0.0246 | 0.025 |
cosine_precision@5 | 0.0925 | 0.0887 | 0.0844 |
cosine_precision@10 | 0.0793 | 0.0785 | 0.077 |
cosine_recall@1 | 0.0068 | 0.0075 | 0.0068 |
cosine_recall@3 | 0.0832 | 0.0737 | 0.075 |
cosine_recall@5 | 0.4625 | 0.4434 | 0.4222 |
cosine_recall@10 | 0.7933 | 0.7851 | 0.7701 |
cosine_ndcg@10 | 0.3164 | 0.312 | 0.3048 |
cosine_mrr@10 | 0.1717 | 0.1686 | 0.164 |
cosine_map@100 | 0.1842 | 0.1814 | 0.1769 |
训练详情
训练数据集
json
- 数据集:json
- 大小:13,186个训练样本
- 列:
anchor
和positive
- 基于前1000个样本的近似统计信息:
| | anchor | positive |
| ---- | ---- | ---- |
| 类型 | 字符串 | 字符串 |
| 详情 |
- 最小值:19个标记
- 平均值:59.74个标记
- 最大值:162个标记
- 最小值:40个标记
- 平均值:257.8个标记
- 最大值:512个标记
- 样本:
| anchor | positive |
| ---- | ---- |
|
Предположим, работник должника действовал вопреки указаниям руководства и тем самым причинил ущерб кредитору. Изменит ли это подход к определению ответственности должника?
|
| |Действия работников должника по исполнению его обязательства считаются действиями должника. Должник отвечает за эти действия, если они повлекли неисполнение или ненадлежащее исполнение обязательства.
Композитор Петров заключил договор с аккредитованной организацией «Мелодия» на управление правами на его произведения. Через год Петров решил передать права на управление одной конкретной песней новой организации «Звук». Какие действия должен предпринять Петров, чтобы передать права на управление песней организации «Звук», и какие обязательства при этом возникают у «Мелодии»?
|
| |Наличие аккредитованной организации не препятствует созданию других организаций по управлению правами на коллективной основе, в том числе в сферах коллективного управления, указанных в пункте 1 настоящей статьи. Такие организации вправе заключать договоры с пользователями только в интересах правообладателей, предоставивших им полномочия по управлению правами в порядке, предусмотренном пунктом 3 статьи 1242 настоящего Кодекса.
4. Правообладатель, не заключивший с аккредитованной организацией договора о передаче полномочий по управлению правами (пункт 3 настоящей статьи), вправе в любой момент полностью или частично отказаться от управления этой организацией его правами. Правообладатель должен письменно уведомить о своем решении аккредитованную организацию. В случае, если правообладатель намеревается отказаться от управления аккредитованной организацией только частью авторских или смежных прав и (или) объектов этих прав, он должен представить ей перечень таких исключаемых прав и...
Мария получила цифровое право на использование музыкального трека в онлайн-сервисе. Правила сервиса не определяют, кто является обладателем цифрового права в случае смерти пользователя. Мария умерла. Кто будет считаться обладателем цифрового права на музыкальный трек после смерти Марии, согласно тексту статьи?
|
|1. Цифровыми правами признаются названные в таком качестве в законе обязательственные и иные права, содержание и условия осуществления которых определяются в соответствии с правилами информационной системы, отвечающей установленным законом признакам. Осуществление, распоряжение, в том числе передача, залог, обременение цифрового права другими способами или ограничение распоряжения цифровым правом возможны только в информационной системе без обращения к третьему лицу.
2. Если иное не предусмотрено законом, обладателем цифрового права признается лицо, которое в соответствии с правилами информационной системы имеет возможность распоряжаться этим правом. В случаях и по основаниям, которые предусмотрены законом, обладателем цифрового права признается иное лицо.
3. Переход цифрового права на основании сделки не требует согласия лица, обязанного по такому цифровому праву.
(Дополнение статьей - Федеральный закон от 18.03.2019 № 34-ФЗ)
- 损失函数:
MatryoshkaLoss
,参数如下:
{
"loss": "MultipleNegativesRankingLoss",
"matryoshka_dims": [
768,
512,
256
],
"matryoshka_weights": [
1,
1,
1
],
"n_dims_per_step": -1
}
训练超参数
非默认超参数
eval_strategy
:epochper_device_train_batch_size
:32per_device_eval_batch_size
:16gradient_accumulation_steps
:16learning_rate
:2e-05num_train_epochs
:4lr_scheduler_type
:cosinewarmup_ratio
:0.1bf16
:Truetf32
:Trueload_best_model_at_end
:Trueoptim
:adamw_torch_fusedbatch_sampler
:no_duplicates
所有超参数
点击展开
overwrite_output_dir
: Falsedo_predict
: Falseeval_strategy
: epochprediction_loss_only
: Trueper_device_train_batch_size
: 32per_device_eval_batch_size
: 16per_gpu_train_batch_size
: Noneper_gpu_eval_batch_size
: Nonegradient_accumulation_steps
: 16eval_accumulation_steps
: Nonetorch_empty_cache_steps
: Nonelearning_rate
: 2e-05weight_decay
: 0.0adam_beta1
: 0.9adam_beta2
: 0.999adam_epsilon
: 1e-08max_grad_norm
: 1.0num_train_epochs
: 4max_steps
: -1lr_scheduler_type
: cosinelr_scheduler_kwargs
: {}warmup_ratio
: 0.1warmup_steps
: 0log_level
: passivelog_level_replica
: warninglog_on_each_node
: Truelogging_nan_inf_filter
: Truesave_safetensors
: Truesave_on_each_node
: Falsesave_only_model
: Falserestore_callback_states_from_checkpoint
: Falseno_cuda
: Falseuse_cpu
: Falseuse_mps_device
: Falseseed
: 42data_seed
: Nonejit_mode_eval
: Falseuse_ipex
: Falsebf16
: Truefp16
: Falsefp16_opt_level
: O1half_precision_backend
: autobf16_full_eval
: Falsefp16_full_eval
: Falsetf32
: Truelocal_rank
: 0ddp_backend
: Nonetpu_num_cores
: Nonetpu_metrics_debug
: Falsedebug
: []dataloader_drop_last
: Falsedataloader_num_workers
: 0dataloader_prefetch_factor
: Nonepast_index
: -1disable_tqdm
: Falseremove_unused_columns
: Truelabel_names
: Noneload_best_model_at_end
: Trueignore_data_skip
: Falsefsdp
: []fsdp_min_num_params
: 0fsdp_config
: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}fsdp_transformer_layer_cls_to_wrap
: Noneaccelerator_config
: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}deepspeed
: Nonelabel_smoothing_factor
: 0.0optim
: adamw_torch_fusedoptim_args
: Noneadafactor
: Falsegroup_by_length
: Falselength_column_name
: lengthddp_find_unused_parameters
: Noneddp_bucket_cap_mb
: Noneddp_broadcast_buffers
: Falsedataloader_pin_memory
: Truedataloader_persistent_workers
: Falseskip_memory_metrics
: Trueuse_legacy_prediction_loop
: Falsepush_to_hub
: Falseresume_from_checkpoint
: Nonehub_model_id
: Nonehub_strategy
: every_savehub_private_repo
: Falsehub_always_push
: Falsegradient_checkpointing
: Falsegradient_checkpointing_kwargs
: Noneinclude_inputs_for_metrics
: Falseeval_do_concat_batches
: Truefp16_backend
: autopush_to_hub_model_id
: Nonepush_to_hub_organization
: Nonemp_parameters
:auto_find_batch_size
: Falsefull_determinism
: Falsetorchdynamo
: Noneray_scope
: lastddp_timeout
: 1800torch_compile
: Falsetorch_compile_backend
: Nonetorch_compile_mode
: Nonedispatch_batches
: Nonesplit_batches
: Noneinclude_tokens_per_second
: Falseinclude_num_input_tokens_seen
: Falseneftune_noise_alpha
: Noneoptim_target_modules
: Nonebatch_eval_metrics
: Falseeval_on_start
: Falseeval_use_gather_object
: Falseprompts
: Nonebatch_sampler
: no_duplicatesmulti_dataset_batch_sampler
: proportional
训练日志
轮次 | 步数 | 训练损失 | dim_768_cosine_ndcg@10 | dim_512_cosine_ndcg@10 | dim_256_cosine_ndcg@10 |
---|---|---|---|---|---|
0.3874 | 10 | 0.7904 | - | - | - |
0.7748 | 20 | 0.3376 | - | - | - |
0.9685 | 25 | - | 0.3066 | 0.3046 | 0.2903 |
1.1622 | 30 | 0.2443 | - | - | - |
1.5496 | 40 | 0.1593 | - | - | - |
1.9370 | 50 | 0.1378 | - | - | - |
1.9758 | 51 | - | 0.3164 | 0.3133 | 0.3031 |
2.3245 | 60 | 0.1064 | - | - | - |
2.7119 | 70 | 0.0956 | - | - | - |
2.9831 | 77 | - | 0.3159 | 0.3141 | 0.3034 |
3.0993 | 80 | 0.0915 | - | - | - |
3.4867 | 90 | 0.0847 | - | - | - |
3.8741 | 100 | 0.0885 | 0.3164 | 0.312 | 0.3048 |
注:加粗的行表示保存的检查点。
框架版本
- Python:3.11.11
- Sentence Transformers:3.4.1
- Transformers:4.43.0
- PyTorch:2.6.0+cu124
- Accelerate:1.3.0
- Datasets:3.3.2
- Tokenizers:0.19.1
📄 许可证
该模型使用MIT许可证。
📖 引用
BibTeX
Sentence Transformers
@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",
}
MatryoshkaLoss
@misc{kusupati2024matryoshka,
title={Matryoshka Representation Learning},
author={Aditya Kusupati and Gantavya Bhatt and Aniket Rege and Matthew Wallingford and Aditya Sinha and Vivek Ramanujan and William Howard-Snyder and Kaifeng Chen and Sham Kakade and Prateek Jain and Ali Farhadi},
year={2024},
eprint={2205.13147},
archivePrefix={arXiv},
primaryClass={cs.LG}
}
MultipleNegativesRankingLoss
@misc{henderson2017efficient,
title={Efficient Natural Language Response Suggestion for Smart Reply},
author={Matthew Henderson and Rami Al-Rfou and Brian Strope and Yun-hsuan Sung and Laszlo Lukacs and Ruiqi Guo and Sanjiv Kumar and Balint Miklos and Ray Kurzweil},
year={2017},
eprint={1705.00652},
archivePrefix={arXiv},
primaryClass={cs.CL}
}







