spaCy - Pretrain 命令

用于预训练管道组件的"token 到向量 (tok2vec)"层。为此,它使用近似语言建模目标。

可以通过以下几点来理解其工作原理 −

  • 首先,我们需要加载预训练向量,然后训练像 CNN 这样的组件来预测将进一步匹配预训练向量的向量。

  • 它会在每个 epoch 之后将权重保存到一个目录中。

  • 保存后,我们现在可以将其中一个预训练权重文件的路径传递给 train 命令。

  • 现在,为了在 spacy 训练期间重新加载权重,建议确保预训练和训练之间的所有设置相同。

Pretrain 命令如下 −

python -m spacy pretrain [texts_loc] [vectors_model] [output_dir][--width] [--conv-depth] [--cnn-window] [--cnn-pieces] [--use-chars] [--sa-depth][--embed-rows] [--loss_func] [--dropout] [--batch-size] [--max-length][--min-length] [--seed] [--n-iter] [--use-vectors] [--n-save-every][--init-tok2vec] [--epoch-start]

参数

下表解释了其参数 −

ARGUMENT TYPE DESCRIPTION
texts_loc positional 此参数采用 JSONL 文件的路径,其中包含要学习的原始文本。文本以键"text"的形式提供,标记以键"tokens"的形式提供。
vectors_model positional 它是 spaCy 模型的路径或名称,其中包含要学习的向量。
output_dir positional 此参数表示在每个 epoch 中将模型写入的目录。
--width, -cw option 它表示 CNN 层的宽度。
--conv-depth, -cd option 它表示深度CNN 层。
--cnn-window, -cW option 在 2.2.2 版本中引入,表示 CNN 层的窗口大小。
--cnn-pieces, -cP option 在 2.2.2 版本中引入,表示 CNN 层的最大输出大小。例如,1 代表 Mish。
--use-chars,-chr flag 在 2.2.2 版本中引入,定义是否使用基于字符的嵌入。
--sa-depth,-sa option 在 2.2.2 版本中引入,表示自注意力层的深度。
--embed-rows,-er option 此参数采用嵌入行数。
--loss-func, -L option 它表示用于目标的损失函数。例如,它可以是"cosine"、"L2"或"characters"。
--dropout,-d option 它表示 dropout 率。
--batch-size,-bs option 它是每个训练批次的单词数。
--max-length,-xw option 使用此参数,您可以指定每个示例的最大单词数。超过指定长度的示例将被丢弃。
--min-length, -nw option 使用此参数,您可以指定每个示例的最少单词数。比指定长度更短的示例将被丢弃。
--seed, -s option 顾名思义,它是随机数生成器的种子。
--n-iter, -i option 此参数用于指定要预训练的迭代次数。
--use-vectors, -uv flag 它定义是否使用静态向量作为输入特征。
--n-save-every, -se option 此参数将每 X 次保存一次模型批次。
--init-tok2vec, -t2v option 在版本 2.1 中引入,定义模型的 token-to-vector 部分的预训练权重的路径。
--epoch-start, -es option 在版本 2.1.5 中引入,表示开始计数的时期。只有在使用 --init-tok2vec 并且给定的权重文件已重命名时才有意义。它还可以防止意外覆盖现有的权重文件。

以下是原始文本的 JSON 格式 −

  • text − 其类型为 Unicode,表示原始输入文本。如果有标记可用,则不需要它。它是常规 JSON 和默认输出文件类型。

  • tokens − 其类型为列表,每个标记采用一个字符串。它用于可选的标记化。

spacy_command_line_helpers.html