Как использовать модель Huggingface T5 для проверки задачи перевода?

Вижу выходит два конфига T5model - T5Model и TFT5WithLMHeadModel. Я хочу проверить это для задач перевода (например, en-de), как показано в исходном репозитории Google. Есть ли способ использовать эту модель с обниманием лица, чтобы проверить задачи перевода. Я не видел никаких примеров, связанных с этим, на стороне документации, и мне было интересно, как ввести данные и получить результаты.

Любая помощь приветствуется


person mohammed ayub    schedule 03.03.2020    source источник
comment
Мой наивный метод состоял в том, чтобы сделать следующее и посмотреть, сработает ли это - from transformers import T5Tokenizer, T5WithLMHeadModel tokenizer = T5Tokenizer.from_pretrained('t5-small') model = T5WithLMHeadModel.from_pretrained('t5-small') #Как предложено в их оригинальной статье input_ids = torch.tensor(tokenizer.encode("translate English to German: That is good. target:")).unsqueeze(0) outputs = model(input_ids=input_ids) scores, attn = outputs[:2] indexes = torch.argmax(scores,dim=2) predicted_token = tokenizer.convert_ids_to_tokens(indexes[0])   -  person mohammed ayub    schedule 03.03.2020
comment
это дало мне следующие результаты: ':', '‹/с›']   -  person mohammed ayub    schedule 03.03.2020
comment
Пожалуйста, включите свой наивный подход в вопрос, а не в комментарии.   -  person dennlinger    schedule 07.03.2020


Ответы (2)


Вы можете использовать T5ForConditionalGeneration для перевода текста...

!pip install transformers

from transformers import T5Tokenizer, T5ForConditionalGeneration

tokenizer = T5Tokenizer.from_pretrained('t5-small')

model = T5ForConditionalGeneration.from_pretrained('t5-small', return_dict=True)

input = "My name is Azeem and I live in India"

# You can also use "translate English to French" and "translate English to Romanian"
input_ids = tokenizer("translate English to German: "+input, return_tensors="pt").input_ids  # Batch size 1

outputs = model.generate(input_ids)

decoded = tokenizer.decode(outputs[0], skip_special_tokens=True)

print(decoded)

На сегодняшний день T5WithLMHeadModel не поддерживается Transformers.

person Azeem Husain    schedule 07.11.2020
comment
Спасибо!! T5Tokenizer не работает. Он возвращает Нет. Но T5TokenizerFast работает нормально! - person Binu Jasim; 20.06.2021
comment
Но использовать T5 для перевода на новый язык? - person Ариж Аль Адел; 21.06.2021

T5 — это предварительно обученная модель, которую можно точно настроить для последующих задач, таких как машинный перевод. Поэтому ожидается, что мы получим тарабарщину, когда попросим его перевести — он еще не научился это делать.

person WolfNiu    schedule 28.03.2020