Angel-ML/angel

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

Angel – 分布式机器学习与图计算平台

是什么 – Angel 是一个开源、高性能的框架,用于训练大规模机器学习模型和运行图计算任务。它采用 参数服务器 架构:模型参数被分片存储在一组专用服务器节点上,而工作节点负责计算梯度或更新。该系统使用 JavaScala 构建,可在 YARN(或本地)运行,可直接使用,也可通过 Spark on Angel 使用。

核心功能

  • 传统机器学习算法 – 逻辑回归、SVM、线性/稳健回归、Softmax、K-均值、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 的公司,希望获得原生 Java/Scala 的参数服务器替代方案(如 TensorFlow 风格)

如何开始

  1. 克隆仓库并按照 Compilation Guide 编译生成 JAR 文件。
  2. 运行 Quick-Start 教程(Spark-on-Angel 示例)以查看一个简单的逻辑回归任务。
  3. 从文档中丰富的算法列表中选择一个算法,并通过提供的参数描述文件进行配置。

项目健康状况

  • 最新版本:3.2.0(Apache-2.0 许可证)
  • 腾讯和北京大学的活跃贡献者;提供邮件列表和路线图 Wiki
  • 多篇同行评审论文(如 PSGraph、DimBoost、LDA*)证明其研究背景

了解更多

  • 架构与设计文档:docs/overview/*
  • API 参考:docs/apis/core_api_en.md
  • 社区:邮件列表 angel-tsc@lists.deeplearningfoundation.org 和网站 https://angelml.ai/

总结 – Angel 是一个生产级、基于参数服务器的大规模机器学习与图计算平台,使用 Java/Scala 编写,与 Hadoop/YARN 生态系统深度集成。它是一个真正活跃维护的开源项目,处于 AI/ML 领域的前沿。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目