Embedding-v2 / README.md
Adi-0-0-Gupta's picture
Add new SentenceTransformer model.
971e79b verified
|
raw
history blame
30.1 kB
metadata
datasets: []
language: []
library_name: sentence-transformers
metrics:
  - cosine_accuracy@1
  - cosine_accuracy@3
  - cosine_accuracy@5
  - cosine_accuracy@10
  - cosine_precision@1
  - cosine_precision@3
  - cosine_precision@5
  - cosine_precision@10
  - cosine_recall@1
  - cosine_recall@3
  - cosine_recall@5
  - cosine_recall@10
  - cosine_ndcg@10
  - cosine_mrr@10
  - cosine_map@100
pipeline_tag: sentence-similarity
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - generated_from_trainer
  - dataset_size:42333
  - loss:MatryoshkaLoss
  - loss:MultipleNegativesRankingLoss
widget:
  - source_sentence: >-
      Tag: chicken & broccoli alfredo


      For chicken & broccoli alfredo, these dietary tags go well with it:
      dinner, italian cuisine, meat recipes, lunch, italian american cuisine,
      american cuisine, pasta recipes, contains dairy, european cuisine,
      vegetarian
    sentences:
      - >-
        Tag: chicken & broccoli alfredo


        What dietary classifications are suitable for chicken & broccoli
        alfredo?
      - |-
        Tag: vegan pad thai

        What dietary labels fit vegan pad thai?
      - |-
        Tag: apple pie filling

        Which dietary tags apply to apple pie filling?
  - source_sentence: >-
      Tag: beef and broccoli


      A small description of beef and broccoli: Stir fried broccoli and tender
      beef strips stir-fried in a rich savory sauce.
    sentences:
      - |-
        Tag: chicken lettuce wrap

        What are the principal macro ingredients of chicken lettuce wrap?
      - |-
        Tag: teriyaki tofu

        What are the micro ingredients used in teriyaki tofu?
      - |-
        Tag: beef and broccoli

        What’s the best way to describe beef and broccoli?
  - source_sentence: >-
      Tag: scrambled eggs with veggies


      For scrambled eggs with veggies, these dietary tags go well with it:
      breakfast, american cuisine, protein rich recipes, stir fry recipes,
      gluten free recipes
    sentences:
      - |-
        Tag: kimchi fried rice (chicken)

        What are the vital macro ingredients in kimchi fried rice (chicken)?
      - |-
        Tag: scrambled eggs with veggies

        What are the key macro ingredients for scrambled eggs with veggies?
      - >-
        Tag: scrambled eggs with veggies


        How should I label scrambled eggs with veggies in terms of dietary
        categories?
  - source_sentence: |-
      Tag: mixed vegetable stir-fry

      Micro ingredients required to cook mixed vegetable stir-fry:
      Salt, Cornstarch, Black Pepper Powder
    sentences:
      - |-
        Tag: vegan pad thai

        Can you provide a thorough explanation of how to cook vegan pad thai?
      - >-
        Tag: chicken & broccoli alfredo


        What’s involved in preparing the ingredients for chicken & broccoli
        alfredo?
      - |-
        Tag: mixed vegetable stir-fry

        What are the main components of mixed vegetable stir-fry?
  - source_sentence: >-
      Tag: vegan pad thai


      Cook time of vegan pad thai based on different serving sizes: Serving 1 -
      20 mins, Serving 2 - 25 mins, Serving 3 - 30 mins, Serving 4 - 35 mins
    sentences:
      - |-
        Tag: vegan pad thai

        What’s the expected cook time for vegan pad thai?
      - |-
        Tag: scrambled eggs with veggies

        What dietary classifications suit scrambled eggs with veggies?
      - |-
        Tag: vegetable pulao

        What are some creative garnishing tips for vegetable pulao?
model-index:
  - name: SentenceTransformer
    results:
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: dim 384
          type: dim_384
        metrics:
          - type: cosine_accuracy@1
            value: 0.9688300597779675
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.9701110162254484
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.9748078565328779
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.9946626814688301
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.9688300597779675
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.8469968687731283
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.8014944491887276
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.4411614005123826
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.3285582123541133
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.6209009393680616
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8938791122768492
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.9605094343458989
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.9592536302802654
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.9733707623385245
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.9539794228951505
            name: Cosine Map@100
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: dim 256
          type: dim_256
        metrics:
          - type: cosine_accuracy@1
            value: 0.9679760888129804
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.9692570452604612
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.9752348420153715
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.9948761742100769
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.9679760888129804
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.8459294050668943
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.7992741246797609
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.43917591801878736
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.32842427107478345
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.6204243930706356
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8918949005733805
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.9569316518238379
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.9566533189656364
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.9727438392094664
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.9511517923410544
            name: Cosine Map@100
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: dim 128
          type: dim_128
        metrics:
          - type: cosine_accuracy@1
            value: 0.9694705380017079
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.9705380017079419
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.9760888129803587
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.9948761742100769
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.9694705380017079
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.8471391972672928
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.798462852263023
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.43800170794193005
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.3286967284778983
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.6210852039363994
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8912874628929282
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.9550379203773738
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.9558695124747556
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.9739451594756885
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.9499982560169666
            name: Cosine Map@100
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: dim 64
          type: dim_64
        metrics:
          - type: cosine_accuracy@1
            value: 0.9698975234842016
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.9720324508966696
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.9771562766865927
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.9938087105038429
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.9698975234842016
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.8472815257614573
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.7965841161400511
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.4339666951323655
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.3288006791102436
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.621300984099874
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.889481670123216
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.9478284738318897
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.9517343805870713
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.974398746831496
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.9459942940005901
            name: Cosine Map@100
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: dim 32
          type: dim_32
        metrics:
          - type: cosine_accuracy@1
            value: 0.9690435525192144
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.9707514944491887
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.9769427839453458
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.9929547395388557
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.9690435525192144
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.8464987190435526
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.7940222032450898
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.4318531169940221
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.3286197185962344
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.6208008011060958
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8871009719002887
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.9440570228945548
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.9489614439178549
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.9734810669215016
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.9417483259746888
            name: Cosine Map@100

SentenceTransformer

This is a sentence-transformers model trained. 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
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 384 tokens
  • Similarity Function: Cosine Similarity

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': True}) with Transformer model: BertModel 
  (1): Pooling({'word_embedding_dimension': 384, '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("Adi-0-0-Gupta/Embedding-v2")
# Run inference
sentences = [
    'Tag: vegan pad thai\n\nCook time of vegan pad thai based on different serving sizes: Serving 1 - 20 mins, Serving 2 - 25 mins, Serving 3 - 30 mins, Serving 4 - 35 mins',
    'Tag: vegan pad thai\n\nWhat’s the expected cook time for vegan pad thai?',
    'Tag: scrambled eggs with veggies\n\nWhat dietary classifications suit scrambled eggs with veggies?',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 384]

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

Evaluation

Metrics

Information Retrieval

Metric Value
cosine_accuracy@1 0.9688
cosine_accuracy@3 0.9701
cosine_accuracy@5 0.9748
cosine_accuracy@10 0.9947
cosine_precision@1 0.9688
cosine_precision@3 0.847
cosine_precision@5 0.8015
cosine_precision@10 0.4412
cosine_recall@1 0.3286
cosine_recall@3 0.6209
cosine_recall@5 0.8939
cosine_recall@10 0.9605
cosine_ndcg@10 0.9593
cosine_mrr@10 0.9734
cosine_map@100 0.954

Information Retrieval

Metric Value
cosine_accuracy@1 0.968
cosine_accuracy@3 0.9693
cosine_accuracy@5 0.9752
cosine_accuracy@10 0.9949
cosine_precision@1 0.968
cosine_precision@3 0.8459
cosine_precision@5 0.7993
cosine_precision@10 0.4392
cosine_recall@1 0.3284
cosine_recall@3 0.6204
cosine_recall@5 0.8919
cosine_recall@10 0.9569
cosine_ndcg@10 0.9567
cosine_mrr@10 0.9727
cosine_map@100 0.9512

Information Retrieval

Metric Value
cosine_accuracy@1 0.9695
cosine_accuracy@3 0.9705
cosine_accuracy@5 0.9761
cosine_accuracy@10 0.9949
cosine_precision@1 0.9695
cosine_precision@3 0.8471
cosine_precision@5 0.7985
cosine_precision@10 0.438
cosine_recall@1 0.3287
cosine_recall@3 0.6211
cosine_recall@5 0.8913
cosine_recall@10 0.955
cosine_ndcg@10 0.9559
cosine_mrr@10 0.9739
cosine_map@100 0.95

Information Retrieval

Metric Value
cosine_accuracy@1 0.9699
cosine_accuracy@3 0.972
cosine_accuracy@5 0.9772
cosine_accuracy@10 0.9938
cosine_precision@1 0.9699
cosine_precision@3 0.8473
cosine_precision@5 0.7966
cosine_precision@10 0.434
cosine_recall@1 0.3288
cosine_recall@3 0.6213
cosine_recall@5 0.8895
cosine_recall@10 0.9478
cosine_ndcg@10 0.9517
cosine_mrr@10 0.9744
cosine_map@100 0.946

Information Retrieval

Metric Value
cosine_accuracy@1 0.969
cosine_accuracy@3 0.9708
cosine_accuracy@5 0.9769
cosine_accuracy@10 0.993
cosine_precision@1 0.969
cosine_precision@3 0.8465
cosine_precision@5 0.794
cosine_precision@10 0.4319
cosine_recall@1 0.3286
cosine_recall@3 0.6208
cosine_recall@5 0.8871
cosine_recall@10 0.9441
cosine_ndcg@10 0.949
cosine_mrr@10 0.9735
cosine_map@100 0.9417

Training Details

Training Dataset

Unnamed Dataset

  • Size: 42,333 training samples
  • Columns: positive and anchor
  • Approximate statistics based on the first 1000 samples:
    positive anchor
    type string string
    details
    • min: 17 tokens
    • mean: 71.13 tokens
    • max: 433 tokens
    • min: 14 tokens
    • mean: 22.97 tokens
    • max: 41 tokens
  • Samples:
    positive anchor
    Tag: beef and broccoli

    A small description of beef and broccoli: Stir fried broccoli and tender beef strips stir-fried in a rich savory sauce.
    Tag: beef and broccoli

    How do you describe beef and broccoli?
    Tag: beef and broccoli

    Garnishing tips for beef and broccoli: Best served on it's own or on top of hot rice with chopped scallions!
    Tag: beef and broccoli

    What are some classic garnishes for beef and broccoli?
    Tag: beef and broccoli

    For beef and broccoli, these dietary tags go well with it: dinner, contains soy, meat recipes, asian american cuisine, lunch, american cuisine, beef recipes, asian cuisine, chinese cuisine, hearty recipes, rice recipes, protein rich recipes, non vegetarian, saucy recipes, stir fry recipes, healthy recipes
    Tag: beef and broccoli

    What dietary labels suit beef and broccoli?
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "MultipleNegativesRankingLoss",
        "matryoshka_dims": [
            384,
            256,
            128,
            64,
            32
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": -1
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 32
  • gradient_accumulation_steps: 16
  • learning_rate: 2e-05
  • num_train_epochs: 100
  • lr_scheduler_type: constant
  • warmup_ratio: 0.1
  • bf16: True
  • tf32: True
  • load_best_model_at_end: True
  • optim: adamw_torch_fused
  • 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: 32
  • per_device_eval_batch_size: 32
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 16
  • eval_accumulation_steps: None
  • learning_rate: 2e-05
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 100
  • max_steps: -1
  • lr_scheduler_type: constant
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.1
  • 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: False
  • 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: True
  • 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: True
  • 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_fused
  • 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: False
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • 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
  • dispatch_batches: None
  • split_batches: None
  • include_tokens_per_second: False
  • include_num_input_tokens_seen: False
  • neftune_noise_alpha: None
  • optim_target_modules: None
  • batch_eval_metrics: False
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss dim_128_cosine_map@100 dim_256_cosine_map@100 dim_32_cosine_map@100 dim_384_cosine_map@100 dim_64_cosine_map@100
0.3023 25 2.7893 0.9106 0.9169 0.8833 0.9193 0.9013
0.6047 50 1.6554 0.9061 0.9153 0.8858 0.9199 0.8970
0.9070 75 0.7514 0.9361 0.9382 0.9216 0.9423 0.9292
1.2079 100 1.2044 0.9334 0.9370 0.9186 0.9413 0.9263
1.5102 125 1.4103 0.9312 0.9342 0.9146 0.9382 0.9222
1.8125 150 0.6925 0.9444 0.9463 0.9326 0.9502 0.9385
2.1134 175 0.7937 0.9333 0.9376 0.9196 0.9410 0.9256
2.4157 200 1.3185 0.9321 0.9355 0.9191 0.9399 0.9245
2.7181 225 1.0296 0.9400 0.9426 0.9293 0.9466 0.9345
3.0189 250 0.3606 0.9342 0.9373 0.9231 0.9417 0.9282
3.3212 275 1.2364 0.9381 0.9410 0.9273 0.9444 0.9312
3.6236 300 1.2507 0.9305 0.9340 0.9193 0.9385 0.9233
3.9259 325 0.3211 0.9500 0.9512 0.9417 0.9540 0.9460

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.0.1
  • Transformers: 4.41.2
  • PyTorch: 2.1.2+cu121
  • Accelerate: 0.31.0
  • Datasets: 2.19.1
  • Tokenizers: 0.19.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}
}

MultipleNegativesRankingLoss

@misc{henderson2017efficient,
    title={Efficient Natural Language Response Suggestion for Smart Reply}, 
    author={Matthew Henderson and Rami Al-Rfou and Brian Strope and Yun-hsuan Sung and Laszlo Lukacs and Ruiqi Guo and Sanjiv Kumar and Balint Miklos and Ray Kurzweil},
    year={2017},
    eprint={1705.00652},
    archivePrefix={arXiv},
    primaryClass={cs.CL}
}