BGE-M3 Türkçe Triplet Matryoshka

This is a sentence-transformers model finetuned from BAAI/bge-m3 on the vodex-turkish-triplets-large dataset. It maps sentences & paragraphs to a 1024-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.

Model Details

⚠️ Domain-Specific Warning

This model was fine-tuned on Turkish data specifically sourced from the telecommunications domain.
While it performs well on telecom-related tasks such as mobile services, billing, campaigns, and subscription details, it may not generalize well to other domains.
Please assess its performance carefully before applying it outside of telecommunications use cases.

Model Description

  • Model Type: Sentence Transformer
  • Base model: BAAI/bge-m3
  • Maximum Sequence Length: 8192 tokens
  • Output Dimensionality: 1024 dimensions
  • Similarity Function: Cosine Similarity
  • Training Dataset:
  • Language: tr
  • License: apache-2.0

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 8192, 'do_lower_case': False}) with Transformer model: XLMRobertaModel 
  (1): Pooling({'word_embedding_dimension': 1024, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, '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()
)

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("seroe/bge-m3-turkish-triplet-matryoshka-v2")
# Run inference
sentences = [
    'Vodafone hattınızın aktivasyonu sırasında eksik evraklarınızın tamamlanması gerektiği belirtilmiştir. Hattınızın iptal olmaması için 3 gün içinde Vodafone mağazasını ziyaret etmeniz önemlidir.',
    'Vodafone hattınızın aktif hale gelebilmesi için eksik olan abonelik sözleşmesi ve kimlik belgelerinizi tamamlamanız gerekmektedir. Bu işlemi 3 gün içinde Vodafone mağazasında gerçekleştirebilirsiniz.',
    'Vodafone hattınızın aktivasyonu sırasında herhangi bir evrak eksikliği bulunmamaktadır. Hattınız otomatik olarak aktif hale gelecektir.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1024]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]

Evaluation

Metrics

Triplet

  • Datasets: tr-triplet-dev-1024d and all-nli-test-1024d
  • Evaluated with TripletEvaluator with these parameters:
    {
        "truncate_dim": 1024
    }
    
Metric tr-triplet-dev-1024d all-nli-test-1024d
cosine_accuracy 0.9979 0.9981

Triplet

  • Datasets: tr-triplet-dev-768d and all-nli-test-768d
  • Evaluated with TripletEvaluator with these parameters:
    {
        "truncate_dim": 768
    }
    
Metric tr-triplet-dev-768d all-nli-test-768d
cosine_accuracy 0.9978 0.9981

Triplet

  • Datasets: tr-triplet-dev-512d and all-nli-test-512d
  • Evaluated with TripletEvaluator with these parameters:
    {
        "truncate_dim": 512
    }
    
Metric tr-triplet-dev-512d all-nli-test-512d
cosine_accuracy 0.9977 0.9982

Triplet

  • Datasets: tr-triplet-dev-256d and all-nli-test-256d
  • Evaluated with TripletEvaluator with these parameters:
    {
        "truncate_dim": 256
    }
    
Metric tr-triplet-dev-256d all-nli-test-256d
cosine_accuracy 0.9975 0.998

Training Details

Training Dataset

vodex-turkish-triplets-large

  • Dataset: vodex-turkish-triplets-large at 1fe9d63
  • Size: 215,676 training samples
  • Columns: query, positive, and negative
  • Approximate statistics based on the first 1000 samples:
    query positive negative
    type string string string
    details
    • min: 15 tokens
    • mean: 30.74 tokens
    • max: 61 tokens
    • min: 16 tokens
    • mean: 31.79 tokens
    • max: 62 tokens
    • min: 12 tokens
    • mean: 25.79 tokens
    • max: 53 tokens
  • Samples:
    query positive negative
    Vodafone'un Mobil Form Servisi, 12 Şubat 2021 itibarıyla yeni müşteri alımına kapatılmıştır. 12 Şubat 2021 tarihinden itibaren Vodafone'un Mobil Form Servisi yeni kullanıcılar için erişime kapatılmıştır. Mobil Form Servisi, 2022 yılında yeni müşterilere açılmıştır ve aktif olarak kullanılmaktadır.
    Paket, VOIP ve P2P gibi hizmetleri desteklemez ve cihazın 4.5G/3G ayarlarının yapılmış olması gereklidir. Vodafone'un paketi, VOIP ve P2P hizmetlerini içermez ve cihazın 4.5G/3G bağlantı ayarlarının aktif olması gerekir. Paket, VOIP ve P2P hizmetlerini tamamen destekler ve cihaz ayarlarına gerek olmadan kullanılabilir.
    Vodafone'un bireysel esnaf tarifeleri, farklı meslek gruplarına özel paket seçenekleriyle geniş bir yelpaze sunar. Bireysel esnaf tarifeleri, Vodafone tarafından çeşitli meslek gruplarına uygun paketlerle desteklenmektedir. Vodafone'un bireysel esnaf tarifeleri, yalnızca belirli bir meslek grubuna hitap eder ve diğer meslekler için uygun değildir.
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "CachedMultipleNegativesRankingLoss",
        "matryoshka_dims": [
            1024,
            768,
            512,
            256
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": -1
    }
    

Evaluation Dataset

vodex-turkish-triplets-large

  • Dataset: vodex-turkish-triplets-large at 1fe9d63
  • Size: 11,982 evaluation samples
  • Columns: query, positive, and negative
  • Approximate statistics based on the first 1000 samples:
    query positive negative
    type string string string
    details
    • min: 16 tokens
    • mean: 31.25 tokens
    • max: 62 tokens
    • min: 15 tokens
    • mean: 32.27 tokens
    • max: 63 tokens
    • min: 13 tokens
    • mean: 25.83 tokens
    • max: 60 tokens
  • Samples:
    query positive negative
    Vodafone'un 'Yarına Hazır Cihaz Kampanyaları' kapsamında farklı marka ve modellerde cihazlar, çeşitli depolama seçenekleri ve renk alternatifleriyle sunulmaktadır. Vodafone'un cihaz kampanyaları, geniş ürün yelpazesiyle farklı depolama kapasiteleri ve renk seçenekleri sunarak kullanıcıların ihtiyaçlarına hitap etmektedir. Vodafone'un cihaz kampanyaları yalnızca belirli bir marka ve modelle sınırlıdır, diğer seçenekler sunulmamaktadır.
    Devreden ve duran tarifeler, kullanıcıların kullanılmayan internet haklarını bir sonraki döneme taşımasına olanak tanır ve ek paketlerle bu haklar genişletilebilir. Kullanıcılar, devreden ve duran tarifeler sayesinde kullanılmayan internet haklarını bir sonraki aya aktarabilir ve ek paketlerle bu haklarını artırabilir. Devreden ve duran tarifeler, kullanıcıların internet haklarını bir sonraki döneme taşımasına izin vermez, yalnızca mevcut dönemde kullanım sağlar.
    Cebinize Uyan İnternet kampanyası, numara taşıma, yeni hat tesisi veya tarifeler arası geçiş yapan abonelere otomatik olarak tanımlanır. Bu haklar, diğer promosyonlardan sonra kullanılabilir. Vodafone'un kampanyası, numara taşıma, yeni hat açma veya tarifeler arası geçiş yapan abonelere otomatik olarak tanımlanır ve kullanım sırası diğer promosyonlardan sonra gelir. Evcil hayvan sahiplenme kampanyasında, yeni bir evcil hayvan edinen kişilere ücretsiz mama ve bakım hizmeti sunulur.
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "CachedMultipleNegativesRankingLoss",
        "matryoshka_dims": [
            1024,
            768,
            512,
            256
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": -1
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 2048
  • per_device_eval_batch_size: 256
  • weight_decay: 0.01
  • num_train_epochs: 1
  • lr_scheduler_type: cosine
  • warmup_ratio: 0.05
  • save_only_model: True
  • bf16: True
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 2048
  • per_device_eval_batch_size: 256
  • 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.01
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 1
  • max_steps: -1
  • lr_scheduler_type: cosine
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.05
  • 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: True
  • 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: True
  • 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: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss Validation Loss tr-triplet-dev-1024d_cosine_accuracy tr-triplet-dev-768d_cosine_accuracy tr-triplet-dev-512d_cosine_accuracy tr-triplet-dev-256d_cosine_accuracy all-nli-test-1024d_cosine_accuracy all-nli-test-768d_cosine_accuracy all-nli-test-512d_cosine_accuracy all-nli-test-256d_cosine_accuracy
-1 -1 - - 0.9642 0.9639 0.9632 0.9601 - - - -
0.1132 12 3.8771 0.2379 0.9933 0.9932 0.9930 0.9915 - - - -
0.2264 24 1.0195 0.1654 0.9960 0.9957 0.9958 0.9952 - - - -
0.3396 36 0.8059 0.1331 0.9972 0.9972 0.9971 0.9971 - - - -
0.4528 48 0.7153 0.1198 0.9978 0.9977 0.9977 0.9973 - - - -
0.5660 60 0.6498 0.1131 0.9980 0.9977 0.9977 0.9975 - - - -
0.6792 72 0.6456 0.1091 0.9977 0.9976 0.9977 0.9975 - - - -
0.7925 84 0.6407 0.1077 0.9977 0.9977 0.9977 0.9974 - - - -
0.9057 96 0.6055 0.1056 0.9979 0.9978 0.9977 0.9975 - - - -
-1 -1 - - - - - - 0.9981 0.9981 0.9982 0.9980

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 4.2.0.dev0
  • Transformers: 4.52.3
  • PyTorch: 2.7.0+cu126
  • Accelerate: 1.7.0
  • Datasets: 3.6.0
  • Tokenizers: 0.21.1

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

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

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}
}
Downloads last month
194
Safetensors
Model size
568M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for seroe/bge-m3-turkish-triplet-matryoshka-v2

Base model

BAAI/bge-m3
Finetuned
(304)
this model

Evaluation results