-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
paddle v2 训练速度慢 #3675
Comments
你删减数据是怎么做的,在feed data的时候有没有做删减? |
和 @QiJune 讨论,提升reader性能可能需要将v1中的dataprovider中的pool直接暴露给Python API,python的reader不直接yield是数据而是直接把数据feed到dataprovider的pool中。我看下这快,可能下周可以提交一个PR。 |
@xlhlhlx 我也在用 paddle 集群,并且我们解的问题有点类似,可以私下交流下吗 |
我光看这个issue里面的讨论内容,感觉思路很混乱...确定现在问题是样本读取慢吗? |
|
@xlhlhlx @typhoonzero @QiJune @qingqing01 @lutaojian 从讨论来看似乎不能推断出是reader效率低的原因。 |
可以尝试一下V2 API的prefetch data的功能,详见这里的第一条。 |
从运行的时间来看,性能瓶颈应该不在reader这块儿啊,不管用多少特征,前后reader的耗时都基本在0.02秒左右,还是后面的模型训练慢哇,并且我又试验过,把每个fc的向量长度都由原来的64改为8,速度上没有什么太大变化,把title、brief两个卷积去掉也没有太大变化。而我同事,仿照paddle 上的dssm(https://github.com/PaddlePaddle/models/tree/develop/dssm) 写了一个我们的应用,速度也是比我这个快,一个batch 1000条数据大概需要200毫秒左右,但是从代码上来看,都是差不多的啊,不明白到底我这个为啥会如此慢。 |
请问你这个是哪个,是你同事的代码和dssm比?能说清楚是哪个配置和哪个配置比么?因为这个issue的内容比较多。 |
@luotao1 这个issue最开始提出的时候,是我仿照个性化推荐的例子写了一个用户个性化视频内容的阅读时长预测(最上面贴的代码),但是速度太慢,发现500条sample,batch_size=256,20个pass,每个pass要跑70秒左右,当时做过试验,只保留一个id特征,每个pass的处理速度变成了7秒左右,也不知道问题到底出在哪里?昨天,我同事仿照dssm写了一个类似的用户个性化视频内容推荐(就是我昨天上面贴的那段儿代码),其实本质也是user、item分别向量化,再做分类或者回归,但是3w条sample,batch_size=1000,每个batch是200ms左右,不知道这两种方式速度上相差这么远的本质问题在什么呢? |
这个 issue 里面的信息已经太多且没有条理。这些口语化的描述我已经对不到程序的细节上,主观描述并不能帮助定位问题。能不能重启一个issue,整理一下你的信息。 比如:
id特征对应到Paddle里面是什么类型?如何参与运算?
从你上面贴图的几个网络,输入类型,网络规模完全不在同一个量级,运算量也不相同,速度有差异并不奇怪。问题在于,你认为的别人的网络快,你的任务慢底是怎么对比呢?是否在公平条件下对比? 另外,既然有一快一慢两种配置,那控制变量一点一点比diff,先定位,再解释原因。如果你定位到某一处但想知道PaddlePaddle内部实现/内部机制,我们可以具体解释。 如果不能思路清晰的让别人快速理解问题,我们该如何帮你解决问题呢? |
背景
预提交到mpi集群的paddle任务(预测用户对视频内容的阅读时长),本地单机调试的过程中,发现500条sample,batch_size=256,20个pass,每个pass要跑70秒左右,后续全量数据训练样本数量级大概在亿级别,因此先本地进行训练速度上的优化。
当前问题
性能瓶颈在哪里?如何优化?
打印了reader和总的每个pass的处理时间,具体如下:
后续把用户及视频内容的泛化特征给都去掉,只保留id特征,reader的时间未发生变化(因为读取的数据字段还是跟之前一样,只是在模型训练的时候未用到,所以这块儿的处理时间肯定是一样的),但每个pass的处理时间却快了10倍,由原来的70秒左右变成了7秒左右,具体如下:
读取数据的代码
获取用户特征的代码
获取内容特征的代码
The text was updated successfully, but these errors were encountered: