Как я могу обучить модель связи сущностей spaCy с помощью графического процессора?
Когда я обучаю модель связывания сущностей spaCy, следуйте документу wiki_entity_linking, и я обнаружил, что эта модель была обучена с использованием процессора. Тренировать эпоху стоит очень долго. (Около 3 дней для 2 эпох в среде: 16x ЦП, 64 ГБ памяти)
Команда такая:
python wikidata_train_entity_linker.py -t 50000 -d 10000 -o xxx
. Итак, мой вопрос в том, как я могу использовать GPU для фазы поезда.
1 ответ
Вам нужно будет реорганизовать код, чтобы использовать spacy.require_gpu() перед инициализацией ваших моделей NLP - для получения дополнительной информации обратитесь к документации: https://spacy.io/api/top-level
Перед тем как это сделать, я должен убедиться, что ваша задача выполняется на всех ядрах. Если вы не работаете на всех ядрах, вы можете использовать joblib для многопроцессорной обработки разделов мини-пакета вашего задания:
partitions = minibatch(texts, size=batch_size)
executor = Parallel(n_jobs=n_jobs, backend="multiprocessing", prefer="processes")
do = delayed(partial(transform_texts, nlp))
tasks = (do(i, batch, output_dir) for i, batch in enumerate(partitions))
executor(tasks)
Для получения дополнительной информации вот пример обучения NER многопроцессорной обработки joblib из документации: https://spacy.io/usage/examples