sentence-transformers safetensors bert sentence-similarity feature-extraction generated_from_trainer dataset_size:183 loss:MultipleNegativesRankingLoss arxiv:1908.10084 arxiv:1705.00652 base_model:BAAI/bge-base-en-v1.5 base_model:finetune:BAAI/bge-base-en-v1.5 autotrain_compatible text-embeddings-inference endpoints_compatible region:us
---
base_model: BAAI/bge-base-en-v1.5
library_name: sentence-transformers
pipeline_tag: sentence-similarity
tags:
- sentence-transformers
- sentence-similarity
- feature-extraction
- generated_from_trainer
- dataset_size:183
- loss:MultipleNegativesRankingLoss
widget:
- source_sentence: Introduction to Network Protocols
  sentences:
  - 'Introduction to Network Protocols A course that builds foundational knowledge
    of network protocols essentially covering emails and other internet protocols
    Course language: TBD Prerequisite course required: Introduction to Managing Servers
    Professionals who would like to get foundational knowledge of basic network protocols'
  - 'Course language: TBD'
  - 'Prerequisite course required: Introduction to Managing Servers'
  - A course that builds foundational knowledge of network protocols essentially covering
    emails and other internet protocols
  - Professionals who would like to get foundational knowledge of basic network protocols
- source_sentence: Optimizing Ensemble Methods
  sentences:
  - 'Course language: Python'
  - 'Prerequisite course required: Ensemble Methods'
  - This course covers advanced topics in optimizing ensemble learning methods – specifically
    random forest and gradient boosting. Students will learn to implement base models
    and perform hyperparameter tuning to enhance the performance of models.
  - Professionals experience in ensemble methods and who want to enhance their skill
    set in advanced Python classification techniques.
  - 'Optimizing Ensemble Methods This course covers advanced topics in optimizing
    ensemble learning methods – specifically random forest and gradient boosting.
    Students will learn to implement base models and perform hyperparameter tuning
    to enhance the performance of models. Course language: Python Prerequisite course
    required: Ensemble Methods Professionals experience in ensemble methods and who
    want to enhance their skill set in advanced Python classification techniques.'
- source_sentence: Autoencoders
  sentences:
  - Professionals some Python experience who would like to expand their skillset to
    more advanced machine learning algorithms for image processing and computer vision.
  - 'Prerequisite course required: Convolutional Neural Networks (CNN) for Image Recognition'
  - 'Course language: Python'
  - 'Autoencoders This course takes students through a journey into the world od autoencoders
    - a set of powerful deep learning models that have a special place in the world
    of image analysis. By the end of this course students will be able to navigate
    through the application space of autoencoders and implement autoencoders to perform
    tasks such as image denoising and more. Course language: Python Prerequisite course
    required: Convolutional Neural Networks (CNN) for Image Recognition Professionals
    some Python experience who would like to expand their skillset to more advanced
    machine learning algorithms for image processing and computer vision.'
  - This course takes students through a journey into the world od autoencoders -
    a set of powerful deep learning models that have a special place in the world
    of image analysis. By the end of this course students will be able to navigate
    through the application space of autoencoders and implement autoencoders to perform
    tasks such as image denoising and more.
- source_sentence: Authentication Python
  sentences:
  - 'Prerequisite course required: Basic GraphQL: Python'
  - 'Authentication Python An introduction to Authentication concepts and how it can
    be implemented using Python. Course language: Python Prerequisite course required:
    Basic GraphQL: Python Professionals who would like to learn the core concepts
    of authentication using Python.'
  - An introduction to Authentication concepts and how it can be implemented using
    Python.
  - 'Course language: Python'
  - Professionals who would like to learn the core concepts of authentication using
    Python.
- source_sentence: Clustering in NLP
  sentences:
  - 'Clustering in NLP This course covers the clustering concepts of natural language
    processing, equipping learners with the ability to cluster text data into groups
    and topics by finding similarities between different documents. Course language:
    Python Prerequisite course required: Topic Modeling in NLP This is an intermediate
    level course for data scientists who have some experience with NLP and want to
    learn to cluster textual data.'
  - 'Course language: Python'
  - 'Prerequisite course required: Topic Modeling in NLP'
  - This course covers the clustering concepts of natural language processing, equipping
    learners with the ability to cluster text data into groups and topics by finding
    similarities between different documents.
  - This is an intermediate level course for data scientists who have some experience
    with NLP and want to learn to cluster textual data.
---

# SentenceTransformer based on BAAI/bge-base-en-v1.5

This is a [sentence-transformers](https://www.SBERT.net) model finetuned from [BAAI/bge-base-en-v1.5](https://huggingface.co/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](https://huggingface.co/BAAI/bge-base-en-v1.5) <!-- at revision a5beb1e3e68b9ab74eb54cfd186867f64f240e1a -->
- **Maximum Sequence Length:** 512 tokens
- **Output Dimensionality:** 768 tokens
- **Similarity Function:** Cosine Similarity
<!-- - **Training Dataset:** Unknown -->
<!-- - **Language:** Unknown -->
<!-- - **License:** Unknown -->

### Model Sources

- **Documentation:** [Sentence Transformers Documentation](https://sbert.net)
- **Repository:** [Sentence Transformers on GitHub](https://github.com/UKPLab/sentence-transformers)
- **Hugging Face:** [Sentence Transformers on Hugging Face](https://huggingface.co/models?library=sentence-transformers)

### 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:

```bash
pip install -U sentence-transformers
```

Then you can load this model and run inference.
```python
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("datasocietyco/bge-base-en-v1.5-course-recommender-v1")
# Run inference
sentences = [
    'Clustering in NLP',
    'This course covers the clustering concepts of natural language processing, equipping learners with the ability to cluster text data into groups and topics by finding similarities between different documents.',
    'Course language: Python',
]
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]
```

<!--
### Direct Usage (Transformers)

<details><summary>Click to see the direct usage in Transformers</summary>

</details>
-->

<!--
### Downstream Usage (Sentence Transformers)

You can finetune this model on your own dataset.

<details><summary>Click to expand</summary>

</details>
-->

<!--
### Out-of-Scope Use

*List how the model may foreseeably be misused and address what users ought not to do with the model.*
-->

<!--
## Bias, Risks and Limitations

*What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model.*
-->

<!--
### Recommendations

*What are recommendations with respect to the foreseeable issues? For example, filtering explicit content.*
-->

## Training Details

### Training Dataset

#### Unnamed Dataset


* Size: 183 training samples
* Columns: <code>name</code>, <code>description</code>, <code>languages</code>, <code>prerequisites</code>, <code>target_audience</code>, and <code>merged</code>
* Approximate statistics based on the first 183 samples:
  |         | name                                                                             | description                                                                        | languages                                                                        | prerequisites                                                                     | target_audience                                                                  | merged                                                                              |
  |:--------|:---------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------|:---------------------------------------------------------------------------------|:----------------------------------------------------------------------------------|:---------------------------------------------------------------------------------|:------------------------------------------------------------------------------------|
  | type    | string                                                                           | string                                                                             | string                                                                           | string                                                                            | string                                                                           | string                                                                              |
  | details | <ul><li>min: 3 tokens</li><li>mean: 7.06 tokens</li><li>max: 16 tokens</li></ul> | <ul><li>min: 13 tokens</li><li>mean: 40.5 tokens</li><li>max: 117 tokens</li></ul> | <ul><li>min: 6 tokens</li><li>mean: 6.66 tokens</li><li>max: 10 tokens</li></ul> | <ul><li>min: 8 tokens</li><li>mean: 12.56 tokens</li><li>max: 21 tokens</li></ul> | <ul><li>min: 5 tokens</li><li>mean: 23.2 tokens</li><li>max: 54 tokens</li></ul> | <ul><li>min: 45 tokens</li><li>mean: 81.98 tokens</li><li>max: 174 tokens</li></ul> |
* Samples:
  | name                                                      | description                                                                                                                                                                                                                                                                                                                                                                                                       | languages                                  | prerequisites                                                          | target_audience                                                                                                                         | merged                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
  |:----------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------|:-----------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  | <code>Foundations of Big Data</code>                      | <code>A theoretical course covering topics on how to handle data at scale and the different tools needed for distributed data storage, analysis, and management. Learners will be able to dive into the vast world of data and computing at scale and get a comprehensive overview of distributed computing.</code>                                                                                               | <code>Course language: TBD</code>          | <code>Prerequisite course required: Optimizing Ensemble Methods</code> | <code>Professionals who would like to learn the core concepts of big data and understand data at scale</code>                           | <code>Foundations of Big Data A theoretical course covering topics on how to handle data at scale and the different tools needed for distributed data storage, analysis, and management. Learners will be able to dive into the vast world of data and computing at scale and get a comprehensive overview of distributed computing. Course language: TBD Prerequisite course required: Optimizing Ensemble Methods Professionals who would like to learn the core concepts of big data and understand data at scale</code>                                                                                                                                        |
  | <code>Big Data Orchestration & Workflow Management</code> | <code>A theoretical course covering topics on how to handle data at scale and the different tools needed for orchestrating big data systems and manage the workflow. Learners will be able to dive into the vast world of data and computing at scale and get a comprehensive overview of the distributed resource management ecosystem.</code>                                                                   | <code>Course language: TBD</code>          | <code>Prerequisite course required: Foundations of Big Data</code>     | <code>Professionals who would like to learn the core concepts of distributed system orchestration and workflow management tools.</code> | <code>Big Data Orchestration & Workflow Management A theoretical course covering topics on how to handle data at scale and the different tools needed for orchestrating big data systems and manage the workflow. Learners will be able to dive into the vast world of data and computing at scale and get a comprehensive overview of the distributed resource management ecosystem. Course language: TBD Prerequisite course required: Foundations of Big Data Professionals who would like to learn the core concepts of distributed system orchestration and workflow management tools.</code>                                                                 |
  | <code>Distributed Data Storage (Hadoop)</code>            | <code>A course that covers theory and implementation on a specific cloud platform covering topics on distributed data storage systems. Learners will be able to dive into the nature of storing and processing data at scale using tools like Hadoop on a selected cloud platform. This course will allow students to get a great foundation for creating and managing distributed data storage resources.</code> | <code>Course language: Java, Python</code> | <code>Prerequisite course required: Foundations of Big Data</code>     | <code>Professionals who have coding knowledge and want to learn to create a scalable data storage solution using cloud services.</code> | <code>Distributed Data Storage (Hadoop) A course that covers theory and implementation on a specific cloud platform covering topics on distributed data storage systems. Learners will be able to dive into the nature of storing and processing data at scale using tools like Hadoop on a selected cloud platform. This course will allow students to get a great foundation for creating and managing distributed data storage resources. Course language: Java, Python Prerequisite course required: Foundations of Big Data Professionals who have coding knowledge and want to learn to create a scalable data storage solution using cloud services.</code> |
* Loss: [<code>MultipleNegativesRankingLoss</code>](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#multiplenegativesrankingloss) with these parameters:
  ```json
  {
      "scale": 20.0,
      "similarity_fct": "cos_sim"
  }
  ```

### Evaluation Dataset

#### Unnamed Dataset


* Size: 50 evaluation samples
* Columns: <code>name</code>, <code>description</code>, <code>languages</code>, <code>prerequisites</code>, <code>target_audience</code>, and <code>merged</code>
* Approximate statistics based on the first 50 samples:
  |         | name                                                                             | description                                                                        | languages                                                                        | prerequisites                                                                     | target_audience                                                                   | merged                                                                              |
  |:--------|:---------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------|:---------------------------------------------------------------------------------|:----------------------------------------------------------------------------------|:----------------------------------------------------------------------------------|:------------------------------------------------------------------------------------|
  | type    | string                                                                           | string                                                                             | string                                                                           | string                                                                            | string                                                                            | string                                                                              |
  | details | <ul><li>min: 3 tokens</li><li>mean: 6.98 tokens</li><li>max: 15 tokens</li></ul> | <ul><li>min: 16 tokens</li><li>mean: 39.66 tokens</li><li>max: 83 tokens</li></ul> | <ul><li>min: 6 tokens</li><li>mean: 6.66 tokens</li><li>max: 10 tokens</li></ul> | <ul><li>min: 8 tokens</li><li>mean: 12.58 tokens</li><li>max: 21 tokens</li></ul> | <ul><li>min: 5 tokens</li><li>mean: 24.06 tokens</li><li>max: 54 tokens</li></ul> | <ul><li>min: 47 tokens</li><li>mean: 81.94 tokens</li><li>max: 139 tokens</li></ul> |
* Samples:
  | name                                                      | description                                                                                                                                                                                                                                                                                                                                     | languages                            | prerequisites                                                      | target_audience                                                                                                                                                        | merged                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
  |:----------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------|:-------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  | <code>Word Embeddings in NLP</code>                       | <code>This course covers the intermediate concepts of natural language processing like creating word embeddings, feature engineering and word embeddings for finding text features for model development.</code>                                                                                                                                | <code>Course language: Python</code> | <code>Prerequisite course required: Topic Modeling in NLP</code>   | <code>This is an intermediate level course for data scientists who have experience in NLP and want to learn to process and mine natural language and text data.</code> | <code>Word Embeddings in NLP This course covers the intermediate concepts of natural language processing like creating word embeddings, feature engineering and word embeddings for finding text features for model development. Course language: Python Prerequisite course required: Topic Modeling in NLP This is an intermediate level course for data scientists who have experience in NLP and want to learn to process and mine natural language and text data.</code>                                                                                                                      |
  | <code>Big Data Orchestration & Workflow Management</code> | <code>A theoretical course covering topics on how to handle data at scale and the different tools needed for orchestrating big data systems and manage the workflow. Learners will be able to dive into the vast world of data and computing at scale and get a comprehensive overview of the distributed resource management ecosystem.</code> | <code>Course language: TBD</code>    | <code>Prerequisite course required: Foundations of Big Data</code> | <code>Professionals who would like to learn the core concepts of distributed system orchestration and workflow management tools.</code>                                | <code>Big Data Orchestration & Workflow Management A theoretical course covering topics on how to handle data at scale and the different tools needed for orchestrating big data systems and manage the workflow. Learners will be able to dive into the vast world of data and computing at scale and get a comprehensive overview of the distributed resource management ecosystem. Course language: TBD Prerequisite course required: Foundations of Big Data Professionals who would like to learn the core concepts of distributed system orchestration and workflow management tools.</code> |
  | <code>Accelerating Data Engineering Pipelines</code>      | <code>Explore how to employ advanced data engineering tools  and techniques with GPUs to significantly improve data engineering pipelines</code>                                                                                                                                                                                                | <code>Course language: Python</code> | <code>No prerequisite course required</code>                       | <code>Professionals who wants to learn the foundation of data science and lays the groundwork for analysis and modeling.</code>                                        | <code>Accelerating Data Engineering Pipelines Explore how to employ advanced data engineering tools  and techniques with GPUs to significantly improve data engineering pipelines Course language: Python No prerequisite course required Professionals who wants to learn the foundation of data science and lays the groundwork for analysis and modeling.</code>                                                                                                                                                                                                                                |
* Loss: [<code>MultipleNegativesRankingLoss</code>](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#multiplenegativesrankingloss) with these parameters:
  ```json
  {
      "scale": 20.0,
      "similarity_fct": "cos_sim"
  }
  ```

### Training Hyperparameters
#### Non-Default Hyperparameters

- `eval_strategy`: steps
- `per_device_train_batch_size`: 16
- `per_device_eval_batch_size`: 16
- `learning_rate`: 3e-06
- `max_steps`: 64
- `warmup_ratio`: 0.1
- `batch_sampler`: no_duplicates

#### All Hyperparameters
<details><summary>Click to expand</summary>

- `overwrite_output_dir`: False
- `do_predict`: False
- `eval_strategy`: steps
- `prediction_loss_only`: True
- `per_device_train_batch_size`: 16
- `per_device_eval_batch_size`: 16
- `per_gpu_train_batch_size`: None
- `per_gpu_eval_batch_size`: None
- `gradient_accumulation_steps`: 1
- `eval_accumulation_steps`: None
- `torch_empty_cache_steps`: None
- `learning_rate`: 3e-06
- `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.0
- `max_steps`: 64
- `lr_scheduler_type`: linear
- `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`: False
- `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
- `eval_on_start`: False
- `use_liger_kernel`: False
- `eval_use_gather_object`: False
- `batch_sampler`: no_duplicates
- `multi_dataset_batch_sampler`: proportional

</details>

### Training Logs
| Epoch  | Step | Training Loss | loss   |
|:------:|:----:|:-------------:|:------:|
| 1.6667 | 20   | 1.4345        | 1.0243 |
| 3.3333 | 40   | 0.9835        | 0.7613 |
| 5.0    | 60   | 0.7294        | 0.6593 |


### Framework Versions
- Python: 3.9.13
- Sentence Transformers: 3.1.1
- Transformers: 4.45.1
- PyTorch: 2.2.2
- Accelerate: 0.34.2
- Datasets: 3.0.0
- Tokenizers: 0.20.0

## Citation

### BibTeX

#### Sentence Transformers
```bibtex
@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
```bibtex
@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}
}
```

<!--
## Glossary

*Clearly define terms in order to be accessible across audiences.*
-->

<!--
## Model Card Authors

*Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction.*
-->

<!--
## Model Card Contact

*Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors.*
-->