未从变压器中指定时,是否随机选择预训练模型

Is the pretrained model selected at random when not specified from transformers

我正在尝试使用来自 huggingface 的模型来实现 QA 系统。我不明白的一件事是,当我没有指定我使用哪个预训练模型进行问答时,模型是随机选择的吗?

from transformers import pipeline

# Allocate a pipeline for question-answering

question_answerer = pipeline('question-answering')
question_answerer({

     'question': 'What is the name of the repository ?',
     'context': 'Pipeline have been included in the huggingface/transformers repository'

})

输出:

{'score': 0.5135612454720828, 'start': 35, 'end': 59, 'answer': 'huggingface/transformers'}

我知道如何通过添加模型名称(例如 bert-base-uncased)作为模型参数来指定模型,但是当您没有指定任何内容时它使用的是哪个?它是否在 huggingface 上使用了所有模型的组合?我找不到答案。

模型不是随机选择的。管道中的每个任务都会选择最接近任务的适当模型。选择了根据所需任务和数据集的 objective 密切训练的模型。例如,sentiment-analysis 管道可以选择在 SST 任务上训练的模型。

同样,对于 question-answering,它选择 AutoModelForQuestionAnswering class 和 distilbert-base-cased-distilled-squad 作为默认模型,因为 SQUAD 数据集与问答任务相关联。

要获取列表,可以查看变量SUPPORTED_TASKS here