| local env = import "../env.jsonnet"; |
| local base = import "basic.jsonnet"; |
|
|
| local fn_path = "data/framenet/full/full.jsonl"; |
| local mapping_path = "data/basic/framenet2better/"; |
|
|
| local debug = false; |
|
|
| # training |
| local lr = env.json("PT_LR", "5e-5"); |
| local cuda_devices = base.cuda_devices; |
|
|
| # mapping |
| local min_weight = env.json("MIN_WEIGHT", '0.0'); |
| local max_weight = env.json("MAX_WEIGHT", '5.0'); |
|
|
| { |
| dataset_reader: { |
| type: "semantic_role_labeling", |
| debug: debug, |
| pretrained_model: base.dataset_reader.pretrained_model, |
| ignore_label: false, |
| [ if debug then "max_instances" ]: 128, |
| ontology_mapping_path: mapping_path + '/ontology_mapping.json', |
| min_weight: min_weight, |
| max_weight: max_weight, |
| }, |
| validation_dataset_reader: base.dataset_reader, |
| train_data_path: fn_path, |
| validation_data_path: base.validation_data_path, |
| test_data_path: base.test_data_path, |
| vocabulary: { |
| type: "extend", |
| directory: mapping_path + "/vocabulary" |
| }, |
|
|
| datasets_for_vocab_creation: ["train"], |
|
|
| data_loader: base.data_loader, |
| validation_data_loader: base.validation_data_loader, |
|
|
| model: base.model, |
|
|
| trainer: { |
| num_epochs: base.trainer.num_epochs, |
| patience: base.trainer.patience, |
| [if std.length(cuda_devices) == 1 then "cuda_device"]: cuda_devices[0], |
| validation_metric: "+arg-c_f", |
| num_gradient_accumulation_steps: base.trainer.num_gradient_accumulation_steps, |
| optimizer: { |
| type: "transformer", |
| base: { |
| type: "adam", |
| lr: lr, |
| }, |
| embeddings_lr: 0.0, |
| encoder_lr: 1e-5, |
| pooler_lr: 1e-5, |
| layer_fix: base.trainer.optimizer.layer_fix, |
| } |
| }, |
|
|
| [if std.length(cuda_devices) > 1 then "distributed"]: { |
| "cuda_devices": cuda_devices |
| }, |
| [if std.length(cuda_devices) == 1 then "evaluate_on_test"]: true |
| } |
|
|