Skip to content

Commit db16c19

Browse files
committed
Minor Changes - Sample compose for python
1 parent 7baec71 commit db16c19

8 files changed

Lines changed: 90 additions & 17 deletions

Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ ENV test_file $data_dir/test_minimal.jsonl
4040
ENV epochs 10
4141
ENV pretrained_model microsoft/codebert-base
4242

43+
ENV seed 2022
44+
4345
ENV load_existing_model false
4446
ENV load_model_path /models/pytorch_model.bin
4547

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ On our servers, one epoch on the java data takes ~30h.
7070
The Containers starts ~20 threads for training and your server should have >20 cores.
7171

7272
In comparison, training on a RTX 1070 took 7h per epoch.
73-
However, mounting GPUs into a container is hard, so its not yet implemented.
7473

7574
## Known issues
7675

docker-compose-pretrained-minimal.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,8 @@ services:
2121
pretrained_model: microsoft/codebert-base
2222
load_existing_model: "true"
2323
load_model_path: /models/best_pytorch_model.bin
24+
deploy:
25+
resources:
26+
reservations:
27+
devices:
28+
- capabilities: [gpu]

docker-compose-python.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
version: '3.3'
2+
3+
services:
4+
python-codebert-training:
5+
image: ciselab/codebert-code2text:1.3
6+
volumes:
7+
- ./dataset/java/:/dataset:ro
8+
- ./compose_output:/experiment/output
9+
environment:
10+
epochs: 5
11+
lang: python
12+
train_file: /dataset/train.jsonl
13+
valid_file: /dataset/valid.jsonl
14+
test_file: /dataset/test.jsonl
15+
batch_size: 16
16+
oom_kill_disable: true
17+
deploy:
18+
resources:
19+
reservations:
20+
devices:
21+
- capabilities: [gpu]

docker-compose.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,9 @@ services:
1515
train_file: /dataset/train.jsonl
1616
valid_file: /dataset/valid.jsonl
1717
test_file: /dataset/test.jsonl
18-
batch_size: 8
18+
batch_size: 32
19+
deploy:
20+
resources:
21+
reservations:
22+
devices:
23+
- capabilities: [gpu]

entrypoint.sh

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ if [ "$load_existing_model" = true ]; then
3030
--train_batch_size $batch_size --eval_batch_size $batch_size \
3131
--learning_rate $lr \
3232
--num_train_epochs $epochs \
33-
--load_model_path $load_model_path
33+
--load_model_path $load_model_path \
34+
--seed $seed
3435
exit
3536
fi
3637
if [ "$DO_TRAIN" = true -a "$DO_VALID" = true ]; then
@@ -46,7 +47,8 @@ if [ "$load_existing_model" = true ]; then
4647
--train_batch_size $batch_size --eval_batch_size $batch_size \
4748
--learning_rate $lr \
4849
--load_model_path $load_model_path \
49-
--num_train_epochs $epochs
50+
--num_train_epochs $epochs \
51+
--seed $seed
5052
exit
5153
fi
5254
if [ "$DO_TRAIN" = true -a "$DO_TEST" = true ]; then
@@ -62,7 +64,8 @@ if [ "$load_existing_model" = true ]; then
6264
--train_batch_size $batch_size --eval_batch_size $batch_size \
6365
--learning_rate $lr \
6466
--num_train_epochs $epochs \
65-
--load_model_path $load_model_path
67+
--load_model_path $load_model_path \
68+
--seed $seed
6669
exit
6770
fi
6871
if [ "$DO_TRAIN" = true ]; then
@@ -79,7 +82,8 @@ if [ "$load_existing_model" = true ]; then
7982
--eval_batch_size $batch_size \
8083
--learning_rate $lr \
8184
--num_train_epochs $epochs \
82-
--load_model_path $load_model_path
85+
--load_model_path $load_model_path \
86+
--seed $seed
8387
exit 0
8488
fi
8589
if [ "$DO_TEST" = true ]; then
@@ -93,7 +97,8 @@ if [ "$load_existing_model" = true ]; then
9397
--max_target_length $target_length \
9498
--train_batch_size $batch_size \
9599
--eval_batch_size $batch_size \
96-
--load_model_path $load_model_path
100+
--load_model_path $load_model_path \
101+
--seed $seed
97102
exit
98103
fi
99104
fi
@@ -114,7 +119,8 @@ if [ "$DO_TRAIN" = true -a "$DO_TEST" = true -a "$DO_VALID" = true ]; then
114119
--beam_size $beam_size \
115120
--train_batch_size $batch_size --eval_batch_size $batch_size \
116121
--learning_rate $lr \
117-
--num_train_epochs $epochs
122+
--num_train_epochs $epochs \
123+
--seed $seed
118124
exit
119125
fi
120126
if [ "$DO_TRAIN" = true -a "$DO_VALID" = true ]; then
@@ -129,7 +135,8 @@ if [ "$DO_TRAIN" = true -a "$DO_VALID" = true ]; then
129135
--beam_size $beam_size \
130136
--train_batch_size $batch_size --eval_batch_size $batch_size \
131137
--learning_rate $lr \
132-
--num_train_epochs $epochs
138+
--num_train_epochs $epochs \
139+
--seed $seed
133140
exit
134141
fi
135142

@@ -145,7 +152,8 @@ if [ "$DO_TRAIN" = true -a "$DO_TEST" = true ]; then
145152
--beam_size $beam_size \
146153
--train_batch_size $batch_size --eval_batch_size $batch_size \
147154
--learning_rate $lr \
148-
--num_train_epochs $epochs
155+
--num_train_epochs $epochs \
156+
--seed $seed
149157
exit
150158
fi
151159
if [ "$DO_TRAIN" = true ]; then
@@ -161,7 +169,8 @@ if [ "$DO_TRAIN" = true ]; then
161169
--train_batch_size $batch_size \
162170
--eval_batch_size $batch_size \
163171
--learning_rate $lr \
164-
--num_train_epochs $epochs
172+
--num_train_epochs $epochs \
173+
--seed $seed
165174
exit 0
166175
fi
167176
if [ "$DO_TEST" = true ]; then
@@ -174,7 +183,8 @@ if [ "$DO_TEST" = true ]; then
174183
--max_source_length $source_length \
175184
--max_target_length $target_length \
176185
--train_batch_size $batch_size \
177-
--eval_batch_size $batch_size
186+
--eval_batch_size $batch_size \
187+
--seed $seed
178188
exit
179189
fi
180190

environment.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: codebert-code-to-text
2+
channels:
3+
- conda-forge
4+
- defaults
5+
dependencies:
6+
- _r-xgboost-mutex=2.0=cpu_0
7+
- idna=2.10
8+
- pip=20.3
9+
- pycparser=2.20
10+
- pyopenssl=20.0.0
11+
- python_abi=3.7
12+
- requests=2.25.0
13+
- six=1.15.0
14+
- tqdm=4.51.0
15+
- wheel=0.35.1
16+
- pytorch=1.4.0
17+
- pip:
18+
- click==7.1.2
19+
- filelock==3.0.12
20+
- joblib==0.17.0
21+
- numpy==1.19.3
22+
- packaging==20.4
23+
- protobuf==3.14.0
24+
- pyparsing==2.4.7
25+
- regex==2020.11.13
26+
- sacremoses==0.0.43
27+
- sentencepiece==0.1.91
28+
- tokenizers==0.9.3
29+
- transformers==3.5.0
30+
- urllib3==1.26.2

initial_readme.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -103,17 +103,17 @@ To fine-tune encoder-decoder on the dataset
103103

104104
```shell
105105
cd code
106-
lang=java #programming language
106+
lang=python #programming language
107107
lr=5e-5
108108
batch_size=32
109109
beam_size=10
110110
source_length=256
111111
target_length=128
112112
data_dir=../dataset
113113
output_dir=model/$lang
114-
train_file=$data_dir/$lang/train_minimal.jsonl
115-
dev_file=$data_dir/$lang/valid_minimal.jsonl
116-
test_file=$data_dir/$lang/test_minimal.jsonl
114+
train_file=$data_dir/$lang/train.jsonl
115+
dev_file=$data_dir/$lang/valid.jsonl
116+
test_file=$data_dir/$lang/test.jsonl
117117
epochs=10
118118
pretrained_model=microsoft/codebert-base #Roberta: roberta-base
119119

@@ -125,7 +125,8 @@ python run.py --do_train --do_test --do_eval --model_type roberta --model_name_o
125125

126126
```shell
127127
batch_size=64
128-
dev_file=$data_dir/$lang/valid.jsonl
128+
dev_file=$data_dir/$lang
129+
/valid.jsonl
129130
test_file=$data_dir/$lang/test.jsonl
130131
test_model=$output_dir/checkpoint-best-bleu/pytorch_model.bin #checkpoint for test
131132

0 commit comments

Comments
 (0)