sachindatasociety's picture
Add new SentenceTransformer model.
8989465 verified
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: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 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

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-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]

Training Details

Training Dataset

Unnamed Dataset

  • Size: 183 training samples
  • Columns: name, description, languages, prerequisites, target_audience, and merged
  • Approximate statistics based on the first 183 samples:
    name description languages prerequisites target_audience merged
    type string string string string string string
    details
    • min: 3 tokens
    • mean: 7.06 tokens
    • max: 16 tokens
    • min: 13 tokens
    • mean: 40.5 tokens
    • max: 117 tokens
    • min: 6 tokens
    • mean: 6.66 tokens
    • max: 10 tokens
    • min: 8 tokens
    • mean: 12.56 tokens
    • max: 21 tokens
    • min: 5 tokens
    • mean: 23.2 tokens
    • max: 54 tokens
    • min: 45 tokens
    • mean: 81.98 tokens
    • max: 174 tokens
  • Samples:
    name description languages prerequisites target_audience merged
    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 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
    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. 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.
    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. 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.
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Evaluation Dataset

Unnamed Dataset

  • Size: 50 evaluation samples
  • Columns: name, description, languages, prerequisites, target_audience, and merged
  • Approximate statistics based on the first 50 samples:
    name description languages prerequisites target_audience merged
    type string string string string string string
    details
    • min: 3 tokens
    • mean: 6.98 tokens
    • max: 15 tokens
    • min: 16 tokens
    • mean: 39.66 tokens
    • max: 83 tokens
    • min: 6 tokens
    • mean: 6.66 tokens
    • max: 10 tokens
    • min: 8 tokens
    • mean: 12.58 tokens
    • max: 21 tokens
    • min: 5 tokens
    • mean: 24.06 tokens
    • max: 54 tokens
    • min: 47 tokens
    • mean: 81.94 tokens
    • max: 139 tokens
  • Samples:
    name description languages prerequisites target_audience merged
    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. 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.
    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. 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.
    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. 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.
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "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

Click to expand
  • 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

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

@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}
}