以下に速度比較を行っています。前回のブログと同じように事前学習済みモデルとして cl-tohoku/bert-large-japanese を利用し、livedoorニュースコーパスの記事を学習データ:評価データを4:1に分割し、カテゴリ推定でファインチューニングを行いました。Hugging Face Transformersのモデル、ONNXのCPU実行、ONNXのOpenVINO実行における推論時間を測定しています。評価データ全件に対して推論を行いその1件当たりの平均時間で比較しています。なおOpenVINOでの推論において、8秒近く時間のかかっている推論が4件あり、それらは異常値として平均からは取り除いています。
Hugging Face Transformersでの実行よりもOpenVINOによる実行の方が高速ですが、ONNXのCPU実行よりも速度が低下しています。8秒以上かかる例も含めてOpenVINOをうまく扱えてないような感じがします。
以下に速度比較を行っています。こちらも同じように事前学習済みモデルとして cl-tohoku/bert-large-japanese を利用し、livedoorニュースコーパスの記事を学習データ:評価データを4:1に分割し、カテゴリ推定でファインチューニングを行いました。Hugging Face Transformersのモデル、ONNXのCUDA実行、ONNXのTensorRT実行における推論時間を測定しています。評価データ全件に対して推論を行いその1件当たりの平均時間で比較しています。なおTensorRTでの推論において、1秒以上時間のかかっている推論は推論だけでなくモデルのビルドが行われていると思われるので平均からは取り除いています。
Hugging Face TransformersのモデルとONNX CUDAでの実行を比較すると、前回のブログでもふれたとおり約2.4倍の高速化となっています。TensorRTを用いるとCUDAでの実行から更に1.35倍の高速化となっています。Neural Networkの最適化が行われるタイミングを管理しないといけない課題はありますが、効果は出ているようです。