当前位置:   article > 正文

RoBERTa_roberta.tokenizer.sep_token

roberta.tokenizer.sep_token

RoBERTa模型是在RoBERTa中提出的:一种经过严格优化的BERT预训练方法, 由Yinhan Liu,Myle Ott,Naman Goyal,Dujingfei,Mandar Joshi,Danqi Chen,Omer Levy,Mike Lewis,Luke Zettlemoyer,Veselin Stoyanov提出。它基于2018年发布的Google BERT模型。

它建立在BERT的基础上,并修改了关键的超参数,消除了下一句的预训练目标,并以更大的迷你批次和学习率进行训练。

论文摘要如下:

语言模型的预训练已经带来了显着的性能提升,但是不同方法之间的仔细比较具有挑战性。训练在计算上很昂贵,通常是在不同大小的私人数据集上进行的,而且正如我们将显示的那样,超参数的选择对最终结果有重大影响。我们提出了BERT预训练的重复研究(Devlin等人,2019),该研究仔细衡量了许多关键超参数和训练数据量的影响。我们发现BERT的训练不足,并且可以匹配或超过它发布后的每个模型的性能。我们最好的模型在GLUE,RACE和SQuAD上获得了最先进的结果。这些结果突出了以前被忽略的设计选择的重要性,并引起了人们对最近报告的改进来源的质疑。我们发布我们的模型和代码。

提示:

此实现BertModel与微小的嵌入调整以及Roberta预训练模型的设置相同。

RoBERTa与BERT具有相同的体系结构,但是使用字节级BPE作为令牌生成器(与GPT-2相同),并且使用不同的预训练方案。

RoBERTa没有token_type_ids,您不需要指示哪个令牌属于哪个段。只需使用分隔令牌tokenizer.sep_token(或</ s>)分隔段即可

  • TFRobertaModel
import tensorflow as tf
from transformers import RobertaTokenizer, TFRobertaModel

tokenizer = RobertaTokenizer.from_pretrained('roberta-base')
model = TFRobertaModel.from_pretrained('roberta-base')
input_ids = tf.constant(tokenizer.encode("Hello, my dog is cute", add_special_tokens=True))[None, :]  # Batch size 1
outputs = model(input_ids)
last_hidden_states = outputs[0]  # The last hidden-state is the first element of the output tuple

#config = RobertaConfig.from_pretrained(PATH+'config-roberta-base.json')
#bert_model = TFRobertaModel.from_pretrained(PATH+'pretrained-roberta-base.h5',config=config)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • TFRobertaForSequenceClassification
import tensorflow as tf
from transformers import RobertaTokenizer, TFRobertaForSequenceClassification

tokenizer = RobertaTokenizer.from_pretrained('roberta-base')
model = TFRobertaForSequenceClassification.from_pretrained('roberta-base')
input_ids = tf.constant(tokenizer.encode("Hello, my dog is cute", add_special_tokens=True))[None, :]  # Batch size 1
labels = tf.constant([1])[None, :]  # Batch size 1
outputs = model(input_ids)
logits = outputs[0]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • TFRobertaForTokenClassification
import tensorflow as tf
from transformers import RobertaTokenizer, TFRobertaForTokenClassification

tokenizer = RobertaTokenizer.from_pretrained('roberta-base')
model = TFRobertaForTokenClassification.from_pretrained('roberta-base')
input_ids = tf.constant(tokenizer.encode("Hello, my dog is cute", add_special_tokens=True))[None, :]  # Batch size 1
outputs = model(input_ids)
scores = outputs[0]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 中文

清华大学开源了一个名为 OpenCLaP 的项目,即多领域开源中文预训练语言模型库。它提供了几种中文预训练 BERT,并表示它们可以直接通过 huggingface 的 pytorch-transformers 项目调用。

OpenCLaP 项目地址:https://github.com/thunlp/OpenCLaP

百度也开源了预训练语言模型 ERNIE,不过目前只有 ERNIE 1.0 Base 提供了中文预训练模型,ERNIE 2.0 目前还只提供英文预训练模型。当然,如果要使用 ERNIE,我们需要了解 PaddlePaddle 框架,并通过 ernie_encoder.py 抽取句子与 Token 的隐藏向量表示。

国内开发者 brightmart 开源了最新的 RoBERTa 中文预训练语言模型
https://github.com/brightmart/roberta_zh
用TensorFlow实现了在大规模中文上RoBERTa的预训练,也会提供PyTorch的预训练模型和加载方式。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/249535
推荐阅读
相关标签
  

闽ICP备14008679号