metadata
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
<!-- image -->
<!-- image -->
<!-- image -->
Miłosz Cisowski
Product Manager
<!-- image -->
<!-- image -->
# Workation 2.0 - How we work and travel without compromises
<!-- image -->
<!-- image -->
## 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!
<!-- image -->
<!-- image -->
<!-- image -->
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.
<!-- image -->
<!-- image -->
## Related articles
<!-- image -->
### One minor change to regain your focus
- #People
- #Teamwork
<!-- image -->
- >-
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:
- >-
<!-- image -->
<!-- image -->
<!-- image -->
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.
<!-- image -->
<!-- image -->
<!-- image -->
<!-- image -->
<!-- image -->
## Related articles
<!-- image -->
### Modular software design - 10 common mistakes
- #Technology
- #Backend
<!-- image -->
### What is mobile application maintenance? 4 types of mobile
application maintenance
- #Technology
- #Maintenance
<!-- image -->
### 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
- [email protected]
- [email protected]
### 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:
- |-
<!-- image -->
<!-- image -->
<!-- image -->
Maciej Kaszubowski
<!-- image -->
<!-- image -->
## Related articles
<!-- image -->
### Mastering development process
- #Technology
- #Strategy
<!-- image -->
### Proposing architectural changes
- #Technology
- #Strategy
- #Teamwork
<!-- image -->
### 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
- [email protected]
- [email protected]
### 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
<!-- image -->
<!-- image -->
<!-- image -->
Hubert Salwin
Elixir Developer
<!-- image -->
<!-- image -->
# The journey of an Appuniter - Hubert
<!-- image -->
<!-- image -->
## 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:
- 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.
- 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;
at com.amazon.whisperlink.android.util.RouteUtil.createRoute(RouteUtil.java:78)
at com.amazon.whisperlink.android.util.RouteUtil.createRoute(RouteUtil.java:51)
...
Caused by: java.lang.ClassNotFoundException: Didn't find class
"org.apache.http.conn.util.InetAddressUtils"
It 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
- [email protected]
- [email protected]
### 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 model finetuned from 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
- Maximum Sequence Length: 256 tokens
- Output Dimensionality: 384 dimensions
- 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': 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:
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("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
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
andsentence_1
- Approximate statistics based on the first 1000 samples:
sentence_0 sentence_1 type string string details - min: 13 tokens
- mean: 30.91 tokens
- max: 88 tokens
- min: 8 tokens
- mean: 175.1 tokens
- max: 256 tokens
- 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: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: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() - Loss:
MultipleNegativesRankingLoss
with these parameters:{ "scale": 20.0, "similarity_fct": "cos_sim" }
Training Hyperparameters
Non-Default Hyperparameters
eval_strategy
: stepsper_device_train_batch_size
: 10per_device_eval_batch_size
: 10num_train_epochs
: 1multi_dataset_batch_sampler
: round_robin
All Hyperparameters
Click to expand
overwrite_output_dir
: Falsedo_predict
: Falseeval_strategy
: stepsprediction_loss_only
: Trueper_device_train_batch_size
: 10per_device_eval_batch_size
: 10per_gpu_train_batch_size
: Noneper_gpu_eval_batch_size
: Nonegradient_accumulation_steps
: 1eval_accumulation_steps
: Nonetorch_empty_cache_steps
: Nonelearning_rate
: 5e-05weight_decay
: 0.0adam_beta1
: 0.9adam_beta2
: 0.999adam_epsilon
: 1e-08max_grad_norm
: 1num_train_epochs
: 1max_steps
: -1lr_scheduler_type
: linearlr_scheduler_kwargs
: {}warmup_ratio
: 0.0warmup_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
: Nonehub_always_push
: Falsegradient_checkpointing
: Falsegradient_checkpointing_kwargs
: Noneinclude_inputs_for_metrics
: Falseinclude_for_metrics
: []eval_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
: Falseaverage_tokens_across_devices
: Falseprompts
: Nonebatch_sampler
: batch_samplermulti_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
@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}
}