afvanluenen commited on
Commit
eea316e
·
verified ·
1 Parent(s): 3a74cef

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +21 -8
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
- **Parameters used:**
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