使用小型Spacy模型创建测试环境

问题描述:

这更像是一个最佳/常见实践问题。使用小型Spacy模型创建测试环境

我们在我们的生产系统中使用Spacy。在进行测试时,我们不得不下载完整的模型(解析器+单词向量),这些模型可能非常缓慢(约30分钟),令人沮丧。也许更好的策略可能是创建一个自定义的轻量级空间模型进行测试,例如,只有1000个单词vocab和一个较小的解析模型。

当使用可应用于此场景的大型数据模型进行测试时,是否提出了策略/最佳实践?

这基本上取决于你需要测试什么和如何。 你可能并不真的需要或想测试spacy本身,你想测试你的功能依赖于从空间的结果,在这方面的一个良好的做法是模拟来自spacy的响应和测试你的代码信任spacy正常工作(它确实有测试;))。在我们的环境中,我们在导入spacy时加载了模型,所以我们必须模拟导入的模块以便不加载这些数据。

当然有创建模型的轻量级版本的选项,但这不是一个简单的情况,它可能需要在每个Spacy版本更改上工作,并且必须牢记其他开发人员应该能够更新之后测试/需求发生变化的模型。

如果您实际上需要模型,并且最大的问题是等待它们下载,请考虑使用数据缓存。许多CI环境都可以为你缓存模型,并且直到推出新版本的spacy才会有效。

+0

我更喜欢不嘲笑像spacy这样的关键部分,这样我们的测试就可以尽可能的逼真和'整合'。然而,正如你所说的,我们现在使用的CI(Circle CI)允许缓存模型。所以下载时间现在好多了。谢谢! – Rajhans