metadata
language:
- en
license: apache-2.0
tags:
- biencoder
- sentence-transformers
- text-classification
- sentence-pair-classification
- semantic-similarity
- semantic-search
- retrieval
- reranking
- generated_from_trainer
- dataset_size:1460771
- loss:ArcFaceInBatchLoss
base_model: Alibaba-NLP/gte-modernbert-base
widget:
- source_sentence: >-
"How much would I need to narrate a ""Let's Play"" video in order to make
money from it on YouTube?"
sentences:
- How much money do people make from YouTube videos with 1 million views?
- >-
"How much would I need to narrate a ""Let's Play"" video in order to
make money from it on YouTube?"
- '"Does the sentence, ""I expect to be disappointed,"" make sense?"'
- source_sentence: '"I appreciate that.'
sentences:
- >-
"How is the Mariner rewarded in ""The Rime of the Ancient Mariner"" by
Samuel Taylor Coleridge?"
- '"I appreciate that.'
- I can appreciate that.
- source_sentence: >-
"""It is very easy to defeat someone, but too hard to win some one"". What
does the previous sentence mean?"
sentences:
- '"How can you use the word ""visceral"" in a sentence?"'
- >-
"""It is very easy to defeat someone, but too hard to win some one"".
What does the previous sentence mean?"
- >-
"What does ""The loudest one in the room is the weakest one in the
room."" Mean?"
- source_sentence: >-
" We condemn this raid which is in our view illegal and morally and
politically unjustifiable , " London-based NCRI official Ali Safavi told
Reuters by telephone .
sentences:
- >-
London-based NCRI official Ali Safavi told Reuters : " We condemn this
raid , which is in our view illegal and morally and politically
unjustifiable . "
- >-
The social awkwardness is complicated by the fact that Marianne is a
white girl living with a black family .
- art's cause, this in my opinion
- source_sentence: >-
"If you click ""like"" on an old post that someone made on your wall yet
you're no longer Facebook friends, will they still receive a
notification?"
sentences:
- >-
"Is there is any two wheeler having a gear box which has the feature
""automatic neutral"" when the engine is off while it is in gear?"
- >-
"If you click ""like"" on an old post that someone made on your wall yet
you're no longer Facebook friends, will they still receive a
notification?"
- >-
"If your teenage son posted ""La commedia e finita"" on his Facebook
wall, would you be concerned?"
datasets:
- redis/langcache-sentencepairs-v2
pipeline_tag: sentence-similarity
library_name: sentence-transformers
metrics:
- cosine_accuracy@1
- cosine_precision@1
- cosine_recall@1
- cosine_ndcg@10
- cosine_mrr@1
- cosine_map@100
- cosine_auc_precision_cache_hit_ratio
- cosine_auc_similarity_distribution
model-index:
- name: Redis fine-tuned BiEncoder model for semantic caching on LangCache
results:
- task:
type: custom-information-retrieval
name: Custom Information Retrieval
dataset:
name: test
type: test
metrics:
- type: cosine_accuracy@1
value: 0.5880558568329718
name: Cosine Accuracy@1
- type: cosine_precision@1
value: 0.5880558568329718
name: Cosine Precision@1
- type: cosine_recall@1
value: 0.5707119922832199
name: Cosine Recall@1
- type: cosine_ndcg@10
value: 0.771771481653434
name: Cosine Ndcg@10
- type: cosine_mrr@1
value: 0.5880558568329718
name: Cosine Mrr@1
- type: cosine_map@100
value: 0.7214095423928245
name: Cosine Map@100
- type: cosine_auc_precision_cache_hit_ratio
value: 0.35287530778716975
name: Cosine Auc Precision Cache Hit Ratio
- type: cosine_auc_similarity_distribution
value: 0.16742922746173
name: Cosine Auc Similarity Distribution
Redis fine-tuned BiEncoder model for semantic caching on LangCache
This is a sentence-transformers model finetuned from Alibaba-NLP/gte-modernbert-base on the LangCache Sentence Pairs (all) dataset. It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for sentence pair similarity.
Model Details
Model Description
- Model Type: Sentence Transformer
- Base model: Alibaba-NLP/gte-modernbert-base
- Maximum Sequence Length: 100 tokens
- Output Dimensionality: 768 dimensions
- Similarity Function: Cosine Similarity
- Training Dataset:
- Language: en
- License: apache-2.0
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': 100, 'do_lower_case': False, 'architecture': 'ModernBertModel'})
(1): Pooling({'word_embedding_dimension': 768, '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})
(mlp_hidden): Dense({'in_features': 768, 'out_features': 768, 'bias': True, 'activation_function': 'torch.nn.modules.activation.ReLU'})
(mlp_out): Dense({'in_features': 768, 'out_features': 768, 'bias': True, 'activation_function': 'torch.nn.modules.linear.Identity'})
)
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("redis/langcache-embed-v3")
# Run inference
sentences = [
'"If you click ""like"" on an old post that someone made on your wall yet you\'re no longer Facebook friends, will they still receive a notification?"',
'"If you click ""like"" on an old post that someone made on your wall yet you\'re no longer Facebook friends, will they still receive a notification?"',
'"If your teenage son posted ""La commedia e finita"" on his Facebook wall, would you be concerned?"',
]
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, 1.0000, 0.2617],
# [1.0000, 1.0000, 0.2617],
# [0.2617, 0.2617, 1.0000]])
Evaluation
Metrics
Custom Information Retrieval
- Dataset:
test
- Evaluated with
ir_evaluator.CustomInformationRetrievalEvaluator
Metric | Value |
---|---|
cosine_accuracy@1 | 0.5881 |
cosine_precision@1 | 0.5881 |
cosine_recall@1 | 0.5707 |
cosine_ndcg@10 | 0.7718 |
cosine_mrr@1 | 0.5881 |
cosine_map@100 | 0.7214 |
cosine_auc_precision_cache_hit_ratio | 0.3529 |
cosine_auc_similarity_distribution | 0.1674 |
Training Details
Training Dataset
LangCache Sentence Pairs (all)
- Dataset: LangCache Sentence Pairs (all)
- Size: 132,354 training samples
- Columns:
anchor
,positive
, andnegative
- Approximate statistics based on the first 1000 samples:
anchor positive negative type string string string details - min: 4 tokens
- mean: 25.33 tokens
- max: 100 tokens
- min: 4 tokens
- mean: 24.98 tokens
- max: 100 tokens
- min: 5 tokens
- mean: 19.06 tokens
- max: 68 tokens
- Samples:
anchor positive negative What high potential jobs are there other than computer science?
What high potential jobs are there other than computer science?
Why IT or Computer Science jobs are being over rated than other Engineering jobs?
Would India ever be able to develop a missile system like S300 or S400 missile?
Would India ever be able to develop a missile system like S300 or S400 missile?
Should India buy the Russian S400 air defence missile system?
water from the faucet is being drunk by a yellow dog
A yellow dog is drinking water from the faucet
Childlessness is low in Eastern European countries.
- Loss:
losses.ArcFaceInBatchLoss
with these parameters:{ "scale": 20.0, "similarity_fct": "cos_sim", "gather_across_devices": false }
Evaluation Dataset
LangCache Sentence Pairs (all)
- Dataset: LangCache Sentence Pairs (all)
- Size: 132,354 evaluation samples
- Columns:
anchor
,positive
, andnegative
- Approximate statistics based on the first 1000 samples:
anchor positive negative type string string string details - min: 4 tokens
- mean: 25.33 tokens
- max: 100 tokens
- min: 4 tokens
- mean: 24.98 tokens
- max: 100 tokens
- min: 5 tokens
- mean: 19.06 tokens
- max: 68 tokens
- Samples:
anchor positive negative What high potential jobs are there other than computer science?
What high potential jobs are there other than computer science?
Why IT or Computer Science jobs are being over rated than other Engineering jobs?
Would India ever be able to develop a missile system like S300 or S400 missile?
Would India ever be able to develop a missile system like S300 or S400 missile?
Should India buy the Russian S400 air defence missile system?
water from the faucet is being drunk by a yellow dog
A yellow dog is drinking water from the faucet
Childlessness is low in Eastern European countries.
- Loss:
losses.ArcFaceInBatchLoss
with these parameters:{ "scale": 20.0, "similarity_fct": "cos_sim", "gather_across_devices": false }
Training Hyperparameters
Non-Default Hyperparameters
eval_strategy
: stepsper_device_train_batch_size
: 8192per_device_eval_batch_size
: 8192gradient_accumulation_steps
: 2weight_decay
: 0.001adam_beta2
: 0.98adam_epsilon
: 1e-06num_train_epochs
: 1warmup_ratio
: 0.05bf16
: Truedataloader_num_workers
: 4dataloader_prefetch_factor
: 4load_best_model_at_end
: Trueoptim
: stable_adamwddp_find_unused_parameters
: Falsedataloader_persistent_workers
: Truepush_to_hub
: Truehub_model_id
: redis/langcache-embed-v3eval_on_start
: Truebatch_sampler
: no_duplicates
All Hyperparameters
Click to expand
overwrite_output_dir
: Falsedo_predict
: Falseeval_strategy
: stepsprediction_loss_only
: Trueper_device_train_batch_size
: 8192per_device_eval_batch_size
: 8192per_gpu_train_batch_size
: Noneper_gpu_eval_batch_size
: Nonegradient_accumulation_steps
: 2eval_accumulation_steps
: Nonetorch_empty_cache_steps
: Nonelearning_rate
: 5e-05weight_decay
: 0.001adam_beta1
: 0.9adam_beta2
: 0.98adam_epsilon
: 1e-06max_grad_norm
: 1.0num_train_epochs
: 1max_steps
: -1lr_scheduler_type
: linearlr_scheduler_kwargs
: {}warmup_ratio
: 0.05warmup_steps
: 0log_level
: passivelog_level_replica
: warninglog_on_each_node
: Truelogging_nan_inf_filter
: Truesave_safetensors
: Truesave_on_each_node
: Falsesave_only_model
: Falserestore_callback_states_from_checkpoint
: Falseno_cuda
: Falseuse_cpu
: Falseuse_mps_device
: Falseseed
: 42data_seed
: Nonejit_mode_eval
: Falseuse_ipex
: Falsebf16
: Truefp16
: Falsefp16_opt_level
: O1half_precision_backend
: autobf16_full_eval
: Falsefp16_full_eval
: Falsetf32
: Nonelocal_rank
: 0ddp_backend
: Nonetpu_num_cores
: Nonetpu_metrics_debug
: Falsedebug
: []dataloader_drop_last
: Falsedataloader_num_workers
: 4dataloader_prefetch_factor
: 4past_index
: -1disable_tqdm
: Falseremove_unused_columns
: Truelabel_names
: Noneload_best_model_at_end
: Trueignore_data_skip
: Falsefsdp
: []fsdp_min_num_params
: 0fsdp_config
: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}fsdp_transformer_layer_cls_to_wrap
: Noneaccelerator_config
: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}parallelism_config
: Nonedeepspeed
: Nonelabel_smoothing_factor
: 0.0optim
: stable_adamwoptim_args
: Noneadafactor
: Falsegroup_by_length
: Falselength_column_name
: lengthddp_find_unused_parameters
: Falseddp_bucket_cap_mb
: Noneddp_broadcast_buffers
: Falsedataloader_pin_memory
: Truedataloader_persistent_workers
: Trueskip_memory_metrics
: Trueuse_legacy_prediction_loop
: Falsepush_to_hub
: Trueresume_from_checkpoint
: Nonehub_model_id
: redis/langcache-embed-v3hub_strategy
: every_savehub_private_repo
: Nonehub_always_push
: Falsehub_revision
: Nonegradient_checkpointing
: Falsegradient_checkpointing_kwargs
: Noneinclude_inputs_for_metrics
: Falseinclude_for_metrics
: []eval_do_concat_batches
: Truefp16_backend
: autopush_to_hub_model_id
: Nonepush_to_hub_organization
: Nonemp_parameters
:auto_find_batch_size
: Falsefull_determinism
: Falsetorchdynamo
: Noneray_scope
: lastddp_timeout
: 1800torch_compile
: Falsetorch_compile_backend
: Nonetorch_compile_mode
: Noneinclude_tokens_per_second
: Falseinclude_num_input_tokens_seen
: Falseneftune_noise_alpha
: Noneoptim_target_modules
: Nonebatch_eval_metrics
: Falseeval_on_start
: Trueuse_liger_kernel
: Falseliger_kernel_config
: Noneeval_use_gather_object
: Falseaverage_tokens_across_devices
: Falseprompts
: Nonebatch_sampler
: no_duplicatesmulti_dataset_batch_sampler
: proportionalrouter_mapping
: {}learning_rate_mapping
: {}
Training Logs
Epoch | Step | Validation Loss | test_cosine_ndcg@10 |
---|---|---|---|
0 | 0 | 2.9916 | 0.7718 |
Framework Versions
- Python: 3.12.3
- Sentence Transformers: 5.1.0
- Transformers: 4.56.0
- PyTorch: 2.8.0+cu128
- Accelerate: 1.10.1
- Datasets: 4.0.0
- Tokenizers: 0.22.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",
}