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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Transformers ライブラリをひとめぐり
- Transformer モデル向けにトークン化する
- Trainer API でファインチューニングする
- モデルを評価して保存する