36 Star 107 Fork 6

Gitee 极速下载 / tencent-angel

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/Tencent/angel.git
克隆/下载
architecture.md 2.08 KB
一键复制 编辑 原始数据 按行查看 历史

Angel的架构设计


Angel的整体设计比较简约,层次鲜明,容易上手,没有过多复杂的设计,关注模型和机器学习相关特性,追求高维度模型下的最佳性能。它的架构设计,从整体可以分为3大模块:

  1. Parameter Server层:提供通用的参数服务器服务,负责模型的分布存储,通讯同步和协调计算,并通过PSAgent提供PS Service

  2. Worker层: 基于Angel自身模型设计的分布式运行节点,自动读取并划分数据,局部训练出模型增量,通过PS ClientPS Server通信,完成模型训练和预测。一个Worker包含一个或者多个Task,Task是Angel计算单元,这样设计的原因是可以让Task共享Worker的许多公共资源。

  3. Model层: 这是一层虚拟抽象层,并非真实存在的物理层。关于Model的Push和Pull,各种异步控制,模型分区路由,自定义函数……是连通Worker和PSServer的桥梁。

除了这3大模块,还有2个很重要的类,在图上没有显示,但是值得关注,它们是:

  1. Client:Angel任务运行的发起者

    • 启动和停止PSServer
    • 启动和停止Angel的Worker
    • 加载和存储模型
    • 启动具体计算过程
    • 获取任务运行状态
  2. Master:Angel任务运行的守护者

    • 原始计算数据以及参数矩阵的分片和分发
    • 向Gaia申请Worker和ParameterServer所需的计算资源
    • 协调,管理和监控Worker以及PSServer

通过如上的设计,Angel的整体架构,有着相对良好的可扩展性

  • PSServer层: 通过PS-Service,提供灵活的多框架PS支持
  • Model层: 提供PS必备的功能,并支持对性能进行针对性优化
  • Worker层: 能基于Angel自主API,进行算法开发和创新的需求

因此,分布式计算工程师,可以对核心层进行各种优化;而算法工程师和数据科学家,则可以充分复用这些成果,致力于各种学术界算法技巧的实现,达到最佳的性能和最好的准确率。

Java
1
https://gitee.com/mirrors/tencent-angel.git
git@gitee.com:mirrors/tencent-angel.git
mirrors
tencent-angel
tencent-angel
master

搜索帮助