81 lines
4.7 KiB
Markdown
81 lines
4.7 KiB
Markdown
<!--Copyright 2020 The HuggingFace Team. All rights reserved.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
|
|
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
|
specific language governing permissions and limitations under the License.
|
|
|
|
⚠️ Note that this file is in Markdown but contain specific syntax for our doc-builder (similar to MDX) that may not be
|
|
rendered properly in your Markdown viewer.
|
|
|
|
-->
|
|
|
|
# Tokenizer
|
|
|
|
トークナイザーは、モデルの入力の準備を担当します。ライブラリには、すべてのモデルのトークナイザーが含まれています。ほとんど
|
|
トークナイザーの一部は、完全な Python 実装と、
|
|
Rust ライブラリ [🤗 Tokenizers](https://github.com/huggingface/tokenizers)。 「高速」実装では次のことが可能になります。
|
|
|
|
1. 特にバッチトークン化を行う場合の大幅なスピードアップと
|
|
2. 元の文字列 (文字と単語) とトークン空間の間でマッピングする追加のメソッド (例:
|
|
特定の文字を含むトークンのインデックス、または特定のトークンに対応する文字の範囲)。
|
|
|
|
基本クラス [`PreTrainedTokenizer`] および [`PreTrainedTokenizerFast`]
|
|
モデル入力の文字列入力をエンコードし (以下を参照)、Python をインスタンス化/保存するための一般的なメソッドを実装します。
|
|
ローカル ファイルまたはディレクトリ、またはライブラリによって提供される事前トレーニング済みトークナイザーからの「高速」トークナイザー
|
|
(HuggingFace の AWS S3 リポジトリからダウンロード)。二人とも頼りにしているのは、
|
|
共通メソッドを含む [`~tokenization_utils_base.PreTrainedTokenizerBase`]
|
|
[`~tokenization_utils_base.SpecialTokensMixin`]。
|
|
|
|
したがって、[`PreTrainedTokenizer`] と [`PreTrainedTokenizerFast`] はメインを実装します。
|
|
すべてのトークナイザーを使用するためのメソッド:
|
|
|
|
- トークン化 (文字列をサブワード トークン文字列に分割)、トークン文字列を ID に変換したり、その逆の変換を行ったりします。
|
|
エンコード/デコード (つまり、トークン化と整数への変換)。
|
|
- 基礎となる構造 (BPE、SentencePiece...) から独立した方法で、語彙に新しいトークンを追加します。
|
|
- 特別なトークン (マスク、文の始まりなど) の管理: トークンの追加、属性への割り当て。
|
|
トークナイザーにより、簡単にアクセスでき、トークン化中に分割されないようにすることができます。
|
|
|
|
[`BatchEncoding`] は、
|
|
[`~tokenization_utils_base.PreTrainedTokenizerBase`] のエンコード メソッド (`__call__`、
|
|
`encode_plus` および `batch_encode_plus`) であり、Python 辞書から派生しています。トークナイザーが純粋な Python の場合
|
|
tokenizer の場合、このクラスは標準の Python 辞書と同じように動作し、によって計算されたさまざまなモデル入力を保持します。
|
|
これらのメソッド (`input_ids`、`attention_mask`...)。トークナイザーが「高速」トークナイザーである場合 (つまり、
|
|
HuggingFace [トークナイザー ライブラリ](https://github.com/huggingface/tokenizers))、このクラスはさらに提供します
|
|
元の文字列 (文字と単語) と
|
|
トークンスペース (例: 指定された文字または対応する文字の範囲を構成するトークンのインデックスの取得)
|
|
与えられたトークンに)。
|
|
|
|
## PreTrainedTokenizer
|
|
|
|
[[autodoc]] PreTrainedTokenizer
|
|
- __call__
|
|
- apply_chat_template
|
|
- batch_decode
|
|
- decode
|
|
- encode
|
|
- push_to_hub
|
|
- all
|
|
|
|
## PreTrainedTokenizerFast
|
|
|
|
[`PreTrainedTokenizerFast`] は [tokenizers](https://huggingface.co/docs/tokenizers) ライブラリに依存します。 🤗 トークナイザー ライブラリから取得したトークナイザーは、
|
|
🤗 トランスに非常に簡単にロードされます。これがどのように行われるかを理解するには、[🤗 tokenizers からの tokenizers を使用する](../fast_tokenizers) ページを参照してください。
|
|
|
|
[[autodoc]] PreTrainedTokenizerFast
|
|
- __call__
|
|
- apply_chat_template
|
|
- batch_decode
|
|
- decode
|
|
- encode
|
|
- push_to_hub
|
|
- all
|
|
|
|
## BatchEncoding
|
|
|
|
[[autodoc]] BatchEncoding
|