# fa_dep_news_lg: tagger, morphologizer, trainable_lemmatizer, parser, WITH the lg-tier # static vectors. # # Byte-identical to configs/fa_dep_news_md.cfg. Only the vector table supplied at train time # via --paths.vectors differs: fa_floret, 200k rows x 300d, floret mode, trained on the full # Persian Wikipedia dump for 5 epochs (assets/vectors/fa_floret_lg), vs md's 50k rows x 300d # trained on 400k Persian documents. Seed, widths, rows, batcher, patience, eval_frequency all # held constant so the delta measures the vector table and nothing else. # # No `ner` here by design; see configs/fa_ner_lg.cfg and project.yml. [paths] train = null dev = null vectors = null init_tok2vec = null [system] gpu_allocator = null seed = 0 [nlp] lang = "fa" pipeline = ["tok2vec", "tagger", "morphologizer", "trainable_lemmatizer", "parser"] batch_size = 1000 disabled = [] before_creation = null after_creation = null after_pipeline_creation = null [corpora] [training] dev_corpus = "corpora.dev" train_corpus = "corpora.train" seed = ${system.seed} gpu_allocator = ${system.gpu_allocator} dropout = 0.1 accumulate_gradient = 1 patience = 1600 max_epochs = 0 max_steps = 20000 eval_frequency = 400 frozen_components = [] annotating_components = [] before_to_disk = null before_update = null [initialize] vectors = ${paths.vectors} init_tok2vec = ${paths.init_tok2vec} vocab_data = null lookups = null before_init = null after_init = null [components] [pretraining] [nlp.tokenizer] @tokenizers = "spacy.Tokenizer.v1" [nlp.vectors] @vectors = "spacy.Vectors.v1" [corpora.train] @readers = "spacy.Corpus.v1" path = ${paths.train} max_length = 0 gold_preproc = false limit = 0 augmenter = null [corpora.dev] @readers = "spacy.Corpus.v1" path = ${paths.dev} max_length = 0 gold_preproc = false limit = 0 augmenter = null [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 = 1e-08 learn_rate = 0.001 [training.batcher] @batchers = "spacy.batch_by_words.v1" discard_oversize = false tolerance = 0.2 get_length = null [training.logger] @loggers = "spacy.ConsoleLogger.v1" progress_bar = false [training.score_weights] tag_acc = 0.25 pos_acc = 0.12 tag_micro_p = null tag_micro_r = null tag_micro_f = null morph_acc = 0.12 morph_per_feat = null lemma_acc = 0.25 dep_uas = 0.12 dep_las = 0.12 dep_las_per_type = null sents_p = null sents_r = null sents_f = 0.0 [initialize.tokenizer] [initialize.components] [components.tok2vec] factory = "tok2vec" [components.tagger] factory = "tagger" label_smoothing = 0.05 overwrite = false neg_prefix = "!" [components.morphologizer] factory = "morphologizer" label_smoothing = 0.05 overwrite = true extend = false [components.trainable_lemmatizer] factory = "trainable_lemmatizer" backoff = "orth" min_tree_freq = 3 overwrite = false top_k = 1 [components.parser] factory = "parser" moves = null update_with_oracle_cut_size = 100 learn_tokens = false min_action_freq = 30 [training.batcher.size] @schedules = "compounding.v1" start = 100 stop = 1000 compound = 1.001 t = 0.0 [components.tok2vec.model] @architectures = "spacy.Tok2Vec.v2" [components.tagger.model] @architectures = "spacy.Tagger.v2" nO = null normalize = false [components.tagger.scorer] @scorers = "spacy.tagger_scorer.v1" [components.morphologizer.model] @architectures = "spacy.Tagger.v2" nO = null normalize = false [components.morphologizer.scorer] @scorers = "spacy.morphologizer_scorer.v1" [components.trainable_lemmatizer.model] @architectures = "spacy.Tagger.v2" nO = null normalize = false [components.trainable_lemmatizer.scorer] @scorers = "spacy.lemmatizer_scorer.v1" [components.parser.model] @architectures = "spacy.TransitionBasedParser.v2" state_type = "parser" extra_state_tokens = false hidden_width = 128 maxout_pieces = 3 use_upper = true nO = null [components.parser.scorer] @scorers = "spacy.parser_scorer.v1" [components.tok2vec.model.embed] @architectures = "spacy.MultiHashEmbed.v2" width = ${components.tok2vec.model.encode.width} attrs = ["NORM", "PREFIX", "SUFFIX", "SHAPE"] rows = [5000, 1000, 2500, 2500] include_static_vectors = true [components.tok2vec.model.encode] @architectures = "spacy.MaxoutWindowEncoder.v2" width = 96 depth = 4 window_size = 1 maxout_pieces = 3 [components.tagger.model.tok2vec] @architectures = "spacy.Tok2VecListener.v1" width = ${components.tok2vec.model.encode.width} upstream = "*" [components.morphologizer.model.tok2vec] @architectures = "spacy.Tok2VecListener.v1" width = ${components.tok2vec.model.encode.width} upstream = "*" [components.trainable_lemmatizer.model.tok2vec] @architectures = "spacy.Tok2VecListener.v1" width = ${components.tok2vec.model.encode.width} upstream = "*" [components.parser.model.tok2vec] @architectures = "spacy.Tok2VecListener.v1" width = ${components.tok2vec.model.encode.width} upstream = "*"