e5-gesn / README.md
malma0's picture
e5-base, дообученная на синтетических парах запрос↔норма ГЭСН
280d2d8 verified
|
Raw History Blame Contribute Delete
18.5 kB
metadata
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - dense
  - generated_from_trainer
  - dataset_size:10134
  - loss:CachedMultipleNegativesRankingLoss
  - loss:MultipleNegativesRankingLoss
base_model: intfloat/multilingual-e5-base
widget:
  - source_sentence: 'query: грунтовка стен квартиры'
    sentences:
      - >-
        passage: Отделочные работы. Окраска фасадов с люлек по подготовленной
        поверхности: силикатная. Ед. изм.: 100 м2
      - >-
        passage: Отделочные работы. Покрытие поверхностей грунтовкой глубокого
        проникновения: за 1 раз стен. Ед. изм.: 100 м2
      - >-
        passage: Отделочные работы. Покрытие поверхностей грунтовкой глубокого
        проникновения: за 2 раза стен. Ед. изм.: 100 м2
  - source_sentence: 'query: установ шкафных дверей'
    sentences:
      - >-
        passage: Деревянные конструкции. Антисептирование водными растворами:
        покрытий по фермам. Ед. изм.: 100 м2. Нанесение готового состава на
        поверхность
      - >-
        passage: Деревянные конструкции. Установка дверных блоков: антресольных.
        Ед. изм.: 10 шт. Установка и крепление блоков антресольных
      - >-
        passage: Деревянные конструкции. Установка дверных блоков: шкафных. Ед.
        изм.: 10 шт. Установка и крепление блоков дверных шкафных
  - source_sentence: 'query: пергаминовая обшивка стены 100м2'
    sentences:
      - >-
        passage: Деревянные конструкции. Обшивка каркасных стен: досками
        обшивки. Ед. изм.: 100 м2. Обшивка стен пергамином, досками. Обшивка
        углов и пересечений
      - >-
        passage: Деревянные конструкции. Обшивка каркасных стен: пергамином. Ед.
        изм.: 100 м2. Обшивка стен пергамином
      - >-
        passage: Отделочные работы. Огнезащитная пропитка текстильных (тканевых)
        покрытий. Ед. изм.: 100 м2. Огнезащитная пропитка текстильных покрытий
  - source_sentence: 'query: окраска решеток для дачи'
    sentences:
      - >-
        passage: Отделочные работы. Окраска фасадов с люлек с подготовкой
        поверхности: силикатная. Ед. изм.: 100 м2
      - >-
        passage: Отделочные работы. Масляная окраска металлических поверхностей:
        решеток, переплетов, труб диаметром менее 50 мм и т.п., количество
        окрасок 2. Ед. изм.: 100 м2
      - >-
        passage: Отделочные работы. Окраска масляными составами трубопроводов по
        изоляции. Ед. изм.: 100 м2
  - source_sentence: 'query: покрытие водными растворами'
    sentences:
      - >-
        passage: Деревянные конструкции. Антисептирование водными растворами:
        стен. Ед. изм.: 100 м2. Нанесение готового состава на поверхность
      - >-
        passage: Отделочные работы. Улучшенная окраска масляными составами по
        сборным конструкциям: стен, подготовленных под окраску. Ед. изм.: 100 м2
      - >-
        passage: Деревянные конструкции. Антисептирование водными растворами:
        покрытий по фермам. Ед. изм.: 100 м2. Нанесение готового состава на
        поверхность
pipeline_tag: sentence-similarity
library_name: sentence-transformers

SentenceTransformer based on intfloat/multilingual-e5-base

This is a sentence-transformers model finetuned from intfloat/multilingual-e5-base. It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, classification, clustering, and more.

Model Details

Model Description

  • Model Type: Sentence Transformer
  • Base model: intfloat/multilingual-e5-base
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity
  • Supported Modality: Text

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'transformer_task': 'feature-extraction', 'modality_config': {'text': {'method': 'forward', 'method_output_name': 'last_hidden_state'}}, 'module_output_name': 'token_embeddings', 'architecture': 'XLMRobertaModel'})
  (1): Pooling({'embedding_dimension': 768, 'pooling_mode': 'mean', 'include_prompt': True})
  (2): Normalize({})
)

Usage

Direct Usage (Sentence Transformers)

First install the Sentence Transformers library:

pip install -U sentence-transformers

Then you can load this model and run inference.

from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("malma0/e5-gesn")
# Run inference
sentences = [
    'query: покрытие водными растворами',
    'passage: Деревянные конструкции. Антисептирование водными растворами: покрытий по фермам. Ед. изм.: 100 м2. Нанесение готового состава на поверхность',
    'passage: Деревянные конструкции. Антисептирование водными растворами: стен. Ед. изм.: 100 м2. Нанесение готового состава на поверхность',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.5590, 0.3800],
#         [0.5590, 1.0000, 0.7719],
#         [0.3800, 0.7719, 1.0000]])

Training Details

Training Dataset

Unnamed Dataset

  • Size: 10,134 training samples
  • Columns: anchor, positive, and negative
  • Approximate statistics based on the first 100 samples:
    anchor positive negative
    type string string string
    modality text text text
    details
    • min: 8 tokens
    • mean: 12.45 tokens
    • max: 21 tokens
    • min: 27 tokens
    • mean: 34.68 tokens
    • max: 40 tokens
    • min: 30 tokens
    • mean: 47.42 tokens
    • max: 107 tokens
  • Samples:
    anchor positive negative
    query: обои на потолок passage: Отделочные работы. Оклейка обоями потолков. Ед. изм.: 100 м2 passage: Отделочные работы. Обивка дверей облицовочными материалами по войлоку. Ед. изм.: 100 м2
    query: поменять обои в квартире passage: Отделочные работы. Оклейка обоями потолков. Ед. изм.: 100 м2 passage: Отделочные работы. Обивка дверей облицовочными материалами по войлоку. Ед. изм.: 100 м2
    query: прораб обои потолки passage: Отделочные работы. Оклейка обоями потолков. Ед. изм.: 100 м2 passage: Отделочные работы. Оклейка обоями стен по монолитной штукатурке и бетону: простыми и средней плотности. Ед. изм.: 100 м2
  • Loss: CachedMultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim",
        "mini_batch_size": 32,
        "mini_batch_num_tokens": null,
        "gather_across_devices": false,
        "directions": [
            "query_to_doc"
        ],
        "partition_mode": "joint",
        "hardness_mode": null,
        "hardness_strength": 0.0
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • per_device_train_batch_size: 128
  • num_train_epochs: 1
  • learning_rate: 2e-05
  • warmup_steps: 0.1
  • fp16: True
  • seed: 0
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • per_device_train_batch_size: 128
  • num_train_epochs: 1
  • max_steps: -1
  • learning_rate: 2e-05
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: None
  • warmup_steps: 0.1
  • optim: adamw_torch_fused
  • optim_args: None
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • optim_target_modules: None
  • gradient_accumulation_steps: 1
  • average_tokens_across_devices: True
  • max_grad_norm: 1.0
  • label_smoothing_factor: 0.0
  • bf16: False
  • fp16: True
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • use_liger_kernel: False
  • liger_kernel_config: None
  • use_cache: False
  • neftune_noise_alpha: None
  • torch_empty_cache_steps: None
  • auto_find_batch_size: False
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • include_num_input_tokens_seen: no
  • log_level: passive
  • log_level_replica: warning
  • disable_tqdm: False
  • project: huggingface
  • trackio_space_id: None
  • trackio_bucket_id: None
  • trackio_static_space_id: None
  • per_device_eval_batch_size: 8
  • prediction_loss_only: True
  • eval_on_start: False
  • eval_do_concat_batches: True
  • eval_use_gather_object: False
  • eval_accumulation_steps: None
  • include_for_metrics: []
  • batch_eval_metrics: False
  • save_only_model: False
  • save_on_each_node: False
  • enable_jit_checkpoint: False
  • push_to_hub: False
  • hub_private_repo: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_always_push: False
  • hub_revision: None
  • load_best_model_at_end: False
  • ignore_data_skip: False
  • restore_callback_states_from_checkpoint: False
  • full_determinism: False
  • seed: 0
  • data_seed: None
  • use_cpu: False
  • accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • parallelism_config: None
  • dataloader_drop_last: False
  • dataloader_num_workers: 0
  • dataloader_pin_memory: True
  • dataloader_persistent_workers: False
  • dataloader_prefetch_factor: None
  • dataloader_multiprocessing_context: None
  • dataloader_in_order: True
  • remove_unused_columns: True
  • label_names: None
  • train_sampling_strategy: random
  • length_column_name: length
  • ddp_find_unused_parameters: None
  • ddp_bucket_cap_mb: None
  • ddp_broadcast_buffers: False
  • ddp_static_graph: None
  • ddp_backend: None
  • ddp_timeout: 1800
  • fsdp: None
  • fsdp_config: None
  • deepspeed: None
  • debug: []
  • skip_memory_metrics: True
  • do_predict: False
  • resume_from_checkpoint: None
  • local_rank: -1
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional
  • router_mapping: {}
  • learning_rate_mapping: {}
  • warmup_ratio: None

Training Logs

Epoch Step Training Loss
0.125 10 4.3797
0.25 20 2.6564
0.375 30 1.9438
0.5 40 1.7043
0.625 50 1.5870
0.75 60 1.5707
0.875 70 1.4605
1.0 80 1.5043

Training Time

  • Training: 6.4 minutes

Framework Versions

  • Python: 3.13.15
  • Sentence Transformers: 5.7.0
  • Transformers: 5.16.1
  • PyTorch: 2.11.0+cu128
  • Accelerate: 1.14.0
  • Datasets: 4.8.5
  • Tokenizers: 0.23.1

Additional Resources

Citation

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",
}

CachedMultipleNegativesRankingLoss

@misc{gao2021scaling,
    title={Scaling Deep Contrastive Learning Batch Size under Memory Limited Setup},
    author={Luyu Gao and Yunyi Zhang and Jiawei Han and Jamie Callan},
    year={2021},
    eprint={2101.06983},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}

MultipleNegativesRankingLoss

@misc{oord2019representationlearningcontrastivepredictive,
      title={Representation Learning with Contrastive Predictive Coding},
      author={Aaron van den Oord and Yazhe Li and Oriol Vinyals},
      year={2019},
      eprint={1807.03748},
      archivePrefix={arXiv},
      primaryClass={cs.LG},
      url={https://arxiv.org/abs/1807.03748},
}