Как я могу обучить модель связи объекта spaCy с помощью графического процессора?

Когда я обучаю модель связывания объектов spaCy, следуйте документу wiki_entity_linking, и я обнаружил, что эта модель обучалась с использованием процессора. Обучение эпохи стоит очень долго. (Около 3 дней для 2 эпох в среде: 16-кратный процессор, 64 ГБ памяти)

Команда: python wikidata_train_entity_linker.py -t 50000 -d 10000 -o xxx. Итак, мой вопрос в том, как я могу использовать GPU для фазы обучения.


person wanncy    schedule 15.04.2020    source источник


Ответы (1)


Вам нужно будет реорганизовать код для использования spacy.require_gpu() перед инициализацией ваших моделей NLP — для получения дополнительной информации обратитесь к документации: https://spacy.io/api/top-level#spacy.require_gpu

Прежде чем сделать это, я бы убедился, что ваша задача работает на всех ядрах. Если вы не работаете на всех ядрах, вы можете использовать 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#multi-processing

person swartchris8    schedule 15.04.2020