spacy v3 en_core_web_trf管道和en_core_web_lg管道之间的差异

2024-05-12 16:13:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用spacy版本3进行一些性能测试,以便在生产中正确调整实例的大小。我注意到以下几点

观察:

^{tb1}$

在变压器模型的情况下,有NER没有NER的场景之间为什么没有显著差异?对于en_core_web_trf,NER仅仅是词性标记后的一项增量任务吗

测试环境:GPU实例

测试代码:

import spacy

assert(spacy.__version__ == '3.0.3')
spacy.require_gpu()
texts = load_sample_texts()  # loads 10,000 texts from a file
assert(len(texts) == 10000)

def get_execution_time(nlp, texts, N):
    return timeit.timeit(stmt="[nlp(text) for text in texts]", 
                           globals={'nlp': nlp, 'texts': texts}, number=N) / N


#  load models
nlp_lg_pos = spacy.load('en_core_web_lg', disable=['ner', 'parser'])
nlp_lg_all = spacy.load('en_core_web_lg')
nlp_trf_pos = spacy.load('en_core_web_trf', disable=['ner', 'parser'])
nlp_trf_all = spacy.load('en_core_web_trf')

#  get execution time
print(f'nlp_lg_pos = {get_execution_time(nlp_lg_pos, texts, N=1)}')
print(f'nlp_lg_all = {get_execution_time(nlp_lg_all, texts, N=1)}')
print(f'nlp_trf_pos = {get_execution_time(nlp_trf_pos, texts, N=1)}')
print(f'nlp_trf_all = {get_execution_time(nlp_trf_all, texts, N=1)}')

Tags: poscorewebgetnlptimespacyload