如何提升M1 Mac上spaCy的性能?其当前比Intel机型慢很多
M1 Pro MacBook上
nlp.pipe性能异常慢于旧款Intel Mac的问题 我发现全新的M1 Pro MacBook上的nlp.pipe比2017款旧MacBook Pro慢30-40%,但M1上的其他多数功能反而快出相近幅度,这不符合预期性能。
基准测试代码
import os from pathlib import Path import re import spacy import time with open(Path(os.path.expanduser('~')) / 'Downloads' / 'icd10cm-table and index-April 1 2023' / 'icd10cm-tabular-April 1 2023.xml') as f: content = f.read() matches = re.findall(r'<desc>([^<]*)</desc>', content) nlp = spacy.load('en_core_sci_lg') start_time = time.time() for x in nlp.pipe(matches): pass print('%s seconds elapsed' % (time.time() - start_time))
测试结果
我的M1 Mac完成该任务耗时超75秒,而2017款Intel Mac仅需46秒。
已尝试的优化
我不确定spaCy是否依赖numpy,但已安装了优化版本的numpy,虽提升了numpy本身的性能,但对spaCy的nlp.pipe速度毫无帮助。我猜测问题出在某处使用了未针对ARM架构优化的二进制文件,但不知道该如何排查。
基准测试复现步骤
- 获取测试文件:使用CDC发布的2023年4月1日更新的ICD10CM表格及索引压缩包,解压后提取其中的
icd10cm-tabular-April 1 2023.xml文件 - 安装依赖:创建新环境后运行以下命令
pip install scispacy pip install https://s3-us-west-2.amazonaws.com/ai2-s2-scispacy/releases/v0.5.1/en_core_sci_lg-0.5.1.tar.gz
内容的提问来源于stack exchange,提问作者Zorgoth
相关产品推荐
相关产品推荐

