-
Notifications
You must be signed in to change notification settings - Fork 5.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Trainer ParameterServer Design Doc related discussion #2106
Comments
@dzhwinter Paddle现在不支持动态调节learning rate,要不就像你说的一样不要在UpdateParamter(我觉得SendGradient这个名字更直接)的时候发learning rate了。 func InitUpdater(protoBuf []byte) error
func SendGradient(grads []Gradient) error
func GetParameter(names []string) ([]Parameter, error) |
刚刚向徐老师@emailweixu 请教了一下: Paddle使用PServer的更新方式有两种:
PServer上做优化时,Sparse参数更新还需要多做一件事情: 总结以上,我理解是两种更新方式最终应该都需要支持,第一种更适合异步SGD,PServer实现也比较简单。感觉我们可以第一期异步的时候只支持第一种。 |
I agree that we implement Algorithm 1. as our first stage. |
@helinwang 在1中不明白的是: 在 而且根据目前的实现来看,v2 python API是直接使用第2种方法的。 |
@typhoonzero 赞细致!我理解是在这个时候才会做一次收发:https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/trainer/RemoteParameterUpdater.h#L220 。具体收发代码在哪,明天找一下。 计划的是第一版只做SGD,没有其他优化算法,所以PServer上需要的实现,对1和2是一样的(diff或者grad直接乘以步长加到模型上)。 |
@typhoonzero 我又找了一下,关于“更新后的模型什么时候下发到trainer呢”,应该在这里:https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/trainer/RemoteParameterUpdater.cpp#L558 ,判断如果不需要remote update则返回,需要的话则发送,我理解的是如果有发送就有收到更新的parameter(https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/trainer/RemoteParameterUpdater.cpp#L537 )。 以上代码都属于 |
|
maybe open an issue is the way to make us agree on some complicated point , list these interface in detail.
Trainer和ParameterServer交互的接口
备选方案:1
@helin
备选方案 :2
其他深度学习框架使用了相似实现:mxnet ,
@dzhwinter
ParameterClient_CAPI C++调用Go ParameterClient library的接口函数
The text was updated successfully, but these errors were encountered: