Closed JYlsc closed 4 years ago
@QipengGuo 帮忙看一下~
确实比textCNN对超参敏感,我个人经验主要是两点,一是层数,层数少的时候是可以拿掉FFN并且使用一般的参数初始化方法,但层数多的话需要FFN,residual,并且初始化要很小,你说的NaN问题可能就是初始化问题。二是学习率问题,有些任务需要像 bert或者机器翻译那样用warmup机制,从一个小的学习率开始,慢慢增加再衰减。 Transformer系列对超参敏感的问题我也还在探索,可能回答的比较粗略。
最近对于star transformer这个模型进行了实验。 在使用和tensorflow复现过程中发现几个疑问:
在分类任务时,同样参数下loss 及模型效果 非常不稳定 验证集模型效果波动相差4个点 loss 在 512 batch size NAN,总体对与超参数非常敏感 { "num_blocks": 1, "num_heads": 6, "head_dims": 50, "lr": 0.01, "dropout_rate": 0.1, "max_length": 25, "label_smoothing": false, "vocab_size": 7416, "embedding_dim": 200, "batch_size": 256, "num_epoch": 5 }
同比baseline textCNN ,star transformer并没有明显效果提升
star transformer 对于dropout、ln等模块使用与tensor2tensor transformer 实现有明显区别。 使用star transformer源码效果比魔改后的效果差
不知道在使用star transformer时有没有类似的问题。