Toxotes/mosaic-turkembed-finetuned
MOSAIC — Türkçe Finans Embedding Modeli (multilingual-e5-small fine-tuned)
MOSAIC tez projesinin Faz 4 çıktısı. intfloat/multilingual-e5-small baz modeli, 1.432 Türkçe finans QA çiftiyle fine-tune edilmiştir. Proje: "Türkçe Finans İçin Federe RAG Tabanlı Düşük Kaynaklı Ortamlarda Çalışan Adaptif Chatbot Mimarisi"Hızlı Başlangıç
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("tahatoy/mosaic-turkembed-finetuned")
query = "Konut kredisi faiz oranı nedir?"
passages = ["Bankamız konut kredilerinde...", "Diğer bilgi..."]
embeddings = model.encode([query] + passages)SentenceTransformer based on intfloat/multilingual-e5-small
This is a sentence-transformers model finetuned from intfloat/multilingual-e5-small. It maps sentences & paragraphs to a 384-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
- Base model: intfloat/multilingual-e5-small <!-- at revision c007d7ef6fd86656326059b28395a7a03a7c5846 -->
- Maximum Sequence Length: 256 tokens
- Output Dimensionality: 384 dimensions
- Similarity Function: Cosine Similarity <!-- - Training Dataset: Unknown --> <!-- - Language: Unknown --> <!-- - License: Unknown -->
Model Sources
- Documentation: Sentence Transformers Documentation
- Repository: Sentence Transformers on GitHub
- Hugging Face: Sentence Transformers on Hugging Face
Full Model Architecture
SentenceTransformer(
(0): Transformer({'max_seq_length': 256, 'do_lower_case': False, 'architecture': 'BertModel'})
(1): Pooling({'word_embedding_dimension': 384, '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()
)Usage
Direct Usage (Sentence Transformers)
First install the Sentence Transformers library:
pip install -U sentence-transformersThen you can load this model and run inference.
from sentence_transformers import SentenceTransformer
# Download from the 🤗 Hub
model = SentenceTransformer("tahatoy/mosaic-turkembed-finetuned")
# Run inference
sentences = [
"1970'li yıllarda finansal yönetimde hangi gelişmeler yaşanmıştır?",
"1970'li yıllarda bu eğilim daha da artmıştır. Bu yılların diğer önemli bir özelliği de işletme değerini ve hissedarların - ortakların - servetini maksimum kılmada riskle düzeltilmiş modellerin geliştirilmiş olmasıdır.",
'Kredi Kartlarının Doğru Kullanılması ve Finansal Sorumluluk\n\nKredi kartlarının doğru kullanımı ve finansal sorumlulukla ele alınması önemlidir.\nKredi kartlarının yanlış kullanımı, finansal sorunlara yol açabilir.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 384]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[ 1.0000, 0.4738, 0.0634],
# [ 0.4738, 1.0000, -0.0332],
# [ 0.0634, -0.0332, 1.0000]])<!--
Direct Usage (Transformers)
<details><summary>Click to see the direct usage in Transformers</summary>
</details> -->
<!--
Downstream Usage (Sentence Transformers)
You can finetune this model on your own dataset.
<details><summary>Click to expand</summary>
</details> -->
<!--
Out-of-Scope Use
List how the model may foreseeably be misused and address what users ought not to do with the model. -->
Evaluation
Metrics
Information Retrieval
- Dataset:
finance_val - Evaluated with <code>InformationRetrievalEvaluator</code>
<!--
Bias, Risks and Limitations
What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model. -->
<!--
Recommendations
What are recommendations with respect to the foreseeable issues? For example, filtering explicit content. -->
Training Details
Training Dataset
Unnamed Dataset
- Size: 1,432 training samples
- Columns: <code>sentence0</code> and <code>sentence1</code>
- Approximate statistics based on the first 1000 samples: | | sentence0 | sentence1 | |:--------|:-----------------------------------------------------------------------------------|:------------------------------------------------------------------------------------| | type | string | string | | details | <ul><li>min: 5 tokens</li><li>mean: 15.06 tokens</li><li>max: 256 tokens</li></ul> | <ul><li>min: 23 tokens</li><li>mean: 72.26 tokens</li><li>max: 256 tokens</li></ul> |
- Samples: | sentence0 | sentence1 | |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | <code>Kullanıcının yatırım fonu hakkındaki sorusunu yanıtla.</code> | <code>Yatırım fonları, içerdikleri varlıklara ve yatırım stratejilerine göre çeşitlenir. Başlıca türleri şunlardır:<br><br>- Hisse Senedi Fonları: Portföyünün en az %80'i hisse senetlerinden oluşur.<br>- Borçlanma Araçları Fonları: Genellikle düşük riskli ve sabit getirili menkul kıymetlere (tahvil, bono) yatırım yapar.<br>- Karma Fonlar: Hisse senedi, tahvil gibi farklı araçları bir arada bulundurur.<br>- Para Piyasası Fonları: Kısa vadeli ve likiditesi yüksek araçlardan oluşur.<br>- Katılım Fonları: Faizsiz finans ilkelerine uygun varlıklara (sukuk, katılım hisseleri) yatırım yapar.<br>- Borsa Yatırım Fonları (ETF): Belirli bir borsa endeksini takip eder ve hisse senedi gibi anlık alınıp satılabilir.<br>- Serbest Fonlar: Yüksek risk alabilen nitelikli yatırımcılara yönelik esnek fonlardır.</code> | | <code>92 gün vadeli, 500.000 nominal değerli bir hazine bonosu için yatırımcının beklediği getiri oranı 9,614 ise bu hazine bonosu hangi fiyattan satın alınmalıdır?</code> | <code>Hazine bonosunun üzerinde yazılı değer nominal değeri gösterir ve bu değer bononun vade tarihindeki (gelecekteki) değeridir. Dolayısıyla nominal değer bononun gelecek değeridir. Soruda gelecekteki değeri belli olan bu bononun satın alma günündeki, diğer bir ifade ile bugunku değeri sorulmaktadır. Hazine Bonosunun Nominal Değeri (F) - 500.000, Vade (n) - 92 gün - 92/365 yıl, İskonto Oranı (i) - 9,614. Satış Fiyatı (P) - ? 500.000 / (1 + 0,09614(92/365)) = 482.958. Yatırımcı 92 gün vadeli, 500.000 nominal değerli olan bu hazine bonosunu satış tarihinde 482.958'den satın alacaktır. Vade dolduğunda ise hazine bonosu iade edilerek 500.000 (Anapara) geri alınacaktır. Alış fiyatı ile nominal değer arasındaki fark kadar faiz geliri elde edilmiş olacaktır. Aradaki farkın 92 günlük getiriyi gösterdiğini unutmamak gerekir. Elde edilen faiz - 500.000 - 482.958 - 17.042. Faiz Oranı - 17.042 / 482.958 = 0,035 yada 3,53. 92 günlük faizin yıllık basit faizle karşılığı: 0,035 (360/92) = 0,138 veya 1...</code> | | <code>Bütçe nasıl oluşturulur?</code> | <code>Bütçe oluşturmak için ilk adım hedef belirlemektir. Kısa, orta ve uzun vadeli finansal hedeflerinizi belirleyin. Gelirlerinizi ve giderlerinizi listeleyin. Giderlerinizi zorunlu ve isteğe bağlı olarak ayırın. Gelirinizden zorunlu giderleri çıkarın, kalan kısmı harcama ve birikim için paylaştırın. 50/30/20 ya da 70/20/10 gibi oranlarla planlama yapabilirsiniz. Her ay giderlerinizi gözden geçirerek bütçenizi güncelleyin.</code> |
- Loss: <code>MultipleNegativesRankingLoss</code> with these parameters:
{
"scale": 20.0,
"similarity_fct": "cos_sim",
"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: 32fp16: Trueeval_strategy: stepsper_device_eval_batch_size: 32multi_dataset_batch_sampler: round_robin
All Hyperparameters
<details><summary>Click to expand</summary>
per_device_train_batch_size: 32num_train_epochs: 3max_steps: -1learning_rate: 5e-05lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_steps: 0optim: adamwtorchfusedoptim_args: Noneweight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08optim_target_modules: Nonegradient_accumulation_steps: 1average_tokens_across_devices: Truemax_grad_norm: 1label_smoothing_factor: 0.0bf16: Falsefp16: Truebf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonegradient_checkpointing: Falsegradient_checkpointing_kwargs: Nonetorch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneuse_liger_kernel: Falseliger_kernel_config: Noneuse_cache: Falseneftune_noise_alpha: Nonetorch_empty_cache_steps: Noneauto_find_batch_size: Falselog_on_each_node: Truelogging_nan_inf_filter: Trueinclude_num_input_tokens_seen: nolog_level: passivelog_level_replica: warningdisable_tqdm: Falseproject: huggingfacetrackio_space_id: trackioeval_strategy: stepsper_device_eval_batch_size: 32prediction_loss_only: Trueeval_on_start: Falseeval_do_concat_batches: Trueeval_use_gather_object: Falseeval_accumulation_steps: Noneinclude_for_metrics: []batch_eval_metrics: Falsesave_only_model: Falsesave_on_each_node: Falseenable_jit_checkpoint: Falsepush_to_hub: Falsehub_private_repo: Nonehub_model_id: Nonehub_strategy: every_savehub_always_push: Falsehub_revision: Noneload_best_model_at_end: Falseignore_data_skip: Falserestore_callback_states_from_checkpoint: Falsefull_determinism: Falseseed: 42data_seed: Noneuse_cpu: Falseaccelerator_config: {'splitbatches': False, 'dispatchbatches': None, 'evenbatches': True, 'useseedablesampler': True, 'nonblocking': False, 'gradientaccumulationkwargs': None}parallelism_config: Nonedataloader_drop_last: Falsedataloader_num_workers: 0dataloader_pin_memory: Truedataloader_persistent_workers: Falsedataloader_prefetch_factor: Noneremove_unused_columns: Truelabel_names: Nonetrain_sampling_strategy: randomlength_column_name: lengthddp_find_unused_parameters: Noneddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falseddp_backend: Noneddp_timeout: 1800fsdp: []fsdp_config: {'minnumparams': 0, 'xla': False, 'xlafsdpv2': False, 'xlafsdpgrad_ckpt': False}deepspeed: Nonedebug: []skip_memory_metrics: Truedo_predict: Falseresume_from_checkpoint: Nonewarmup_ratio: Nonelocal_rank: -1prompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}
</details>
Training Logs
Framework Versions
- Python: 3.12.3
- Sentence Transformers: 5.3.0
- Transformers: 5.4.0
- PyTorch: 2.11.0+cu130
- Accelerate: 1.13.0
- Datasets: 4.8.4
- Tokenizers: 0.22.2
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{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},
}<!--
Glossary
Clearly define terms in order to be accessible across audiences. -->
<!--
Model Card Authors
Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction. -->
<!--
Model Card Contact
Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors. -->
Proje Bağlamı
Bu model MOSAIC federe öğrenme mimarisinin üç katmanlı RAG'ında kullanılmaktadır:
Mimari: cross-encoder/ms-marco-MiniLM-L-6-v2 reranker + hibrit arama (dense + BM25)
Kaynak kod: github.com/tahatoy/Mosaic
