はじめに
大学の研究で、機械学習を用いた文書分類を行なっています。今回課題となったのは、GPUの違いによる精度の差です。
Google Colaboratoryを用いて実験を回していたのですが、GPUを変えたことで明らかに精度に差が出ていました。
具体的には、2値分類のタスクで、それぞれGPUをTesla-T4 / NVIDIA-A100 を利用して行ったところ、評価指標Accuracyにおいて、以下のような結果になりました。
T4 | A100 | |
---|---|---|
Accuracy | 0.8236 | 0.8469 |
実験設定はGPU以外全て同じで、訓練・テストデータセット共に全て同じですが、約2%も差が生じてしまいました。私が行なっている文書分類のタスクにおいては、2%の差はかなり大きいもので、原因を探ることが必要となります。
こちらの対応について、昨日の研究室ゼミで議論したので、共有させていただきたいと思います。意見等ございましたら、コメント頂けますと幸いです。
精度差が生じてしまう原因を調べるには
精度差が生じてしまう原因として考えられるのは、「初期値が変わることによる、モデルの精度のばらつき」が挙げられました。
機械学習をする際には、シード値の設定をすると思いますが、たとえそのシード値が同じであったとしても、GPUの種類・アーキテクチャが違えば、異なる乱数値で実験されているとのことでした。そのため、精度としてばらつきが生じてしまうということです。
上の仮説が正しければ、モデルがシード値を変えて実験した際にかなり精度に差が生じる、つまり「モデルの揺れ」が大きいということで、良くない状況といえます。
シード値を変えて「モデルの揺れ」の大きさを確かめてみた
実験が終わり次第、追記したいと思います。
最後に
今回は、GPUの違いによるモデルの精度差についてお話ししました。非常に有益な内容だったと思います。
まだまだ初心者(とはいえ4年生の冬)で、勉強も正直あまりできていません。卒論の締め切りが近づいてきていますので、頑張っていきたいと思います。
間違いや意見等ありましたら、コメントをしていただけますと幸いです。
ありがとうございました。