Python - каковы аргументы в пользу псевдонимов типов в этом примере?

Я как раз анализировал пример Roberta LanguageModel:

import torch
from tokenizers import SentencePieceBPETokenizer
from tokenizers.processors import RobertaProcessing
from transformers import RobertaModel, AutoModel

model_dir = "roberta_large_transformers"
tokenizer = SentencePieceBPETokenizer(f"{model_dir}/vocab.json", f"{model_dir}/merges.txt")
getattr(tokenizer, "_tokenizer").post_processor = RobertaProcessing(sep=("</s>", 2), cls=("<s>", 0))
model: RobertaModel = AutoModel.from_pretrained(model_dir)

input = tokenizer.encode("Zażółcić gęślą jaźń.")
output = model(torch.tensor([input.ids]))[0]
print(output[0][1])

И мне интересно, каковы преимущества " набора текста" в этой строке:

model: RobertaModel = AutoModel.from_pretrained(model_dir)

как я понимаю в основном это говорит:

назначить результат из AutoModel.foo() изменять model и помните, что его тип RobertaModel.

Автор мог легко переписать его на любой из:

  • model = RobertaModel.from_pretrained(model_dir)
  • model = AutoModel.from_pretrained(model_dir)

так как любое решение будет легче изменить в будущем. Мне кажется, что использование AutoModel при указании типа переменной немного противоречит. Я ошибся? Какая польза от такой линии?

0 ответов

Другие вопросы по тегам