首页 > 解决方案 > 当未从转换器中指定时,是否随机选择预训练模型

问题描述

我正在尝试使用来自 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)作为模型参数来指定模型,但是当您没有指定任何内容时,它使用的是哪一个?它在拥抱脸上使用所有模型的组合吗?我找不到答案。

标签: pythonnlphuggingface-transformersnlg

解决方案


模型不是随机选择的。管道中的任何任务都会选择与任务接近的适当模型。选择一个针对您所需任务和数据集的目标进行了严格训练的模型。例如,sentiment-analysis管道可以选择在 SST 任务上训练的模型。

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

要获取列表,您可以在SUPPORTED_TASKS 此处查看变量


推荐阅读