小编Tob*_*obi的帖子

使用 Huggingface 库差异化生成句子以进行对抗训练 (GAN)

我有以下目标,我一直试图通过 Huggingface 库来实现这个目标,但遇到了一些障碍。

问题:

我想在训练时以可微分的方式生成句子。我为什么要这样做?我想对这个输出应用一个判别器来生成具有某些属性的句子,这些属性是由判别器“强制执行”的。这些句子也将以输入句子为条件,因此我需要一个编码器解码器模型。

为了解决 argmax 的不可微性,我只需采用解码器的 softmax 输出并将其与我的嵌入矩阵相乘。然后,我将这个嵌入式输入输入到变压器鉴别器中,该鉴别器简单地将输入分类为原始/伪造。然后我通过编码器解码器进行反向传播。就像人们对普通 GAN 所做的那样。

到目前为止,我已经尝试使用EncoderDecoderModelHuggingface 中的。这个类有一个名为generate的方法,它以不可微分的方式(贪婪或束搜索)生成句子。因此,我深入研究了源代码并尝试构建自己的可微生成方法。但我没有让它发挥作用。

问题:

  • 有没有一种相当简单的方法可以使用 Huggingface 库来做到这一点,因为我真的想使用预训练的模型以及它附带的所有其他内容?
  • 有没有一种方法可以调用解码器的前向方法并仅生成一个新令牌,而不是再次生成整个序列?

感谢您的帮助,我真的很感激,我已经在这件事上安静地坚持了一段时间了。

nlp discriminator pytorch generative-adversarial-network huggingface-transformers

6
推荐指数
1
解决办法
321
查看次数