--- tags: - sentence-transformers - sentence-similarity - feature-extraction - generated_from_trainer - dataset_size:1664 - loss:MultipleNegativesRankingLoss base_model: sentence-transformers/all-MiniLM-L6-v2 widget: - source_sentence: Explain the importance of having a "Portfolio" section on a website. How can showcasing past work benefit a business or individual? sentences: - '### Sitemap - Home - About us - How we work - Services - Portfolio - Blog - Career' - 'Business keeps asking questions about what has been done or what is delivered to our clients. What you can do:' - 'Appunite always pushes boundaries and is very creative in ensuring that there is knowledge shared amongst the workspace and to our external stakeholders. This extends itself to overcoming the problem of articles, which are a longer form of writing, that they can be time consuming. There has recently been the addition of the TIL section on our website and is thanks to the initiative of a few Appuniter who said they would like to make something like this happen. They took on the task and are now live on our site: This is a valuable add to companies where peoples main focus is not writing and is somewhere else, in this case Software development. It allows for shortened pieces which are compacted with knowledge and what one learns is shared regularly. ### Akai As Appunite believes that the future is in the hands and minds of the youth, what better way to take advantage of this and benefit from a fruitful collaboration.' - source_sentence: How did the narrator's feelings and thoughts change as they tried to figure out the reason behind the problem with the reaction counters in the posts? sentences: - '- About us - How we work - Services - Portfolio - Blog - Career Miłosz Cisowski Product Manager # Workation 2.0 - How we work and travel without compromises ## The future is now, old man I bet right now you are sitting in the office or at home, thinking about how it would be possible to work, but also to travel. This is a great opportunity to live your life as a local, to enjoy the everyday life of people in different places that gives an amazing perspective on how you can walk, how you live and how you think in a different environment. It gives an opportunity to develop our minds, skills and business ideas.' - 'So I made the deployment. Waited… Nice, everything seems to be fine! The deployment was finished, and all servers were up and running. We were home! I went to the kitchen to make some coffee with a smile on my face. I did a really hard job, I deserved a break. After about half an hour after deployment, the client texted us in our shared Slack channel. Something was wrong, reaction counters in the posts showed 0 for everything!... My face turned white and my stomach felt weird. Is that possible that I did something pretty much irreversible? No, it is impossible that I broke it up so hard! How is it even possible it doesn’t work after all the tests that I had written were successful?! I sat in front of the computer and immediately started to look for reasons. Why did it happen? It’s impossible! Why, why, why? Wait, I think I got it!' - My assumption was that the onCreateViewHolder method should be called several times only when there are not enough ViewHolders available. Then, it should retrieve them from some ✨ magical pool ✨ , thus only onBindViewHolder should be called further during the scroll. Seems convenient, but believe me or not, I was struck dumb when I realised that in this situation, new ViewHolders are created every single time the user scrolls through the list! 😱 - source_sentence: How can you ensure that contacts are well synchronized in an application? sentences: - 'There is one more fantastic change. This year, we have created several groups that will visit different countries. The best part is you can go to any of them. This means that you can have not one but several Workation and you pay only for a transfer. This year Appuniters chose Montenegro, Tenerife, Istanbul, Zakopane (in Poland), Austria and Mexico. It seems impossible, but that''s how we do it in Appunite. Follow us on our social media to get more info about our trips. Join Appunite and create your own story! Martyna Kowalska Employer Branding Specialist At Appunite, I''m responsible for employer branding. After work, I''m a student of clinical psychology. I believe that customers will never love a company until the employees love it first. ## Related articles ### One minor change to regain your focus - #People - #Teamwork ' - 'You should check here whether all contacts are actually well synchronized. It is worth noting whether the application asks for access to the contacts, whether the message is formulated in the right way (there must be specific information for the user on how these contacts will be processed) and whether it is displayed in the right place. If the application is on the foreign market, it is also worth noting whether the invitations with text messages come to the recipient (this may be related to the directional prefix and the replacement of for example "+" with 00 digits). ## Update When the application is already in the store, it is worth testing what the update will look like. You should then download the store version and install the version that will be released as an update to it. There may also be various popups, buttons in settings, etc. in the application in order to inform the user about available updates. ### Examples of problems:' - ' Jacek Marchwicki Team Leader, Engineer, Android, Flutter Senior developer, team and tech leader, 12 years in the field, and 10 additional years as a coding enthusiast. ## Related articles ### Modular software design - 10 common mistakes - #Technology - #Backend ### What is mobile application maintenance? 4 types of mobile application maintenance - #Technology - #Maintenance ### Mastering development process - #Technology - #Strategy ### Appunite S.A. - Droga Dębińska 3A/3 - 61-555 Poznań, Poland - REGON: 385381222 - VAT ID (EU): PL 7831812112 - business@appunite.com - career@appunite.com ### Follow us - Our LinkedIn - Our Facebook - Our X/Twitter - Our Medium - Our YouTube - Our Dribbble - Our Instagram - Our GitHub - Our Behance ### Sitemap' - source_sentence: What has Hubert learned and experienced during his time at Appunite, and how has his knowledge and skills in Elixir development evolved since joining the company? sentences: - ' Maciej Kaszubowski ## Related articles ### Mastering development process - #Technology - #Strategy ### Proposing architectural changes - #Technology - #Strategy - #Teamwork ### Why is QA important in software development? - #Strategy - #QA ### Appunite S.A. - Droga Dębińska 3A/3 - 61-555 Poznań, Poland - REGON: 385381222 - VAT ID (EU): PL 7831812112 - business@appunite.com - career@appunite.com ### Follow us - Our LinkedIn - Our Facebook - Our X/Twitter - Our Medium - Our YouTube - Our Dribbble - Our Instagram - Our GitHub - Our Behance ### Sitemap - Home - About us - How we work - Services - Portfolio - Blog - Career' - '### Step #3 The next step was to meet as a team and discuss the issue of everyone not being on the same page when it comes to performing a great Code Review. I shared the document that I prepared for Tom with advice for the rest of the team, so we could have a base for discussion. Based on this document, we identified what needed to be fixed and what was excessive in our Code Review process. During the meeting, we prepared a document of Team Agreements on how to approach the Code Review process and what values should be taken into account. To avoid causing arguments among employees, I refrained everyone from blaming anyone personally. Instead, I focused on identifying the team''s problems and finding solutions. Our Appunite value is "Be a team player. We succeed and fail as a team". ### Step #4 In the end, the actions taken helped the person become a better software engineer. I also spoke with his leader about setting personal goals to help him improve on a daily basis.' - '- About us - How we work - Services - Portfolio - Blog - Career Hubert Salwin Elixir Developer # The journey of an Appuniter - Hubert ## How it all started I started working at Appunite a little more than a year ago. At the time when I applied to the company I was still completing my bachelor’s degree and I had just started learning Elixir a few months before. I had never imagined that in such a short amount of time I would meet so many new people, tackle many problems and learn so much stuff.' - source_sentence: Compare and contrast the build times for the project under different approaches, including non-virtualized architecture, virtualization with no cache, and virtualization with several improvements. How did the build times change with each iteration? sentences: - 'After so many improvements we''ve noticed that the build started to be even faster when compared to the non-virtualized architecture times Approximate build times for the same project: - 1st approach with no virtualization ~ 10 minutes - 1st iteration of virtualization with no cache and other improvements ~ 30 minutes - virtualization with several improvements ~ 4-5 minutes As you can see, we''ve achieved a very scalable CI system that seems to be ideal... ## Current issues' - "Pro-tips first:\n\n- note, that in order to use FireStick in your app, you need\ \ to download AmazonFling and WhisperPlay jars from here and include them in your\ \ project.\n- while launching the app after integrating FireStick you can get\ \ a similar crash:java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/conn/util/InetAddressUtils;\n\ \ at com.amazon.whisperlink.android.util.RouteUtil.createRoute(RouteUtil.java:78)\n\ \ at com.amazon.whisperlink.android.util.RouteUtil.createRoute(RouteUtil.java:51)\n\ \ ...\nCaused by: java.lang.ClassNotFoundException: Didn't find class\ \ \"org.apache.http.conn.util.InetAddressUtils\"\n\nIt is caused by lack of apache\ \ networking library in android runtime, since Android 6. To fix it, add the following\ \ code to your AndroidManifest." - '### Appunite S.A. - Droga Dębińska 3A/3 - 61-555 Poznań, Poland - REGON: 385381222 - VAT ID (EU): PL 7831812112 - business@appunite.com - career@appunite.com ### Follow us - Our LinkedIn - Our Facebook - Our X/Twitter - Our Medium - Our YouTube - Our Dribbble - Our Instagram - Our GitHub - Our Behance ### Sitemap - Home - About us - How we work - Services - Portfolio - Blog - Career' pipeline_tag: sentence-similarity library_name: sentence-transformers 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 model-index: - name: SentenceTransformer based on sentence-transformers/all-MiniLM-L6-v2 results: - task: type: information-retrieval name: Information Retrieval dataset: name: Unknown type: unknown metrics: - type: cosine_accuracy@1 value: 0.8421052631578947 name: Cosine Accuracy@1 - type: cosine_accuracy@3 value: 0.9497607655502392 name: Cosine Accuracy@3 - type: cosine_accuracy@5 value: 0.9760765550239234 name: Cosine Accuracy@5 - type: cosine_accuracy@10 value: 0.992822966507177 name: Cosine Accuracy@10 - type: cosine_precision@1 value: 0.8421052631578947 name: Cosine Precision@1 - type: cosine_precision@3 value: 0.31658692185007975 name: Cosine Precision@3 - type: cosine_precision@5 value: 0.19521531100478468 name: Cosine Precision@5 - type: cosine_precision@10 value: 0.09928229665071771 name: Cosine Precision@10 - type: cosine_recall@1 value: 0.8421052631578947 name: Cosine Recall@1 - type: cosine_recall@3 value: 0.9497607655502392 name: Cosine Recall@3 - type: cosine_recall@5 value: 0.9760765550239234 name: Cosine Recall@5 - type: cosine_recall@10 value: 0.992822966507177 name: Cosine Recall@10 - type: cosine_ndcg@10 value: 0.9219480799267699 name: Cosine Ndcg@10 - type: cosine_mrr@10 value: 0.8986557302346777 name: Cosine Mrr@10 - type: cosine_map@100 value: 0.8990201319148687 name: Cosine Map@100 --- # SentenceTransformer based on sentence-transformers/all-MiniLM-L6-v2 This is a [sentence-transformers](https://www.SBERT.net) model finetuned from [sentence-transformers/all-MiniLM-L6-v2](https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2). 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:** [sentence-transformers/all-MiniLM-L6-v2](https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2) - **Maximum Sequence Length:** 256 tokens - **Output Dimensionality:** 384 dimensions - **Similarity Function:** Cosine Similarity ### 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': 256, 'do_lower_case': False}) with Transformer model: BertModel (1): Pooling({'word_embedding_dimension': 384, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, '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("sentence_transformers_model_id") # Run inference sentences = [ 'Compare and contrast the build times for the project under different approaches, including non-virtualized architecture, virtualization with no cache, and virtualization with several improvements. How did the build times change with each iteration?', "After so many improvements we've noticed that the build started to be even faster when compared to the non-virtualized architecture times\n\nApproximate build times for the same project:\n\n- 1st approach with no virtualization ~ 10 minutes\n- 1st iteration of virtualization with no cache and other improvements ~ 30 minutes\n- virtualization with several improvements ~ 4-5 minutes\n\nAs you can see, we've achieved a very scalable CI system that seems to be ideal...\n\n## Current issues", 'Pro-tips first:\n\n- note, that in order to use FireStick in your app, you need to download AmazonFling and WhisperPlay jars from here and include them in your project.\n- while launching the app after integrating FireStick you can get a similar crash:java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/conn/util/InetAddressUtils;\n at com.amazon.whisperlink.android.util.RouteUtil.createRoute(RouteUtil.java:78)\n at com.amazon.whisperlink.android.util.RouteUtil.createRoute(RouteUtil.java:51)\n ...\nCaused by: java.lang.ClassNotFoundException: Didn\'t find class "org.apache.http.conn.util.InetAddressUtils"\n\nIt is caused by lack of apache networking library in android runtime, since Android 6. To fix it, add the following code to your AndroidManifest.', ] 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] ``` ## Evaluation ### Metrics #### Information Retrieval * Evaluated with [InformationRetrievalEvaluator](https://sbert.net/docs/package_reference/sentence_transformer/evaluation.html#sentence_transformers.evaluation.InformationRetrievalEvaluator) | Metric | Value | |:--------------------|:-----------| | cosine_accuracy@1 | 0.8421 | | cosine_accuracy@3 | 0.9498 | | cosine_accuracy@5 | 0.9761 | | cosine_accuracy@10 | 0.9928 | | cosine_precision@1 | 0.8421 | | cosine_precision@3 | 0.3166 | | cosine_precision@5 | 0.1952 | | cosine_precision@10 | 0.0993 | | cosine_recall@1 | 0.8421 | | cosine_recall@3 | 0.9498 | | cosine_recall@5 | 0.9761 | | cosine_recall@10 | 0.9928 | | **cosine_ndcg@10** | **0.9219** | | cosine_mrr@10 | 0.8987 | | cosine_map@100 | 0.899 | ## Training Details ### Training Dataset #### Unnamed Dataset * Size: 1,664 training samples * Columns: sentence_0 and sentence_1 * Approximate statistics based on the first 1000 samples: | | sentence_0 | sentence_1 | |:--------|:-----------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------| | type | string | string | | details | | | * Samples: | sentence_0 | sentence_1 | |:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | How does the 'code-coverage' job in the workflow ensure that it has access to the necessary test results before running the code coverage analysis? | ```
code-coverage:
name: Merged code coverage
runs-on: ubuntu-20.04
permissions:
pull-requests: write
needs:
- unit-tests

steps:

- name: Checkout
uses: actions/checkout@v4

- name: Download tests results for both jobs
uses: actions/download-artifact@v4
with:
name: test-results-unit
name: test-results

- name: Run code coverage
run: ./gradlew codeCoverage

- name: Store HTML coverage report
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: |
*/build/reports/jacoco/codeCoverage
| | Describe the purpose and functionality of the 'Download tests results for both jobs' and 'Store HTML coverage report' steps in the workflow. | ```
code-coverage:
name: Merged code coverage
runs-on: ubuntu-20.04
permissions:
pull-requests: write
needs:
- unit-tests

steps:

- name: Checkout
uses: actions/checkout@v4

- name: Download tests results for both jobs
uses: actions/download-artifact@v4
with:
name: test-results-unit
name: test-results

- name: Run code coverage
run: ./gradlew codeCoverage

- name: Store HTML coverage report
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: |
*/build/reports/jacoco/codeCoverage
| | Explain the purpose of the `Payment.Worker` module in the given code snippet. How does it utilize the GenServer behavior and what is the significance of the `@interval` attribute? | ```
defmodule Payment.Worker do
use GenServer

@interval 10 * 6000

def start\_link() do
...
end

def init() do
Process.send\_after(self(), :work, @interval)
{:ok, %{}}
end

def handle\_info(:work, state) do
Repo.transaction(fn ->
Documents.Accepted.fetch()
|> Enum.map(fn %{job\_id: job\_id} ->
:ok = pay\_the\_driver(job\_id)

job\_id
end)
|> Documents.Accepted.delete\_paid()
end)
end
end
| * Loss: [MultipleNegativesRankingLoss](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`: 10 - `per_device_eval_batch_size`: 10 - `num_train_epochs`: 1 - `multi_dataset_batch_sampler`: round_robin #### All Hyperparameters
Click to expand - `overwrite_output_dir`: False - `do_predict`: False - `eval_strategy`: steps - `prediction_loss_only`: True - `per_device_train_batch_size`: 10 - `per_device_eval_batch_size`: 10 - `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`: 5e-05 - `weight_decay`: 0.0 - `adam_beta1`: 0.9 - `adam_beta2`: 0.999 - `adam_epsilon`: 1e-08 - `max_grad_norm`: 1 - `num_train_epochs`: 1 - `max_steps`: -1 - `lr_scheduler_type`: linear - `lr_scheduler_kwargs`: {} - `warmup_ratio`: 0.0 - `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`: None - `hub_always_push`: False - `gradient_checkpointing`: False - `gradient_checkpointing_kwargs`: None - `include_inputs_for_metrics`: False - `include_for_metrics`: [] - `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 - `average_tokens_across_devices`: False - `prompts`: None - `batch_sampler`: batch_sampler - `multi_dataset_batch_sampler`: round_robin
### Training Logs | Epoch | Step | cosine_ndcg@10 | |:------:|:----:|:--------------:| | 0.2994 | 50 | 0.9175 | | 0.5988 | 100 | 0.9152 | | 0.8982 | 150 | 0.9211 | | 1.0 | 167 | 0.9219 | ### Framework Versions - Python: 3.11.11 - Sentence Transformers: 3.3.1 - Transformers: 4.47.1 - PyTorch: 2.5.1+cu124 - Accelerate: 1.2.1 - Datasets: 3.2.0 - Tokenizers: 0.21.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} } ```