Ошибка при предварительном обучении с использованием spacy 3.0. Что такое raw_text?

Предварительное обучение пользовательских весов в конвейере Spacy дает ошибку.

Когда я запускаю это с помощью ноутбука jupyter:

!python -m spacy pretrain config.cfg ./output_pretrain --paths.raw_text ./data.jsonl

Возникает следующая ошибка:

      [i] Using CPU
[i] Loading config from: config.cfg
[x] Error parsing config overrides
paths -> raw_text   not a section value that can be overwritten

Моя среда

  • Операционная система: Windows 10.0.19041
  • Используемая версия Python: 3.8.8
  • Используемая версия spaCy:3.0.5

1 ответ

Путь spacy pretrainКоманда работает так: вы предоставляете ей файл конфигурации и выходной каталог. При желании вы можете переопределить определенные настройки из файла конфигурации в командной строке. Например, если ваш файл конфигурации будет содержать этот блок:

      [paths]
train = null
dev = null
raw_text = "path/to/toy_data"

Затем в командной строке вы можете сделать --raw_text="path/to/production_data" чтобы изменить это конкретное значение.

Теперь похоже, что вы получаете это сообщение об ошибке, потому что у вас нет записи в paths блок, поэтому вы не можете его перезаписать.

На самом деле, мне интересно, определили ли вы pretrainingблок в вашем конфигурационном файле? Если нет - посмотритеspacy init config. Вы можете предоставить ему опцию -ptкоторый заполнит значения по умолчанию для предварительного , в частности, он создаст что-то вроде этого (среди других этапа``обучения обычных '' настроек):

      [paths]
raw_text = null
...

[pretraining]
max_epochs = 1000
dropout = 0.2
n_save_every = null
component = "tok2vec"
layer = ""
corpus = "corpora.pretrain"

[pretraining.batcher]
@batchers = "spacy.batch_by_words.v1"
size = 3000
discard_oversize = false
tolerance = 0.2
get_length = null

[pretraining.objective]
@architectures = "spacy.PretrainCharacters.v1"
maxout_pieces = 3
hidden_size = 300
n_characters = 4

[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
...

[corpora.pretrain]
@readers = "spacy.JsonlCorpus.v1"
path = ${paths.raw_text}
min_length = 5
max_length = 500
limit = 0

Обратите внимание, как raw_textпеременная используется программой чтения корпуса, которая будет передавать необработанный текст для вашего этапа предварительной подготовки. Поэтому вам нужно убедиться, что все это правильно подключено, прежде чем вы сможете запускать предварительную тренировку.

Другие вопросы по тегам