Tokenizer は LLM において非常に重要ですが、特に派手なコンポーネントではありません。このシリーズ以前の言語モデルのモデリングでは、tokenizer の実装方法は文字レベルであり、出現する可能性のある 65 種類の文字をすべて埋め込みテーブルに作成し、embedding layer を使用してトレーニングセットをエンコードベクトル化しました。しかし、実際には、現代の言語モデルはより複雑なアプローチを使用しており、Byte Pair Encoding(BPE)のようなアルゴリズムを使用してチャンクレベルで操作します。
GPT-2 論文 Language Models are Unsupervised Multitask Learners では、研究者たちは 50,257 サイズの語彙を構築し、コンテキストの長さは 1024 トークンでした。
言語モデルの Transformer ネットワークの注意層では、各トークンはシーケンス内の前のトークンに注目し、つまり先行する 1024 個のトークンを見ることになります。
トークンは言語モデルの原子単位と見なすことができ、tokenize は文字列テキストをトークンのシーケンスに変換するプロセスです。
余談ですが、バイトを直接モデルに入力する研究(例:MegaByte)もありますが、現在のところ十分な検証は行われていません。
最初の味わい#
トークン化は LLM が多くの奇妙な現象を引き起こす原因です:
- なぜ LLM は単語を正しく綴れないのか?トークン化。
- なぜ LLM は文字列を反転するような非常に単純な文字列処理タスクができないのか?トークン化。
- なぜ LLM は非英語の言語(例えば日本語)を処理する際にパフォーマンスが悪いのか?トークン化。
- なぜ LLM は単純な算術でうまくいかないのか?トークン化。
- なぜ GPT-2 は Python コーディングで不必要な問題に直面したのか?トークン化。
- なぜ私の LLM は文字列 “