Abdelkareem's picture
Upload folder using huggingface_hub
4a8c0a7 verified
|
Raw
History Blame
16.1 kB
metadata
tags:
  - sentence-transformers
  - sparse-encoder
  - sparse
  - splade
  - generated_from_trainer
  - dataset_size:104550
  - loss:SpladeLoss
  - loss:SparseMultipleNegativesRankingLoss
  - loss:FlopsLoss
base_model: distilbert/distilbert-base-multilingual-cased
widget:
  - text: >-
      يُعتبر التأثير الأوروبي على الثقافة اليابانية في القرن التاسع عشر أمرًا
      هامًا في فهم تاريخ البلاد.
  - text: |2-


       يعد النقد الأدبي أداة أساسية في فهم التاريخ الثقافي، حيث يعكس التغيرات الاجتماعية والثقافية التي حدثت عبر العصور.
  - text: >-
      لا أعتقد أن هناك أي تأثير لصالح المصممة الداخلية الإيطالية إيلينا فرونتزي
      على هذا النوع من التصاميم.
  - text: كيف يؤثر النقد الأدبي على التفاعل الاجتماعي؟
  - text: |2-


       يعد النقد الأدبي أداة أساسية في فهم التاريخ الثقافي، حيث يساعد على تحليل وتفسير الأعمال الفنية والثقافية من خلال منظور تاريخي.
datasets:
  - oddadmix/arabic-triplets-large
pipeline_tag: feature-extraction
library_name: sentence-transformers

SPLADE Sparse Encoder

This is a SPLADE Sparse Encoder model finetuned from distilbert/distilbert-base-multilingual-cased on the arabic-triplets-large dataset using the sentence-transformers library. It maps sentences & paragraphs to a 119547-dimensional sparse vector space and can be used for semantic search and sparse retrieval.

Model Details

Model Description

Model Sources

Full Model Architecture

SparseEncoder(
  (0): Transformer({'transformer_task': 'fill-mask', 'modality_config': {'text': {'method': 'forward', 'method_output_name': 'logits'}}, 'module_output_name': 'token_embeddings', 'architecture': 'DistilBertForMaskedLM'})
  (1): SpladePooling({'pooling_strategy': 'max', 'activation_function': 'relu', 'embedding_dimension': 119547})
)

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 SparseEncoder

# Download from the 🤗 Hub
model = SparseEncoder("sparse_encoder_model_id")
# Run inference
sentences = [
    'ما هي أهمية النقد الأدبي في فهم التاريخ الثقافي؟',
    '\n\n يعد النقد الأدبي أداة أساسية في فهم التاريخ الثقافي، حيث يساعد على تحليل وتفسير الأعمال الفنية والثقافية من خلال منظور تاريخي.',
    'تُعتبر اللغة العربية لغة قديمة ومتنوعة، وتمثل جزءًا هامًا من تراث البشرية.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 119547]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[30.0560, 33.2675,  8.7584],
#         [33.2675, 72.6030, 13.4705],
#         [ 8.7584, 13.4704, 75.8345]])

Training Details

Training Dataset

arabic-triplets-large

  • Dataset: arabic-triplets-large at fa99ede
  • Size: 104,550 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: 12 tokens
    • mean: 18.6 tokens
    • max: 33 tokens
    • min: 26 tokens
    • mean: 57.26 tokens
    • max: 142 tokens
    • min: 18 tokens
    • mean: 47.38 tokens
    • max: 120 tokens
  • Samples:
    anchor positive negative
    ما هي أهمية التلال والمناطق الجبلية في البيئة؟

    تعتبر التلال والمناطق الجبلية من أهم عناصر البيئة التي تؤثر بشكل كبير على توازن النظام الإيكولوجي.
    يعتبر النشاط السياسي في البلدان الصغيرة من الأمور التي تتطلب إدارة شاملة ومتكاملة.
    كيف تؤثر التلال على الرياح والهطول المطر؟

    يؤثر التلال على الرياح والهطول المطر من خلال تأثيرهم على توزيع الضغط الجوي، مما يؤدي إلى تغييرات في اتجاه وسرعة الرياح وتواتر الهطول.
    إنّ الأنشطة الزراعية في المناطق الجبلية تعتبر من أهمّ العوامل التي تساهم في تحسين جودة الحياة في هذه المناطق، ولكنها لا تؤثر بشكل مباشر على الرياح والهطول المطر.
    ما هي أنواع التلال المختلفة؟ (جبال، هضاب، منحدرات)

    هناك ثلاثة أنواع رئيسية للتلاءم هي الجبال، الهضاب، والمنحدرات.
    الإدارة البيئية تعتبر من الأنشطة التي لها تأثير كبير على البيئة.
  • Loss: SpladeLoss with these parameters:
    {
        "loss": "SparseMultipleNegativesRankingLoss(scale=1.0, similarity_fct='dot_score', gather_across_devices=False, directions=('query_to_doc',), partition_mode='joint', hardness_mode=None, hardness_strength=0.0)",
        "document_regularizer_weight": 3e-05,
        "query_regularizer_weight": 5e-05
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • per_device_train_batch_size: 16
  • num_train_epochs: 1
  • learning_rate: 2e-05
  • gradient_accumulation_steps: 4
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • per_device_train_batch_size: 16
  • num_train_epochs: 1
  • max_steps: -1
  • learning_rate: 2e-05
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: None
  • warmup_steps: 0
  • 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: 4
  • average_tokens_across_devices: True
  • max_grad_norm: 1.0
  • label_smoothing_factor: 0.0
  • bf16: False
  • fp16: False
  • 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: trackio
  • 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: 42
  • 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
  • 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_backend: None
  • ddp_timeout: 1800
  • fsdp: []
  • fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
  • deepspeed: None
  • debug: []
  • skip_memory_metrics: True
  • do_predict: False
  • resume_from_checkpoint: None
  • warmup_ratio: None
  • local_rank: -1
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional
  • router_mapping: {}
  • learning_rate_mapping: {}

Training Logs

Epoch Step Training Loss
0.3060 500 7.9967
0.6121 1000 0.0165

Training Time

  • Training: 16.7 minutes

Framework Versions

  • Python: 3.12.3
  • Sentence Transformers: 5.5.1
  • Transformers: 5.5.0
  • PyTorch: 2.12.0+cu130
  • Accelerate: 1.14.0
  • Datasets: 4.3.0
  • Tokenizers: 0.22.2

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

SpladeLoss

@misc{formal2022distillationhardnegativesampling,
      title={From Distillation to Hard Negative Sampling: Making Sparse Neural IR Models More Effective},
      author={Thibault Formal and Carlos Lassance and Benjamin Piwowarski and Stéphane Clinchant},
      year={2022},
      eprint={2205.04733},
      archivePrefix={arXiv},
      primaryClass={cs.IR},
      url={https://arxiv.org/abs/2205.04733},
}

SparseMultipleNegativesRankingLoss

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

FlopsLoss

@article{paria2020minimizing,
    title={Minimizing flops to learn efficient sparse representations},
    author={Paria, Biswajit and Yeh, Chih-Kuan and Yen, Ian EH and Xu, Ning and Ravikumar, Pradeep and P{'o}czos, Barnab{'a}s},
    journal={arXiv preprint arXiv:2004.05665},
    year={2020}
}