nlp - "fine-tuning of a BERT model"指的是什么?

标签 nlp bert-language-model huggingface-transformers transformer-model

我无法理解一件事,当它说“BERT 微调”时,它实际上意味着什么:

  1. 我们是否使用新数据再次重新训练整个模型。
  2. 或者我们只是用新数据训练前几个转换器层。
  3. 或者我们正在训练整个模型,但将预训练权重视为初始权重。
  4. 或者,变压器层之上已经有几层人工神经网络,仅接受训练以保持变压器权重卡住。

尝试过 Google,但我很困惑,是否有人可以帮助我。

提前致谢!

最佳答案

我记得读过关于Twitter poll的文章具有类似的上下文,并且似乎大多数人倾向于接受您的建议3.(或其变体)作为标准定义。

但是,这显然并不能代表每一个作品,但我认为可以相当肯定地说,在谈论微调时通常不包括1.。除非您拥有大量(已标记的)特定于任务的数据,否则此步骤将称为模型预训练。

2.4. 也可以考虑进行微调,但从个人/轶事经验来看,允许所有参数在微调期间更改已提供了显着的效果更好的结果。根据您的用例,这也很容易进行实验,因为卡住层在 Huggingface 转换器等库中是微不足道的。
无论哪种情况,我都会将它们视为 3. 的变体,因为您隐含地假设我们在这些情况下从预先训练的权重开始(如果我错了,请纠正我)。

因此,我尽力给出一个简洁的定义:

Fine-tuning refers to the step of training any number of parameters/layers with task-specific and labeled data, from a previous model checkpoint that has generally been trained on large amounts of text data with unsupervised MLM (masked language modeling).

关于nlp - "fine-tuning of a BERT model"指的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67783283/

相关文章:

python-3.x - 如何在 tf2.keras 中进行微调时卡住 BERT 的某些层

tensorflow - 如何从 TF Hub 获取 Bert tokenizer 的 vocab 文件

pytorch - 如何从输入 ID 获取填充掩码?

python - 'output_dir'在transformers.TrainingArguments中是什么意思?

python - pytorch 摘要因 huggingface 模型而失败

python - 旧版本的 spaCy 在尝试安装模型时抛出 "KeyError: ' 包'"错误

nlp - 在跳跃语法和CBOW模型之间进行选择以训练gensim中的word2Vec

python - 导入 BERT : module 'tensorflow._api.v2.train' has no attribute 'Optimizer' 时出错

python - 操作系统错误 : [E050] Can't find model 'en'

nlp - 在发送到 RNN 之前,token <pad>, <unknown>, <go>, <EOS> 的词向量应该是什么?