ELECTRA — это новый метод обучения представлению языка без учителя. Его можно использовать для предварительного обучения сетей-трансформеров с относительно небольшими вычислительными затратами. Модели ELECTRA обучаются отличать «реальные» входные токены от «поддельных» входных токенов, сгенерированных другой нейронной сетью, подобно дискриминатору GAN. В небольших масштабах ELECTRA достигает хороших результатов даже при обучении на одном GPU. В больших масштабах ELECTRA показывает лучшие результаты на наборе данных SQuAD 2.0.
Для подробного описания и экспериментальных результатов см. нашу статью ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators.
В этом репозитории содержится код для предварительного обучения ELECTRA, включая небольшие модели ELECTRA на одном графическом процессоре. Он также поддерживает точную настройку ELECTRA для последующих задач, включая задачи классификации (например, GLUE), задачи QA (например, SQuAD) и задачи тегирования последовательностей (например, разбиение текста на фрагменты).
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()]
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )