【问题标题】:What are differences between AutoModelForSequenceClassification vs AutoModelAutoModelForSequenceClassification 与 AutoModel 有什么区别
【发布时间】:2021-12-22 17:19:46
【问题描述】:

我们可以从 AutoModel(TFAutoModel) 函数创建模型:

from transformers import AutoModel 
model = AutoModel.from_pretrained('distilbert-base-uncase')

另一方面,模型是由 AutoModelForSequenceClassification(TFAutoModelForSequenceClassification) 创建的:

from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification('distilbert-base-uncase')

据我所知,这两个模型都使用 distilbert-base-uncase 库来创建模型。 根据方法名称,为序列分类创建第二个类(AutoModelForSequenceClassification)。

但是 2 个类的真正区别是什么?以及如何正确使用?

(我在拥抱脸搜索但不清楚)

【问题讨论】:

  • 我有一个不同之处:使用 AutoModel,我们可以使用 last_hidden_​​state 来获取 [CLS] 令牌。 AutoModelSequenceClassification last_hidden_​​state 不存在。

标签: nlp text-classification huggingface-transformers


【解决方案1】:

AutoModel 和 AutoModelForSequenceClassification 模型之间的区别在于 AutoModelForSequenceClassification 在模型输出之上有一个分类头,可以很容易地使用基础模型进行训练

【讨论】:

  • 那么我可以将 AutoModel 用于 Classification 目的吗?
  • No 实际上从拥抱人脸课程中你可以看到,对于我们的例子,我们需要一个带有序列分类头的模型(以便能够将句子分类为正面或负面)。所以,我们实际上不会使用 AutoModel 类,而是 AutoModelForSequenceClassification:huggingface.co/course/chapter2/2?fw=pt
  • 这是否意味着AutoModel 具有冻结的权重而AutoModelForSequenceClassification 具有可训练的权重?实际上,我有一个要求,我只希望模型充当提取器而不是可训练模型。
猜你喜欢
  • 1970-01-01
  • 2011-02-19
  • 2013-03-14
  • 2018-09-14
  • 2014-01-03
  • 2017-10-25
  • 2011-06-09
  • 2021-05-11
  • 2014-06-23
相关资源
最近更新 更多