Ошибка при предварительном обучении с использованием 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
переменная используется программой чтения корпуса, которая будет передавать необработанный текст для вашего этапа предварительной подготовки. Поэтому вам нужно убедиться, что все это правильно подключено, прежде чем вы сможете запускать предварительную тренировку.