CTranslate2 与TensorFlow和PyTorch的实现相比,与ONNX Runtime的实现进行比较更有意义,

9gm1akwq  于 3个月前  发布在  其他
关注(0)|答案(4)|浏览(37)

在我的经验中(尽管对于其他模型,如CNN和视觉Transformer模型),onnxruntime在CPU上的推理性能优于PyTorch、Tensor和(令人惊讶的)Apache TVM(CPU和Vulkan GPU后端,模型已“优化”)。因此,将CTranslate2(针对快速推理)与旨在方便模型设计和训练的框架进行比较可能没有太大意义。

j5fpnvbx

j5fpnvbx1#

是的,与onnxruntime进行比较会很好,但我目前还没有探索它。我们应该找到一个可以在CTranslate2和onnxruntime上运行的预训练模型,以便在固定质量下比较性能。
请注意,基准测试不仅包括TensorFlow和PyTorch。还有来自FasterTransformerMarian的数字,它们也关注性能。

dtcbnfnu

dtcbnfnu2#

TensorFlow(TF)和PyTorch模型都可以转换为ONNX格式。因此,我猜想可以将PyTorch模型导出为ONNX格式。我使用Apple MobileViT模型进行了尝试,并发现通过PyTorch和onnxruntime进行推理时,得到的向量是相同的。

8zzbczxx

8zzbczxx3#

所以欢迎在OpenNMT-py上进行PR :)

a8jjtwal

a8jjtwal4#

我知道ONNX在视觉模型方面表现得很好,但翻译模型往往是另一回事。据我所知,将使用束搜索的编码器-解码器模型进行转换和执行仍然相当棘手。
onnxruntime最令人期待的端到端集成可能是https://github.com/huggingface/optimum,但我刚刚尝试了一个使用Helsinki-NLP/opus-mt-en-de模型的翻译,它比PyTorch默认设置的速度还要慢。我会在有时间的时候进行调查。

相关问题