基本情報
概要
DSSTNE(デスティニー)とは、ディープラーニングライブラリです。Amazonがオープンソース公開したもので、スパース(疎)データに強いという特徴があります。
基本説明
DSSTNEは、「Deep Scalable Sparse Tensor Network Engine」の頭文字を並べたもので、発音は「Destiny」と同じです。
Amazonは、DSSTNEについて、「多数の顧客のショッピングを支援するもの」「顧客が膨大な製品カタログの中から、ふさわしい製品を見つけ出すのを手助けするもの」と説明しています。
DSSTNEは、1つのツールの中でデータ分析/学習/モデル評価を行えます。CPU上とGPU上のどちらでもタスクを実行できます。Apache Sparkとの連携で動作します。
特に、大規模スパース(疎)データ/グラフデータ/行列データを効率よく処理できます。
経緯
2016年5月、Amazonがオープンソース公開しました。
主な特徴
スパースデータに強い
スパースデータとは、値がまばらにしか存在しない(成分のほとんどがゼロ)であるデータを意味します。
Amazonのように、大量の商品データ/ユーザデータがあり、その2つのオブジェクトが購買/評価などの行動データを持つような環境の場合、データ間の関係が変化していくため、多くのスパースデータが生成されます。
DSSTNEは、このようなスパースデータ処理において、高速/効率的に高いパフォーマンスを出せるように開発/最適化されています。カスタムGPUカーネルが、GPUでの計算をゼロ値で埋め尽くすことなく処理します。
スパースデータ処理に対する需要は、今後も拡大していくことが予想されています。
高速
EC2「g2.8xlargeインスタンス」において、Google「TensorFlow」に比べて約2.1倍高速としています。
マルチGPUスケール
スピード/正確性の両立を実現しています。
学習/予測のどちらにおいても、複数GPUにスケールアウトし、レイヤ単位のモデル並列化方法(model-paralles fashion)で、コンピューテーション/ストレージを展開します。
モデルはN個のGPUに分散されますが、データセット(RDD)は全てのGPUノードに複製されます。各GPUがデータの部分集合だけで学習するデータ並列学習とは異なり、パラメータサーバといった同期手法を使って、各ノードが重みを共有しています。
DSSTINEにおけるデータ形式
DSSTNEは、指定フォーマット「NetCDF」に従ったデータのみを入力として受け付けます。
そのため、元データフォーマットからNetCDFへと変換する必要があります。NetCDF変換ツールが提供されています。
Neural Network(NN)モデル定義
NNモデル定義(パラメータ/誤差関数/角層ノード数/活性化関数設定など)は、JSON形式で記述します。
Docker対応
Dockerコンテナでのデプロイが可能です。
同様製品
同様な機能を提供する製品として、次のようなものがあります。
オープンソース製品:「TensorFlow」「CNTK」「Chainer」「Caffe」など。
ライセンス情報
DSSTNEのライセンスは「Apache License version 2.0」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。
ダウンロード
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。