Transformers documentation
BERTweet
このモデルは2020年5月20日にHF papersで公開され、2020年11月16日にHugging Face Transformersに貢献されました。
BERTweet
BERTweet
BERTweetはBERT-baseと同じアーキテクチャを共有していますが、RoBERTaと同様に英語のツイートで事前学習されています。品詞付与、固有表現認識、テキスト分類などのツイート関連タスクで非常に優れた性能を発揮します。
すべてのオリジナルのBERTweetチェックポイントは、VinAI Research組織の下で見つけることができます。
BERTweet を異なる言語タスクに適用する方法のより多くの例については、BERT のドキュメントを参照してください。
以下の例では、Pipeline、AutoModel、およびコマンドラインから<mask>トークンを予測する方法を示しています。
from transformers import pipeline
pipeline = pipeline(
task="fill-mask",
model="vinai/bertweet-base",
device=0
)
pipeline("Plants create <mask> through a process known as photosynthesis.")import torch
from transformers import AutoModelForMaskedLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained(
"vinai/bertweet-base",
)
model = AutoModelForMaskedLM.from_pretrained(
"vinai/bertweet-base",
device_map="auto"
)
inputs = tokenizer("Plants create <mask> through a process known as photosynthesis.", return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model(**inputs)
predictions = outputs.logits
masked_index = torch.where(inputs['input_ids'] == tokenizer.mask_token_id)[1]
predicted_token_id = predictions[0, masked_index].argmax(dim=-1)
predicted_token = tokenizer.decode(predicted_token_id)
print(f"The predicted token is: {predicted_token}")注記
- ツイート固有のトークン(ハッシュタグ(#)、メンション(@)、絵文字、一般的な略語など)に対応したカスタム語彙が事前ロードされているため、AutoTokenizerまたはBertweetTokenizerを使用してください。また、emojiライブラリもインストールしてください。
- BERT は絶対位置埋め込みを使用するため、入力には右パディング(
padding="max_length")を行う必要があります。
BertweetTokenizer
クラス transformers.BertweetTokenizer
< source >( vocab_filemerges_filenormalization = Falsebos_token = '<s>'eos_token = '</s>'sep_token = '</s>'cls_token = '<s>'unk_token = '<unk>'pad_token = '<pad>'mask_token = '<mask>'**kwargs )
パラメータ
- vocab_file (
str) — 語彙ファイルへのパス。 - merges_file (
str) — マージファイルへのパス。 - normalization (
bool、任意、デフォルトはFalse) — 正規化の前処理を適用するかどうかを指定します。 - bos_token (
str, 省略可, デフォルトは"<s>") — 事前学習時に使用されたシーケンス開始トークン。シーケンス分類器のトークンとしても使用できます。特殊トークンを用いてシーケンスを構築する場合、シーケンスの先頭に使用されるのはこのトークンではありません。使用されるのは
cls_tokenです。 - eos_token (
str, 省略可, デフォルトは"</s>") — シーケンスの終了トークンです。特殊トークンを用いてシーケンスを構築する場合、シーケンスの終了に使用されるのはこのトークンではありません。 使用されるのは
sep_tokenです。 - sep_token (
str、任意、デフォルトは"</s>") — 区切りトークンです。複数のシーケンスからシーケンスを構築する際に使用されます。例えば、シーケンス分類では2つのシーケンス、質問応答ではテキストと質問です。また、特殊トークンを用いて構築されたシーケンスの最後のトークンとしても使用されます。 - cls_token (
str、任意、デフォルトは"<s>") — シーケンス分類(トークンごとの分類ではなく、シーケンス全体の分類)を行う際に使用される分類トークンです。特殊トークンを用いて構築された場合、シーケンスの最初のトークンになります。 - unk_token (
str、任意、デフォルトは"<unk>") — 不明トークンです。語彙に存在しないトークンは ID に変換できず、代わりにこのトークンが設定されます。 - pad_token (
str、任意、デフォルトは"<pad>") — パディングに使用されるトークンです。例えば、長さが異なるシーケンスをバッチ処理する際に使用します。 - mask_token (
str、任意、デフォルトは"<mask>") — 値をマスクするために使用されるトークンです。これは、マスク言語モデリングでこのモデルを学習する際に使用されるトークンです。モデルが予測しようとするトークンです。
Byte-Pair-Encoding を使用して、BERTweet トークナイザーを構築します。
このトークナイザーは、PreTrainedTokenizer を継承しており、主要なメソッドのほとんどが含まれています。これらのメソッドに関する詳細については、このスーパークラスを参照してください。
テキストファイルから既存の辞書を読み込み、そのシンボルをこのインスタンスに追加します。
単一の文字列内のトークン(文字列)のシーケンスに変換します。
Tweet内のトークンを正規化
生のTweetを正規化
語彙ファイルとマージファイルをディレクトリに保存します。