模型:
google/electra-large-discriminator
ELECTRA 是一种用于自我监督语言表示学习的新方法。它可以使用较少的计算资源来预训练变压器网络。ELECTRA 模型被训练为区分由另一个神经网络生成的“真实”输入标记与“伪造”输入标记,类似于 GAN 的判别器。即使在小规模上,ELECTRA 在仅使用单个GPU进行训练时也能取得强大的结果。在大规模上,ELECTRA 在 SQuAD 2.0 数据集上取得了最先进的结果。
有关详细的描述和实验结果,请参阅我们的论文 ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators 。
该存储库包含用于预训练 ELECTRA 的代码,包括在单个GPU上的小型 ELECTRA 模型。它还支持在后续任务上对 ELECTRA 进行微调,包括分类任务(例如 GLUE ),问答任务(例如 SQuAD )和序列标注任务(例如 text chunking )。
from transformers import ElectraForPreTraining, ElectraTokenizerFast import torch discriminator = ElectraForPreTraining.from_pretrained("google/electra-large-discriminator") tokenizer = ElectraTokenizerFast.from_pretrained("google/electra-large-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()]