kaggleの雑記

transformersのRobertaTokenizerを試してみた

RobertaTokenizerとは

https://huggingface.co/transformers/model_doc/roberta.html#robertatokenizer

roBERTa BPE(Byte Pair Encoding)によるencode、decodeを行うクラスです。

使い方

from transformers import RobertaTokenizer
tokenizer = RobertaTokenizer.from_pretrained('roberta-base')

encoded = tokenizer.encode("I can feel the magic, can you?")
print(encoded)
decoded = tokenizer.decode(encoded)
print(decoded)

# output
# [0, 38, 64, 619, 5, 8375, 6, 64, 47, 116, 2]
# <s> I can feel the magic, can you?</s>

以上のように英文を分解してバイトとして変換する機能を持っている。from_pretrainedで学習済みモデルを適用することができる。

学習済みモデルは以下の種類を持っている。

  • roberta-base
  • roberta-large
  • roberta-large-mnli
  • distilroberta-base
  • roberta-base-openai-detector,
  • roberta-large-openai-detector

メモ

RoBERTa has the same architecture as BERT, but uses a byte-level BPE as a tokenizer (same as GPT-2) and uses a different pre-training scheme.

RoBERTaはアルゴリズムがバイトに変換する仕組みであるため、encodeを行うとバイト形式に変換される。

モデルの保存

呼び出した学習済みのモデルを保存することもできる。

その時モデルはjsonとtxtファイルに保存される。

tokenizer.save_vocabulary('.')
# ('./vocab.json', './merges.txt')

保存されたデータを学習済みモデルとして利用することが可能

pythonのtokenizersのByteLevelBPETokenizerを利用してみたtokenizersとは https://github.com/huggingface/tokenizers 主に文章の形態素解...
ABOUT ME
hirayuki
今年で社会人3年目になります。 日々体当たりで仕事を覚えています。 テーマはIT・教育です。 少しでも技術に親しんでもらえるよう、noteで4コマ漫画も書いています。 https://note.mu/hirayuki