| 開発者 | Apacheソフトウェア財団、IBM |
|---|---|
| 初回リリース | 2015年11月2日 |
| 安定版リリース | 3.0.0 / 2022年7月5日 |
| リポジトリ | SystemDS リポジトリ |
| 書かれた | Java、Python、DML、C |
| オペレーティング·システム | Linux、macOS、Windows |
| タイプ | 機械学習、ディープラーニング、データサイエンス |
| ライセンス | Apache ライセンス 2.0 |
| Webサイト | システムds.apache.org |
Apache SystemDS (旧称 Apache SystemML) は、エンドツーエンドのデータ サイエンス ライフサイクル向けのオープン ソース ML システムです。
SystemDS の特徴は次のとおりです。
- R のような言語や Python のような言語によるアルゴリズムのカスタマイズ可能性。
- スタンドアロン、Sparkバッチ、Spark MLContext、Hadoopバッチ、JMLC などの複数の実行モード。
- データとクラスターの特性に基づいて自動的に最適化し、効率性とスケーラビリティの両方を確保します。
歴史
SystemML は、IBM フェローの Shivakumar Vaithyanathan 氏が率いるIBM Almaden Research Centerの研究者によって 2010 年に作成されました。データ サイエンティストは、小規模データ用にRやPythonなどの言語で機械学習アルゴリズムを記述していることがわかりました。ビッグ データに拡張する段階になると、システム プログラマーがScalaなどの言語でアルゴリズムを拡張する必要があります。このプロセスには通常、反復ごとに数日または数週間かかり、アルゴリズムをビッグ データで動作するように変換する際にエラーが発生します。SystemML は、このプロセスを簡素化することを目指しています。SystemML の主な目的は、R のような言語または Python のような言語で記述されたアルゴリズムをビッグ データで動作するように自動的に拡張し、エラーが発生しやすい反復的な変換アプローチを使用せずに同じ答えを生成することです。
2015 年 6 月 15 日、サンフランシスコで開催された Spark Summit で、IBM Analytics のゼネラル マネージャーである Beth Smith 氏は、IBM がApache Sparkおよび Spark 関連プロジェクトへの主要な取り組みの一環として SystemML をオープンソース化すると発表しました。SystemML は 2015 年 8 月 27 日にGitHubで一般公開され、2015 年 11 月 2 日に Apache Incubator プロジェクトになりました。2017 年 5 月 17 日、Apache Software Foundation 理事会は Apache SystemML を Apache トップレベル プロジェクトとして卒業することを承認しました。
主要技術
以下は、SystemDS エンジンに組み込まれているテクノロジの一部です。
- 大規模機械学習のための圧縮線形代数
- 宣言型機械学習言語
例
主成分分析
次のコードスニペット[1]は、入力行列の主成分分析を行い、とを返します。
# PCA.dml
# 参照: https://github.com/apache/systemds/blob/master/scripts/algorithms/PCA.dml#L61
N = n行( A );
D = ncol ( A ) ;
# Zスコアリング(センタリングとスケーリング)を実行する
A =スケール( A 、中心== 1 、スケール== 1 );
# 共分散行列
mu = colSums ( A ) / N ;
C = ( t ( A ) %*% A ) / ( N -1 ) - ( N / ( N -1 )) * t ( mu ) %*% mu ;
# 固有ベクトルと値を計算する
[ evalues , evectors ] = eigen ( C );
呼び出しスクリプト
spark-submit SystemDS.jar -f PCA.dml -nvargs INPUT=INPUT_DIR/pca-1000x1000 \
OUTPUT=OUTPUT_DIR/pca-1000x1000-model PROJDATA=1 CENTER=1 SCALE=1
データベース機能
ユークリッド距離を使用したDBSCANクラスタリング アルゴリズム。
X = rand (行= 1780 、列= 180 、最小= 1 、最大= 20 )
[インデックス,モデル] = dbscan ( X = X , eps = 2.5 , minPts = 360 )
改善点
SystemDS 2.0.0 は、新しい名前での最初のメジャー リリースです。このリリースには、大規模なリファクタリング、いくつかの主要な機能、多数の改善と修正、およびエンドツーエンドのデータ サイエンス ライフサイクルをより適切にサポートするためのいくつかの実験的な機能が含まれています。さらに、このリリースでは、最新ではなく時代遅れになっているいくつかの機能も削除されています。
- DML 本体 (スクリプト レベル)
builtin関数の新しいメカニズム、およびデータ クリーニング、拡張、機能エンジニアリング手法、新しい ML アルゴリズム、モデルのデバッグなどのデータ前処理用の豊富な新しい組み込み関数。 - データクリーニングのためのいくつかの方法が実装されています。これには、連鎖方程式による多変量代入 (MICE) やその他の手法による多重代入、SMOTE、クラス不均衡のオーバーサンプリング手法、前方および後方 NA 充填、スキーマと長さ情報を使用したクリーニング、標準偏差と四分位範囲を使用した外れ値検出のサポート、機能的依存関係の検出が含まれます。
- ループの重複排除、完全および部分的な再利用、コンパイラ支援による再利用、再利用を容易にするためのいくつかの新しい書き換えのサポートを含む、系統のトレースと再利用のための完全なフレームワーク。
- フェデレーション マトリックスとフレーム、フェデレーション
builtins (transform-encodeなどdecode) のサポートを含む、新しいフェデレーション ランタイム バックエンド。 - 圧縮パッケージをリファクタリングし、非可逆圧縮の量子化、バイナリ セル演算、左行列乗算などの機能を追加します。[実験的]
builtinいくつかのs、行列演算、連合テンソル、および系統トレースをサポートする新しい Python バインディング。- 累積集計演算子の Cuda 実装 (
cumsumなどcumprod) - スライス ファインダーを使用した新しいモデル デバッグ手法。
- 新しいテンソル データ モデル (さまざまな値型の基本テンソル、スキーマ付きデータ テンソル) [実験的]
- AWS のクラウド デプロイメント スクリプトと、フェデレーション操作をセットアップして開始するためのスクリプト。
parallel sort、などのパフォーマンスが向上しましたgpu cum agg。append cbind- 新規および改良された書き換え、Spark コンテキスト作成の削減、新しい
evalフレームワーク、リスト操作、ネイティブ カーネル ライブラリの更新など、さまざまなコンパイラとランタイムの改善。 - フレーム用の新しいデータ リーダー/ライターと、データ ソースとして
jsonのサポート。sql - その他の改善点: ドキュメントの改善、テストの改善、スクリプトの実行/リリース、パッケージの改善、systemds 用の Docker コンテナ、ラムダ式のサポート、バグ修正。
- MapReduce コンパイラとランタイム バックエンド、
pydmlパーサー、Java-UDF フレームワーク、スクリプト レベルのデバッガーが削除されました。 ./scripts/algorithmsこれらのアルゴリズムは徐々に SystemDS の一部となるため、非推奨ですbuiltin。
[2]
貢献
Apache SystemDS は、コード、質疑応答、コミュニティ構築、情報の拡散などへの貢献を歓迎します。貢献者ガイドは https://github.com/apache/systemds/blob/main/CONTRIBUTING.md で入手できます。
参照
参考文献
- ^ Apache SystemDS、Apache Software Foundation、2022-02-24、2022-03-06取得
- ^ SystemDS、Apache。「SystemML 1.2.0 リリースノート」。systemds.apache.org 。2021年2月26日閲覧。
外部リンク
- Apache SystemML ウェブサイト
- IBM リサーチ - SystemML
- SystemML の開発者であり IBM フェローでもある Shiv Vaithyanathan 氏との Q & A
- ビッグデータと機械学習のためのユニバーサル翻訳機
- SystemML: 大規模な宣言型機械学習のプレゼンテーション (Fred Reiss 氏)
- SystemML: MapReduce での宣言型機械学習 2016-03-10 にWayback Machineでアーカイブ
- SystemML における大規模機械学習のためのハイブリッド並列化戦略
- SystemML のオプティマイザー: 大規模機械学習プログラムの計画生成
- IBMのSystemML機械学習システムがApache Incubatorプロジェクトに
- IBM、Apache Sparkオープンソースコミュニティに機械学習技術を寄付
- IBM の SystemML が Apache インキュベータ プロジェクトとして前進
