如何使用GPU训练spaCy实体链接模型?

时间:2020-04-15 08:32:32

标签: gpu entity spacy ner entity-linking

当我训练 spaCy 实体链接模型时,遵循文档wiki_entity_linking,发现该模型是使用cpu训练的。训练时代需要很长的时间。 (环境中2个周期大约需要3天:16x cpu,64GB mem)

命令是: python wikidata_train_entity_linker.py -t 50000 -d 10000 -o xxx。所以我的问题是,在训练阶段如何使用GPU。

1 个答案:

答案 0 :(得分:1)

在初始化NLP模型之前,您需要重构代码以使用spacy.require_gpu()-有关更多信息,请参阅文档:https://spacy.io/api/top-level#spacy.require_gpu

在执行此操作之前,我将确保您的任务正在所有内核上运行。如果您不是在所有内核上都运行,则可以将joblib用于作业的多处理minibatch分区:

    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)

有关更多信息,请参见文档中的一个Joblib多处理NER培训示例:https://spacy.io/usage/examples#multi-processing