Update README.md
Browse files
README.md
CHANGED
|
@@ -30,6 +30,26 @@ nor has it been tested on other downstream tasks.
|
|
| 30 |
|
| 31 |
# Architecture description
|
| 32 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
**Full architecture:**
|
| 34 |
|
| 35 |
```
|
|
@@ -49,7 +69,7 @@ nor has it been tested on other downstream tasks.
|
|
| 49 |
]
|
| 50 |
```
|
| 51 |
|
| 52 |
-
**
|
| 53 |
|
| 54 |
```
|
| 55 |
{
|
|
@@ -92,13 +112,6 @@ nor has it been tested on other downstream tasks.
|
|
| 92 |
}
|
| 93 |
```
|
| 94 |
|
| 95 |
-
Note that during pretraining, the --mlm-prob parameter has been set to 0.4. We have done some experiments with different mlm-probs (namely, 0.15, 0.3 and 0.4) and found that
|
| 96 |
-
0.4 yielded the best results, in accordance to [Wettig et al., 2023](https://aclanthology.org/2023.eacl-main.217.pdf).
|
| 97 |
-
|
| 98 |
-
**Estimated time it has cost to train:**
|
| 99 |
-
|
| 100 |
-
pretraining: 38 hours on 4 NVIDIA H200s
|
| 101 |
-
finetuning: 4 hours on 1 NVIDIA H200
|
| 102 |
|
| 103 |
# Output
|
| 104 |
The model outputs embeddings of size 768 that can be compared using cosine similarity
|
|
|
|
| 30 |
|
| 31 |
# Architecture description
|
| 32 |
|
| 33 |
+
This model has been trained similarly to [Wang et al.](https://arxiv.org/pdf/2205.12713). The first step is Masked Language Modelling, where we set the
|
| 34 |
+
--mlm-prob parameter to 0.4 in accordance to [Wettig et al., 2023](https://aclanthology.org/2023.eacl-main.217.pdf). We have done some experiments with different mlm-probs
|
| 35 |
+
(namely, 0.15, 0.3 and 0.4) and found that 0.4 yielded the best results.
|
| 36 |
+
|
| 37 |
+
One remarkable aspect of [Wang et al.](https://arxiv.org/pdf/2205.12713)'s paper, was that they came up with the concept of "Jump target prediction". As part of the
|
| 38 |
+
Masked Language Modelling procedure, the model also has to predict jump targets: whenever there is a jump in the code, the model shouldn't only predict it to be a
|
| 39 |
+
jump instruction, but it should also predict to which line of code it's supposed to jump. The idea is that this leads to better understanding of the long-term relations
|
| 40 |
+
in the code, and as Wang et al yielded good results, we have adopted it.
|
| 41 |
+
|
| 42 |
+
Finetuning happens based on triplet loss: given three functions, of which two are similar (see also Data) and one is deviant, the model has to pick which two functions
|
| 43 |
+
are similar to each other. We used [Batched Semi Hard Triplet Loss](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#batchsemihardtripletloss) to
|
| 44 |
+
ensure that the training task is not too easy.
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
**Estimated training time:**
|
| 48 |
+
|
| 49 |
+
pretraining: 38 hours on 4 NVIDIA H200s
|
| 50 |
+
finetuning: 4 hours on 1 NVIDIA H200
|
| 51 |
+
|
| 52 |
+
|
| 53 |
**Full architecture:**
|
| 54 |
|
| 55 |
```
|
|
|
|
| 69 |
]
|
| 70 |
```
|
| 71 |
|
| 72 |
+
**Pretraining parameters used:**
|
| 73 |
|
| 74 |
```
|
| 75 |
{
|
|
|
|
| 112 |
}
|
| 113 |
```
|
| 114 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 115 |
|
| 116 |
# Output
|
| 117 |
The model outputs embeddings of size 768 that can be compared using cosine similarity
|