Angel-ML/angel

A Flexible and Powerful Parameter Server for large-scale machine learning

Angel – 分散型機械学習およびグラフ計算プラットフォーム

何であるか – Angelは、大規模な機械学習モデルのトレーニングとグラフ計算ジョブの実行に向けたオープンソースで高パフォーマンスなフレームワークです。パラメータサーバーアーキテクチャを採用しており、モデルパラメータは専用のサーバーノードにシャーディングされ、ワーカーは勾配や更新を計算します。このシステムはJavaおよびScalaで構築され、YARN(またはローカル)で実行可能で、直接使用することも、Spark on Angelを介して使用することもできます。

主な機能

  • 従来の機械学習アルゴリズム – ロジスティック回帰、SVM、線形/ロバスト回帰、ソフトマックス、K-means、GBDT、LDA*(WarpLDAを含む)、因子分解機械など
  • グラフアルゴリズム – PageRank、K-core、H-index、近接度、連結成分、三角形カウント、Louvain、ラベルプロパゲーション、LINE、Word2Vec、GraphSAGE、GCN、DGIなど
  • パラメータサーバーコア – モデルパーティショナ、柔軟な一貫性モデル、同期コントローラ、カスタム更新ロジック用のプラグイン可能な psFunc インターフェース
  • Spark統合 – 「Spark on Angel」により、Sparkジョブを書くだけでAngelのPSサービスを自動的に活用でき、Angel-MLlibとグラフカーネルの両方が公開されます
  • デプロイオプション – ソースからコンパイル、単一マシンでテスト実行、YARNクラスタで起動(詳細なリソース設定ガイド付き)

誰が使うか

  • コモディティクラスタ上で数十億のパラメータを持つモデルをトレーニングしたいデータサイエンスチーム
  • 大規模グラフ学習やグラフニューラルネットワークに取り組む研究者
  • 既にHadoop/YARNを利用している企業で、TensorFlow風のパラメータサーバーのネイティブなJava/Scalaベースの代替手段を求める企業

始める方法

  1. リポジトリをクローンし、Compilation Guideに従ってJARをビルドする。
  2. Quick-Startチュートリアル(Spark-on-Angelの例)を実行して、シンプルなロジスティック回帰ジョブを確認する。
  3. ドキュメントに掲載された広範なアルゴリズムリストから選択し、提供されたパラメータ記述ファイルで設定する。

プロジェクトの健全性

  • 最新リリース: 3.2.0(Apache-2.0ライセンス)
  • 腾讯と北京大学からの積極的な貢献者;メーリングリストとロードマップウィキが提供されている
  • PSGraph、DimBoost、LDA*など、複数の査読済み論文が本システムの研究的実績を裏付けている

さらに学ぶには

  • アーキテクチャと設計ドキュメント: docs/overview/*
  • APIリファレンス: docs/apis/core_api_en.md
  • コミュニティ: メーリングリスト angel-tsc@lists.deeplearningfoundation.org およびウェブサイト https://angelml.ai/

結論 – Angelは、Java/Scalaで書かれた、大規模なMLおよびグラフワークロード向けの本格的でパラメータサーバー基盤のプラットフォームであり、Hadoop/YARNエコシステムと密接に統合されています。AI/MLの最先端分野における本物で、積極的にメンテナンスされているオープンソースプロジェクトです。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト