模型:

google/electra-base-discriminator

英文

ELECTRA:将文本编码器作为判别器而不是生成器进行预训练

ELECTRA是一种新的自监督语言表示学习方法。它可以用相对较少的计算资源对Transformer网络进行预训练。ELECTRA模型被训练以区分由另一个神经网络生成的“真实”输入标记与“伪造”的输入标记,类似于一个判别器的角色。即使在单个GPU上进行训练,ELECTRA在小规模上实现了强大的结果。在大规模上,ELECTRA在数据集上达到了最先进的结果。

有关详细说明和实验结果,请参阅我们的论文。

该代码库包含预训练ELECTRA的代码,包括在单个GPU上的小型ELECTRA模型。它还支持在下游任务中对ELECTRA进行微调,包括分类任务(例如),问答任务(例如)和序列标记任务(例如)。

在transformers中如何使用判别器

from transformers import ElectraForPreTraining, ElectraTokenizerFast
import torch

discriminator = ElectraForPreTraining.from_pretrained("google/electra-base-discriminator")
tokenizer = ElectraTokenizerFast.from_pretrained("google/electra-base-discriminator")

sentence = "The quick brown fox jumps over the lazy dog"
fake_sentence = "The quick brown fox fake over the lazy dog"

fake_tokens = tokenizer.tokenize(fake_sentence)
fake_inputs = tokenizer.encode(fake_sentence, return_tensors="pt")
discriminator_outputs = discriminator(fake_inputs)
predictions = torch.round((torch.sign(discriminator_outputs[0]) + 1) / 2)

[print("%7s" % token, end="") for token in fake_tokens]

[print("%7s" % int(prediction), end="") for prediction in predictions.tolist()]