Instructions to use Toxotes/mosaic-turkembed-finetuned with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use Toxotes/mosaic-turkembed-finetuned with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("Toxotes/mosaic-turkembed-finetuned") sentences = [ "Altın yatırımı mantıklı mı?", "Temel Finans Okuryazarlığı: Fiyat Keşfi, Likidite Sağlama, Şeffaflık, Risk Diversifikasyonu, Ekonomik Büyümeye Katkıda Bulunma, Şirket Performansının İzlenmesi gibi temel finans kavramlarını anlamak gerekir.", "Pozitif yaklaşımın temel özellikleri; dışsal gözlem yerine işletme içi gözlemlere dayalı olması, analitik yöntemlerin kullanılması, başarı ve riskin birlikte ele alınması şeklinde özetlenebilir.", "Altın, enflasyona karşı değer koruma aracı olarak görülür ancak faiz getirmez. Portföyünüzün %5-10'u kadar altın bulundurmak çeşitlendirme açısından faydalı olabilir. Tam altın, altın hesabı veya altın fonları gibi seçenekler mevcuttur." ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [4, 4] - Notebooks
- Google Colab
- Kaggle
MOSAIC — Türkçe Finans Embedding Modeli (multilingual-e5-small fine-tuned)
MOSAIC tez projesinin Faz 4 çıktısı.
intfloat/multilingual-e5-smallbaz 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
- Maximum Sequence Length: 256 tokens
- Output Dimensionality: 384 dimensions
- Similarity Function: Cosine Similarity
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-transformers
Then 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]])
Evaluation
Metrics
Information Retrieval
- Dataset:
finance_val - Evaluated with
InformationRetrievalEvaluator
| Metric | Value |
|---|---|
| cosine_accuracy@1 | 0.8547 |
| cosine_accuracy@3 | 0.8939 |
| cosine_accuracy@5 | 0.933 |
| cosine_accuracy@10 | 0.9665 |
| cosine_precision@1 | 0.8547 |
| cosine_precision@3 | 0.298 |
| cosine_precision@5 | 0.1866 |
| cosine_precision@10 | 0.0966 |
| cosine_recall@1 | 0.8547 |
| cosine_recall@3 | 0.8939 |
| cosine_recall@5 | 0.933 |
| cosine_recall@10 | 0.9665 |
| cosine_ndcg@10 | 0.903 |
| cosine_mrr@10 | 0.8835 |
| cosine_map@100 | 0.8854 |
Training Details
Training Dataset
Unnamed Dataset
- Size: 1,432 training samples
- Columns:
sentence_0andsentence_1 - Approximate statistics based on the first 1000 samples:
sentence_0 sentence_1 type string string details - min: 5 tokens
- mean: 15.06 tokens
- max: 256 tokens
- min: 23 tokens
- mean: 72.26 tokens
- max: 256 tokens
- Samples:
sentence_0 sentence_1 Kullanıcının yatırım fonu hakkındaki sorusunu yanıtla.Yatırım fonları, içerdikleri varlıklara ve yatırım stratejilerine göre çeşitlenir. Başlıca türleri şunlardır:
- Hisse Senedi Fonları: Portföyünün en az %80'i hisse senetlerinden oluşur.
- Borçlanma Araçları Fonları: Genellikle düşük riskli ve sabit getirili menkul kıymetlere (tahvil, bono) yatırım yapar.
- Karma Fonlar: Hisse senedi, tahvil gibi farklı araçları bir arada bulundurur.
- Para Piyasası Fonları: Kısa vadeli ve likiditesi yüksek araçlardan oluşur.
- Katılım Fonları: Faizsiz finans ilkelerine uygun varlıklara (sukuk, katılım hisseleri) yatırım yapar.
- Borsa Yatırım Fonları (ETF): Belirli bir borsa endeksini takip eder ve hisse senedi gibi anlık alınıp satılabilir.
- Serbest Fonlar: Yüksek risk alabilen nitelikli yatırımcılara yönelik esnek fonlardır.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?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...Bütçe nasıl oluşturulur?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. - Loss:
MultipleNegativesRankingLosswith 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
Click to expand
per_device_train_batch_size: 32num_train_epochs: 3max_steps: -1learning_rate: 5e-05lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_steps: 0optim: adamw_torch_fusedoptim_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: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': 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: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_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: {}
Training Logs
| Epoch | Step | finance_val_cosine_ndcg@10 |
|---|---|---|
| -1 | -1 | 0.8615 |
| 1.0 | 45 | 0.8820 |
| 2.0 | 90 | 0.9030 |
| 3.0 | 135 | 0.9030 |
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},
}
Proje Bağlamı
Bu model MOSAIC federe öğrenme mimarisinin üç katmanlı RAG'ında kullanılmaktadır:
| ChromaDB Koleksiyonu | Belge Sayısı | Port |
|---|---|---|
finance_branch1 |
636 chunk | 8001 |
finance_branch2 |
988 chunk | 8002 |
finance_global |
1.623 chunk | 8003 |
Mimari: cross-encoder/ms-marco-MiniLM-L-6-v2 reranker + hibrit arama (dense + BM25)
Kaynak kod: github.com/tahatoy/Mosaic
- Downloads last month
- 71
Model tree for Toxotes/mosaic-turkembed-finetuned
Base model
intfloat/multilingual-e5-smallPapers for Toxotes/mosaic-turkembed-finetuned
Representation Learning with Contrastive Predictive Coding
Evaluation results
- Cosine Accuracy@1 on finance valself-reported0.855
- Cosine Accuracy@3 on finance valself-reported0.894
- Cosine Accuracy@5 on finance valself-reported0.933
- Cosine Accuracy@10 on finance valself-reported0.966
- Cosine Precision@1 on finance valself-reported0.855
- Cosine Precision@3 on finance valself-reported0.298
- Cosine Precision@5 on finance valself-reported0.187
- Cosine Precision@10 on finance valself-reported0.097