2

編集:自分自身を言い換える試み:

R、Wekaなどのツールは機能が豊富ですが、動作が遅く、使用できるデータのサイズが制限されています。Mahout、Vowpal Wabbit(VW)、およびその拡張機能AllReduceなどのツールは、1Kノードクラスターを対象としており、機能が制限されています。たとえば、VWは、損失関数を最小化することによってのみ「学習」できます。

私が人気のあるソフトウェアで見たことがないのは、高速化のための並列プログラミング(古き良きpthread、MPIなど)の使用です。クラスタがやり過ぎかもしれないような問題には役立つと思いますが、他のプロセッサコアがアイドル状態のときにプログラムが終了するのを待つのはあまりにも悪いことです。[例として、AWSで26コアのマシンと88コアのクラスターを取得できます。優れた並列アルゴリズムにより、システムのような重量のあるHadoopに頼ることなく、たとえば20倍と60倍の速度を上げることができます]

私がコミュニティから学ぶつもりだったのは、(主観的に)ビッグデータと呼ぶには大きすぎないが、それでも十分に大きいと感じる場所での実際の問題/アルゴリズムの方が良かったでしょう。(客観的に)「特性CおよびサイズDのデータのアルゴリズムXにはT時間がかかり、アルゴリズムXの並列バージョンが利用可能であれば、M個のプロセッサコアを投入できた」という経験があります。

そしてもちろん、私が尋ねる理由は、この分野での並列プログラミングの必要性を学び、おそらくそれに対処するためにコミュニティ主導の努力をすることです。いくつかの問題に関する私の経験を以下に詳述します。


機械学習、データマイニング、および関連する分野で、速度が遅すぎるか、過度に大きなメモリを必要とするために問題となる問題には、どのようなものがありますか?

趣味の研究プロジェクトとして、システムメモリよりも大きなデータを処理するためのアウトオブコアプログラミングモデルを構築し、並列/分散実行をネイティブにサポートします。いくつかの問題(以下を参照)で良好なパフォーマンスを示しました。実際の問題に対して、このテクノロジー(できればコミュニティ主導)を拡張したいと考えています。

いくつかのベンチマーク(Weka、Mahout、Rに対して):

a)頻繁なアイテムセットマイニングのためのAprioriアルゴリズム[CPUバウンドだが平均的なメモリ]

520万の一意のアイテム(1.4GB)を超える170万のトランザクションを含むWebdocsデータセット。アルゴリズムは、トランザクションで頻繁に表示されるアイテムのセットを検索します。10%のサポートの場合、Weka3は3日で完了できませんでした。私たちのバージョンは4時間24分で完了しました(公平を期すために、Wekaのようにハッシュテーブルの代わりにTriesを使用しました)。さらに重要なのは、1台の8コアマシンでは39分、8台のマシンでは-> 6分30(= 40x)でした。

b)SlopeOneレコメンデーションエンジン[高メモリ使用量]

10K映画の70Kから1,000万の評価を持つMovieLensデータセット。SlopeOneは、協調フィルタリングに基づく新しい映画を推奨しています。Apache Mahoutの「Taste」非分散レコメンダーは、 6GB未満のメモリでは失敗します。コア外のパフォーマンスをベンチマークするために、バージョンをこの制限の1/10(600MB)に制限し、実行時間で11%のオーバーヘッド(コア外による)で完了しました。

c)主成分分析(PCA)による次元削減[CPUとメモリの両方の限界]

それぞれ5400属性(1.1GB)の32Kサンプルの変異体「p53」タンパク質データセット。PCAは、分散が非常に小さい変数を削除することにより、データセットの次元を減らすために使用されます。私たちのバージョンはシステム仮想メモリよりも大きなデータを処理できましたが、Rソフトウェアが処理できるため、このデータセットのベンチマークを行いました。Rは86分で仕事を完了しました。コア外バージョンには追加のオーバーヘッドはありませんでした。実際、シングルコアでは67分、8コアマシンでは14分で完了しました。

今日の優れたソフトウェアは、メモリ(R、Weka、numpy)にデータをロードすることでメガバイト範囲のデータに対して機能するか、データセンター(Mahout、SPSS、SAS)に対してテラ/ペタバイト範囲のデータに対して機能します。ギガバイトの範囲にはギャップがあるようです。仮想メモリよりは大きいですが、「ビッグデータ」よりは小さいです。ただし、numpyのBlaze、R bigmemory、scalapackなどのプロジェクトがこのニーズに対応しています。

あなたの経験から、そのような高速でアウトオブコアのツールがデータマイニング/機械学習コミュニティに利益をもたらす可能性がある例を関連付けることができますか?

4

1 に答える 1

1

これは本当にオープンエンドの質問です。私が言えることから、あなたは次のことを求めています:

  1. 大規模なデータセットでの機械学習の使用。
  2. より高速なツールはコミュニティに利益をもたらしますか

最初の質問については、大規模なデータを扱う多くの実稼働環境で使用される最適なツールの 1 つが Vowpal Wabbit (VW) です。hunch.netにアクセスしてご覧ください。

2 番目の質問ですが、VW に勝つことができれば、それはコミュニティに絶対に利益をもたらすでしょう。しかし、VWはかなり良いです:)

于 2013-03-14T22:37:43.107 に答える