-
Notifications
You must be signed in to change notification settings - Fork 0
/
train_3pc_bert.yml
131 lines (107 loc) · 4.06 KB
/
train_3pc_bert.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
$SUITE_VARS$:
_python_pre: "export PYTHONPATH={{ exp_code_dir }}/utils && . {{ exp_code_dir }}/.venv/bin/activate"
_python_path: "[% my_run._python_pre %] && {{ exp_code_dir }}/.venv/bin/python"
cmd_mpspdz: "[% my_run._python_path %] -m python_utils.scripts.experiment_runner --player-number <PLAYER-ID>"
$INCLUDE_VARS$: dataset.yml
commit_output: True
convert_ring_bits: 31
convert_n_threads: 36
convert_debug: False
convert_chunk_size: 200000
sleep_time: 60
_runtime_info:
budget: 10000
consistency_args:
abs_path_to_code_dir: "{{ exp_consistency_dir }}"
hosts_file: "{{ exp_consistency_hosts_file }}"
pc: kzg
pp_args: "[% my_run.dataset_info[my_run.mpc.script_args.dataset].max_input_size %]"
gen_pp: True
type:
$FACTOR$: [ pc, cerebro, sha3s ] #, cerebro, pc ]
use_split: True
mpc:
player_0_hostname: "[% exp_host_lst | json_query('[?host_type==`large_memory`].private_dns_name') | default(['<UNDEFINED-DNS>'], true) | first %]"
abs_path_to_code_dir: "{{ exp_code_dir }}"
player_count: 3
protocol_setup: $FACTOR$
compiler_args: $FACTOR$ #'100000000'] # budget was '1000000'1million # also look at B 5 -> cannot be used together with R
domain: $FACTOR$
custom_prime: $FACTOR$
script_name: "training"
script_args:
n_input_parties: 3
sha3_approx_factor: "[% my_run.dataset_info[my_run.mpc.script_args.dataset].sha3_approx_factor_full | default(1) %]"
# n_epochs: 0
debug: False # for a final benchmarking run, can also use `debug: False`, this should then only release no secret info
emulate: False
# dataset: mnist_full_3party
dataset: glue-qnli
# $FACTOR$: [ adult_3p ]
# cifar_alexnet_3party
# in a network with latency, a high batch size for ml.py is key to a good performance (60k raised insufficient memory error)
batch_size: 1 #1024 #256 # was 128 before # 60000 -> insufficient memory
n_batches: 1
n_threads: 72
n_s_bert: 2500
# TODO
consistency_check: "[% my_run.consistency_args.type %]"
stage: # "compile" in run and then in next run "run"
$FACTOR$: [ compile, run ] # ensure that this is last factor
sh:
n_repetitions: 1
host_types:
large_memory:
n: 3
check_status: True
init_roles:
- setup-base
- setup-consistency
- setup-spdz-secrets
# - download-dataset
# - setup-largeprimes
# - setup-network-delay # adjust latency + bandwidth limit -> doe-suite-config/roles/setup-network-delay/vars/main.yml
$CMD$:
- main: "[% my_run.cmd_mpspdz | replace('<PLAYER-ID>', 0) %]"
- main: "[% my_run.cmd_mpspdz | replace('<PLAYER-ID>', 1) %]"
- main: "[% my_run.cmd_mpspdz | replace('<PLAYER-ID>', 2) %]"
base_experiment:
network_type: lan
mpc_type: sh
factor_levels:
- mpc:
protocol_setup: "semi_honest_3"
domain: ring
compiler_args: [ '-R', '64', '-C', '--budget', "[% my_run._runtime_info.budget %]", '-D', '-Z', '3', ]
custom_prime: null
mal:
n_repetitions: 1
host_types:
large_memory:
n: 3
check_status: True
init_roles:
- setup-base
- setup-consistency
- setup-spdz-secrets
# - download-dataset
# - setup-largeprimes
# - setup-network-delay # adjust latency + bandwidth limit -> doe-suite-config/roles/setup-network-delay/vars/main.yml
$CMD$:
- main: "[% my_run.cmd_mpspdz | replace('<PLAYER-ID>', 0) %]"
- main: "[% my_run.cmd_mpspdz | replace('<PLAYER-ID>', 1) %]"
- main: "[% my_run.cmd_mpspdz | replace('<PLAYER-ID>', 2) %]"
base_experiment:
consistency_args:
type:
$FACTOR$: [ pc, cerebro, sha3s ]
convert_chunk_size: 100000
network_type: lan
mpc_type: mal
factor_levels:
- mpc:
protocol_setup: "sy-rep-ring-party"
domain: ring
compiler_args: [ '-R', '64', '-C', '--budget', "[% my_run._runtime_info.budget %]", '-D', '-Z', '3' ]
custom_prime: null
$ETL$: {}