[論文レビュー] Implementation of a Practical Distributed Calculation System with Browsers and JavaScript, and Application to Distributed Deep Learning
本稿では、クライアントソフトウェアのインストールを必要とせず、任意のウェブブラウザを計算ノードとして機能させるブラウザベースの分散コンピューティングフレームワーク「Sashimi」と、JavaScriptベースのディープラーニングライブラリ「Sukiyaki」を提案する。Sukiyakiは、従来のJavaScriptライブラリと比較して、ディープ畳み込みニューラルネットワーク(CNN)の学習を30倍高速化する。両者を組み合わせることで、一般用途のGPUを活用した実用的なブラウザ内埋め込み分散ディープラーニングが可能となり、4台のクライアントを用いた場合、畳み込み層の学習が2倍速くなり、全結合層の学習が1.5倍速くなる。
Deep learning can achieve outstanding results in various fields. However, it requires so significant computational power that graphics processing units (GPUs) and/or numerous computers are often required for the practical application. We have developed a new distributed calculation framework called "Sashimi" that allows any computer to be used as a distribution node only by accessing a website. We have also developed a new JavaScript neural network framework called "Sukiyaki" that uses general purpose GPUs with web browsers. Sukiyaki performs 30 times faster than a conventional JavaScript library for deep convolutional neural networks (deep CNNs) learning. The combination of Sashimi and Sukiyaki, as well as new distribution algorithms, demonstrates the distributed deep learning of deep CNNs only with web browsers on various devices. The libraries that comprise the proposed methods are available under MIT license at http://mil-tokyo.github.io/.
研究の動機と目的
- 専用ソフトウェアのインストールやクラスタの設定が困難な環境において、分散ディープラーニングを導入する課題に対処すること。
- クライアントソフトウェアのインストールを必要とせず、任意のウェブブラウザを分散計算ノードとして機能させること。
- 一般用途のGPUを活用して、ディープ畳み込みニューラルネットワークの効率的学習を実現する高パフォーマンスなJavaScriptベースのディープラーニングフレームワークの開発。
- 畳み込み層と全結合層を同時に学習する分散トレーニングパイプラインの設計により、アイドル時間と通信コストを最小限に抑えること。
- ウェブ技術のみを用いたオープンソースでアクセス可能かつスケーラブルな分散ディープラーニングフレームワークの構築。
提案手法
- Sashimiは二重サーバアーキテクチャを採用しており、サーバーサイドのNode.jsによる CalculationFramework と、WebSocketおよびMySQLを介したタスク配布・結果収集を管理する Distributor(HTTPServerおよびTicketDistributor)から構成される。
- クライアントは、基本的なHTML/JavaScriptプログラムをロードすることで計算に参加し、WebSocket経由でTicketDistributorに接続してタスクを受信・実行する。データとコードをキャッシュすることでパフォーマンスを向上させる。
- Sukiyakiは、WebGLおよび一般用途GPUコンピューティングを活用したGPUアクセceleratedなJavaScript DNNフレームワークであり、ディープCNNの高速な行列演算と逆誤差伝搬を実現する。
- 畳み込み層にはデータ並列性を採用し、複数のブラウザに学習を分散させる。一方、全結合層はサーバーで学習することでアイドル時間を回避し、通信コストを低減する。
- タスクは引数、外部ライブラリ、データセットを含むチケットに分割され、MySQL経由で送信され、ブラウザで実行され、結果はCalculationFrameworkによって収集・集約される。
- 長時間実行されるプロセスが過剰にリソースを消費するのを防ぐために、最近使用されていない順(LRU)のガーベジコレクション機構を採用する。
実験結果
リサーチクエスチョン
- RQ1クライアントソフトウェアのインストールを必要とせず、ウェブブラウザとJavaScriptのみで分散ディープラーニングシステムを構築できるか?
- RQ2JavaScriptベースのディープラーニングフレームワークが、ネイティブGPUアクセceleratedライブラリと同等のパフォーマンスを達成できるか?
- RQ3クライアントとサーバーで畳み込み層と全結合層を同時に学習することで、逐次的またはモデル並列的手法と比較して、効率がどのように向上するか?
- RQ4スタンドアロン実行と比較して、ブラウザベースの計算を用いた分散ディープラーニングのパフォーマンス向上はどの程度か?
- RQ5知的なタスクスケジューリングとサーバー側処理により、ブラウザベース分散システムにおける通信コストとアイドル時間を最小限に抑えることができるか?
主な発見
- Sukiyakiは、従来のJavaScriptベースのDNNライブラリと比較して、ディープ畳み込みニューラルネットワークの学習を30倍高速化した。
- 4台のクライアントを用いた場合、有効なデータ並列性のおかげで、畳み込み層の学習がスタンドアロン実行の2倍の速度で行われた。
- 全結合層の学習は、クライアントが畳み込み層を学習している間、サーバーがそのタスクに専念できるため、スタンドアロン実行と比較して1.5倍速くなった。
- クライアントで畳み込み層を学習しながらサーバーで全結合層を同時に学習することで、アイドル時間を削減し、リソースの未利用を最小限に抑えた。
- 本フレームワークは、クライアントソフトウェアのインストールを一切必要とせず、ウェブブラウザと一般用途GPUのみを用いて分散ディープラーニングを実現した。
- SashimiとSukiyakiのライブラリはMITライセンスでオープンソース化され、コミュニティによる拡張と統合が可能となった。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。