未从变压器中指定时,是否随机选择预训练模型
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
我正在尝试使用来自 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