plaguss's picture
plaguss HF staff
Add new SentenceTransformer model.
7a2e427 verified
metadata
language:
  - en
license: apache-2.0
library_name: sentence-transformers
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - generated_from_trainer
  - dataset_size:882
  - loss:MatryoshkaLoss
  - loss:TripletLoss
base_model: BAAI/bge-base-en-v1.5
datasets: []
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
widget:
  - source_sentence: >-
      hide: footer


      Fields


      Fields in Argilla are define the content of a record that will be reviewed
      by a user.
    sentences:
      - >-
        The tourists tried to hide their footprints in the sand as they walked
        along the deserted beach.
      - >-
        Can the rg.Suggestion class be used to handle model predictions in
        Argilla?
      - >-
        Can users customize the fields in Argilla to fit their specific
        annotation needs?
  - source_sentence: >-
      === "Single condition"


      === "Multiple conditions"


      Filter by status


      You can filter records based on their status. The status can be pending,
      draft, submitted, or discarded.


      ```python

      import argilla_sdk as rg


      client = rg.Argilla(api_url="", api_key="")


      workspace = client.workspaces("my_workspace")


      dataset = client.datasets(name="my_dataset", workspace=workspace)


      status_filter = rg.Query(
          filter = rg.Filter(("status", "==", "submitted"))
      )
    sentences:
      - The submitted application was rejected due to incomplete documentation.
      - How can I apply filters to records by their status in Argilla?
      - >-
        Can Argilla's IntegerMetadataProperty support a range of integer values
        as metadata?
  - source_sentence: >-
      description: In this section, we will provide a step-by-step guide to show
      how to filter and query a dataset.


      Query, filter, and export records


      This guide provides an overview of how to query and filter a dataset in
      Argilla and export records.
    sentences:
      - >-
        The new restaurant in town offers a unique filter coffee that is a
        must-try for coffee enthusiasts.
      - >-
        Is it possible to design a user role with tailored access permissions
        within Argilla?
      - >-
        Can Argilla be employed to search and filter datasets based on
        particular requirements or keywords?
  - source_sentence: >-
      hide: footer


      Fields


      Fields in Argilla are define the content of a record that will be reviewed
      by a user.
    sentences:
      - >-
        Is it possible for annotators to tailor Argilla's fields to their unique
        annotation requirements?
      - >-
        The tourists tried to hide their footprints in the sand as they walked
        along the deserted beach.
      - >-
        Can this partnership with Prolific provide researchers with a broader
        range of annotators to draw from, enhancing the quality of their
        studies?
  - source_sentence: >-
      hide: footer


      rg.Argilla


      To interact with the Argilla server from python you can use the Argilla
      class. The Argilla client is used to create, get, update, and delete all
      Argilla resources, such as workspaces, users, datasets, and records.


      Usage Examples


      Connecting to an Argilla server


      To connect to an Argilla server, instantiate the Argilla class and pass
      the api_url of the server and the api_key to authenticate.


      ```python

      import argilla_sdk as rg
    sentences:
      - >-
        Can the Argilla class be employed to streamline dataset administration
        tasks in my Argilla server setup?
      - >-
        Is it possible to create new data entries in my dataset via Argilla's
        annotation tools?
      - The Argilla flowers were blooming beautifully in the garden.
pipeline_tag: sentence-similarity
model-index:
  - name: BGE base ArgillaSDK Matryoshka
    results:
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: dim 768
          type: dim_768
        metrics:
          - type: cosine_accuracy@1
            value: 0.1326530612244898
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.2857142857142857
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.3877551020408163
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.5204081632653061
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.1326530612244898
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.09523809523809525
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.07755102040816327
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.05204081632653061
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.1326530612244898
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.2857142857142857
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.3877551020408163
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.5204081632653061
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.3086125494748455
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.24321752510528016
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.26038538311827203
            name: Cosine Map@100
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: dim 512
          type: dim_512
        metrics:
          - type: cosine_accuracy@1
            value: 0.10204081632653061
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.2755102040816326
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.3877551020408163
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.5102040816326531
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.10204081632653061
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.09183673469387756
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.07755102040816327
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.05102040816326531
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.10204081632653061
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.2755102040816326
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.3877551020408163
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.5102040816326531
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.29420081448590024
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.22640913508260446
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.24259809105769914
            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.12244897959183673
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.2755102040816326
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.3877551020408163
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.5
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.12244897959183673
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.09183673469387753
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.07755102040816327
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.049999999999999996
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.12244897959183673
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.2755102040816326
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.3877551020408163
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.5
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.2931450934182018
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.2290937803692905
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.24454883014070852
            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.09183673469387756
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.25510204081632654
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.3163265306122449
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.46938775510204084
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.09183673469387756
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.08503401360544219
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.06326530612244897
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.046938775510204075
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.09183673469387756
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.25510204081632654
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.3163265306122449
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.46938775510204084
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.2629197762336244
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.1992265954000647
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.2164845577697655
            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.08163265306122448
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.25510204081632654
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.3163265306122449
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.47959183673469385
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.08163265306122448
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.08503401360544219
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.06326530612244897
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.04795918367346938
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.08163265306122448
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.25510204081632654
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.3163265306122449
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.47959183673469385
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.2610977190273289
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.19399497894395853
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.20591442395637935
            name: Cosine Map@100

BGE base ArgillaSDK Matryoshka

This is a sentence-transformers model finetuned from BAAI/bge-base-en-v1.5. It maps sentences & paragraphs to a 768-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: BAAI/bge-base-en-v1.5
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 768 tokens
  • Similarity Function: Cosine Similarity
  • Language: en
  • License: apache-2.0

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': 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})
  (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("plaguss/bge-base-argilla-sdk-matryoshka")
# Run inference
sentences = [
    'hide: footer\n\nrg.Argilla\n\nTo interact with the Argilla server from python you can use the Argilla class. The Argilla client is used to create, get, update, and delete all Argilla resources, such as workspaces, users, datasets, and records.\n\nUsage Examples\n\nConnecting to an Argilla server\n\nTo connect to an Argilla server, instantiate the Argilla class and pass the api_url of the server and the api_key to authenticate.\n\n```python\nimport argilla_sdk as rg',
    'Can the Argilla class be employed to streamline dataset administration tasks in my Argilla server setup?',
    'The Argilla flowers were blooming beautifully in the garden.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# 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.1327
cosine_accuracy@3 0.2857
cosine_accuracy@5 0.3878
cosine_accuracy@10 0.5204
cosine_precision@1 0.1327
cosine_precision@3 0.0952
cosine_precision@5 0.0776
cosine_precision@10 0.052
cosine_recall@1 0.1327
cosine_recall@3 0.2857
cosine_recall@5 0.3878
cosine_recall@10 0.5204
cosine_ndcg@10 0.3086
cosine_mrr@10 0.2432
cosine_map@100 0.2604

Information Retrieval

Metric Value
cosine_accuracy@1 0.102
cosine_accuracy@3 0.2755
cosine_accuracy@5 0.3878
cosine_accuracy@10 0.5102
cosine_precision@1 0.102
cosine_precision@3 0.0918
cosine_precision@5 0.0776
cosine_precision@10 0.051
cosine_recall@1 0.102
cosine_recall@3 0.2755
cosine_recall@5 0.3878
cosine_recall@10 0.5102
cosine_ndcg@10 0.2942
cosine_mrr@10 0.2264
cosine_map@100 0.2426

Information Retrieval

Metric Value
cosine_accuracy@1 0.1224
cosine_accuracy@3 0.2755
cosine_accuracy@5 0.3878
cosine_accuracy@10 0.5
cosine_precision@1 0.1224
cosine_precision@3 0.0918
cosine_precision@5 0.0776
cosine_precision@10 0.05
cosine_recall@1 0.1224
cosine_recall@3 0.2755
cosine_recall@5 0.3878
cosine_recall@10 0.5
cosine_ndcg@10 0.2931
cosine_mrr@10 0.2291
cosine_map@100 0.2445

Information Retrieval

Metric Value
cosine_accuracy@1 0.0918
cosine_accuracy@3 0.2551
cosine_accuracy@5 0.3163
cosine_accuracy@10 0.4694
cosine_precision@1 0.0918
cosine_precision@3 0.085
cosine_precision@5 0.0633
cosine_precision@10 0.0469
cosine_recall@1 0.0918
cosine_recall@3 0.2551
cosine_recall@5 0.3163
cosine_recall@10 0.4694
cosine_ndcg@10 0.2629
cosine_mrr@10 0.1992
cosine_map@100 0.2165

Information Retrieval

Metric Value
cosine_accuracy@1 0.0816
cosine_accuracy@3 0.2551
cosine_accuracy@5 0.3163
cosine_accuracy@10 0.4796
cosine_precision@1 0.0816
cosine_precision@3 0.085
cosine_precision@5 0.0633
cosine_precision@10 0.048
cosine_recall@1 0.0816
cosine_recall@3 0.2551
cosine_recall@5 0.3163
cosine_recall@10 0.4796
cosine_ndcg@10 0.2611
cosine_mrr@10 0.194
cosine_map@100 0.2059

Training Details

Training Dataset

Unnamed Dataset

  • Size: 882 training samples
  • Columns: anchor, positive, and negative
  • Approximate statistics based on the first 1000 samples:
    anchor positive negative
    type string string string
    details
    • min: 6 tokens
    • mean: 90.85 tokens
    • max: 198 tokens
    • min: 8 tokens
    • mean: 25.44 tokens
    • max: 91 tokens
    • min: 10 tokens
    • mean: 22.33 tokens
    • max: 61 tokens
  • Samples:
    anchor positive negative
    ``
    !!! note "Update the metadata"
    ThemetadataofRecordobject is a python dictionary. So to update the metadata of a record, you can iterate over the records and update the metadata by key or usingmetadata.update`. After that, you should update the records in the dataset.
    Can I use Argilla to annotate the metadata of Record objects and update them in the dataset? The beautiful scenery of the Argilla valley in Italy is perfect for a relaxing summer vacation.
    git checkout [branch-name]
    git rebase [default-branch]
    <br><br>If everything is right, we need to commit and push the changes to your fork. For that, run the following commands:<br><br>sh

    Add the changes to the staging area

    git add filename

    Commit the changes by writing a proper message

    git commit -m "commit-message"

    Push the changes to your fork
    Can I commit Argilla's annotation changes and push them to a forked project repository after rebasing from the default branch? The beautiful beach in Argilla, Spain, is a popular spot for surfers to catch a wave and enjoy the sunny weather.
    Accessing Record Attributes

    The Record object has suggestions, responses, metadata, and vectors attributes that can be accessed directly whilst iterating over records in a dataset.

    python
    for record in dataset.records(
    with_suggestions=True,
    with_responses=True,
    with_metadata=True,
    with_vectors=True
    ):
    print(record.suggestions)
    print(record.responses)
    print(record.metadata)
    print(record.vectors)
    Is it possible to retrieve the suggestions, responses, metadata, and vectors of a Record object at the same time when iterating over a dataset in Argilla? The new hiking trail offered breathtaking suggestions for scenic views, responses to environmental concerns, and metadata about the surrounding ecosystem, but it lacked vectors for navigation.
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "TripletLoss",
        "matryoshka_dims": [
            768,
            512,
            256,
            128,
            64
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": -1
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: epoch
  • per_device_eval_batch_size: 4
  • gradient_accumulation_steps: 4
  • learning_rate: 2e-05
  • lr_scheduler_type: cosine
  • warmup_ratio: 0.1
  • load_best_model_at_end: True

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: epoch
  • prediction_loss_only: True
  • per_device_train_batch_size: 8
  • per_device_eval_batch_size: 4
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 4
  • 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: 3
  • max_steps: -1
  • lr_scheduler_type: cosine
  • 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: False
  • fp16: False
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • 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
  • 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: batch_sampler
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss dim_128_cosine_map@100 dim_256_cosine_map@100 dim_512_cosine_map@100 dim_64_cosine_map@100 dim_768_cosine_map@100
0.1802 5 21.701 - - - - -
0.3604 10 21.7449 - - - - -
0.5405 15 21.7453 - - - - -
0.7207 20 21.7168 - - - - -
0.9009 25 21.6945 - - - - -
0.973 27 - 0.2165 0.2445 0.2426 0.2059 0.2604
1.0811 30 21.7248 - - - - -
1.2613 35 21.7322 - - - - -
1.4414 40 21.7367 - - - - -
1.6216 45 21.6821 - - - - -
1.8018 50 21.8392 - - - - -
1.9820 55 21.6441 0.2165 0.2445 0.2426 0.2059 0.2604
2.1622 60 21.8154 - - - - -
2.3423 65 21.7098 - - - - -
2.5225 70 21.6447 - - - - -
2.7027 75 21.6033 - - - - -
2.8829 80 21.8271 - - - - -
2.9189 81 - 0.2165 0.2445 0.2426 0.2059 0.2604
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.11.8
  • Sentence Transformers: 3.0.1
  • Transformers: 4.41.2
  • PyTorch: 2.1.2
  • Accelerate: 0.31.0
  • Datasets: 2.19.2
  • 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}
}

TripletLoss

@misc{hermans2017defense,
    title={In Defense of the Triplet Loss for Person Re-Identification}, 
    author={Alexander Hermans and Lucas Beyer and Bastian Leibe},
    year={2017},
    eprint={1703.07737},
    archivePrefix={arXiv},
    primaryClass={cs.CV}
}