<commit_before>//- 💫 DOCS > API > COMMAND LINE INTERFACE

include ../_includes/_mixins

p
    |  As of v1.7.0, spaCy comes with new command line helpers to download and
    |  link models and show useful debugging information. For a list of available
    |  commands, type #[code spacy --help].

+h(3, "download") Download

p
    |  Download #[+a("/usage/models") models] for spaCy. The downloader finds the
    |  best-matching compatible version, uses pip to download the model as a
    |  package and automatically creates a
    |  #[+a("/usage/models#usage") shortcut link] to load the model by name.
    |  Direct downloads don't perform any compatibility checks and require the
    |  model name to be specified with its version (e.g.
    |  #[code en_core_web_sm-2.0.0]).

+aside("Downloading best practices")
    |  The #[code download] command is mostly intended as a convenient,
    |  interactive wrapper – it performs compatibility checks and prints
    |  detailed messages in case things go wrong. It's #[strong not recommended]
    |  to use this command as part of an automated process. If you know which
    |  model your project needs, you should consider a
    |  #[+a("/usage/models#download-pip") direct download via pip], or
    |  uploading the model to a local PyPi installation and fetching it straight
    |  from there. This will also allow you to add it as a versioned package
    |  dependency to your project.

+code(false, "bash", "$").
    python -m spacy download [model] [--direct]

+table(["Argument", "Type", "Description"])
    +row
        +cell #[code model]
        +cell positional
        +cell
            |  Model name or shortcut (#[code en], #[code de],
            |  #[code en_core_web_sm]).

    +row
        +cell #[code --direct], #[code -d]
        +cell flag
        +cell Force direct download of exact model version.

    +row
        +cell other
            +tag-new(2.1)
        +cell -
        +cell
            |  Additional installation options to be passed to
            |  #[code pip install] when installing the model package. For
            |  example, #[code --user] to install to the user home directory.

    +row
        +cell #[code --help], #[code -h]
        +cell flag
        +cell Show help message and available arguments.

    +row("foot")
        +cell creates
        +cell directory, symlink
        +cell
            |  The installed model package in your #[code site-packages]
            |  directory and a shortcut link as a symlink in #[code spacy/data].

+h(3, "link") Link

p
    |  Create a #[+a("/usage/models#usage") shortcut link] for a model,
    |  either a Python package or a local directory. This will let you load
    |  models from any location using a custom name via
    |  #[+api("spacy#load") #[code spacy.load()]].

+infobox("Important note")
    |  In spaCy v1.x, you had to use the model data directory to set up a shortcut
    |  link for a local path. As of v2.0, spaCy expects all shortcut links to
    |  be #[strong loadable model packages]. If you want to load a data directory,
    |  call #[+api("spacy#load") #[code spacy.load()]] or
    |  #[+api("language#from_disk") #[code Language.from_disk()]] with the path,
    |  or use the #[+api("cli#package") #[code package]] command to create a
    |  model package.

+code(false, "bash", "$").
    python -m spacy link [origin] [link_name] [--force]

+table(["Argument", "Type", "Description"])
    +row
        +cell #[code origin]
        +cell positional
        +cell Model name if package, or path to local directory.

    +row
        +cell #[code link_name]
        +cell positional
        +cell Name of the shortcut link to create.

    +row
        +cell #[code --force], #[code -f]
        +cell flag
        +cell Force overwriting of existing link.

    +row
        +cell #[code --help], #[code -h]
        +cell flag
        +cell Show help message and available arguments.

    +row("foot")
        +cell creates
        +cell symlink
        +cell
            |  A shortcut link of the given name as a symlink in
            |  #[code spacy/data].

+h(3, "info") Info

p
    |  Print information about your spaCy installation, models and local setup,
    |  and generate #[+a("https://en.wikipedia.org/wiki/Markdown") Markdown]-formatted
    |  markup to copy-paste into #[+a(gh("spacy") + "/issues") GitHub issues].

+code(false, "bash").
    python -m spacy info [--markdown]
    python -m spacy info [model] [--markdown]

+table(["Argument", "Type", "Description"])
    +row
        +cell #[code model]
        +cell positional
        +cell A model, i.e. shortcut link, package name or path (optional).

    +row
        +cell #[code --markdown], #[code -md]
        +cell flag
        +cell Print information as Markdown.

    +row
        +cell #[code --silent], #[code -s]
            +tag-new("2.0.12")
        +cell flag
        +cell Don't print anything, just return the values.

    +row
        +cell #[code --help], #[code -h]
        +cell flag
        +cell Show help message and available arguments.

    +row("foot")
        +cell prints
        +cell #[code stdout]
        +cell Information about your spaCy installation.

+h(3, "validate") Validate
    +tag-new(2)

p
    |  Find all models installed in the current environment (both packages and
    |  shortcut links) and check whether they are compatible with the currently
    |  installed version of spaCy. Should be run after upgrading spaCy via
    |  #[code pip install -U spacy] to ensure that all installed models are
    |  can be used with the new version. The command is also useful to detect
    |  out-of-sync model links resulting from links created in different virtual
    |  environments. It will a list of models, the installed versions, the
    |  latest compatible version (if out of date) and the commands for updating.

+aside("Automated validation")
    |  You can also use the #[code validate] command as part of your build
    |  process or test suite, to ensure all models are up to date before
    |  proceeding. If incompatible models or shortcut links are found, it will
    |  return #[code 1].

+code(false, "bash", "$").
    python -m spacy validate

+table(["Argument", "Type", "Description"])
    +row("foot")
        +cell prints
        +cell #[code stdout]
        +cell Details about the compatibility of your installed models.

+h(3, "convert") Convert

p
    |  Convert files into spaCy's #[+a("/api/annotation#json-input") JSON format]
    |  for use with the #[code train] command and other experiment management
    |  functions. The converter can be specified on the command line, or
    |  chosen based on the file extension of the input file.

+code(false, "bash", "$", false, false, true).
    python -m spacy convert [input_file] [output_dir] [--converter] [--n-sents]
    [--morphology]

+table(["Argument", "Type", "Description"])
    +row
        +cell #[code input_file]
        +cell positional
        +cell Input file.

    +row
        +cell #[code output_dir]
        +cell positional
        +cell Output directory for converted JSON file.

    +row
        +cell #[code converter], #[code -c]
        +cell option
        +cell #[+tag-new(2)] Name of converter to use (see below).

    +row
        +cell #[code --n-sents], #[code -n]
        +cell option
        +cell Number of sentences per document.

    +row
        +cell #[code --morphology], #[code -m]
        +cell option
        +cell Enable appending morphology to tags.

    +row
        +cell #[code --help], #[code -h]
        +cell flag
        +cell Show help message and available arguments.

    +row("foot")
        +cell creates
        +cell JSON
        +cell Data in spaCy's #[+a("/api/annotation#json-input") JSON format].

p The following file format converters are available:

+table(["ID", "Description"])
    +row
        +cell #[code auto]
        +cell Automatically pick converter based on file extension (default).

    +row
        +cell #[code conllu], #[code conll]
        +cell Universal Dependencies #[code .conllu] or #[code .conll] format.

    +row
        +cell #[code ner]
        +cell Tab-based named entity recognition format.

    +row
        +cell #[code iob]
        +cell IOB or IOB2 named entity recognition format.

+h(3, "train") Train

p
    |  Train a model. Expects data in spaCy's
    |  #[+a("/api/annotation#json-input") JSON format]. On each epoch, a model
    |  will be saved out to the directory. Accuracy scores and model details
    |  will be added to a #[+a("/usage/training#models-generating") #[code meta.json]]
    |  to allow packaging the model using the
    |  #[+api("cli#package") #[code package]] command.

+code(false, "bash", "$", false, false, true).
    python -m spacy train [lang] [output_dir] [train_data] [dev_data] [--n-iter]
    [--n-sents] [--use-gpu] [--meta-path] [--vectors] [--no-tagger] [--no-parser]
    [--no-entities] [--gold-preproc] [--verbose]

+table(["Argument", "Type", "Description"])
    +row
        +cell #[code lang]
        +cell positional
        +cell Model language.

    +row
        +cell #[code output_dir]
        +cell positional
        +cell Directory to store model in.

    +row
        +cell #[code train_data]
        +cell positional
        +cell Location of JSON-formatted training data.

    +row
        +cell #[code dev_data]
        +cell positional
        +cell Location of JSON-formatted development data for evaluation.

    +row
        +cell #[code --n-iter], #[code -n]
        +cell option
        +cell Number of iterations (default: #[code 30]).

    +row
        +cell #[code --n-sents], #[code -ns]
        +cell option
        +cell Number of sentences (default: #[code 0]).

    +row
        +cell #[code --use-gpu], #[code -g]
        +cell option
        +cell Use GPU.

    +row
        +cell #[code --vectors], #[code -v]
        +cell option
        +cell Model to load vectors from.

    +row
        +cell #[code --meta-path], #[code -m]
        +cell option
        +cell
            |  #[+tag-new(2)] Optional path to model
            |  #[+a("/usage/training#models-generating") #[code meta.json]].
            |  All relevant properties like #[code lang], #[code pipeline] and
            |  #[code spacy_version] will be overwritten.

    +row
        +cell #[code --version], #[code -V]
        +cell option
        +cell
            |  Model version. Will be written out to the model's
            |  #[code meta.json] after training.

    +row
        +cell #[code --no-tagger], #[code -T]
        +cell flag
        +cell Don't train tagger.

    +row
        +cell #[code --no-parser], #[code -P]
        +cell flag
        +cell Don't train parser.

    +row
        +cell #[code --no-entities], #[code -N]
        +cell flag
        +cell Don't train NER.

    +row
        +cell #[code --gold-preproc], #[code -G]
        +cell flag
        +cell Use gold preprocessing.

    +row
        +cell #[code --help], #[code -h]
        +cell flag
        +cell Show help message and available arguments.

    +row
        +cell #[code --verbose]
            +tag-new("2.0.13")
        +cell flag
        +cell Show more detail message during training.

    +row("foot")
        +cell creates
        +cell model, pickle
        +cell A spaCy model on each epoch, and a final #[code .pickle] file.

+h(4, "train-hyperparams") Environment variables for hyperparameters
    +tag-new(2)

p
    |  spaCy lets you set hyperparameters for training via environment variables.
    |  This is useful, because it keeps the command simple and allows you to
    |  #[+a("https://askubuntu.com/questions/17536/how-do-i-create-a-permanent-bash-alias/17537#17537") create an alias]
    |  for your custom #[code train] command while still being able to easily
    |  tweak the hyperparameters. For example:

+code(false, "bash", "$").
    parser_hidden_depth=2 parser_maxout_pieces=1 spacy train [...]

+code("Usage with alias", "bash", "$").
    alias train-parser="spacy train en /output /data /train /dev -n 1000"
    parser_maxout_pieces=1 train-parser

+table(["Name", "Description", "Default"])
    +row
        +cell #[code dropout_from]
        +cell Initial dropout rate.
        +cell #[code 0.2]

    +row
        +cell #[code dropout_to]
        +cell Final dropout rate.
        +cell #[code 0.2]

    +row
        +cell #[code dropout_decay]
        +cell Rate of dropout change.
        +cell #[code 0.0]

    +row
        +cell #[code batch_from]
        +cell Initial batch size.
        +cell #[code 1]

    +row
        +cell #[code batch_to]
        +cell Final batch size.
        +cell #[code 64]

    +row
        +cell #[code batch_compound]
        +cell Rate of batch size acceleration.
        +cell #[code 1.001]

    +row
        +cell #[code token_vector_width]
        +cell Width of embedding tables and convolutional layers.
        +cell #[code 128]

    +row
        +cell #[code embed_size]
        +cell Number of rows in embedding tables.
        +cell #[code 7500]

    //- +row
    //-     +cell #[code parser_maxout_pieces]
    //-     +cell Number of pieces in the parser's and NER's first maxout layer.
    //-     +cell #[code 2]

    //- +row
    //-     +cell #[code parser_hidden_depth]
    //-     +cell Number of hidden layers in the parser and NER.
    //-     +cell #[code 1]

    +row
        +cell #[code hidden_width]
        +cell Size of the parser's and NER's hidden layers.
        +cell #[code 128]

    //- +row
    //-     +cell #[code history_feats]
    //-     +cell Number of previous action ID features for parser and NER.
    //-     +cell #[code 128]

    //- +row
    //-     +cell #[code history_width]
    //-     +cell Number of embedding dimensions for each action ID.
    //-     +cell #[code 128]

    +row
        +cell #[code learn_rate]
        +cell Learning rate.
        +cell #[code 0.001]

    +row
        +cell #[code optimizer_B1]
        +cell Momentum for the Adam solver.
        +cell #[code 0.9]

    +row
        +cell #[code optimizer_B2]
        +cell Adagrad-momentum for the Adam solver.
        +cell #[code 0.999]

    +row
        +cell #[code optimizer_eps]
        +cell Epsylon value for the Adam solver.
        +cell #[code 1e-08]

    +row
        +cell #[code L2_penalty]
        +cell L2 regularisation penalty.
        +cell #[code 1e-06]

    +row
        +cell #[code grad_norm_clip]
        +cell Gradient L2 norm constraint.
        +cell #[code 1.0]

+h(3, "vocab") Vocab
    +tag-new(2)

p<commit_msg>Fix typo (closes #3232) [ci skip]<commit_after>//- 💫 DOCS > API > COMMAND LINE INTERFACE

include ../_includes/_mixins

p
    |  As of v1.7.0, spaCy comes with new command line helpers to download and
    |  link models and show useful debugging information. For a list of available
    |  commands, type #[code spacy --help].

+h(3, "download") Download

p
    |  Download #[+a("/usage/models") models] for spaCy. The downloader finds the
    |  best-matching compatible version, uses pip to download the model as a
    |  package and automatically creates a
    |  #[+a("/usage/models#usage") shortcut link] to load the model by name.
    |  Direct downloads don't perform any compatibility checks and require the
    |  model name to be specified with its version (e.g.
    |  #[code en_core_web_sm-2.0.0]).

+aside("Downloading best practices")
    |  The #[code download] command is mostly intended as a convenient,
    |  interactive wrapper – it performs compatibility checks and prints
    |  detailed messages in case things go wrong. It's #[strong not recommended]
    |  to use this command as part of an automated process. If you know which
    |  model your project needs, you should consider a
    |  #[+a("/usage/models#download-pip") direct download via pip], or
    |  uploading the model to a local PyPi installation and fetching it straight
    |  from there. This will also allow you to add it as a versioned package
    |  dependency to your project.

+code(false, "bash", "$").
    python -m spacy download [model] [--direct]

+table(["Argument", "Type", "Description"])
    +row
        +cell #[code model]
        +cell positional
        +cell
            |  Model name or shortcut (#[code en], #[code de],
            |  #[code en_core_web_sm]).

    +row
        +cell #[code --direct], #[code -d]
        +cell flag
        +cell Force direct download of exact model version.

    +row
        +cell other
            +tag-new(2.1)
        +cell -
        +cell
            |  Additional installation options to be passed to
            |  #[code pip install] when installing the model package. For
            |  example, #[code --user] to install to the user home directory.

    +row
        +cell #[code --help], #[code -h]
        +cell flag
        +cell Show help message and available arguments.

    +row("foot")
        +cell creates
        +cell directory, symlink
        +cell
            |  The installed model package in your #[code site-packages]
            |  directory and a shortcut link as a symlink in #[code spacy/data].

+h(3, "link") Link

p
    |  Create a #[+a("/usage/models#usage") shortcut link] for a model,
    |  either a Python package or a local directory. This will let you load
    |  models from any location using a custom name via
    |  #[+api("spacy#load") #[code spacy.load()]].

+infobox("Important note")
    |  In spaCy v1.x, you had to use the model data directory to set up a shortcut
    |  link for a local path. As of v2.0, spaCy expects all shortcut links to
    |  be #[strong loadable model packages]. If you want to load a data directory,
    |  call #[+api("spacy#load") #[code spacy.load()]] or
    |  #[+api("language#from_disk") #[code Language.from_disk()]] with the path,
    |  or use the #[+api("cli#package") #[code package]] command to create a
    |  model package.

+code(false, "bash", "$").
    python -m spacy link [origin] [link_name] [--force]

+table(["Argument", "Type", "Description"])
    +row
        +cell #[code origin]
        +cell positional
        +cell Model name if package, or path to local directory.

    +row
        +cell #[code link_name]
        +cell positional
        +cell Name of the shortcut link to create.

    +row
        +cell #[code --force], #[code -f]
        +cell flag
        +cell Force overwriting of existing link.

    +row
        +cell #[code --help], #[code -h]
        +cell flag
        +cell Show help message and available arguments.

    +row("foot")
        +cell creates
        +cell symlink
        +cell
            |  A shortcut link of the given name as a symlink in
            |  #[code spacy/data].

+h(3, "info") Info

p
    |  Print information about your spaCy installation, models and local setup,
    |  and generate #[+a("https://en.wikipedia.org/wiki/Markdown") Markdown]-formatted
    |  markup to copy-paste into #[+a(gh("spacy") + "/issues") GitHub issues].

+code(false, "bash").
    python -m spacy info [--markdown]
    python -m spacy info [model] [--markdown]

+table(["Argument", "Type", "Description"])
    +row
        +cell #[code model]
        +cell positional
        +cell A model, i.e. shortcut link, package name or path (optional).

    +row
        +cell #[code --markdown], #[code -md]
        +cell flag
        +cell Print information as Markdown.

    +row
        +cell #[code --silent], #[code -s]
            +tag-new("2.0.12")
        +cell flag
        +cell Don't print anything, just return the values.

    +row
        +cell #[code --help], #[code -h]
        +cell flag
        +cell Show help message and available arguments.

    +row("foot")
        +cell prints
        +cell #[code stdout]
        +cell Information about your spaCy installation.

+h(3, "validate") Validate
    +tag-new(2)

p
    |  Find all models installed in the current environment (both packages and
    |  shortcut links) and check whether they are compatible with the currently
    |  installed version of spaCy. Should be run after upgrading spaCy via
    |  #[code pip install -U spacy] to ensure that all installed models are
    |  can be used with the new version. The command is also useful to detect
    |  out-of-sync model links resulting from links created in different virtual
    |  environments. It will a list of models, the installed versions, the
    |  latest compatible version (if out of date) and the commands for updating.

+aside("Automated validation")
    |  You can also use the #[code validate] command as part of your build
    |  process or test suite, to ensure all models are up to date before
    |  proceeding. If incompatible models or shortcut links are found, it will
    |  return #[code 1].

+code(false, "bash", "$").
    python -m spacy validate

+table(["Argument", "Type", "Description"])
    +row("foot")
        +cell prints
        +cell #[code stdout]
        +cell Details about the compatibility of your installed models.

+h(3, "convert") Convert

p
    |  Convert files into spaCy's #[+a("/api/annotation#json-input") JSON format]
    |  for use with the #[code train] command and other experiment management
    |  functions. The converter can be specified on the command line, or
    |  chosen based on the file extension of the input file.

+code(false, "bash", "$", false, false, true).
    python -m spacy convert [input_file] [output_dir] [--converter] [--n-sents]
    [--morphology]

+table(["Argument", "Type", "Description"])
    +row
        +cell #[code input_file]
        +cell positional
        +cell Input file.

    +row
        +cell #[code output_dir]
        +cell positional
        +cell Output directory for converted JSON file.

    +row
        +cell #[code converter], #[code -c]
        +cell option
        +cell #[+tag-new(2)] Name of converter to use (see below).

    +row
        +cell #[code --n-sents], #[code -n]
        +cell option
        +cell Number of sentences per document.

    +row
        +cell #[code --morphology], #[code -m]
        +cell option
        +cell Enable appending morphology to tags.

    +row
        +cell #[code --help], #[code -h]
        +cell flag
        +cell Show help message and available arguments.

    +row("foot")
        +cell creates
        +cell JSON
        +cell Data in spaCy's #[+a("/api/annotation#json-input") JSON format].

p The following file format converters are available:

+table(["ID", "Description"])
    +row
        +cell #[code auto]
        +cell Automatically pick converter based on file extension (default).

    +row
        +cell #[code conllu], #[code conll]
        +cell Universal Dependencies #[code .conllu] or #[code .conll] format.

    +row
        +cell #[code ner]
        +cell Tab-based named entity recognition format.

    +row
        +cell #[code iob]
        +cell IOB or IOB2 named entity recognition format.

+h(3, "train") Train

p
    |  Train a model. Expects data in spaCy's
    |  #[+a("/api/annotation#json-input") JSON format]. On each epoch, a model
    |  will be saved out to the directory. Accuracy scores and model details
    |  will be added to a #[+a("/usage/training#models-generating") #[code meta.json]]
    |  to allow packaging the model using the
    |  #[+api("cli#package") #[code package]] command.

+code(false, "bash", "$", false, false, true).
    python -m spacy train [lang] [output_dir] [train_data] [dev_data] [--n-iter]
    [--n-sents] [--use-gpu] [--meta-path] [--vectors] [--no-tagger] [--no-parser]
    [--no-entities] [--gold-preproc] [--verbose]

+table(["Argument", "Type", "Description"])
    +row
        +cell #[code lang]
        +cell positional
        +cell Model language.

    +row
        +cell #[code output_dir]
        +cell positional
        +cell Directory to store model in.

    +row
        +cell #[code train_data]
        +cell positional
        +cell Location of JSON-formatted training data.

    +row
        +cell #[code dev_data]
        +cell positional
        +cell Location of JSON-formatted development data for evaluation.

    +row
        +cell #[code --n-iter], #[code -n]
        +cell option
        +cell Number of iterations (default: #[code 30]).

    +row
        +cell #[code --n-sents], #[code -ns]
        +cell option
        +cell Number of sentences (default: #[code 0]).

    +row
        +cell #[code --use-gpu], #[code -g]
        +cell option
        +cell Use GPU.

    +row
        +cell #[code --vectors], #[code -v]
        +cell option
        +cell Model to load vectors from.

    +row
        +cell #[code --meta-path], #[code -m]
        +cell option
        +cell
            |  #[+tag-new(2)] Optional path to model
            |  #[+a("/usage/training#models-generating") #[code meta.json]].
            |  All relevant properties like #[code lang], #[code pipeline] and
            |  #[code spacy_version] will be overwritten.

    +row
        +cell #[code --version], #[code -V]
        +cell option
        +cell
            |  Model version. Will be written out to the model's
            |  #[code meta.json] after training.

    +row
        +cell #[code --no-tagger], #[code -T]
        +cell flag
        +cell Don't train tagger.

    +row
        +cell #[code --no-parser], #[code -P]
        +cell flag
        +cell Don't train parser.

    +row
        +cell #[code --no-entities], #[code -N]
        +cell flag
        +cell Don't train NER.

    +row
        +cell #[code --gold-preproc], #[code -G]
        +cell flag
        +cell Use gold preprocessing.

    +row
        +cell #[code --help], #[code -h]
        +cell flag
        +cell Show help message and available arguments.

    +row
        +cell #[code --verbose]
            +tag-new("2.0.13")
        +cell flag
        +cell Show more detail message during training.

    +row("foot")
        +cell creates
        +cell model, pickle
        +cell A spaCy model on each epoch, and a final #[code .pickle] file.

+h(4, "train-hyperparams") Environment variables for hyperparameters
    +tag-new(2)

p
    |  spaCy lets you set hyperparameters for training via environment variables.
    |  This is useful, because it keeps the command simple and allows you to
    |  #[+a("https://askubuntu.com/questions/17536/how-do-i-create-a-permanent-bash-alias/17537#17537") create an alias]
    |  for your custom #[code train] command while still being able to easily
    |  tweak the hyperparameters. For example:

+code(false, "bash", "$").
    parser_hidden_depth=2 parser_maxout_pieces=1 spacy train [...]

+code("Usage with alias", "bash", "$").
    alias train-parser="spacy train en /output /data /train /dev -n 1000"
    parser_maxout_pieces=1 train-parser

+table(["Name", "Description", "Default"])
    +row
        +cell #[code dropout_from]
        +cell Initial dropout rate.
        +cell #[code 0.2]

    +row
        +cell #[code dropout_to]
        +cell Final dropout rate.
        +cell #[code 0.2]

    +row
        +cell #[code dropout_decay]
        +cell Rate of dropout change.
        +cell #[code 0.0]

    +row
        +cell #[code batch_from]
        +cell Initial batch size.
        +cell #[code 1]

    +row
        +cell #[code batch_to]
        +cell Final batch size.
        +cell #[code 64]

    +row
        +cell #[code batch_compound]
        +cell Rate of batch size acceleration.
        +cell #[code 1.001]

    +row
        +cell #[code token_vector_width]
        +cell Width of embedding tables and convolutional layers.
        +cell #[code 128]

    +row
        +cell #[code embed_size]
        +cell Number of rows in embedding tables.
        +cell #[code 7500]

    //- +row
    //-     +cell #[code parser_maxout_pieces]
    //-     +cell Number of pieces in the parser's and NER's first maxout layer.
    //-     +cell #[code 2]

    //- +row
    //-     +cell #[code parser_hidden_depth]
    //-     +cell Number of hidden layers in the parser and NER.
    //-     +cell #[code 1]

    +row
        +cell #[code hidden_width]
        +cell Size of the parser's and NER's hidden layers.
        +cell #[code 128]

    //- +row
    //-     +cell #[code history_feats]
    //-     +cell Number of previous action ID features for parser and NER.
    //-     +cell #[code 128]

    //- +row
    //-     +cell #[code history_width]
    //-     +cell Number of embedding dimensions for each action ID.
    //-     +cell #[code 128]

    +row
        +cell #[code learn_rate]
        +cell Learning rate.
        +cell #[code 0.001]

    +row
        +cell #[code optimizer_B1]
        +cell Momentum for the Adam solver.
        +cell #[code 0.9]

    +row
        +cell #[code optimizer_B2]
        +cell Adagrad-momentum for the Adam solver.
        +cell #[code 0.999]

    +row
        +cell #[code optimizer_eps]
        +cell Epsilon value for the Adam solver.
        +cell #[code 1e-08]

    +row
        +cell #[code L2_penalty]
        +cell L2 regularisation penalty.
        +cell #[code 1e-06]

    +row
        +cell #[code grad_norm_clip]
        +cell Gradient L2 norm constraint.
        +cell #[code 1.0]

+h(3, "vocab") Vocab
    +tag-new(2)

p
{'fraction_non_alphanumeric': 0.11999316473000683, 'fraction_numerical': 0.00786056049213944, 'mean_word_length': 2.190252943741823, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 26, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3266513', 'n_tokens_mistral': 9026, 'n_tokens_neox': 8891, 'n_words': 3326}