e5-dhivehi-qa-mnr / README.md
alakxender's picture
Update README.md
0daabea verified
metadata
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - dense
  - generated_from_trainer
  - dataset_size:9232
  - loss:MultipleNegativesRankingLoss
widget:
  - source_sentence: 'query: ދިވެހިރާއްޖޭގައި އޮންނަންވާނީ ކޮން ދީނެއް؟'
    sentences:
      - >-
        passage: އަޅުގަނޑުމެން އެންމެން ގަބޫލުކުރޭ، ދިވެހިރާއްޖޭގައި
        އޮންނަންވާނީ އިސްލާމްދީންކަން. އަޅުގަނޑުމެން އެންމެން ގަބޫލުކުރޭ، އެހެން
        ދީންތަކަށް ޖާގަދޭން ނުޖެހޭކަން.
      - >-
        passage: ރަށުގައި މިހާރަށްވުރެ ގިނައިން ދިވެހި ރުކާއި، ބަނބުކެޔޮ،
        ފަތްކެޔޮ، ރޯމިރުސް، ބަށި، ފަޅޯފަދަ ރަށުގައި ހެދޭ ބާވަތްތައް އިންދައި
        ހެއްދުމުގެ މަސައްކަތްތައްވެސް އިތުރުކުރެވިދާނެ ކަމަށް ރަށުގެ ވެރިންގެ
        ފަރާތުން އަޅުގަނޑަށް އެނގިފައި އެބައޮތް.
      - >-
        passage: އޭގެކުރިން އިބްތިހާލްގެ މަންމަ އާފިޔާ މުހައްމަދަށް ޖިންސީ ގޯނާ
        ކުރިކަމުގެ ތުހުމަތު ވެސް ރައޫފްގެ މައްޗަށް ކުރެވިގެން، އެ މައްސަލާގައި
        އޭނާގެ މައްޗަށް ދައުވާކުރަން ޕްރޮސެކިއުޓާ ޖެނެރަލްގެ އޮފީހަށް ފޮނުވި
        އެވެ. އެކަމަކު އެ މައްސަލާގައި މިހާތަނަށް ދައުވާއެއް ނުއުފުލަ އެވެ.
  - source_sentence: >-
      query: އައްސުލްޠާން މުޙައްމަދު ޝަމްސުއްދީން (3) އަރުވައިލައްވައިފައި
      ހުންނަވަނިކޮށް މާލެ ގެންނެވީ ކޮން ތާރީޚެއްގައި؟
    sentences:
      - >-
        passage: އައްސުލްޠާން މުޙައްމަދު ޝަމްސުއްދީން (3)
        އަރުވައިލެއްވުމަށްފަހު، އެމަނިކުފާނު އަނބުރާ މާލެ ގެންނެވީ 17 ޖުލައި
        1946 ގައެވެ. އެމަނިކުފާނު އަރުވައިލައްވާފައި ހުންނެވި މުއްދަތުގައި
        ރާއްޖޭގެ ކަންތައްތައް ބަލަހައްޓަވަމުން ގެންދެވީ ވަގުތީ ސަރުކާރަކުންނެވެ.
      - >-
        passage: "ސިއްހީ ހިދުމަތުގެ ފަންނީ މަސައްކަތްތެރިން" ނުވަތަ "ސިއްހީ
        މަސައްކަތްތެރިން" ކަމަށް ބުނެފައި އެވަނީ، ސިއްހީ ހިދުމަތުގެ ފަންނީ
        މަސައްކަތްތެރިންގެ ތެރޭގައި ހިމެނޭ މެޑިކަލް ޕްރެކްޓިށަނަރުންނާއި،
        ނަރުހުންނާއި، އެލައިޑް ހެލްތު ޕްރޮފެށަނަލުންނަށެވެ. އާންމު ސިއްހަތުގެ
        ކުއްލި ނުރައްކަލުގެ ގާނޫނު (ގާނޫނު ނަންބަރު 20/2020) ގެ 13 ވަނަ މާއްދާގެ
        (ނ) ގެ (1)
      - >-
        passage: "އަނިޔާ" ކަމަށް ބުނެފައި އެވަނީ، ޖިސްމާނީގޮތުން ނުވަތަ
        މާއްދީގޮތުން ނުވަތަ މީހެއްގެ ފުރާނައަށް ނުވަތަ ހަށިގަނޑަށް ގެއްލުމެއް
        ނުވަތަ ހާނިއްކައެއް ދިނުމަށެވެ. ނުވަތަ ނަފްސާނީ ދުޅަހެޔޮކަމަށް
        އުނިކަމެއް ދިނުމަށެވެ. ގާނޫނު ނަންބަރު 17/2014 (ޖިންސީ ކުށުގެ ގާނޫނު) ގެ
        69 ވަނަ މާއްދާ ގެ (ރ)
  - source_sentence: 'query: އެއަރޕޯޓް އަނބުރާ ހޯދަން ކިތައް މިލިއަން ޑޮލަރު ޚަރަދުކުރިތޯ؟'
    sentences:
      - >-
        passage: ވޭތުވެދިޔަ ހަފްތާގައި ވޯކަރސް ޑިމޮކްރެޓިކް ކޮންގްރެސް
        (ޑަބްލިޔު.ޑީ.ސީ) ގެ މެންބަރުން ރައީސުލްޖުމްހޫރިއްޔާއާ ބައްދަލުކުރިއެވެ.
        މި ބައްދަލުވުމުގައި އެ ބޭފުޅުން ވަނީ އެތައް ކަމެއްގެ ކަންބޮޑުވުން
        ފާޅުކުރައްވާފައެވެ. ޚާއްޞަކޮށް އެ ބޭފުޅުންނަށް ލިބެންޖެހޭ އިނާޔަތްތަކާއި
        ރަމަޟާން މަހުގެ އިނާޔަތް ނުލިބޭތީ ވަރަށް ބޮޑަށް ކަންބޮޑުވުން
        ފާޅުކުރެއްވިއެވެ. މި ބައްދަލުވުމުގައި އެހެނިހެން ކަންތައްތަކާ
        ބެހޭގޮތުންވެސް މަޝްވަރާކުރެވުނެވެ.
      - >-
        passage: އެއަރޕޯޓް 78 މިލިއަން ޑޮލަރަށް ވިއްކާލާފައި، އަނބުރާ ހޯދަން 320
        މިލިއަން ޑޮލަރު ސަރުކާރުން ޚަރަދު ކޮށްފައިވެއެވެ.
      - >-
        passage: މިހާރު ރާއްޖޭގައި އިންޖީނު ބެހެއްޓި އެއްހާސް ދުއިސައްތަ
        މަސްދޯނި އެބަހުރި. އޭގެތެރެއިން އެވްރެޖްކޮށް ދުވާލެއްގެ މައްޗަށް މަހަށް
        ފުރާ ކަމަށްވަނީ ގާތްގަނޑަކަށް ދުއިސައްތަ ދޯނި.
  - source_sentence: 'query: އެވޯޑު ދޭން ހަމަޖެހިފައިވަނީ ކޮން ކެޓަގަރީތަކަކުން؟'
    sentences:
      - >-
        passage: ކަންކަމާ ކުރިމަތިލާން ނުކެރުމަކީ، އިންސާނުންގެ ކިބައިގައި
        ހުންނަ ބަލިކަށި ސިފައެކެވެ. މި ސިފައިގެ ސަބަބުން، ކާމިޔާބު އޮންނާނީ،
        އޭނާގެ ނަޒަރުން ރެކި، މާ ދުރުގައި ބޮނދައެވެ.
      - >-
        passage: "ނޭދެވޭ އަމަލު" ކަމަށް ބުނެފައި އެވަނީ، ވިސްލްބްލޯކުރާ
        ފަރާތްތައް ރައްކާތެރިކުރުމުގެ ގާނޫނު (ގާނޫނު ނަންބަރު 16/2019) ގެ 3 ވަނަ
        މާއްދާގައި ތަފްސީލުކޮށްފައިވާ ފަދަ ކޮންމެ އަމަލެކެވެ. ވިސްލްބްލޯކުރާ
        ފަރާތްތައް ރައްކާތެރިކުރުމުގެ ގާނޫނު (ގާނޫނު ނަންބަރު 16/2019) ގެ 31
        ވަނަ މާއްދާގެ (ދ)
      - >-
        passage: މިދިޔަ އަހަރު ނޫސްވެރިކަމުގައި ނޫސްވެރިން ކޮށްފައިވާ
        މަސައްކަތްތަކަށް ބަލައިގެން ތިން ކެޓަގަރީއަކުން އެ އެވޯޑު ދޭން
        ހަމަޖައްސާފައިވާ ކަމަށް ވެސް އޭނާ ވިދާޅުވި އެވެ. އޭގެ ތެރޭގައި ހިމެނެނީ
        ޓީވީ އާއި ރޭޑިއޯ އަދި ނޫސް މަޖައްލާތަކުންނެވެ.
  - source_sentence: 'query: އަކްރަމުގެ ދިރިއުޅުމަށް އައި ބަދަލުތަކަކީ ކޮބައިތޯ؟'
    sentences:
      - >-
        passage: ދިވެހިރާއްޖޭގެ އެންމެ ނަންހިނގާފައިވާ ޤާޟީންގެ ތެރެއިން އެއް
        ބޭކަލެއް ކަމުގައިވާ އަލްޤާޟީ ޙަސަން ތާޖުއްދީން އަވަހާރަވުމުން، އެ
        މަރުޙޫމްގެ ހަށިކޮޅު ވަނީ މާލޭގެ ހުކުރު މިސްކިތުގައި ފަސްދާނުލެވިފައެވެ.
        އެ މިސްކިތަކީ ރާއްޖޭގެ އެންމެ ގިނަ ޢިލްމުވެރިން ފަސްދާނުލެވިފައިވާ
        ތަންތަނުގެ ތެރެއިން އެއް ތަނެވެ.
      - >-
        passage: ސިވިލް ސަރވިސްގެ މުވައްޒަފުން މަޢުލޫމާތު ހާމަކުރުމުގައި
        ޢަމަލުކުރަންވާނީ ތިރީގައިވާ އުޞޫލުތަކުގެ މަތިންނެވެ. ޤާނޫނާ ގަވާއިދާ
        އެއްގޮތްވާގޮތުގެމަތިން، މަޢުލޫމާތު ދޭންޖެހޭ ކޮންމެ ޙާލަތެއްގައި ތެދު
        މަޢުލޫމާތު ދިނުން.
      - >-
        passage: މިގޮތުގެމަތިން އަކްރަމަށް ލިބުނު ޖަވާހިރުތައް ވިއްކައި، ލިބުނު
        ގިނަގުނަ ފައިސާއިން ޖަވާހިރުގެ ވިޔަފާރިފަށައި، ބައްޕައެކޭ އެއްފަދައިން
        މަޝްހޫރު ވިޔަފާރިވެރިއަކަށް ވެއްޖެއެވެ. އަދި އަކްރަމާއި ޢާއިލާގެ
        ދިރިއުޅުން ކުރިއެކޭވެސް އެއްފަދަ ތަނަވަސް ދިރިއުޅުމަކަށް ބަދަލުވެގެން
        ހިނގައްޖެއެވެ.
pipeline_tag: sentence-similarity
library_name: sentence-transformers
license: mit
datasets:
  - alakxender/dhivehi-qa-dataset
language:
  - dv
  - en
base_model:
  - alakxender/e5-dhivehi-cos

SentenceTransformer

This is a sentence-transformers model trained. It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.

Model Details

Model Description

  • Model Type: Sentence Transformer
  • Maximum Sequence Length: 256 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity

Fine-tuned Models

This model is part of a progressive series of sentence embedding models based on intfloat/multilingual-e5-base, fine-tuned specifically for Dhivehi language understanding.

Each stage leverages a targeted dataset to specialize the model for semantic similarity, question answering, and summarization tasks — improving performance for real-world Dhivehi NLP applications.

Stage Task Model Dataset Objective
0 Base Multilingual Base intfloat/multilingual-e5-base
1 Paraphrase Identification (MNR) alakxender/e5-dhivehi-paws-mnr alakxender/dhivehi-paws-labeled > label=1 Only MultipleNegativesRankingLoss
2 Paraphrase Identification (Cosine) alakxender/e5-dhivehi-paws-cos alakxender/dhivehi-paws-labeled CosineSimilarityLoss
3 Question → Passage Matching alakxender/e5-dhivehi-qa-mnr alakxender/dhivehi-qa-dataset MultipleNegativesRankingLoss
4 News Title → Content alakxender/e5-dhivehi-articles-mnr alakxender/dhivehi-news-corpus MultipleNegativesRankingLoss
5 Summary → Content alakxender/e5-dhivehi-summaries-mnr alakxender/dv-en-parallel-corpus-clean, alakxender/dv-summary-translation-corpus MultipleNegativesRankingLoss

Each model builds upon the previous checkpoint, incrementally enhancing the semantic capabilities of the model for Dhivehi. The goal is to support high-quality sentence embeddings for a wide range of Dhivehi information retrieval and understanding tasks.

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 256, 'do_lower_case': False, 'architecture': 'XLMRobertaModel'})
  (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})
)

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("alakxender/e5-dhivehi-qa-mnr")
# Run inference
sentences = [
    'query: އަކްރަމުގެ ދިރިއުޅުމަށް އައި ބަދަލުތަކަކީ ކޮބައިތޯ؟',
    'passage: މިގޮތުގެމަތިން އަކްރަމަށް ލިބުނު ޖަވާހިރުތައް ވިއްކައި، ލިބުނު ގިނަގުނަ ފައިސާއިން ޖަވާހިރުގެ ވިޔަފާރިފަށައި، ބައްޕައެކޭ އެއްފަދައިން މަޝްހޫރު ވިޔަފާރިވެރިއަކަށް ވެއްޖެއެވެ. އަދި އަކްރަމާއި ޢާއިލާގެ ދިރިއުޅުން ކުރިއެކޭވެސް އެއްފަދަ ތަނަވަސް ދިރިއުޅުމަކަށް ބަދަލުވެގެން ހިނގައްޖެއެވެ.',
    'passage: ސިވިލް ސަރވިސްގެ މުވައްޒަފުން މަޢުލޫމާތު ހާމަކުރުމުގައި ޢަމަލުކުރަންވާނީ ތިރީގައިވާ އުޞޫލުތަކުގެ މަތިންނެވެ. ޤާނޫނާ ގަވާއިދާ އެއްގޮތްވާގޮތުގެމަތިން، މަޢުލޫމާތު ދޭންޖެހޭ ކޮންމެ ޙާލަތެއްގައި ތެދު މަޢުލޫމާތު ދިނުން.',
]
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.4978, 0.4952],
#         [0.4978, 1.0000, 0.8843],
#         [0.4952, 0.8843, 1.0000]])

Training Details

Training Dataset

  • Size: 9,232 training samples
  • Columns: sentence_0 and sentence_1
  • Approximate statistics based on the first 1000 samples:
    sentence_0 sentence_1
    type string string
    details
    • min: 9 tokens
    • mean: 17.88 tokens
    • max: 43 tokens
    • min: 9 tokens
    • mean: 62.22 tokens
    • max: 256 tokens
  • Samples:
    sentence_0 sentence_1
    query: ދީނީ ތަގްރީރުކުރުމާއި ދީނީ ނަސޭހަތް ދިނުން ކަމަށް ބުނެފައިވަނީ ކޮން ކަމަކަށް؟ passage: "ދީނީ ތަގްރީރުކުރުމާއި ދީނީ ނަސޭހަތް ދިނުން" ކަމަށް ބުނެފައި އެވަނީ، ހަބަރުފަތުރާ ވަސީލަތަކުން ނުވަތަ ހާންމު މީހުން ޖަމާވެފައިވާ ތަނެއްގައި ދީނީ ތަގްރީރުކުރުމާއި ދީނީ ނަސޭހަތް ދިނުމަށެވެ. ދީނީ އެއްބައިވަންތަކަން ހިމާޔަތް ކުރުމުގެ ގާނޫނު (ގާނޫނު ނަންބަރު 6/1994) އަށް 1 ވަނަ އިސްލާހު ގެނައުމުގެ ގާނޫނު (ގާނޫނު ނަންބަރު 8/2014) ގެ 7 ވަނަ މާއްދާގެ (ނ) ގައި
    query: ގާނޫނީ ގޮތުން ގައިދީން ކަމަށް ބުނެފައިވަނީ ކޮން ބައެއް؟ passage: "ގައިދީ" ނުވަތަ "ގައިދީން" ކަމަށް ބުނެފައިއެވަނީ، ޖަލުގައި ތިބޭ މީހުންގެ ތެރެއިން ހުކުމެއް ތަންފީޒުކުރަމުންދާ މީހުންނާއި އަރުވާލަން ނުވަތަ ގޭބަންދަށް ކޯޓުން ހުކުމްކޮށްފައި ތިބޭ މީހުންނަށެވެ. ޖަލުތަކާއި ޕެރޯލްގެ ގާނޫނު (ގާނޫނު ނަންބަރު 14/2013) ގެ 155 ވަނަ މާއްދާގެ (ލ) ގައި
    query: އިސްލާމްދީނުގައި ޢިލްމު އުނގެނުމަކީ ކޮބައިތޯ؟ passage: ކީރިތި ރަސޫލާ އަންގަވައިފައިވަނީ، [طلب العلم فريضة على كلّ مسلم ومسلمة] [ޢިލްމު އުނގެނުމަކީ ކޮންމެ މުސްލިމް ފިރިހެނަކާއި ކޮންމެ މުސްލިމް އަންހެނެއްގެ މައްޗަށް އޮތް ވާޖިބެކޭ، ފަރުޟެކޭ.]
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • per_device_train_batch_size: 4
  • per_device_eval_batch_size: 4
  • multi_dataset_batch_sampler: round_robin

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: no
  • prediction_loss_only: True
  • per_device_train_batch_size: 4
  • per_device_eval_batch_size: 4
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • learning_rate: 5e-05
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1
  • num_train_epochs: 3
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.0
  • warmup_steps: 0
  • log_level: passive
  • log_level_replica: warning
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • save_safetensors: True
  • save_on_each_node: False
  • save_only_model: False
  • restore_callback_states_from_checkpoint: False
  • no_cuda: False
  • use_cpu: False
  • use_mps_device: False
  • seed: 42
  • data_seed: None
  • jit_mode_eval: False
  • use_ipex: False
  • bf16: False
  • fp16: False
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • local_rank: 0
  • ddp_backend: None
  • tpu_num_cores: None
  • tpu_metrics_debug: False
  • debug: []
  • dataloader_drop_last: False
  • dataloader_num_workers: 0
  • dataloader_prefetch_factor: None
  • past_index: -1
  • disable_tqdm: False
  • remove_unused_columns: True
  • label_names: None
  • load_best_model_at_end: False
  • ignore_data_skip: False
  • fsdp: []
  • fsdp_min_num_params: 0
  • fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
  • fsdp_transformer_layer_cls_to_wrap: None
  • accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch
  • optim_args: None
  • adafactor: False
  • group_by_length: False
  • length_column_name: length
  • ddp_find_unused_parameters: None
  • ddp_bucket_cap_mb: None
  • ddp_broadcast_buffers: False
  • dataloader_pin_memory: True
  • dataloader_persistent_workers: False
  • skip_memory_metrics: True
  • use_legacy_prediction_loop: False
  • push_to_hub: False
  • resume_from_checkpoint: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_private_repo: None
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • include_for_metrics: []
  • eval_do_concat_batches: True
  • fp16_backend: auto
  • push_to_hub_model_id: None
  • push_to_hub_organization: None
  • mp_parameters:
  • auto_find_batch_size: False
  • full_determinism: False
  • torchdynamo: None
  • ray_scope: last
  • ddp_timeout: 1800
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • include_tokens_per_second: False
  • include_num_input_tokens_seen: False
  • neftune_noise_alpha: None
  • optim_target_modules: None
  • batch_eval_metrics: False
  • eval_on_start: False
  • use_liger_kernel: False
  • eval_use_gather_object: False
  • average_tokens_across_devices: False
  • prompts: None
  • batch_sampler: batch_sampler
  • multi_dataset_batch_sampler: round_robin
  • router_mapping: {}
  • learning_rate_mapping: {}

Training Logs

Epoch Step Training Loss
0.2166 500 1.2589
0.4333 1000 1.0569
0.6499 1500 1.0562
0.8666 2000 0.9848
1.0832 2500 0.9565
1.2998 3000 0.9604
1.5165 3500 0.958
1.7331 4000 0.9232
1.9497 4500 0.9202
2.1664 5000 0.8813
2.3830 5500 0.893
2.5997 6000 0.8324
2.8163 6500 0.7792

Framework Versions

  • Python: 3.9.21
  • Sentence Transformers: 5.0.0
  • Transformers: 4.52.4
  • PyTorch: 2.5.1+cu124
  • Accelerate: 1.3.0
  • Datasets: 3.2.0
  • Tokenizers: 0.21.0

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

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