shuxinyin

Results 12 comments of shuxinyin

是的,现在的graph client 就是放在TrainPairDataset中__iter__下,与给的example中 metapath2vec中位置及代码是一样,fleetrun collective 下没有问题,切换到ps会卡住,没有报错信息。😢😢

> > 是的,现在的graph client 就是放在TrainPairDataset中__iter__下,与给的example中 metapath2vec中位置及代码是一样,fleetrun collective 下没有问题,切换到ps会卡住,没有报错信息。😢😢 > > 这个问题,ps多进程+图多进程采样,由于PS被fork会出点问题,我们还在修。暂时把num_workers设置为1,可以解决。 好的,明白了。

> 阅读了一下这里的代码,对MoCo的实现是在dataloader里面维护了一个队列存储了历史样本(而不是样本的embedding),但是Momentum encoder的思想,如果我理解的无误,应该是缓存momentum encoder的输出embedding,并通过动量更新的方法使embedding空间的波动不至于太大(同时不用占用额外显存)。是否是实现有误呢? 动量更新主要解决的是针对进行大batch对比,而内存不足问题。原文中提到的存的是embedding,对比的是上一个batch优化模型参数后encoder的embedding,而我这里存句子对比学习的是当前参数下model encoder的embedding。我这里由于内存限制,存的是句子节省内存。你可以尝试一下,看下效果有区别么,可以交流一下哈。

这跟activation没什么关系,队列中存放text,是实时的产生embedding,相当于队列可以维护10000个样本,每次就encoder 部分样本(n x batch)作为对比样本,而维护embedding是维护一个(10000,maxlen, 768)矩阵,这里面占用的内存是有差距的。

> ESimCSE 真的有效果吗? 是有的,在同样的参数下做实验,ESimCSE有比SimCSE提高一个点左右, 可以自己试试。

> > > ESimCSE 真的有效果吗? > > > > > > 是有的,在同样的参数下做实验,ESimCSE有比SimCSE提高一个点左右, 可以自己试试。 > > 我测试了一下,没有效果。SimCSE dropout 0.3 lr 2e-5。可以试一下,最高能跑到71.几。 这是调的SimCSE的最佳效果?那你精细调了ESimCSE的效果么,因为先不谈ESimCSE的模型改动,单独采用repeat改变句子的长度就应该有效果的,这点确实是SimCSE没有考虑到的地方

> 博主,那就有另外一个问题了。在实际训练过程中如果num_workers>1,就会有很多数据实际上负样本不足设定的q_size,这对训练效果是否有影响呢? 这个会有影响的,我这里提供的是一个实现案例参考喔,实际应用中,当然你应该按照你的数据情况做适应的调整了。

Thank you for your tips, I have corrected.

是的,感谢提醒,已调整