metadata
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:143
- loss:MultipleNegativesRankingLoss
widget:
- source_sentence: 'JSON APIs: Node.js'
sentences:
- 'Prerequisite course required: RESTful APIs: Node.js'
- >-
Course Name:JSON APIs: Node.js|Course Description:An introduction to
JSON API, using Node.js.|Course language: JavaScript|Prerequisite course
required: RESTful APIs: Node.js|Target Audience:Professionals who would
like to learn the core concepts of JSON API, using Node.js.
- An introduction to JSON API, using Node.js.
- 'Course language: JavaScript'
- >-
Professionals who would like to learn the core concepts of JSON API,
using Node.js.
- source_sentence: Enzyme
sentences:
- >-
For anyone who has built an application in React and wants to test the
React components
- >-
A course that explores Enzyme, which is a JavaScript utility for React
applications. The course equips users to simulate runs and test React
components' outputs.
- 'Prerequisite course required: React Testing Library'
- 'Course language: TBD'
- >-
Course Name:Enzyme|Course Description:A course that explores Enzyme,
which is a JavaScript utility for React applications. The course equips
users to simulate runs and test React components' outputs.|Course
language: TBD|Prerequisite course required: React Testing Library|Target
Audience:For anyone who has built an application in React and wants to
test the React components
- source_sentence: 'React Ecosystem: State Management & Redux'
sentences:
- >-
Course Name:React Ecosystem: State Management & Redux|Course
Description:A course that builds on the React Ecosystem. It explains how
state management works in React and goes over the Redux state management
library|Course language: JavaScript|Prerequisite course required: React
Ecosystem: Forms|Target Audience:Professionals who would like to learn
about state management in React
- 'Course language: JavaScript'
- 'Prerequisite course required: React Ecosystem: Forms'
- >-
A course that builds on the React Ecosystem. It explains how state
management works in React and goes over the Redux state management
library
- Professionals who would like to learn about state management in React
- source_sentence: Ensemble Methods in Python
sentences:
- 'Course language: Python'
- 'Prerequisite course required: Decision Trees'
- >-
This course covers an overview of ensemble learning methods like random
forest and boosting. At the end of this course, students will be able to
implement and compare random forest algorithm and boosting.
- >-
Professionals with some experience in building basic algorithms who
would like to expand their skill set to more advanced Python
classification techniques.
- >-
Course Name:Ensemble Methods in Python|Course Description:This course
covers an overview of ensemble learning methods like random forest and
boosting. At the end of this course, students will be able to implement
and compare random forest algorithm and boosting.|Course language:
Python|Prerequisite course required: Decision Trees|Target
Audience:Professionals with some experience in building basic algorithms
who would like to expand their skill set to more advanced Python
classification techniques.
- source_sentence: Visualizing Data with Matplotlib in Python
sentences:
- >-
Professionals with basic Python experience who would like to expand
their skill set to more Python visualization techniques and tools.
- 'Prerequisite course required: Intro to Python'
- 'Course language: Python'
- >-
Course Name:Visualizing Data with Matplotlib in Python|Course
Description:This course covers the basics of data visualization and
exploratory data analysis. It helps students learn different plots and
their use cases.|Course language: Python|Prerequisite course required:
Intro to Python|Target Audience:Professionals with basic Python
experience who would like to expand their skill set to more Python
visualization techniques and tools.
- >-
This course covers the basics of data visualization and exploratory data
analysis. It helps students learn different plots and their use cases.
SentenceTransformer based on BAAI/bge-base-en-v1.5
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
Model Sources
- Documentation: Sentence Transformers Documentation
- Repository: Sentence Transformers on GitHub
- Hugging Face: Sentence Transformers on Hugging Face
Full Model Architecture
SentenceTransformer(
(0): Transformer({'max_seq_length': 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("datasocietyco/bge-base-en-v1.5-course-recommender-v2")
# Run inference
sentences = [
'Visualizing Data with Matplotlib in Python',
'This course covers the basics of data visualization and exploratory data analysis. It helps students learn different plots and their use cases.',
'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]
Training Details
Training Dataset
Unnamed Dataset
- Size: 143 training samples
- Columns:
name
,description
,languages
,prerequisites
,target_audience
, andcombined
- Approximate statistics based on the first 143 samples:
name description languages prerequisites target_audience combined type string string string string string string details - min: 3 tokens
- mean: 7.82 tokens
- max: 17 tokens
- min: 13 tokens
- mean: 39.24 tokens
- max: 117 tokens
- min: 6 tokens
- mean: 6.57 tokens
- max: 10 tokens
- min: 8 tokens
- mean: 12.85 tokens
- max: 22 tokens
- min: 12 tokens
- mean: 23.02 tokens
- max: 54 tokens
- min: 58 tokens
- mean: 94.5 tokens
- max: 187 tokens
- Samples:
name description languages prerequisites target_audience combined Reinforcement Learning
This course covers the specialized branch of machine learning and deep learning called reinforcement learning (RL). By the end of this course students will be able to define RL use cases and real world scenarios where RL models are used, they will be able to create a simple RL model and evaluate its performance.
Course language: Python
Prerequisite course required: Working with Complex Pre-trained CNNs in Python
Professionals some Python experience who would like to expand their skillset to more advanced machine learning algorithms for reinforcement learning.
Course Name:Reinforcement Learning
Optimizing Ensemble Methods in Python
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 in Python
Professionals experience in ensemble methods and who want to enhance their skill set in advanced Python classification techniques.
Course Name:Optimizing Ensemble Methods in Python
Fundamentals of Accelerated Computing with OpenACC
Find out how to write and configure code parallelization with OpenACC, optimize memory movements between the CPU and GPU accelerator, and apply the techniques to accelerate a CPU-only Laplace Heat Equation to achieve performance gains.
Course language: Python
No prerequisite course required
Professionals who want to learn how to write code, configure code parallelization with OpenACC, optimize memory movements between the CPU and GPU accelerator, and implement the workflow learnt for massive performance gains.
Course Name:Fundamentals of Accelerated Computing with OpenACC
- Loss:
MultipleNegativesRankingLoss
with these parameters:{ "scale": 20.0, "similarity_fct": "cos_sim" }
Evaluation Dataset
Unnamed Dataset
- Size: 36 evaluation samples
- Columns:
name
,description
,languages
,prerequisites
,target_audience
, andcombined
- Approximate statistics based on the first 36 samples:
name description languages prerequisites target_audience combined type string string string string string string details - min: 3 tokens
- mean: 7.92 tokens
- max: 13 tokens
- min: 13 tokens
- mean: 46.39 tokens
- max: 92 tokens
- min: 6 tokens
- mean: 6.75 tokens
- max: 10 tokens
- min: 8 tokens
- mean: 13.47 tokens
- max: 20 tokens
- min: 5 tokens
- mean: 23.75 tokens
- max: 54 tokens
- min: 61 tokens
- mean: 103.28 tokens
- max: 165 tokens
- Samples:
name description languages prerequisites target_audience combined Intro to CSS, Part 2
A course that continues to build on the foundational understanding of CSS syntax and allows students to work with responsive design and media queries.
Course language: CSS, HTML
Prerequisite course required: Intro to CSS, Part 1
Professionals who would like to continue learning the core concepts of CSS and be able to style simple web pages.
Course Name:Intro to CSS, Part 2
Foundations of Statistics in Python
This course is designed for learners who would like to learn about statistics and apply it for decision-making. This course is a comprehensive review of statistical terms ranging from foundational (mean, median, mode, standard deviation, variance, covariance, correlation) to more complex concepts such as normality in data, confidence intervals, and p-values. Additional topics include how to calculate summary statistics and how to carry out hypothesis testing to inform decisions.
Course language: Python
Prerequisite course required: Intro to Visualization in Python
Professionals some Python experience who would like to expand their skill set to more advanced Python visualization techniques and tools.
Course Name:Foundations of Statistics in Python
Spherical k-Means and Hierarchical Clustering in R
This course covers the unsupervised learning method called clustering which is used to find patterns or groups in data without the need for labelled data. This course includes different methods of clustering on numerical data including density-based and hierarchical-based clustering and how to build, evaluate and interpret these models.
Course language: R
Prerequisite course required: Intro to Clustering in R
Professionals with some R experience who would like to expand their skillset to more clustering techniques like hierarchical clustering and DBSCAN.
Course Name:Spherical k-Means and Hierarchical Clustering in R
- Loss:
MultipleNegativesRankingLoss
with these parameters:{ "scale": 20.0, "similarity_fct": "cos_sim" }
Training Hyperparameters
Non-Default Hyperparameters
eval_strategy
: stepsper_device_train_batch_size
: 16per_device_eval_batch_size
: 16learning_rate
: 3e-06max_steps
: 64warmup_ratio
: 0.1batch_sampler
: no_duplicates
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
: 3e-06weight_decay
: 0.0adam_beta1
: 0.9adam_beta2
: 0.999adam_epsilon
: 1e-08max_grad_norm
: 1.0num_train_epochs
: 3.0max_steps
: 64lr_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
: 42data_seed
: Nonejit_mode_eval
: Falseuse_ipex
: Falsebf16
: Falsefp16
: 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
: Falseignore_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
: Falsehub_always_push
: Falsegradient_checkpointing
: Falsegradient_checkpointing_kwargs
: Noneinclude_inputs_for_metrics
: Falseeval_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
: Falsebatch_sampler
: no_duplicatesmulti_dataset_batch_sampler
: proportional
Training Logs
Epoch | Step | Training Loss | loss |
---|---|---|---|
2.2222 | 20 | 1.5188 | 1.1718 |
4.4444 | 40 | 1.0652 | 0.8327 |
6.6667 | 60 | 0.677 | 0.7192 |
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
@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
@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}
}