Tan*_*han 19 nlp text-classification huggingface-transformers
我们可以从 AutoModel(TFAutoModel) 函数创建一个模型:
from transformers import AutoModel
model = AutoModel.from_pretrained('distilbert-base-uncase')
Run Code Online (Sandbox Code Playgroud)
另一方面,模型是由 AutoModelForSequenceClassification(TFAutoModelForSequenceClassification) 创建的:
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification('distilbert-base-uncase')
Run Code Online (Sandbox Code Playgroud)
据我所知,这两个模型都使用 distilbert-base-uncase 库来创建模型。从方法名称来看,第二个类(AutoModelForSequenceClassification)是为序列分类创建的。
但是两个类别的真正区别是什么?以及如何正确使用它们?
(我在huggingface上搜索过,但不清楚)
sub*_*bho 18
AutoModel和模型之间的区别AutoModelForSequenceClassification在于,AutoModelForSequenceClassification 模型输出顶部有一个分类头,可以使用基础模型轻松训练
小智 5
要添加更多信息,
两者都是从检查点实例化任何模型的类;区别在于您希望返回什么内容,例如要进一步处理的特征或逻辑。
汽车模型类:
返回hidden_states/features,即模型对输入句子的上下文理解。
AutoModelForSequenceClassification(考虑序列分类任务)类:
Automodel 的输出是分类器头(通常是一个或几个线性层)的输入,分类器头输出输入序列的 logit/s。logit 的 Softmax 被解释为概率。整个管道的示意图如下所示:
不同的任务可以使用相同的架构来执行,但是每个任务都有一个与之相关的不同的头(如拥抱脸上提到的)
我们可以根据我们的案例研究在模型之上自定义这些头(例如,添加 dropout/dense 层或将最后一层从 5 个节点修改为 2 个节点,或将 Question_answering 头转换为 text_classification 头)。
一个关于定制 head的不错的博客。
来源:HuggingFace