2024-06-06 17:51:20 发布
网友
我正在考虑将ml NLP模型潜在地转换为ONNX格式,以便利用其速度提升(ONNX运行时)。然而,与旧车型相比,我并不真正理解新车型的根本变化。此外,我不知道是否有任何缺点。如果您对此有任何想法,我们将不胜感激
模型的精度性能将是相同的(仅考虑编码器和解码器的输出)。推理性能可能因用于推理的方法而异(例如:贪婪搜索、波束搜索、top-k和top-p)。有关this的详细信息
对于onnx-seq2seq模型,您需要通过hand实现model.generate()方法。但是onnxt5{a3}在实现greedy search(对于onnx模型)方面做得很好。然而,大多数NLP生成模型通过beam search方法产生了良好的结果(您可以参考链接的源代码了解huggingface如何为其模型实现梁搜索)。不幸的是,对于onnx模型,您必须自己实现它
model.generate()
onnxt5
推理速度肯定会增加,如onnx运行时的this notebook所示(示例在bert上)。 您必须在onnx运行时上分别运行编码器和解码器&;可以利用onnx运行时。如果您想了解更多关于onnx及其运行时的信息,请参考this link
更新:您可以参考^{}库,它为t5实现了greedy和beam search。对于bart,请看一下这个issue
greedy
beam search
bart
模型的精度性能将是相同的(仅考虑编码器和解码器的输出)。推理性能可能因用于推理的方法而异(例如:贪婪搜索、波束搜索、top-k和top-p)。有关this的详细信息
对于onnx-seq2seq模型,您需要通过hand实现
model.generate()
方法。但是onnxt5
{a3}在实现greedy search(对于onnx模型)方面做得很好。然而,大多数NLP生成模型通过beam search方法产生了良好的结果(您可以参考链接的源代码了解huggingface如何为其模型实现梁搜索)。不幸的是,对于onnx模型,您必须自己实现它推理速度肯定会增加,如onnx运行时的this notebook所示(示例在bert上)。 您必须在onnx运行时上分别运行编码器和解码器&;可以利用onnx运行时。如果您想了解更多关于onnx及其运行时的信息,请参考this link
更新:您可以参考^{} 库,它为t5实现了
greedy
和beam search
。对于bart
,请看一下这个issue相关问题 更多 >
编程相关推荐