资讯动态

spaCy 如何用 spacy benchmark speed 测量流水线吞吐量?

发布时间:2026/9/12 3:27:09 来源:尧图企业网站定制
spaCy 如何用 spacy benchmark speed 测量流水线吞吐量【免费下载链接】spaCy Industrial-strength Natural Language Processing (NLP) in Python项目地址: https://gitcode.com/GitHub_Trending/sp/spaCy如果你已经训练或下载好了一个 spaCy 流水线想在实际数据上量化它的推理吞吐——也就是每秒能处理多少词words/s——可以用 spaCy v3.5 引入的spacy benchmark speed命令。它会先用预热warmup跑过数据再以 95% 置信区间的方式输出吞吐量均值。前提条件有两个一个可加载的流水线pip 包名或模型目录路径以及一份 spaCy 二进制格式.spacy的基准数据。命令文档见 CLI 参考该命令自 v3.5 起提供发布说明见 Whats New in v3.5。准备基准数据benchmark speed的第二个位置参数必须是.spacy二进制文件即序列化的 DocBinDoc对象集合。如果你的语料还在 JSON 或纯文本阶段有两种转换方式用内置的spacy convert命令把 JSON 训练数据转成二进制格式$ python -m spacy convert ./data.json .或者在 Python 中直接用DocBin序列化你已有的Doc对象文档示例from spacy.tokens import DocBin from spacy.training import Corpus doc_bin DocBin(docsdocs) doc_bin.to_disk(./data.spacy) reader Corpus(./data.spacy)其中docs替换为你自己构造的Doc列表./data.spacy替换为你想保存的路径。注意这里的语料内容决定了测量对象用哪种语言、文档多长、多少条文档都会体现在吞吐量数字上所以选择能代表你实际负载的数据。运行 benchmark speed基本命令形式如下my_pipeline和data.spacy替换为你自己的流水线与数据文件$ spacy benchmark speed my_pipeline data.spacy或等价的模块调用方式$ python -m spacy benchmark speed [model] [data_path] [--code] [--batch_size] [--no-shuffle] [--gpu-id] [--batches] [--warmup]两个位置参数model要测量速度的流水线可以是已安装的包名如en_core_web_sm或模型目录路径data_path.spacy格式的基准数据位置。可选参数及其用途参数作用--code,-c导入额外 Python 文件用于为新架构注册自定义函数--batch-size,-b指定批大小不设置时使用流水线自身的批大小--no-shuffle默认会对数据中的文档随机洗牌加上此标志则不洗牌--gpu-id,-g指定使用的 GPU默认-1即 CPU--batches测量所用的批次数默认50--warmup,-w正式测量前对基准数据的预热轮数默认3例如在 GPU 0 上以批大小 64、测量 100 个批次运行$ spacy benchmark speed en_core_web_sm ./data.spacy --gpu-id 0 --batch-size 64 --batches 100解读输出命令的PRINTS结果是“以词/秒为单位、带 95% 置信区间的流水线速度”基于nlp.pipe的批处理测量并在预热之后才开始计时。v3.5 发布说明中给出的示例输出文档示例在 CPU 上 profileen_core_web_smOutliers: 2.0%, extreme outliers: 0.0% Mean: 18904.1 words/s (95% CI: -256.9 244.1)Mean一行是吞吐量均值与置信区间上下界Outliers一行报告被识别为异常值的批比例。这是文档中的示例数值你自己的机器和数据会得到不同结果不要把它当成固定预期重点看Mean的 words/s 以及置信区间的宽度——区间越窄测量越稳定。对比不同配置时保持变量单一由于默认行为包含文档洗牌、默认50个批次和3轮预热做 A/B 对比比如换--batch-size、换 CPU 与 GPU、换流水线版本时建议每次只改一个变量其余参数保持一致这样两次输出的Mean才可比较。若你的评估需要固定文档顺序例如希望文档始终按原始顺序进入批次加--no-shuffle并在每次对比中都带上。限制该命令需要 spaCy v3.5 或更高版本benchmark子命令在 v3.5 引入数据必须是.spacy二进制格式JSON 文件需先经spacy convert或DocBin.to_disk转换输出的是批处理nlp.pipe下的平均性能不是单次nlp(text)调用的延迟吞吐量取决于机器硬件、GPU/CPU 选择与数据分布跨环境比较前先确认--gpu-id等运行条件一致。【免费下载链接】spaCy Industrial-strength Natural Language Processing (NLP) in Python项目地址: https://gitcode.com/GitHub_Trending/sp/spaCy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价