[paths] train = "assets/clausecat/train.spacy" dev = "assets/clausecat/dev.spacy" vectors = ${paths.ner_model} init_tok2vec = "assets/pretrained_weights_clausecat.bin" ner_model = "training/ner/config_tok2vec/model-best" [system] gpu_allocator = "pytorch" seed = 0 [nlp] lang = "en" pipeline = ["sentencizer","tok2vec","ner","benepar","segmentation","clausecat","aggregation"] batch_size = 128 disabled = [] before_creation = null after_creation = null after_pipeline_creation = null tokenizer = {"@tokenizers":"spacy.Tokenizer.v1"} [components] [components.aggregation] factory = "healthsea.aggregation.v1" [components.benepar] factory = "benepar" disable_tagger = false model = "benepar_en3" subbatch_max_tokens = 500 [components.clausecat] factory = "healthsea.clausecat.v1" threshold = 0.5 [components.clausecat.model] @architectures = "healthsea.clausecat_model.v1" blinder = {"@layers":"healthsea.blinder.v1"} [components.clausecat.model.textcat] @architectures = "spacy.TextCatEnsemble.v2" nO = null [components.clausecat.model.textcat.linear_model] @architectures = "spacy.TextCatBOW.v2" exclusive_classes = true ngram_size = 1 no_output_layer = false nO = null [components.clausecat.model.textcat.tok2vec] @architectures = "spacy.Tok2Vec.v2" [components.clausecat.model.textcat.tok2vec.embed] @architectures = "spacy.MultiHashEmbed.v2" width = 64 rows = [2000,2000,1000,1000,1000,1000] attrs = ["ORTH","LOWER","PREFIX","SUFFIX","SHAPE","ID"] include_static_vectors = false [components.clausecat.model.textcat.tok2vec.encode] @architectures = "spacy.MaxoutWindowEncoder.v2" width = ${components.clausecat.model.textcat.tok2vec.embed.width} window_size = 1 maxout_pieces = 3 depth = 2 [components.ner] factory = "ner" incorrect_spans_key = null moves = null scorer = {"@scorers":"spacy.ner_scorer.v1"} update_with_oracle_cut_size = 100 [components.ner.model] @architectures = "spacy.TransitionBasedParser.v2" state_type = "ner" extra_state_tokens = false hidden_width = 64 maxout_pieces = 2 use_upper = false nO = null [components.ner.model.tok2vec] @architectures = "spacy.Tok2VecListener.v1" width = 256 upstream = "tok2vec" [components.segmentation] factory = "healthsea.segmentation.v1" [components.sentencizer] factory = "sentencizer" overwrite = false punct_chars = null scorer = {"@scorers":"spacy.senter_scorer.v1"} [components.tok2vec] factory = "tok2vec" [components.tok2vec.model] @architectures = "spacy.Tok2Vec.v2" [components.tok2vec.model.embed] @architectures = "spacy.MultiHashEmbed.v2" width = 256 attrs = ["ORTH","SHAPE"] rows = [5000,2500] include_static_vectors = true [components.tok2vec.model.encode] @architectures = "spacy.MaxoutWindowEncoder.v2" width = 256 depth = 8 window_size = 1 maxout_pieces = 3 [corpora] [corpora.dev] @readers = "healthsea.clausecat_reader.v1" path = ${paths.dev} [corpora.train] @readers = "healthsea.clausecat_reader.v1" path = ${paths.train} [training] accumulate_gradient = 3 dev_corpus = "corpora.dev" train_corpus = "corpora.train" seed = ${system.seed} gpu_allocator = ${system.gpu_allocator} dropout = 0.1 patience = 1600 max_epochs = 0 max_steps = 20000 eval_frequency = 200 frozen_components = ["tok2vec","ner"] annotating_components = [] before_to_disk = null [training.batcher] @batchers = "spacy.batch_by_words.v1" discard_oversize = false tolerance = 0.2 get_length = null [training.batcher.size] @schedules = "compounding.v1" start = 100 stop = 1000 compound = 1.001 t = 0.0 [training.logger] @loggers = "spacy.ConsoleLogger.v1" progress_bar = true [training.optimizer] @optimizers = "Adam.v1" beta1 = 0.9 beta2 = 0.999 L2_is_weight_decay = true L2 = 0.01 grad_clip = 1.0 use_averages = false eps = 0.00000001 [training.optimizer.learn_rate] @schedules = "warmup_linear.v1" warmup_steps = 250 total_steps = 20000 initial_rate = 0.00005 [training.score_weights] sents_f = null sents_p = null sents_r = null ents_f = null ents_p = null ents_r = null ents_per_type = null cats_score = 1.0 cats_score_desc = null cats_micro_p = null cats_micro_r = null cats_micro_f = null cats_macro_p = null cats_macro_r = null cats_macro_f = null cats_macro_auc = null cats_f_per_type = null cats_macro_auc_per_type = null [pretraining] max_epochs = 100 dropout = 0.2 n_save_every = null n_save_epoch = 1 component = "clausecat" layer = "tok2vec" corpus = "corpora.pretrain" [pretraining.batcher] @batchers = "spacy.batch_by_words.v1" size = 10000 discard_oversize = false tolerance = 0.2 get_length = null [pretraining.objective] @architectures = "spacy.PretrainVectors.v1" maxout_pieces = 3 hidden_size = 300 loss = "cosine" [pretraining.optimizer] @optimizers = "Adam.v1" beta1 = 0.9 beta2 = 0.999 L2_is_weight_decay = true L2 = 0.01 grad_clip = 1.0 use_averages = true eps = 0.00000001 learn_rate = 0.001 [initialize] vectors = ${paths.vectors} init_tok2vec = ${paths.init_tok2vec} vocab_data = null lookups = null before_init = null after_init = null [initialize.components] [initialize.tokenizer]