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