YAML Metadata
Warning:
The pipeline tag "text-ranking" is not in the official list: text-classification, token-classification, table-question-answering, question-answering, zero-shot-classification, translation, summarization, feature-extraction, text-generation, text2text-generation, fill-mask, sentence-similarity, text-to-speech, text-to-audio, automatic-speech-recognition, audio-to-audio, audio-classification, audio-text-to-text, voice-activity-detection, depth-estimation, image-classification, object-detection, image-segmentation, text-to-image, image-to-text, image-to-image, image-to-video, unconditional-image-generation, video-classification, reinforcement-learning, robotics, tabular-classification, tabular-regression, tabular-to-text, table-to-text, multiple-choice, text-retrieval, time-series-forecasting, text-to-video, image-text-to-text, visual-question-answering, document-question-answering, zero-shot-image-classification, graph-ml, mask-generation, zero-shot-object-detection, text-to-3d, image-to-3d, image-feature-extraction, video-text-to-text, keypoint-detection, visual-document-retrieval, any-to-any, other
CrossEncoder based on almanach/camembertv2-base
This is a Cross Encoder model finetuned from almanach/camembertv2-base using the sentence-transformers library. It computes scores for pairs of texts, which can be used for text reranking and semantic search.
Model Details
Model Description
- Model Type: Cross Encoder
- Base model: almanach/camembertv2-base
- Maximum Sequence Length: 1024 tokens
- Number of Output Labels: 1 label
Model Sources
- Documentation: Sentence Transformers Documentation
- Documentation: Cross Encoder Documentation
- Repository: Sentence Transformers on GitHub
- Hugging Face: Cross Encoders on Hugging Face
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 CrossEncoder
# Download from the 🤗 Hub
model = CrossEncoder("tomaarsen/reranker-camembertv2-base-fr-lambda")
# Get scores for pairs of texts
pairs = [
['How many calories in an egg', 'There are on average between 55 and 80 calories in an egg depending on its size.'],
['How many calories in an egg', 'Egg whites are very low in calories, have no fat, no cholesterol, and are loaded with protein.'],
['How many calories in an egg', 'Most of the calories in an egg come from the yellow yolk in the center.'],
]
scores = model.predict(pairs)
print(scores.shape)
# (3,)
# Or rank different texts based on similarity to a single text
ranks = model.rank(
'How many calories in an egg',
[
'There are on average between 55 and 80 calories in an egg depending on its size.',
'Egg whites are very low in calories, have no fat, no cholesterol, and are loaded with protein.',
'Most of the calories in an egg come from the yellow yolk in the center.',
]
)
# [{'corpus_id': ..., 'score': ...}, {'corpus_id': ..., 'score': ...}, ...]
Evaluation
Metrics
Cross Encoder Reranking
- Dataset:
swim_ir_dev
- Evaluated with
CrossEncoderRerankingEvaluator
with these parameters:{ "at_k": 10, "always_rerank_positives": false }
Metric | Value |
---|---|
map | 0.6059 (+0.1333) |
mrr@10 | 0.6052 (+0.1371) |
ndcg@10 | 0.6217 (+0.1206) |
Training Details
Training Dataset
Unnamed Dataset
- Size: 100,000 training samples
- Columns:
query
,docs
, andlabels
- Approximate statistics based on the first 1000 samples:
query docs labels type string list list details - min: 0 characters
- mean: 37.74 characters
- max: 157 characters
- size: 6 elements
- size: 6 elements
- Samples:
query docs labels ['L'ambitus exigé par le rôle-titre est plus problématique : la plus haute note est un "si" aigu, ce qui n'est pas anormal pour une soprano ou une mezzo-soprano, alors que la plus basse est un "sol" bémol grave dans le registre alto (et normalement au-dessous du registre d'une mezzo-soprano "standard"). Compte tenu d'une telle tessiture, qui ressemble à celle de nombreux rôles de mezzo comme Carmen et Amneris, on pourrait croire qu'un soprano aigu n'est pas essentiel à la pièce, mais c'est bien le contraire ; la plupart des sopranos graves qui ont abordé ce rôle ont imposé un tel effort à leur voix tout au long de l'opéra, qu'elles se retrouvaient épuisées au moment de la scène finale (la partie la plus éprouvante pour le rôle-titre). Ce rôle est l'exemple classique de la différence qui existe entre tessiture et ambitus : tandis que des mezzos peuvent exécuter une note aigüe (comme dans "Carmen"), ou même soutenir temporairement une tessiture tendue, il est impossible pour un...
[1, 0, 0, 0, 0, ...]
["Les saisons 2 à 6 sont produites par Télé-Vision V Inc., filiale de Groupe Télé-Vision Inc. Lors de la saison d'hiver 2006, l'émission était animée par Isabelle Maréchal et Virginie Coossa. Pour les saisons 3,4,5 Marie Plourde a remplacé Isabelle Maréchal, alors que Virginie Coossa est demeurée coanimatrice. Lors des saisons 5 et 6, Kim Rusk, la gagnante de la saison 3, était la coanimatrice. La saison 6 sera animée par Pierre-Yves Lord.", ',{"type": "ExternalData", "service":"geoshape","ids": "Q40","properties": {"fill":"#FF0000","stroke-width":0,"description": "Autriche"}}]', '! scope=col width="10%"
Pages ! scope=col width="25%" ['En 1963, Bernard et Françoise Moitessier quittent le port de Marseille, pour un voyage de noces. Ils prennent le détroit de Gibraltar et se dirigent vers les îles Canaries où il retrouve Pierre Deshumeurs, le compagnon du "Snark". Les enfants de Françoise les rejoignent le temps des vacances scolaires. Les Moitessier poursuivent ensuite vers les Antilles, puis le canal de Panama, avant de s'arrêter longuement dans l'archipel des Galápagos, où certaines îles reculées de toutes civilisations accueillent une faune et une flore exceptionnelles qui retiennent l'attention du couple. Ils rejoignent ensuite la Polynésie française où ils restent plusieurs mois.', ',{"type": "ExternalData", "service":"geoshape","ids": "Q40","properties": {"fill":"#FF0000","stroke-width":0,"description": "Autriche"}}]', '! scope=col width="10%"
Pages ! scope=col width="25%" - Loss:
LambdaLoss
with these parameters:{ "weighting_scheme": "sentence_transformers.cross_encoder.losses.LambdaLoss.NDCGLoss2PPScheme", "k": null, "sigma": 1.0, "eps": 1e-10, "reduction_log": "binary", "activation_fct": "torch.nn.modules.linear.Identity", "mini_batch_size": 8 }
Training Hyperparameters
Non-Default Hyperparameters
eval_strategy
: stepsper_device_train_batch_size
: 16per_device_eval_batch_size
: 16learning_rate
: 2e-05num_train_epochs
: 1warmup_ratio
: 0.1seed
: 12bf16
: Trueload_best_model_at_end
: True
All Hyperparameters
Click to expand
overwrite_output_dir
: Falsedo_predict
: Falseeval_strategy
: stepsprediction_loss_only
: Trueper_device_train_batch_size
: 16per_device_eval_batch_size
: 16per_gpu_train_batch_size
: Noneper_gpu_eval_batch_size
: Nonegradient_accumulation_steps
: 1eval_accumulation_steps
: Nonetorch_empty_cache_steps
: Nonelearning_rate
: 2e-05weight_decay
: 0.0adam_beta1
: 0.9adam_beta2
: 0.999adam_epsilon
: 1e-08max_grad_norm
: 1.0num_train_epochs
: 1max_steps
: -1lr_scheduler_type
: linearlr_scheduler_kwargs
: {}warmup_ratio
: 0.1warmup_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
: 12data_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
: 0dataloader_prefetch_factor
: Nonepast_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}deepspeed
: Nonelabel_smoothing_factor
: 0.0optim
: adamw_torchoptim_args
: Noneadafactor
: Falsegroup_by_length
: Falselength_column_name
: lengthddp_find_unused_parameters
: Noneddp_bucket_cap_mb
: Noneddp_broadcast_buffers
: Falsedataloader_pin_memory
: Truedataloader_persistent_workers
: Falseskip_memory_metrics
: Trueuse_legacy_prediction_loop
: Falsepush_to_hub
: Falseresume_from_checkpoint
: Nonehub_model_id
: Nonehub_strategy
: every_savehub_private_repo
: Nonehub_always_push
: Falsegradient_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
: Nonedispatch_batches
: Nonesplit_batches
: Noneinclude_tokens_per_second
: Falseinclude_num_input_tokens_seen
: Falseneftune_noise_alpha
: Noneoptim_target_modules
: Nonebatch_eval_metrics
: Falseeval_on_start
: Falseuse_liger_kernel
: Falseeval_use_gather_object
: Falseaverage_tokens_across_devices
: Falseprompts
: Nonebatch_sampler
: batch_samplermulti_dataset_batch_sampler
: proportional
Training Logs
Epoch | Step | Training Loss | swim_ir_dev_ndcg@10 |
---|---|---|---|
-1 | -1 | - | 0.0784 (-0.4228) |
0.0002 | 1 | 2.0475 | - |
0.016 | 100 | 2.065 | - |
0.032 | 200 | 1.9662 | - |
0.048 | 300 | 0.9965 | - |
0.064 | 400 | 0.7667 | - |
0.08 | 500 | 0.6547 | 0.5961 (+0.0950) |
0.096 | 600 | 0.5899 | - |
0.112 | 700 | 0.5331 | - |
0.128 | 800 | 0.4637 | - |
0.144 | 900 | 0.4826 | - |
0.16 | 1000 | 0.4249 | 0.6012 (+0.1000) |
0.176 | 1100 | 0.4271 | - |
0.192 | 1200 | 0.4071 | - |
0.208 | 1300 | 0.3594 | - |
0.224 | 1400 | 0.401 | - |
0.24 | 1500 | 0.4171 | 0.5900 (+0.0888) |
0.256 | 1600 | 0.3728 | - |
0.272 | 1700 | 0.3242 | - |
0.288 | 1800 | 0.3665 | - |
0.304 | 1900 | 0.3367 | - |
0.32 | 2000 | 0.3259 | 0.6134 (+0.1122) |
0.336 | 2100 | 0.381 | - |
0.352 | 2200 | 0.3289 | - |
0.368 | 2300 | 0.3234 | - |
0.384 | 2400 | 0.3794 | - |
0.4 | 2500 | 0.3322 | 0.6070 (+0.1058) |
0.416 | 2600 | 0.3139 | - |
0.432 | 2700 | 0.3427 | - |
0.448 | 2800 | 0.3162 | - |
0.464 | 2900 | 0.2899 | - |
0.48 | 3000 | 0.3571 | 0.6166 (+0.1155) |
0.496 | 3100 | 0.3312 | - |
0.512 | 3200 | 0.3082 | - |
0.528 | 3300 | 0.2839 | - |
0.544 | 3400 | 0.3649 | - |
0.56 | 3500 | 0.325 | 0.6108 (+0.1097) |
0.576 | 3600 | 0.3042 | - |
0.592 | 3700 | 0.2785 | - |
0.608 | 3800 | 0.3095 | - |
0.624 | 3900 | 0.3053 | - |
0.64 | 4000 | 0.293 | 0.6131 (+0.1119) |
0.656 | 4100 | 0.2987 | - |
0.672 | 4200 | 0.2675 | - |
0.688 | 4300 | 0.2977 | - |
0.704 | 4400 | 0.2881 | - |
0.72 | 4500 | 0.2862 | 0.6186 (+0.1174) |
0.736 | 4600 | 0.2996 | - |
0.752 | 4700 | 0.2724 | - |
0.768 | 4800 | 0.2442 | - |
0.784 | 4900 | 0.2923 | - |
0.8 | 5000 | 0.2691 | 0.6217 (+0.1206) |
0.816 | 5100 | 0.3042 | - |
0.832 | 5200 | 0.2654 | - |
0.848 | 5300 | 0.3059 | - |
0.864 | 5400 | 0.2571 | - |
0.88 | 5500 | 0.2741 | 0.6174 (+0.1162) |
0.896 | 5600 | 0.3009 | - |
0.912 | 5700 | 0.2669 | - |
0.928 | 5800 | 0.2272 | - |
0.944 | 5900 | 0.2673 | - |
0.96 | 6000 | 0.2674 | 0.6194 (+0.1182) |
0.976 | 6100 | 0.2551 | - |
0.992 | 6200 | 0.2981 | - |
-1 | -1 | - | 0.6217 (+0.1206) |
- The bold row denotes the saved checkpoint.
Environmental Impact
Carbon emissions were measured using CodeCarbon.
- Energy Consumed: 0.680 kWh
- Carbon Emitted: 0.264 kg of CO2
- Hours Used: 1.921 hours
Training Hardware
- On Cloud: No
- GPU Model: 1 x NVIDIA GeForce RTX 3090
- CPU Model: 13th Gen Intel(R) Core(TM) i7-13700K
- RAM Size: 31.78 GB
Framework Versions
- Python: 3.11.6
- Sentence Transformers: 3.5.0.dev0
- Transformers: 4.49.0
- PyTorch: 2.6.0+cu124
- Accelerate: 1.4.0
- Datasets: 3.3.2
- 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",
}
LambdaLoss
@inproceedings{wang2018lambdaloss,
title={The lambdaloss framework for ranking metric optimization},
author={Wang, Xuanhui and Li, Cheng and Golbandi, Nadav and Bendersky, Michael and Najork, Marc},
booktitle={Proceedings of the 27th ACM international conference on information and knowledge management},
pages={1313--1322},
year={2018}
}
- Downloads last month
- 4
Inference Providers
NEW
This model is not currently available via any of the supported Inference Providers.
The model cannot be deployed to the HF Inference API:
The model has no pipeline_tag.
Model tree for tomaarsen/reranker-camembertv2-base-fr-lambda
Base model
almanach/camembertv2-baseEvaluation results
- Map on swim ir devself-reported0.606
- Mrr@10 on swim ir devself-reported0.605
- Ndcg@10 on swim ir devself-reported0.622