我必须生产一个PyTorch BERT问题答案模型。对于我而言,CPU推断非常缓慢,因为对于模型需要评估30个样本的每个查询,CPU推断都非常慢。从这30个样本的结果中,我选择得分最高的答案。 GPU对我来说太昂贵了,无法用于推理。
我可以为此使用多处理/并行CPU推理吗? 如果是,这样做的最佳实践是什么? 如果否,是否有一个云选项仅对我进行的GPU查询而不是对连续运行的GPU实例收费?
答案 0 :(得分:0)
您可以尝试以下方法:
充分利用Intel Pytorch以获得更好的性能。请参阅https://github.com/intel/pytorch以安装具有英特尔优化功能的pytorch。
您可以使用英特尔优化的Python库。也就是说,在创建环境时,请确保您通过了英特尔渠道。例如:conda create -n env_name python = 3.6 -c intel 。另外,您可以通过Intel渠道安装特定的库。
另一种选择是尝试使用通过Horovod for PyTorch进行的多节点分布式训练。有关更多详细信息,请参见链接https://github.com/horovod/horovod#pytorch。
答案 1 :(得分:0)
获得更好性能的另一种可能方法是尽可能减少模型。
最有前途的技术之一是量化和二值化神经网络。这里是一些参考: