ライス大学研究チーム、GPUを使わずにディープラーニングを高速化するアルゴリズムを開発行列の乗算ではなく、ハッシュテーブルで解決可能な探索問題に

ライス大学のコンピュータサイエンス研究者チームが、GPUのようなアクセラレーションハードウェアを使用することなく、ディープラーニングを高速化できるという「Sub-Linear Deep Learning Engine」アルゴリズムを開発した。

» 2020年03月30日 08時47分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 ライス大学のコンピュータサイエンス研究者チームが、「Sub-Linear Deep Learning Engine」(SLIDE)というアルゴリズムを開発した。SLIDEは、GPUのようなアクセラレーションハードウェアを使用することなく、ディープラーニングを高速化できるという。ライス大学は、「GPUの代わりになり、コストを節約できる。人工知能(AI)業界の大きな課題を克服した」としている。

 研究チームはこの研究の過程でIntelの協力者から支援を得た。チームは2020年3月初めに、テキサス州オースティンで開催された機械学習システムカンファレンス「MLSys」で研究成果を発表した。

ライス大学ブラウン工学部のアンシュマリ・シュリバスタバ助教授(Photo by Jeff Fitlow/Rice University)

 多くの企業が現在、ディープラーニングの実装を目的に、特定用途に特化したGPUなどのハードウェアに積極的に投資している。ディープラーニングは、機械学習の強力な形態であり、「Alexa」や「Siri」のようなデジタルアシスタント、顔認識、商品レコメンデーションシステムなどの技術を支えている。

 「われわれのテストは、SLIDEが、大規模なフル接続アーキテクチャで業界規模の推奨データセットを使用し、GPUハードウェアアクセラレーションを上回るパフォーマンスを発揮する、CPUによるディープラーニングの初のスマートアルゴリズム実装であることを証明した」と、ライス大学ブラウン工学部の助教授アンシュマリ・シュリバスタバ氏は説明する。同氏は大学院生のベーディ・チェン氏、サルン・メディニ氏とともに、SLIDEを発明した。

行列の乗算ではなく、ハッシュテーブルで解決可能な探索問題に

 SLIDEがGPUを必要としないのは、ディープラーニングへのアプローチが従来とは根本的に異なるからだ。ディープニューラルネットワークの一般的なトレーニング手法であるバックプロパゲーション(誤差逆伝播法)では、行列の乗算が必要だが、これはGPUに最適なワークロードだ。これに対し、研究チームはニューラルネットワークのトレーニングを、ハッシュテーブルで解決可能な探索問題に変えた。

SLIDEのアーキテクチャ(研究チームの論文から引用)

 これにより、バックプロパゲーションによるトレーニングと比べて、SLIDEでは、計算のオーバーヘッドが著しく減少する。例えば、Amazon Web Services(AWS)やGoogleがクラウドベースのディープラーニングサービスで提供している最上位GPUプラットフォームは、NVIDIAの「Tesla V100」8個であり、その使用料金は10万ドル程度だと、シュリバスタバ氏は説明する。

 「われわれもラボで使っている。われわれはテストケースにおいて、V100に最適なワークロードを適用した。このワークロードは1億以上のパラメーターがあり、GPUのメモリに収まる大規模なフル接続ネットワークで実行された。トレーニングは、最良のソフトウェアパッケージであるGoogleの『TensorFlow』を使って行い、所要時間は3.5時間だった」と、シュリバスタ氏は語る。

 「さらにわれわれは、GPUではなく、Intel Xeonプロセッサクラスの44コアCPU上でトレーニングを行ったが、1時間しかかからなかった」(シュリバスタバ氏)

 ディープラーニングネットワークは生物学にヒントを得ており、その中心機能である人工ニューロンは、特定のタスクを実行することを学習できる小規模なコンピュータコードだ。1つのディープラーニングネットワークは数百万または数十億の人工ニューロンを含むことができ、これらは大量のデータを学習することで、人間の専門家が行うような判断を行えるようになる。例えば、ディープニューラルネットワークは、写真内のオブジェクトを特定するようにトレーニングされると、猫を認識する場合とスクールバスを認識する場合とでは、異なるニューロンを使用する。

 「あらゆるケースで全てのニューロンをトレーニングする必要はない。そこでわれわれは、『関連するニューロンだけを選びたいなら、それは探索問題になる』と考えた。アルゴリズムの観点から言えば、このアイデアは、局所性鋭敏型ハッシュを使って、行列乗算を不要にするということだった」と、メディニ氏は説明する。

 ハッシングは、1990年代にインターネット検索のために発明されたデータ索引付け方法だ。数学的方法を使って大量の情報(Webページ全体や本の章など)を、ハッシュと呼ばれる数字の列にコード化する。ハッシュテーブルは、非常に高速に検索できるハッシュのリストだ。

 「われわれのアルゴリズムをTensorFlowやPyTorchで実装しても、意味がなかっただろう。これらはまず、あらゆる処理を行列乗算問題に変換しようとする。それはまさに、われわれが不要にしようとしたことだ。そこでわれわれは、ゼロからC++でコードを作成した」と、チェン氏は語る。

コンピュータサイエンスを専攻するライス大学大学院生のベーディ・チェン氏、サルン・メディニ氏(Photo by Jeff Fitlow/Rice University)

最大のメリットはデータ並列、課題は大量のメモリ

 シュリバスタバ氏によると、バックプロパゲーションに対するSLIDEの最大のメリットは、データ並列であることだ。

 「データ並列とは、トレーニングしたい2つのデータインスタンスがある場合、例えば、一つが猫の画像で、もう一つがバスの画像である場合、それらがそれぞれ異なるニューロンをアクティベートすると予想されるということだ。SLIDEは、この2つの更新やトレーニングを独立して行える。これは、CPUの並列処理を活用する優れた方法だ」(シュリバスタバ氏)

 さらに同氏は、こう説明する。「その半面、SLIDEはGPUと比べて、大量のメモリを必要とする。メインメモリにはキャッシュ階層があり、それを注意深く扱わないと、『キャッシュスラッシング』という問題が発生し、キャッシュミスが多発する」

 SLIDEの当初の実験では、キャッシュスラッシングが大きな問題となった。Intelの協力者が、キャッシング問題の修正によるトレーニングの高速化に貢献した。

 シュリバスタバ氏は、SLIDEはまだ、その可能性のごく一部しか実現していないと考えている。

 「SLIDEは、最適化の余地がまだたくさんある。例えば、われわれはまだベクトル化も、CPUのビルトインアクセラレータ(Intel Deep Learning Boostのような)も利用していない。SLIDEによるトレーニングをさらに高速化する仕掛けが、まだ数多く利用できる」(シュリバスタバ氏)

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。