
拓海先生、最近部下が『FPGAで学習を速くできます』と言ってきまして、何がそんなに変わるのか見当がつきません。要するにうちの設備投資に値する技術なのでしょうか。

素晴らしい着眼点ですね!FPGAというのは汎用GPUとは違う、回路をその場で最適化できるハードですから、条件次第では電力効率と処理効率が大きく改善できるんですよ。

なるほど。ただ、部下が言うには『バッチサイズを大きくしないと分散が効かない』とも。現場では小さいデータのまとまりで動かしたいのですが、その点はどうでしょうか。

いい質問です。FPDeepという研究はまさにその点を狙っていて、バッチサイズを無理に大きくしなくても並列に学習できる仕組みを提案しています。要点を三つに整理しますね。

お願いします。三つに分けると理解しやすいですから。

一つ目は並列の仕方です。従来はデータ並列でミニバッチを増やすことが多いのですが、FPDeepはレイヤ並列とモデル並列のハイブリッドを使い、各デバイスに小さな仕事を割り振ってパイプライン処理します。二つ目はメモリと通信の削減です。バックプロパゲーションのためにデータを長く保持しなくて済む工夫をしているんです。三つ目は実装の素朴さで、複雑なネットワークや全体を再構成せずに各FPGAが割り当てられた層だけを計算するため導入負担が抑えられます。

これって要するにバッチを無理に増やさずに規模を横に広げて学習を進められるということ?それなら現場の小ロットにも合いそうに思えます。

その理解で良いですよ。分かりやすく言えば、ライン生産で工程ごとに作業を分けるようにネットワーク層を分散してパイプライン化しているイメージです。しかも接続は一次元のシンプルな配線で済むため、通信がボトルネックになりにくいという利点があります。

投資対効果で気になるのは、FPGAは初期費用が高いと聞きます。実際の効果はどの程度期待できるのでしょうか。

良い点は二つありまして、まず電力効率です。FPGAは同じ計算量で消費電力を抑えられる場合が多く、ランニングコストを低減できます。次にスケーラビリティで、研究ではトランシーバ帯域が十分なら線形にスピードアップすることが示されています。最後に運用面ですが、FPDeepのような枠組みは既存のFPGAクラスタに組み込みやすく、段階的に導入できますよ。

分かりました。では最後に私の言葉で整理してもよろしいですか。FPDeepは層ごとに作業を分けて小さなバッチでも効率よく学習でき、通信とメモリの無駄を減らして電力と時間を節約する技術、ということですね。

まさにその通りです!大丈夫、一緒に評価すれば導入可否の判断が必ず明確になりますよ。


