0Pricing
NLP Academy · レッスン

Transformer モデル向けにトークン化する

サブワード、パディング、Attention マスク

「Transformer モデル向けにトークン化する」はCoddyKit上の無料NLP Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはNLP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 NLP Academyコースには全4レッスンが含まれています。

まずはトークンから

transformerが何かを学習する前に、テキストを数値に変換する必要があります。その変換を担うのがtokenizerです。

モデルに合わせる

必ず、モデルと一緒に学習されたtokenizerを読み込んでください。対応しないvocabularyでは、モデルが一度も見ていない無意味なIDが生成されます。

from transformers import AutoTokenizer
tok = AutoTokenizer.from_pretrained("bert-base-uncased")

サブワードの分割

現代のtokenizerは、まれな単語をsubwordsと呼ばれる小さな単位に分割するため、未知のテキストも表現できます。

print(tok.tokenize("tokenization"))

サブワードが優れている理由

subwordsを使うと、語彙を小さく保ちながら、タイプミスや新しい単語にも対応できます。モデルが真のunknownトークンに出会うことはほとんどありません。

トークンからIDへ

各subwordは整数IDに対応します。テキストに対してtokenizerを呼び出すと、モデルに渡せるidsが返されます。

enc = tok("Fine-tuning is fun")
print(enc["input_ids"])

特殊トークン

tokenizerはCLSやSEPのようなマーカーを追加し、系列の開始位置と終了位置をモデルに知らせます。これらがspecialトークンです。

長さをそろえるパディング

バッチ内では行の長さをそろえる必要があるため、短いテキストには埋め合わせ用のトークンを追加します。この処理をpaddingと呼びます。

tok(texts, padding=True)

長いテキストの切り詰め

モデルには入力長の上限があるため、非常に長いテキストは収まるように切り詰めます。truncationを有効にすると、すべての例を制限内に収められます。

tok(texts, truncation=True, max_length=128)

Attention mask

attention maskは実際のトークンを1、パディングを0として示し、モデルが埋め合わせ用の位置を無視できるようにします。

print(enc["attention_mask"])

テンソルを返す

tokenizerにフレームワークのテンソルを直接返すよう指定すれば、余分なconversionなしで出力をそのまま学習に渡せます。

tok("hello", return_tensors="pt")

テキストに戻すデコード

予測を読むには、IDをdecodeに渡します。tokenizerが元のtextを再構築し、特殊トークンは取り除きます。

print(tok.decode(enc["input_ids"]))

クイックチェック

バッチ処理中、attention maskはどのような役割を果たしますか?

まとめ

tokenizerはテキストをsubwordのIDに変換し、特殊トークンを追加したうえで、整ったバッチのためにpadding、truncation、attention maskを処理します。✅

よくある質問

「Transformer モデル向けにトークン化する」レッスンは無料ですか?

はい。「Transformer モデル向けにトークン化する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、NLP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 NLP Academyコースには全4レッスンが含まれています。

「Transformer モデル向けにトークン化する」で何を学びますか?

サブワード、パディング、Attention マスク ブラウザで直接実行するハンズオンコードでNLP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

NLP Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのNLP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「Transformer モデル向けにトークン化する」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このNLP Academyレッスンでコードを書いて実行できますか?

はい。すべてのNLP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Transformers ライブラリをひとめぐり
  2. Transformer モデル向けにトークン化する
  3. Trainer API でファインチューニングする
  4. モデルを評価して保存する
← NLP Academyに戻る