Snivellus789's picture
Add new SentenceTransformer model.
cabdb50 verified
metadata
base_model: BAAI/bge-small-en-v1.5
datasets: []
language: []
library_name: sentence-transformers
pipeline_tag: sentence-similarity
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - generated_from_trainer
  - dataset_size:1000
  - loss:BatchAllTripletLoss
widget:
  - source_sentence: x-code秦皇岛革命工程车型号,所体现出来的不同原理,车厢分为哪几类,他们的轮子和动力系统又分为哪几种类型?请详细介绍一下。
    sentences:
      - 計算費率給定的延期年金的值。
      - 从系统生物学的视角解读生物科技的重要性。
      - 新的一年于昨天开始了,请协助完成这篇600字的文章进行时事背景介绍制作,主题有关于“跨年夜上海外滩陈毅广场踩踏事件”五周年。
  - source_sentence: >-
      小明家有前后两幅窗户, 前面的有80块玻璃,后面的窗户有36块玻璃,
      一共有116块。然后有一天小明前面窗户有6块玻璃碎了,背面的窗户有4块碎了。后来小明爸爸为了修理这两扇窗户,从相同的商店买了5箱玻璃片,每箱里有20片玻璃片。请问为什么小明爸爸要买5箱这么多?请尝试从“最少够买最少的观念”去阐述你的理解。
    sentences:
      - >-
        Imagine you're working on a project that involves transforming news
        articles to make them more positive. You've been given a list of words
        that are considered negative, and your task is to replace them with
        positive alternatives. Your list includes words like "failure," "loss,"
        and "tragedy." Your goal is to write a program in Ruby that can
        automatically replace these words with their positive counterparts.

        To make things a bit more challenging, you've decided to add the ability
        to handle multiple negative words in a single sentence. For example, if
        a sentence contains both "failure" and "loss," your program should
        replace both words with positive alternatives.

        As an added bonus, you want to include a table that shows the comparison
        between the negative and positive words. The table should include
        columns for the original negative word, its positive replacement, and a
        brief explanation of why the replacement is more positive.

        Can you write a program in Ruby that meets these requirements? 
      - >-
        In the field of e-commerce, how can Scala be used to perform a
        comprehensive analysis of purchasing behavior, including identification
        of the most frequently purchased products and recommendation of the top
        three to the marketing team? To accomplish this, one would load the
        relevant data into a DataFrame, clean the data by eliminating missing or
        duplicated values, then explore the data using calculated product
        purchase frequencies. After identifying the top three products with the
        highest purchase frequencies, visualizations could be created to aid in
        communicating these findings to the marketing team. These products would
        then be recommended for targeted advertising campaigns. Please note that
        this process assumes that the product information is stored in the
        second column of the dataset, although the specific column index may
        vary depending on the dataset. 
      - >-
        Can you write a JavaScript code that will prompt users to input their
        names and messages and display them on the HTML page in a scrambled
        order? The displayed dialogue should require the user to unscramble the
        conversation in order to understand it. Use the following table to
        scramble the messages:

        | Original Character | Scrambled Character |

        |-------------------|---------------------|

        | A                 | E                   |

        | B                 | Q                   |

        | C                 | X                   |

        | D                 | Z                   |

        | E                 | F                   |

        | F                 | Y                   |

        | G                 | H                   |

        | H                 | P                   |

        | I                 | K                   |

        | J                 | L                   |

        | K                 | W                   |

        | L                 | M                   |

        | M                 | S                   |

        | N                 | O                   |

        | O                 | T                   |

        | P                 | U                   |

        | Q                 | R                   |

        | R                 | D                   |

        | S                 | N                   |

        | T                 | V                   |

        | U                 | G                   |

        | V                 | J                   |

        | W                 | A                   |

        | X                 | I                   |

        | Y                 | B                   |

        | Z                 | C                   |

        Hint: Use the ASCII values of the characters to perform the scrambling. 
  - source_sentence: >-
      I have a challenge for you that involves some complex reasoning and
      optimization techniques. I need you to identify a word that can be
      replaced by an extensive list of synonyms while keeping its original
      meaning intact. However, you cannot use a simple synonym generator.
      Instead, you must use the WordNet lexical database and perform multi-step
      reasoning to find context-specific synonyms. To make things even more
      challenging, the puzzle should also involve optimization techniques that
      can reduce processing time for larger datasets. Can you provide me with a
      Scala code snippet that solves this puzzle? Remember, the solution should
      not be a straightforward synonym replacement, but rather a
      well-thought-out process that involves sophisticated reasoning and
      optimization. 
    sentences:
      - 讨论一下人口老龄化对经济社会的影响。
      - >-
        想象一下,你在一个迷宫里,四周是高墙,墙上有许多按钮,按下后就会出现谜语,你需要解开谜语才能前进。现在假设你面前有一个按钮,按下去,出现了这个谜语:
      - >-
        How can I modify the given Java code to output the phrase "If only I
        could find my way to the treasure, I would be rich beyond my wildest
        dreams." using only two variables and without using any additional ones?

        Here's the given Java code:

        String a = "If only I could find my way to the treasure, ";

        String b = "I would be rich beyond my wildest dreams.";

        System.out.println(a + b);

        How can I modify this code to meet the new requirements? 
  - source_sentence: 帮我写一个新年祝福吧
    sentences:
      - 评估一则算式:(111 * 222 * 333 * 444 * 555 * 666 * 777 * 888 * 999)/ 111,111
      - '请将_matrix: f(1,0) f(0,1)左乘以下矩阵: 0 -1, 1 1,求出结果。'
      - >-
        创建一个存储所有已知星座的字典,但对于某些星座,给定的缩写可能有误。你的程序应该纠正这些错误的缩写,并为用户提供星座的正确全名。你的程序还必须能够对新输入的星座和缩写是否正确。
  - source_sentence: >-
      In Swift, what function can I use to shorten the sentence "I'm feeling
      kind of tired after having worked all day" while maintaining the same
      meaning and tone? Can you provide an example of the shortened sentence
      using the function? 
    sentences:
      - >-
        How can we use C++ to perform sentiment analysis on customer reviews and
        generate appropriate taglines for our face masks product while also
        taking into account different age group preferences? Can you provide a
        sample code that demonstrates how we can use libraries such as NLTK and
        Stanford CoreNLP to analyze sentiment and generate taglines based on the
        results?

        [C++ code]

        #include <iostream>

        #include <fstream>

        #include <string>

        #include <vector>

        #include <algorithm>

        #include <iterator>

        #include <nltk/nltk.h>

        #include <stanfordcorenlp/stanfordcorenlp.h>

        using namespace std;

        int main()

        {
            // read customer reviews from file
            ifstream file("reviews.txt");
            string review;
            vector<string> reviews;
            while (getline(file, review)) {
                reviews.push_back(review);
            }
            // initialize NLTK and Stanford CoreNLP
            nltk::init();
            stanfordcorenlp::StanfordCoreNLP pipeline;
            // analyze sentiment for each review and generate tagline
            for (const auto& review : reviews) {
                auto sentiment = pipeline.sentiment_analysis(review);
                string tagline;
                if (sentiment == "positive") {
                    tagline = "Protect yourself in style!";
                } else if (sentiment == "negative") {
                    tagline = "Stay safe and comfortable!";
                } else {
                    tagline = "Stay protected with our high-quality masks!";
                }
                // consider age group preferences and adjust tagline accordingly
                // ...
                cout << "Review: " << review << endl;
                cout << "Sentiment: " << sentiment << endl;
                cout << "Tagline: " << tagline << endl;
            }
            // cleanup NLTK and Stanford CoreNLP
            nltk::cleanup();
            pipeline.shutdown();
            return 0;
        } 
      - >-
        How can I create a C# program that generates a travel itinerary based on
        user preferences and available destinations? The program should take
        into account factors such as budget, time of year, and desired
        activities (such as hiking or sightseeing). Please use the following
        data format to represent the available destinations:

        ```csharp

        List<Destination> destinations = new List<Destination>

        {
            new Destination
            {
                Name = "Paris",
                Country = "France",
                Activities = new List<string> {"sightseeing", "shopping", "museums"},
                Cost = 5000,
                Season = "spring"
            },
            new Destination
            {
                Name = "Tokyo",
                Country = "Japan",
                Activities = new List<string> {"sightseeing", "food", "temples"},
                Cost = 8000,
                Season = "fall"
            },
            new Destination
            {
                Name = "Sydney",
                Country = "Australia",
                Activities = new List<string> {"beaches", "hiking", "wildlife"},
                Cost = 7000,
                Season = "summer"
            },
            new Destination
            {
                Name = "Marrakesh",
                Country = "Morocco",
                Activities = new List<string> {"sightseeing", "shopping", "food"},
                Cost = 4000,
                Season = "winter"
            }
        };

        public class Destination

        {
            public string Name { get; set; }
            public string Country { get; set; }
            public List<string> Activities { get; set; }
            public int Cost { get; set; }
            public string Season { get; set; }
        }

        ```

        Please provide step-by-step instructions for using the program and any
        necessary inputs. 
      - |-
        Convert the given XML code to JSON code. <root>
            <data>
                <item id="1">
                    <name>Sample data</name>
                    <type>Text</type>
                    <value>123</value>
                </item>
            </data>
        </root>

SentenceTransformer based on BAAI/bge-small-en-v1.5

This is a sentence-transformers model finetuned from BAAI/bge-small-en-v1.5. It maps sentences & paragraphs to a 384-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.

Model Details

Model Description

  • Model Type: Sentence Transformer
  • Base model: BAAI/bge-small-en-v1.5
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 384 tokens
  • Similarity Function: Cosine Similarity

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': True}) with Transformer model: BertModel 
  (1): Pooling({'word_embedding_dimension': 384, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
  (2): Normalize()
)

Usage

Direct Usage (Sentence Transformers)

First install the Sentence Transformers library:

pip install -U sentence-transformers

Then you can load this model and run inference.

from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("Snivellus789/router-embedding-tuned")
# Run inference
sentences = [
    'In Swift, what function can I use to shorten the sentence "I\'m feeling kind of tired after having worked all day" while maintaining the same meaning and tone? Can you provide an example of the shortened sentence using the function? ',
    'Convert the given XML code to JSON code. <root>\n    <data>\n        <item id="1">\n            <name>Sample data</name>\n            <type>Text</type>\n            <value>123</value>\n        </item>\n    </data>\n</root>',
    'How can I create a C# program that generates a travel itinerary based on user preferences and available destinations? The program should take into account factors such as budget, time of year, and desired activities (such as hiking or sightseeing). Please use the following data format to represent the available destinations:\n```csharp\nList<Destination> destinations = new List<Destination>\n{\n    new Destination\n    {\n        Name = "Paris",\n        Country = "France",\n        Activities = new List<string> {"sightseeing", "shopping", "museums"},\n        Cost = 5000,\n        Season = "spring"\n    },\n    new Destination\n    {\n        Name = "Tokyo",\n        Country = "Japan",\n        Activities = new List<string> {"sightseeing", "food", "temples"},\n        Cost = 8000,\n        Season = "fall"\n    },\n    new Destination\n    {\n        Name = "Sydney",\n        Country = "Australia",\n        Activities = new List<string> {"beaches", "hiking", "wildlife"},\n        Cost = 7000,\n        Season = "summer"\n    },\n    new Destination\n    {\n        Name = "Marrakesh",\n        Country = "Morocco",\n        Activities = new List<string> {"sightseeing", "shopping", "food"},\n        Cost = 4000,\n        Season = "winter"\n    }\n};\npublic class Destination\n{\n    public string Name { get; set; }\n    public string Country { get; set; }\n    public List<string> Activities { get; set; }\n    public int Cost { get; set; }\n    public string Season { get; set; }\n}\n```\nPlease provide step-by-step instructions for using the program and any necessary inputs. ',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 384]

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

Training Details

Training Dataset

Unnamed Dataset

  • Size: 1,000 training samples
  • Columns: sentence and label
  • Approximate statistics based on the first 1000 samples:
    sentence label
    type string int
    details
    • min: 8 tokens
    • mean: 95.61 tokens
    • max: 512 tokens
    • 0: ~50.00%
    • 1: ~50.00%
  • Samples:
    sentence label
    请输出所有跟政企市场相关的关键词列表 0
    开发一个定制的JavaScript解决方案,用于有效地平衡和排序一个二叉树。你可以假设输入是一个平衡因子擯至2的大O()为Log(N)的AVL树。专注于实现自我调整二叉搜索树的变换,当面对不平衡操作时,如插入或删除节点。确保你的解决方案为潜在的边缘案例做好准备,并具有健壮的错误处理策略。你的代码应该清晰地记录和优化效率。 0
    在一个尚未被公开的领域中,描述五个最具创新性的产品概念。 0
  • Loss: BatchAllTripletLoss

Training Hyperparameters

Non-Default Hyperparameters

  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • learning_rate: 2e-05
  • num_train_epochs: 2
  • warmup_ratio: 0.1
  • bf16: True
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: no
  • 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
  • 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: 2
  • max_steps: -1
  • 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: True
  • 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
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss
1.5873 100 0.0963

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.0.1
  • Transformers: 4.42.4
  • PyTorch: 2.3.1+cu121
  • Accelerate: 0.33.0.dev0
  • Datasets: 2.20.0
  • 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",
}

BatchAllTripletLoss

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