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 при указании типа переменной немного противоречит. Я ошибся? Какая польза от такой линии?