title: Train custom NER component with a base model in spaCy v3
body: <p>I'm having problems training a custom NER component within a base model in spaCy's new version.
  So far, I've been training my NER model at CLI with the following command:</p>
  <pre><code>python -m spacy train en model training validation --base-model en_core_web_sm --pipeline &quot;ner&quot; -R -n 10
  </code></pre>
  <p>Depending on the use case, I took en_core_web_sm or en_core_web_lg as the base model to make use of the other components like tagger and pos.</p>
  <p>In spaCy version 3 a config file is required to handle the command at CLI. I'm using the following configurations for training:</p>
  <pre><code>[paths]
  train = &quot;training/&quot;
  dev = &quot;validation/&quot;
  vectors = null
  init_tok2vec = null
  
  [system]
  gpu_allocator = null
  seed = 0
  
  [nlp]
  lang = &quot;en&quot;
  pipeline = [&quot;ner&quot;]
  batch_size = 1000
  disabled = []
  before_creation = null
  after_creation = null
  after_pipeline_creation = null
  tokenizer = {&quot;@tokenizers&quot;:&quot;spacy.Tokenizer.v1&quot;}
  
  [components]
  
  [components.ner]
  factory = &quot;ner&quot;
  moves = null
  update_with_oracle_cut_size = 100
  
  [components.ner.model]
  @architectures = &quot;spacy.TransitionBasedParser.v2&quot;
  state_type = &quot;ner&quot;
  extra_state_tokens = false
  hidden_width = 64
  maxout_pieces = 2
  use_upper = true
  nO = null
  
  [corpora]
  
  [corpora.dev]
  @readers = &quot;spacy.Corpus.v1&quot;
  path = ${paths.dev}
  max_length = 0
  gold_preproc = false
  limit = 0
  augmenter = null
  
  [corpora.train]
  @readers = &quot;spacy.Corpus.v1&quot;
  path = ${paths.train}
  max_length = 2000
  gold_preproc = false
  limit = 0
  augmenter = null
  
  [training]
  dev_corpus = &quot;corpora.dev&quot;
  train_corpus = &quot;corpora.train&quot;
  seed = ${system.seed}
  gpu_allocator = ${system.gpu_allocator}
  dropout = 0.1
  accumulate_gradient = 1
  patience = 1600
  max_epochs = 0
  max_steps = 20000
  eval_frequency = 200
  frozen_components = []
  before_to_disk = null
  
  [training.batcher]
  @batchers = &quot;spacy.batch_by_words.v1&quot;
  discard_oversize = false
  tolerance = 0.2
  get_length = null
  
  [training.batcher.size]
  @schedules = &quot;compounding.v1&quot;
  start = 100
  stop = 1000
  compound = 1.001
  t = 0.0
  
  [training.logger]
  @loggers = &quot;spacy.ConsoleLogger.v1&quot;
  progress_bar = false
  
  [training.optimizer]
  @optimizers = &quot;Adam.v1&quot;
  beta1 = 0.9
  beta2 = 0.999
  L2_is_weight_decay = true
  L2 = 0.01
  grad_clip = 1.0
  use_averages = false
  eps = 0.00000001
  learn_rate = 0.001
  
  [training.score_weights]
  ents_per_type = null
  ents_f = 1.0
  ents_p = 0.0
  ents_r = 0.0
  
  [pretraining]
  
  [initialize]
  vectors = null
  init_tok2vec = null
  vocab_data = null
  lookups = null
  before_init = null
  after_init = null
  
  [initialize.components]
  
  </code></pre>
  <p>Since I'm not familiar to spaCy's new version, these are pretty much the default settings.</p>
  <p>Unfortunately, I can only the the model from scratch and I can't find an option anymore, to only train the NER component within an existing language model.</p>
  <p>I have also tried to add the parser component in the configuration file with</p>
  <pre><code>[components]
  
  [components.parser]
  source = &quot;en_core_web_sm&quot;
  ...
  </code></pre>
  <p>But then the model is not even loadable raising the following error</p>
  <pre><code>nn_parser.pyx in spacy.syntax.nn_parser.Parser.from_disk()
  
  nn_parser.pyx in spacy.syntax.nn_parser.Parser.Model()
  
  TypeError: Model() takes exactly 1 positional argument (0 given)
  </code></pre>