“bc1f0a5693b428e83c0123c90ee287cae57640d9”上不存在“tools/git@gitcode.net:xiaomi/mace.git”
Clean the PServer API
Created by: reyoung
目前PServer具有太多API了,我们可以将PServer的API缩减成几条就可以了,主体需要做两个事情。
1、将锁服务,与简单的Key-Value Database单独提取出来,作为Master节点。所有的同步经由Master节点控制。同时外部借助于控制Key-Value Database来控制当前Paddle的训练状态。
2、参数相关操作,分为下面三个
- create_buf
- destroy_buf
- push_buf
- get_buf
- do_ops
其中,do_ops操作传一串操作进来(可以是字符串,也可以是自定义的Message,但总体类似于S表达式)。
例如,对于常见的sgd操作,公式为 (Value := Value - ita * Gradient
)。那么翻译成S表达式就为,
(:= Value (- Value (* ita Gradient))))
使用这个api可以将pserver整体关于如何计算或者如何优化的逻辑全部去掉。这样我们的pserver其实会变得很薄,可以用任何语言来写。