Apache Mahout


Apache_Mahout

Apache Mahoutは、主に線形代数に焦点を当てた分散型またはその他のスケーラブルな機械学習アルゴリズムの無料実装を作成するためのApache SoftwareFoundationのプロジェクトです。過去には、実装の多くは、使用のApacheのHadoopプラットフォーム、それは主に焦点を当てているが、今日のApacheスパークを。 Mahoutは、一般的な数学演算(線形代数と統計に焦点を当てた)およびプリミティブJavaコレクション用のJava / Scalaライブラリーも提供します。Mahoutは進行中の作業です。多くのアルゴリズムが実装されています。 Apache Mahout 開発者
Apache Software Foundation
初回リリース
2009年4月7日; 12年前 (2009-04-07)
安定リリース
14.1 / 2020年10月7日 ; 11か月前  (2020-10-07)
リポジトリ
Mahoutリポジトリ
で書かれている Java、Scala オペレーティング・システム
クロスプラットフォーム タイプ 機械学習
ライセンス
Apacheライセンス2.0
Webサイト
mahout .apache .org

コンテンツ
1 特徴
1.1 サムサラ 1.2 バックエンドにとらわれない 1.3 GPU / CPUアクセラレータ 1.4 レコメンダー
2 歴史
2.1 MapReduceからApacheSparkへの移行 2.2 リリース履歴 2.3 開発者
3 参考文献
4 外部リンク

特徴

サムサラ
Apache Mahout-Samsaraは、ユーザーが従来のScalaのような構文ではなく、Rのような構文を使用できるようにするScalaドメイン固有言語(DSL)を指します。これにより、ユーザーはアルゴリズムを簡潔かつ明確に表現できます。
val G = B %*% B 。t – C – C 。t + (ksi dot ksi ) * (s_q cross s_q )

バックエンドにとらわれない
Apache Mahoutのコードは、コードが実行されるエンジンからドメイン固有言語を抽象化します。アクティブな開発はApacheSparkエンジンで行われますが、ユーザーは選択した任意のエンジンを自由に実装できます。H2OとApache Flinkは過去に実装されており、コードベースに例が

GPU / CPUアクセラレータ
JVMの計算が遅いことで有名です。速度を向上させるために、コア内に移動する「ネイティブソルバー」が追加され、ひいては、BLAS操作をJVMから分散し、オフヒープまたはGPUメモリにオフロードして、複数のCPUやCPUコア、またはGPUを介して処理します。 ViennaCLライブラリに対して構築されました。 「MahoutSamsaraをGPUクラスターに拡張する」。。ViennaCLは、OpenMPおよびOpenCLで実装されたBLAS操作を備えた高度に最適化されたC ++ライブラリです。リリース14.1の時点で、OpenMPビルドは安定していると見なされており、OpenCLビルドはまだ実験的なPOCフェーズに

レコメンダー
Apache Mahoutは、Alternating Least Squares、Co-Occurrence、およびCorrelated Co-Occurrenceの実装を特徴としています。これは、データの複数の次元で使用されるように共起を拡張する、Mahout独自の推奨アルゴリズムです。

歴史

MapReduceからApacheSparkへの移行
クラスタリング、分類、バッチベースの協調フィルタリングのためのMahoutのコアアルゴリズムは、map / reduceパラダイムを使用してApacheHadoopの上に実装されましたが、Hadoopベースの実装への貢献を制限しませんでした。単一ノードまたは非Hadoopクラスターで実行される貢献も歓迎されました。たとえば、Mahoutの「Taste」協調フィルタリングレコメンダーコンポーネントは元々別のプロジェクトであり、Hadoopなしでスタンドアロンで実行できます。
リリース0.10.0以降、プロジェクトは、バックエンドに依存しないプログラミング環境、コード「Samsara」の構築に焦点を移しました。 環境は、代数バックエンドに依存しないオプティマイザーと、メモリ内および分散代数演算子を統合する代数ScalaDSLで構成されます。サポートされている代数プラットフォームは、Apache Spark、H2O、およびApacheFlinkです。 MapReduceアルゴリズムのサポートは2014年に段階的に廃止され始めました。

リリース履歴
リリース履歴
バージョン
発売日
ノート 0.1 2009-04-07 0.2 2009-11-18 0.3 2010-03-17 0.4 2010-10-31 0.5 2011-05-27
0.6 0.6
2012-02-06 0.7 2012-05-16 0.8 2013-07-25 0.9 2014-02-01
0.10.0
2015-04-11
サムサラDSL
0.10.1
2015-05-31
0.10.2
2015-08-06
0.11.0
2015-08-07
0.11.1
2015-11-06
0.11.2
2016-03-11
0.12.0
2016-04-11
ApacheFlinkエンジンを追加しました
0.12.1
2016-05-19
0.12.2
2016-06-13
0.13.0
2017-04-17
0.14.0
2019-03-07
ソースのみ(バイナリなし) 14.1 2020-10-07

開発者
Apache Mahoutは、コミュニティによって開発されています。プロジェクトは「プロジェクト管理委員会」(PMC)と呼ばれるグループによって管理されています。現在のPMCは、Andrew Musselman、Andrew Palumbo、Drew Farris、Isabel Drost-Fromm、Jake Mannix、Pat Ferrel、Paritosh Ranjan、Trevor Grant、Robin Anil、Sebastian Schelter、StevoSlavićです。

参考文献
^ 「ApacheMahout:最初のリリース0.1がリリースされました」。
^ 「ApacheMahout:スケーラブルな機械学習とデータマイニング」。
^ 「ApacheMahoutの紹介」。ibm.com。2011 。
^ 「InfoQ:Apache Mahout:高度にスケーラブルな機械学習アルゴリズム」。infoq.com。2011 。
^ 「アルゴリズム-ApacheMahout-Apache SoftwareFoundation」。cwiki.apache.org。2011 。
^ 「ViennaCL」。
^ 「Mahout-Samsaraのコア内線形代数DSLリファレンス」。
^ 「Mahout-Samsaraの分散線形代数DSLリファレンス」。
^ 「Mahout0.10.x:プログラミング環境としての最初のMahoutリリース」。www.weatheringthroughtechdays.com。
^ “MAHOUT-1510(”さようならMapReduce “)”。
^ https://projects.apache.org/committee.html?mahout

外部リンク
公式サイト
image"