模型概述
模型特點
模型能力
使用案例
🚀 微調後的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}
}







