Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Deep learning BertModel还是BertForPreTraining_Deep Learning_Nlp_Bert Language Model_Huggingface Transformers_Transformer - Fatal编程技术网

Deep learning BertModel还是BertForPreTraining

Deep learning BertModel还是BertForPreTraining,deep-learning,nlp,bert-language-model,huggingface-transformers,transformer,Deep Learning,Nlp,Bert Language Model,Huggingface Transformers,Transformer,我只想将Bert用于嵌入,并将Bert输出用作我将从头开始构建的分类网络的输入 我不确定是否要对模型进行微调 我认为相关的课程是BertModel或BertForPreTraining head包含两个“动作”: self.predictions是MLM(蒙面语言建模),head是BERT修复语法错误的能力,self.seq_关系是NSP(下一句预测);通常被视为分类负责人 class BertPreTrainingHeads(nn.Module): def __init__(self,

我只想将Bert用于嵌入,并将Bert输出用作我将从头开始构建的分类网络的输入

我不确定是否要对模型进行微调

我认为相关的课程是BertModel或BertForPreTraining

head包含两个“动作”: self.predictions是MLM(蒙面语言建模),head是BERT修复语法错误的能力,self.seq_关系是NSP(下一句预测);通常被视为分类负责人

class BertPreTrainingHeads(nn.Module):
    def __init__(self, config):
        super().__init__()
        self.predictions = BertLMPredictionHead(config)
        self.seq_relationship = nn.Linear(config.hidden_size, 2)
我认为NSP与我的任务无关,因此我可以“覆盖”它。
传销是做什么的?它与我的目标相关还是我应该使用BertModel?

你应该使用
BertModel
,而不是
BertForPreTraining

BertForPreTraining
用于对bert进行蒙面语言模型(MLM)和下一句预测(NSP)任务的训练。它们不是用来分类的

伯特模型只给出伯特模型的输出,然后可以微调伯特模型以及在其上构建的分类器。对于分类,如果它只是BERT模型上的一个单层,您可以直接使用
BertForSequenceClassification

在任何情况下,如果您只想获取伯特模型的输出并学习分类器(无需微调伯特模型),则可以使用以下方法冻结伯特模型权重:

model = BertForSequenceClassification.from_pretrained('bert-base-uncased')

for param in model.bert.bert.parameters():
    param.requires_grad = False
以上代码借用自