FPGA実装で機械学習モデルの高効率学習を実現:リコーの高速/低消費電力なGBDTモデル学習回路

課題

近年深、層学習を始めとする機械学習手法の発展により、様々な分野で機械学習アルゴリズムが利用されるようになりました。特に畳み込みニューラルネットワーク(CNN)に代表される深層学習モデルは、グラフィックスプロセッシングユニット(GPU)を利用した並列計算によりモデルの学習時間が短縮されることで、利用可能な範囲が広がっています。ランダムフォレストに代表される決定木モデルも、例えば製品の異常検知などの正常と異常の判定を要する場面で利用されています。しかしこれらのモデルは、学習アルゴリズムの特徴からGPUでの高速化には限界があり、時々刻々とデータが蓄積され、判断基準が変化するような環境でモデル学習を高速に行うことは困難でした。
このような問題に対して、株式会社リコー(以下リコー)は、Field Programmable Gate Array(FPGA)上に決定木モデルで教師あり学習手法の一種であるGradient Boosting Decision Tree(GBDT)モデルを実装し、その学習の高速化・低消費電力化を実現しました。

解決方法

CNNに代表される深層学習モデルは、様々なデータに対する並列計算が容易であるため、GPUにより学習の高速化が可能です。ランダムフォレストに代表される機械学習手法である決定木モデルもGPUを用いた高速化が試みられていますが、このようなモデルでは、学習時に学習データに対してランダムアクセスを行うために、GPUで利用されるDynamic Random Access Memory(DRAM)ではアクセス時のレイテンシが大きく、GPUを利用した学習時間の短縮が困難でした。
リコーではGBDTモデルをFPGA上に実装し、さらにDRAMよりもアクセスレイテンシの少ないStatic Random Access Memory(SRAM)上に学習データを配置することによって、GBDTの学習高速化を実現しました。またGBDTの学習モジュール(資料中ではTraining engine)を複数用意し、すべてのモジュールに共有の勾配保存・書き出し用モジュールをFPGA上に構築することで学習の並列化を実現しました。

どうなったか

実際にFPGA上に構築したGBDTモデルの学習速度と、一般的に利用されるGBDTのライブラリにおけるモデルの学習速度を比較しました。FPGAはXilinx社のXCVU9P-L2FLGA2104を利用しました。またGBDTライブラリは、XGBoostLightGBMCatBoostを利用し、CPUでの実行環境がIntel社のCore i7-8700K、GPUでの実行環境はNvidia社のGTX 1080Tiとなります。
それぞれのモデルを学習し、GBDTの分類性能を比較したところ、FPGAモデルとライブラリ群の間に大きな差はみられませんでした。しかし実行速度に関しては少なくとも26倍から、最大で259倍の高速化が実現しました。またFPGAを利用したことで低消費電力化が可能となり、CPUやGPUを利用したライブラリ群と比較して最大で約1100倍の効率化を実現しています。より詳細なデータに関してはこちらこちらをご覧ください。

まとめ

FPGA上のSRAMを利用することで、決定木モデルで教師あり学習手法の一種であるGBDTを高速で学習するモデルとその手法について紹介しました。このモデルはCPUやGPUを利用する一般的なGBDTライブラリ群よりも学習の高速化と低消費電力化を実現しています。
GBDTはデータベースなどで構造化された大量のデータを学習する際に高い性能を発揮します。2値分類(例えば正常と異常の判定)を行うモデルで、具体的にはオンライン広告のリアルタイムビディングや株式の高頻度取引に利用されています。FPGAによる学習の高効率化によって、今後はロボティクスやIoTなどのよりエッジ環境での利用が期待されます。

参考資料

(堀井隆斗)