- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在对西类牙推文进行情感分析。
在查阅了一些最近的文献后,我发现最近有一项专门针对西类牙语文本 (roberta-base-bne
) 训练 RoBERTa 模型的努力。到目前为止,它似乎比当前最先进的西类牙语模型表现更好,BETO .
RoBERTa 模型已经针对各种任务进行了训练,其中不包括文本分类。
我要拿这个RoBERTa model并对其进行微调以进行文本分类,更具体地说,是情感分析。
我已经完成了所有的预处理并创建了数据集对象,并希望对模型进行 native 训练。
代码
# Training with native TensorFlow
from transformers import TFRobertaForSequenceClassification
model = TFRobertaForSequenceClassification.from_pretrained("BSC-TeMU/roberta-base-bne")
optimizer = tf.keras.optimizers.Adam(learning_rate=5e-5)
model.compile(optimizer=optimizer, loss=model.compute_loss) # can also use any keras loss fn
model.fit(train_dataset.shuffle(1000).batch(16), epochs=3, batch_size=16)
问题
TFRobertaForSequenceClassification
:
AutoModelForMaskedLM
型号卡中指定。
TFRobertaForSequenceClassification
,暗示它会自动将训练好的(和预训练的)知识应用到新任务中,即文本分类?
最佳答案
模型卡中的模型引用了模型所训练的基本内容。如果您熟悉不同建模任务的架构选择(例如,标记分类与序列分类),应该清楚这些模型的布局略有不同,特别是在 Transformer 输出层之后的层中。对于标记分类,这是(一般来说)Dropout 和一个额外的线性层,从 hidden_size
映射模型的输出类的数量。见 here以 BERT 为例。
这意味着使用不同学习目标预训练的模型检查点将 不是 为最后一层设置权重,但您可以在微调期间训练这些(相对较少)参数。事实上,对于 PyTorch 模型,您通常会在加载可用权重略有不同的模型检查点时收到警告:
Some weights of the model checkpoint at
bert-base-uncased
were not used when initializingBertForSequenceClassification
: [...]
BertForSequenceClassification
,这是预期的从在另一个任务上或使用另一个架构训练的模型的检查点(例如,从 BertForSequenceClassification
模型初始化 BertForPreTraining
模型)。 [...] TokenClassification
的标签数量。层有。您可以通过在加载模型期间指定它来执行此操作:
from transformers import TFRobertaForSequenceClassification
roberta = TFRobertaForSequenceClassification.from_pretrained("BSC-TeMU/roberta-base-bne",
num_labels=<your_value>)
关于python - 针对不同的任务、情感分析对预训练的西类牙 RoBERTa 模型进行微调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69353325/
我有一个 pytorch 闪电代码,当与 bert-base-uncased 或 roberta-base 一起使用时,它非常适合二进制分类任务,但不适用于 roberta-large,即训练损失不会
给定一个“Roberta 是 BERT 的高度优化版本”类型的句子,我需要使用 RoBERTa 获取这句话中每个单词的嵌入。我试图在网上查看示例代码,但没有找到明确的答案。 我的看法如下: token
from transformers import AutoModel, AutoTokenizer tokenizer1 = AutoTokenizer.from_pretrained("robert
我正在对西类牙推文进行情感分析。 在查阅了一些最近的文献后,我发现最近有一项专门针对西类牙语文本 (roberta-base-bne) 训练 RoBERTa 模型的努力。到目前为止,它似乎比当前最先进
我有大约 200 万个句子,我想使用 Facebook AI 的 RoBERTa-large 将它们转换为向量,在 NLI 和 STSB 上进行微调以获得句子相似性(使用很棒的 sentence-tr
我想使用领域语料库(与情感相关的文本)预训练 BERT 和 RoBERTa MLM。使用 50k~100k 单词需要多长时间。由于 RoBERTa 没有接受过预测下一句目标的训练,一个训练目标比 BE
我想使用领域语料库(与情感相关的文本)预训练 BERT 和 RoBERTa MLM。使用 50k~100k 单词需要多长时间。由于 RoBERTa 没有接受过预测下一句目标的训练,一个训练目标比 BE
我正在尝试向 BERT 和 RoBERTa 标记器添加一些新标记,以便我可以根据新词微调模型。这个想法是用新词在一组有限的句子上微调模型,然后看看它在其他不同的上下文中对这个词的预测是什么,以检查模型
我是一名优秀的程序员,十分优秀!