苏剑林(Jianlin Su)
苏剑林(Jianlin Su)
我不是都写文章介绍了么?https://github.com/bojone/kg-2019
> > 我不是都写文章介绍了么?https://github.com/bojone/kg-2019 > > @bojone 请问,博客里的模型图是通过什么工具画的?感谢感谢! draw.io
这是loss的最通用写法,我没想到什么loss是它实现不了的。
大家要搞清楚一个逻辑。 这里( https://kexue.fm/archives/8348 )是显示simcse能带来一定的效果提升,但要注意,这个效果提升是用测评数据的数据集来微调过的(用了测评数据的句子,没有用标签)。 也就是说,simcse虽然是无监督,但它需要领域内的无标签语料来训练才行,而且训练结果也显示了,并不是数据越多越好,也不是训练步数越多越好。 用通用领域的语料训练simcse,我不是没试过,但是效果非常一般,仅仅比bert取first-last-avg pooling好点,远远不如已经开源的simbert、roformer-sim,所以对于想用现成的、效果比较好的相似度模型的读者来说,放出simcse预训练模型是毫无意义的,还不如用simbert、roformer-sim,更不如用最新的roformer-sim-ft( https://kexue.fm/archives/8541 )
实现同一个模型的不同方式而已,keras也是很灵活的,实现同一个功能可能有多种方式。
1、每个都有r-drop。我不至于乱发几个文件糊弄大家吧? 2、`unlabeled_data = [(t, 0) for t, l in train_data[num_labeled:]]`这一步纯粹是心理安慰,即把所有的无标签数据的标签都设置为0,你直接改为`unlabeled_data = train_data[num_labeled:]`也完全等价,因为事实上就没用到标签。
1、感谢你的意见,但是我认为在熟悉r-drop和keras本身的情况下,阅读我所给的参考代码是轻而易举的; 2、半监督学习本来就是“少量标签数据+大量无标签数据”的场景,你要是有30%的标注数据,我估计都用不着半监督了。
因为没有搭好GPU环境,所以用了CPU跑。
1、predict([[token_ids], [segment_ids]]) 才对 2、我不知道你的encoder是什么,这是你自己的encoder定义问题。