Huggingface transformers 什么';RobertaS差分RobertaModel,RobertaSequenceClassification(拥抱面)

Huggingface transformers 什么';RobertaS差分RobertaModel,RobertaSequenceClassification(拥抱面),huggingface-transformers,Huggingface Transformers,我尝试使用拥抱脸变形金刚api。 在导入库时,我有一些问题。如果有人知道答案,请告诉我你的知识 transformers library有几个经过培训的模型。变压器不仅提供“BertModel,RobertaModel。。。但也有方便的标题,如“多重选择模型”、“顺序分类模型”、“分类模型”和“问答模型” 我想知道裸模型添加新的线性变换和modelforsequenceclassification有什么区别。 自定义模型(带随机初始化线性的预训练模型)和用于顺序分类的变压器模型有什么不同 Mod

我尝试使用拥抱脸变形金刚api。 在导入库时,我有一些问题。如果有人知道答案,请告诉我你的知识

transformers library有几个经过培训的模型。变压器不仅提供“BertModel,RobertaModel。。。但也有方便的标题,如“多重选择模型”、“顺序分类模型”、“分类模型”和“问答模型”

我想知道裸模型添加新的线性变换和modelforsequenceclassification有什么区别。 自定义模型(带随机初始化线性的预训练模型)和用于顺序分类的变压器模型有什么不同

ModelforSequenceClassification是否根据glue数据进行培训?
我期待着有人的回复,谢谢。

我认为如果我们看一下实际的实现,最容易理解,我随机选择了
RobertaModel
RobertaForSequenceClassification
作为示例。然而,这一结论也适用于所有其他模型

您可以找到
RobertaForSequenceClassification
的实现,大致如下所示:

class RobertaForSequenceClassification(RobertaPreTrainedModel):
授权\u缺少\u密钥=[r“位置\u ID”]
定义初始化(自我,配置):
超级()。\uuuu初始化\uuuu(配置)
self.num\u labels=config.num\u labels
self.roberta=RobertaModel(配置,添加池层=False)
self.classifier=robertaclassionhead(配置)
self.init_权重()
[...]
def forward([…]):
[...]
正如我们所见,这里没有关于预训练的指示,它只是在顶部添加了另一个线性层(可以在稍低一点的位置找到
RobertClassificationHead
的实现,即):

class RobertaClassificationHead(nn.模块):
“”“句子级分类任务的标题。”“”
定义初始化(自我,配置):
super()。\uuuu init\uuuuu()
self.densed=nn.Linear(config.hidden\u size,config.hidden\u size)
self.dropout=nn.dropout(配置隐藏\u dropout\u prob)
self.out\u proj=nn.Linear(config.hidden\u size,config.num\u标签)
def转发(自身,功能,**kwargs):
x=特征[:,0,:]#获取令牌(相当于[CLS])
x=自退出(x)
x=自密实(x)
x=火炬tanh(x)
x=自退出(x)
x=自输出项目(x)
返回x
因此,为了回答您的问题:这些模型在顶部没有任何经过预训练的附加层,您可以自己轻松实现它们。
现在来看星号:虽然您自己可以很容易地包装它,但请注意它是一个继承的类
RobertaPreTrainedModel
。这有几个优点,最重要的是不同实现(序列分类模型、序列标记模型等)之间的一致性设计。此外,它们还提供了一些简洁的功能,如转发呼叫,包括大量参数(填充、屏蔽、注意输出等),这将花费相当长的时间来实现

最后但并非最不重要的一点是,存在基于这些特定实现的现有训练有素的模型,您可以在上搜索这些模型。在那里,您可能会找到在序列分类任务中经过微调的模型(例如),然后直接将其权重加载到
RobertaForSequenceClassification
模型中。如果您有自己的序列分类模型实现,那么加载和对齐这些预先训练好的权重将非常复杂

我希望这能回答您的主要担忧,但请随时详细说明(作为评论或新问题)任何尚未解决的问题