Transformers documentation

LayoutXLM

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

このモデルは2021年4月18日にHF papersで公開され、2021年11月3日にHugging Face Transformersに貢献されました。

LayoutXLM

概要

LayoutXLMは、Yiheng Xu、Tengchao Lv、Lei Cui、Guoxin Wang、Yijuan Lu、Dinei Florencio、Cha Zhang、Furu Wei による論文 LayoutXLM: Multimodal Pre-training for Multilingual Visually-rich Document Understanding で提案されました。これは、53言語で学習された LayoutLMv2 モデル の多言語拡張版です。

論文の抄録は以下の通りです。

テキスト、レイアウト、画像を用いたマルチモーダル事前学習により、視覚的に豊かな文書理解タスクにおいて最近SOTAの性能が達成されており、異なるモダリティ間の共同学習の大きな可能性が示されています。本論文では、視覚的に豊かな文書理解における言語の壁を越えることを目指した、多言語文書理解のためのマルチモーダル事前学習モデルLayoutXLMを提案します。LayoutXLMを正確に評価するために、7言語(中国語、日本語、スペイン語、フランス語、イタリア語、ドイツ語、ポルトガル語)のフォーム理解サンプルを含む、多言語フォーム理解ベンチマークデータセットXFUNも紹介します。各言語について、キーと値のペアが手動でラベル付けされています。実験結果により、LayoutXLMモデルはXFUNデータセットにおいて、既存のSOTAのクロスリンガル事前学習モデルを大きく上回ることが示されました。

このモデルは nielsr によって提供されました。元のコードは こちら で確認できます。

使用のコツと例

LayoutXLMの重みをLayoutLMv2モデルに直接読み込むことができます。

from transformers import LayoutLMv2Model


model = LayoutLMv2Model.from_pretrained("microsoft/layoutxlm-base", device_map="auto")

LayoutXLMには、LayoutXLMTokenizer/LayoutXLMTokenizerFastをベースにした独自のトークナイザーがあります。以下のように初期化できます:

from transformers import LayoutXLMTokenizer


tokenizer = LayoutXLMTokenizer.from_pretrained("microsoft/layoutxlm-base")

LayoutLMv2と同様に、LayoutXLMProcessor(内部でLayoutLMv2ImageProcessorとLayoutXLMTokenizer/LayoutXLMTokenizerFastを順に適用します)を使用して、モデル用のすべてのデータを準備できます。

LayoutXLMのアーキテクチャはLayoutLMv2と同等であるため、すべてのヒント、コード例、ノートブックについては、LayoutLMv2のドキュメントページを参照してください。

LayoutXLMConfig

クラス transformers.LayoutXLMConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 30522hidden_size: int = 768num_hidden_layers: int = 12num_attention_heads: int = 12intermediate_size: int = 3072hidden_act: str = 'gelu'hidden_dropout_prob: float | int = 0.1attention_probs_dropout_prob: float | int = 0.1max_position_embeddings: int = 512type_vocab_size: int = 2initializer_range: float = 0.02layer_norm_eps: float = 1e-12pad_token_id: int | None = 0max_2d_position_embeddings: int = 1024max_rel_pos: int = 128rel_pos_bins: int = 32fast_qkv: bool = Truemax_rel_2d_pos: int = 256rel_2d_pos_bins: int = 64convert_sync_batchnorm: bool = Trueimage_feature_pool_shape: list[int] | tuple[int, ...] = (7, 7, 256)coordinate_size: int = 128shape_size: int = 128has_relative_attention_bias: bool = Truehas_spatial_attention_bias: bool = Truehas_visual_segment_embedding: bool = Falsedetectron2_config_args: dict | None = None )

パラメータ

  • vocab_size (int、任意、デフォルトは 30522) — モデルの語彙サイズ。input_ids で表現できるトークンの種類数を定義します。
  • hidden_size (int、任意、デフォルトは 768) — 隠れ表現の次元数。
  • num_hidden_layers (int、任意、デフォルトは 12) — Transformer デコーダーの隠れ層の数。
  • num_attention_heads (int、任意、デフォルトは12) — Transformerデコーダーの各アテンション層におけるアテンションヘッドの数。
  • intermediate_size (int、任意、デフォルトは3072) — MLP 表現の次元数。
  • hidden_act (str、任意、デフォルトは gelu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、 "relu"、"silu" など。
  • hidden_dropout_prob (Union[float, int]、任意、デフォルト値は0.1) — embeddings、encoder、pooler 内のすべての全結合層における dropout 確率です。
  • attention_probs_dropout_prob (Union[float, int]、任意、デフォルトは 0.1) — アテンション確率のドロップアウト率です。
  • max_position_embeddings (int、任意、デフォルトは 512) — このモデルが使用される可能性のある最大シーケンス長です。
  • type_vocab_size (int、任意、デフォルトは 2) — token_type_ids の語彙サイズです。
  • initializer_range (float、任意、デフォルトは 0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。
  • layer_norm_eps (float、任意、デフォルトは 1e-12) — レイヤーノーマル層で使用する epsilon です。
  • pad_token_id (int、任意、デフォルトは 0) — 語彙内でパディングに使用されるトークン ID。
  • max_2d_position_embeddings (int、任意、デフォルト値は 1024) — 2D 位置埋め込みで使用される可能性のある最大値です。念のため、大きな値(例: 1024)に設定するのが一般的です。
  • max_rel_pos (int、任意、デフォルト値は 128) — 自己注意機構で使用する相対位置の最大数です。
  • rel_pos_bins (int、任意、デフォルトは 32)— 自己注意機構で使用する相対位置ビンの数です。
  • fast_qkv (bool、任意、デフォルトは True) — 自己アテンション層において、クエリ、キー、バリューに単一の行列を使用するかどうかを指定します。
  • max_rel_2d_pos (int、任意、デフォルト値は 256) — 自己注意機構における相対 2D 位置の最大数です。
  • rel_2d_pos_bins (int、任意、デフォルト値は 64) — 自己注意機構における 2 次元相対位置のビン数を指定します。
  • convert_sync_batchnorm (bool、省略可、デフォルトはTrue) — バッチ正規化レイヤーを同期バッチ正規化レイヤーに変換するかどうかを指定します。
  • image_feature_pool_shape (list[int]、任意、デフォルトは [7, 7, 256]) — 平均プーリングされた特徴マップの形状です。
  • coordinate_size (int、任意、デフォルトは 128) — 座標埋め込みの次元数。
  • shape_size (int、任意、デフォルトは 128) — 幅と高さの埋め込みの次元数。
  • has_relative_attention_bias (bool、任意、デフォルトはTrue) — 自己注意機構で相対注意バイアスを使用するかどうか。
  • has_spatial_attention_bias (bool、省略可、デフォルトは True) — 自己注意機構で空間的注意バイアスを使用するかどうか。
  • has_visual_segment_embedding (bool、任意、デフォルトは False) — ビジュアルセグメント埋め込みを追加するかどうか。
  • detectron2_config_args (dict, 任意) — Detectron2 のビジュアルバックボーンの設定引数を含む辞書です。デフォルト値の詳細については、このファイルを参照してください。

これは LayoutxlmModel の設定を保存するための設定クラスです。指定された引数に基づいてモデルアーキテクチャを定義し、Layoutxlm モデルをインスタンス化するために使用されます。デフォルト値で設定をインスタンス化すると、microsoft/layoutxlm-base と同様の設定が得られます。

設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。

例:

>>> from transformers import LayoutXLMConfig, LayoutXLMModel

>>> # Initializing a LayoutXLM microsoft/layoutxlm-base style configuration
>>> configuration = LayoutXLMConfig()

>>> # Initializing a model (with random weights) from the microsoft/layoutxlm-base style configuration
>>> model = LayoutXLMModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

LayoutXLMTokenizer

class transformers.LayoutXLMTokenizer

< >

( vocab: str | list | None = Nonebos_token = '<s>'eos_token = '</s>'sep_token = '</s>'cls_token = '<s>'unk_token = '<unk>'pad_token = '<pad>'mask_token = '<mask>'cls_token_box = [0, 0, 0, 0]sep_token_box = [1000, 1000, 1000, 1000]pad_token_box = [0, 0, 0, 0]pad_token_label = -100only_label_first_subword = Trueadd_prefix_space = True**kwargs )

パラメータ

  • vocab (str、dict または list、省略可) — トークナイザーの語彙を、パス、辞書、または (token, score) のタプルのリストとして指定します。
  • 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>") — 値をマスクするために使用されるトークンです。これは、マスク言語モデリングでこのモデルを学習する際に使用されるトークンです。モデルが予測しようとするトークンです。
  • cls_token_box (list[int]、省略可能、デフォルトは [0, 0, 0, 0]) — 特殊トークン [CLS] に使用するバウンディングボックス。
  • sep_token_box (list[int]、任意、デフォルトは [1000, 1000, 1000, 1000]) — 特殊トークン [SEP] に使用するバウンディングボックスです。
  • pad_token_box (list[int]、任意、デフォルトは [0, 0, 0, 0]) — 特殊トークン [PAD] に使用するバウンディングボックス。
  • pad_token_label (int、任意、デフォルトは -100) — パディングトークンに使用するラベルです。デフォルトは -100 で、これは PyTorch の CrossEntropyLoss の ignore_index です。
  • only_label_first_subword (bool、省略可、デフォルトは True) — 単語ラベルが提供されている場合、最初のサブワードのみをラベル付けするかどうかを指定します。
  • add_prefix_space (bool、任意、デフォルトはTrue) — 入力に先頭スペースを追加するかどうか。
  • additional_special_tokens (list[str]、任意、デフォルトは ["<s>NOTUSED", "</s>NOTUSED"]) — トークナイザーで使用される追加の特殊トークン。

「fast」LayoutXLM トークナイザーを構築します(HuggingFaceのtokenizersライブラリをベースにしています)。RobertaTokenizerおよびXLNetTokenizerを参考にしています。BPEに基づいています。

このトークナイザーは、主要なメソッドの大部分を含む TokenizersBackend を継承しています。これらのメソッドに関する詳細については、このスーパークラスを参照してください。

__call__

< >

( text: str | list[str] | list[list[str]]text_pair: list[str] | list[list[str]] | None = Noneboxes: list[list[int]] | list[list[list[int]]] | None = Noneword_labels: list[int] | list[list[int]] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = True**kwargs ) → BatchEncoding

パラメータ

  • text (str、list[str]、list[list[str]]) — エンコード対象のシーケンスまたはシーケンスのバッチです。各シーケンスは、文字列、文字列のリスト(単一の例の単語、またはバッチ内の例の質問)、または文字列のリストのリスト(単語のバッチ)のいずれかです。
  • text_pair (list[str]、list[list[str]]) — エンコード対象のシーケンスまたはシーケンスのバッチです。各シーケンスは、文字列のリスト(プレトークナイズ済み文字列)である必要があります。
  • boxes (list[list[int]]、list[list[list[int]]]) — 単語レベルのバウンディングボックスです。各バウンディングボックスは、0〜1000のスケールに正規化されている必要があります。
  • word_labels (list[int]、list[list[int]]、任意) — トークン分類タスク(FUNSD、CORD など)用の単語レベルの整数ラベル。
  • add_special_tokens (bool、省略可、デフォルトは True) — モデルに紐づく特殊トークンを用いてシーケンスをエンコードするかどうかを指定します。
  • padding (bool, str または PaddingStrategy, 省略可, デフォルトは False) — パディングの有効化と制御を行います。以下の値を受け入れます:
    • Trueまたは'longest': バッチ内の最長のシーケンスの長さにパディングします(単一のシーケンスのみが提供された場合は、パディングを行いません)。
    • 'max_length': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れ可能な最大入力長までパディングします。
    • False または 'do_not_pad'(デフォルト):パディングを行いません(つまり、長さが異なるシーケンスのバッチを出力できます)。
  • truncation (bool, str または TruncationStrategy, 省略可能, デフォルトは False) — 切り詰めを有効にし、制御します。以下の値を受け取ります:
    • True または 'longest_first': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが許容する最大入力長まで切り詰めます。この場合、トークン単位で切り詰めが行われ、ペアのシーケンス(またはペアのバッチ)が提供されている場合は、ペアの中で最も長いシーケンスから1トークンずつ削除します。
    • 'only_first': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れることのできる最大入力長まで切り詰めます。この設定では、ペアのシーケンス(またはペアのバッチ)が提供された場合のみ、ペアの最初のシーケンスだけが切り詰められます。
    • 'only_second': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れ可能な最大入力長まで切り詰めます。このモードでは、シーケンスのペア(またはペアのバッチ)が提供された場合のみ、ペアの2番目のシーケンスが切り詰められます。
    • False または 'do_not_truncate'(デフォルト): トランケーションを行いません(つまり、モデルが許容する最大入力サイズを超えるシーケンス長を持つバッチを出力する可能性があります)。
  • max_length (int, 省略可能) — truncation/padding パラメータのいずれかによって使用される最大長を制御します。

    未設定のまま、またはNoneに設定されている場合、truncation/padding パラメータのいずれかが最大長を必要とする場合、事前に定義されたモデルの最大長が使用されます。モデルに特定の最大入力長がない場合(XLNet など)、最大長への truncation/padding は無効になります。

  • stride (int、省略可能、デフォルトは 0) — max_length とともに数値が設定されている場合、return_overflowing_tokens=True で返されるオーバーフローしたトークンは、切り詰められたシーケンスの末尾の一部のトークンを含み、切り詰められたシーケンスとオーバーフローしたシーケンスの間に重複を確保します。この引数の値は、重複するトークンの数を定義します。
  • pad_to_multiple_of (int, 省略可) — 設定すると、シーケンスを指定された値の倍数にパディングします。これは、計算能力が >= 7.5 (Volta) の NVIDIA ハードウェアで Tensor Cores を使用できるようにするため、特に有用です。
  • return_tensors (str または TensorType, 省略可) — 設定すると、Python の整数のリストではなくテンソルを返します。指定可能な値は以下の通りです:
    • 'pt': PyTorchのtorch.Tensorオブジェクトを返します。
    • 'np': Numpy の np.ndarray オブジェクトを返します。
  • return_token_type_ids (bool, 省略可能) — トークンタイプIDを返すかどうか。デフォルトのままにすると、特定のトークナイザーのデフォルトに従ってトークンタイプIDを返します。これは return_outputs 属性で定義されます。

    トークンタイプIDとは?

  • return_attention_mask (bool, 省略可能) — attention mask を返すかどうか。デフォルトのままにすると、 return_outputs 属性によって定義される、特定の tokenizer のデフォルトに従って attention mask を返します。

    アテンションマスクとは?

  • return_overflowing_tokens (bool、任意、デフォルトは False) — 溢れ出したトークンシーケンスを返すかどうかを指定します。入力 ID のシーケンスのペア(またはペアのバッチ)が truncation_strategy = longest_first または True とともに提供された場合、溢れ出したトークンを返す代わりにエラーが発生します。
  • return_special_tokens_mask (bool、省略可能、デフォルトはFalse) — 特殊トークンのマスク情報を返すかどうかを指定します。
  • return_offsets_mapping (bool, 省略可能, デフォルトは False) — 各トークンについて (char_start, char_end) を返すかどうか。

    この機能は、PreTrainedTokenizerFast を継承する高速トークナイザーでのみ利用可能です。Python のトークナイザーを使用している場合、このメソッドは NotImplementedError を送出します。

  • return_length (bool、任意、デフォルトは False) — エンコードされた入力の長さを返すかどうかを指定します。
  • verbose (bool、任意、デフォルトはTrue) — より多くの情報や警告を表示するかどうかを指定します。
  • **kwargs — self.tokenize() メソッドに渡されます

戻り値

BatchEncoding

以下のフィールドを持つBatchEncoding:

  • input_ids — モデルに与えるトークン ID のリスト。

    入力IDとは何ですか?

  • bbox — モデルに渡すバウンディングボックスのリスト。

  • token_type_ids — モデルに渡すトークンタイプIDのリスト(return_token_type_ids=Trueの場合、またはself.model_input_namesに“token_type_ids”が含まれている場合)。

    トークンタイプIDとは?

  • attention_mask — モデルがどのトークンに注意を向けるべきかを指定するインデックスのリスト(return_attention_mask=True の場合、または self.model_input_names に “attention_mask” が含まれている場合)。

    アテンションマスクとは?

  • labels — モデルに渡すラベルのリスト(word_labelsが指定されている場合)。

  • overflowing_tokens — 溢れ出したトークンシーケンスのリスト(max_lengthが指定され、return_overflowing_tokens=Trueの場合)。

  • num_truncated_tokens — トークンが切り詰められた数(max_length が指定され、return_overflowing_tokens=True の場合)。

  • special_tokens_mask — 0 と 1 のリスト。1 は追加された特殊トークンを、0 は通常のシーケンストークンを示します(add_special_tokens=True かつ return_special_tokens_mask=True の場合)。

  • length — 入力データの長さ(return_length=Trueの場合)。

単語レベルで正規化されたバウンディングボックスおよび任意のラベルを伴う、1つ以上のシーケンスまたは1つ以上のシーケンスのペアをトークン化し、モデル用に準備するための主要なメソッドです。

build_inputs_with_special_tokens

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

パラメータ

  • token_ids_0 (list[int]) — 特殊トークンが追加されるIDのリストです。
  • token_ids_1 (list[int]、省略可) — シーケンスペア用の第2のIDリスト(任意)。

戻り値

list[int]

適切な特殊トークンを含む入力 IDのリスト。

シーケンス分類タスクにおいて、シーケンスまたはシーケンスのペアからモデルの入力を構築するには、特殊トークンを連結して追加します。XLM-RoBERTaのシーケンスは、次の形式を持ちます:

  • 単一シーケンス: <s> X </s>
  • シーケンスのペア: <s> A </s></s> B </s>

get_special_tokens_mask

< >

( token_ids_0: list[int]token_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]

パラメータ

  • token_ids_0 — (すでにフォーマット済みの可能性がある)シーケンスの ID のリスト。
  • token_ids_1 — already_has_special_tokens=True の場合は使用されません。その場合は None でなければなりません。
  • already_has_special_tokens — シーケンスがすでに特殊トークンでフォーマットされているかどうかを示します。

戻り値

範囲 [0, 1] 内の整数のリスト

特殊トークンには1、シーケンストークンには0を指定します。

特殊トークンが追加されていないトークンリストからシーケンスIDを取得します。

高速なトークナイザーでは、データコラテーターはalready_has_special_tokens=Trueを指定してこれを呼び出し、すでに整形済みのシーケンスに対してマスクを構築します。その場合、all_special_idsへの所属を確認することによってマスクを計算します。

create_token_type_ids_from_sequences

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

パラメータ

  • token_ids_0 (list[int]) — ID のリストです。
  • token_ids_1 (list[int]、省略可) — シーケンスペア用の第2のIDリスト(任意)。

戻り値

list[int]

ゼロのリスト。

シーケンスペア分類タスクで使用するために、渡された2つのシーケンスからマスクを作成します。XLM-RoBERTaはトークンタイプIDを使用しないため、ゼロのリストが返されます。

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None )

LayoutXLMProcessor

class transformers.LayoutXLMProcessor

< >

( image_processor = Nonetokenizer = None**kwargs )

パラメータ

  • image_processor (LayoutLMv2ImageProcessor) — 画像プロセッサは必須の引数です。
  • tokenizer (LayoutXLMTokenizer) — トークナイザーは必須の入力です。

画像プロセッサとトークナイザーを単一のプロセッサにラップするLayoutXLMProcessorを構築します。

LayoutXLMProcessor は、LayoutLMv2ImageProcessor と LayoutXLMTokenizer のすべての機能を提供します。詳細については、~LayoutLMv2ImageProcessor および ~LayoutXLMTokenizer を参照してください。

__call__

< >

( imagestext: str | list[str] | list[list[str]] = Nonetext_pair: list[str] | list[list[str]] | None = Noneboxes: list[list[int]] | list[list[list[int]]] | None = Noneword_labels: list[int] | list[list[int]] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = Nonemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = Truereturn_tensors: str | transformers.utils.generic.TensorType | None = None**kwargs ) → ~tokenization_utils_base.BatchEncoding

パラメータ

  • images (`) -- Image to preprocess. Expects a single or batch of images with pixel values ranging from 0 to 255. If passing in images with pixel values between 0 and 1, set do_rescale=False`.
  • text (Union[str, list[str], list[list[str]]]、省略可) — エンコード対象のシーケンスまたはシーケンスのバッチです。各シーケンスは文字列、または文字列のリスト(事前トークン化済み文字列)であることができます。事前トークン化済みの入力を渡す場合は、バッチ入力との曖昧さを避けるために is_split_into_words=True を設定してください。
  • text_pair (str, list[str] or list[int], 任意) — エンコード対象の任意の第2シーケンスです。文字列、文字列のリスト(tokenizeメソッドでトークン化された文字列)、または整数のリスト(convert_tokens_to_idsメソッドでトークン化された文字列ID)のいずれかです。
  • boxes (list[list[int]] or list[list[list[int]]], 任意) — 単語レベルのバウンディングボックス。各バウンディングボックスは、0〜1000のスケールに正規化されている必要があります。
  • word_labels (list[int] or list[list[int]]、任意) — トークン分類タスク(FUNSD、CORD など)用の単語レベルの整数ラベル。
  • add_special_tokens (bool、省略可、デフォルトは True) — シーケンスをエンコードする際に特殊トークンを追加するかどうかを指定します。これは、入力 ID に自動的に追加されるトークンを定義する基盤となる PretrainedTokenizerBase.build_inputs_with_special_tokens 関数を使用します。bos や eos トークンを自動的に追加したい場合に便利です。
  • padding (bool、str または PaddingStrategy, 省略可, デフォルトは False) — パディングの有効化と制御を行います。以下の値を受け取ります:
    • True または 'longest': バッチ内の最長のシーケンスの長さにパディングします(単一のシーケンスのみが提供された場合は、パディングを行いません)。
    • 'max_length': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れ可能な最大入力長までパディングします。
    • False または 'do_not_pad'(デフォルト):パディングを行いません(つまり、長さが異なるシーケンスのバッチを出力できます)。
  • truncation (bool, str または TruncationStrategy, 、任意) — 切り詰めを有効にし、制御します。以下の値を受け取ります:
    • True または 'longest_first': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが許容する最大入力長まで切り詰めます。この場合、トークン単位で切り詰めが行われ、ペアのシーケンス(またはペアのバッチ)が提供されている場合は、ペアの中で最も長いシーケンスから1トークンずつ削除します。
    • 'only_first': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れることのできる最大入力長まで切り詰めます。この設定では、ペアのシーケンス(またはペアのバッチ)が提供された場合のみ、ペアの最初のシーケンスだけが切り詰められます。
    • 'only_second': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れ可能な最大入力長まで切り詰めます。このモードでは、シーケンスのペア(またはペアのバッチ)が提供された場合のみ、ペアの2番目のシーケンスが切り詰められます。
    • False または 'do_not_truncate'(デフォルト): トランケーションを行いません(つまり、モデルが許容する最大入力サイズを超えるシーケンス長を持つバッチを出力する可能性があります)。
  • max_length (int, 省略可能) — truncation/padding パラメータのいずれかによって使用される最大長を制御します。

    未設定のまま、またはNoneに設定されている場合、truncation/padding パラメータのいずれかが最大長を必要とする場合、事前に定義されたモデルの最大長が使用されます。モデルに特定の最大入力長がない場合(XLNet など)、最大長への truncation/padding は無効になります。

  • stride (int、任意、デフォルトは 0) — max_length とともに数値が設定されている場合、return_overflowing_tokens=True で返されるオーバーフローしたトークンは、切り詰められたシーケンスの末尾の一部のトークンを含み、切り詰められたシーケンスとオーバーフローしたシーケンスの間に重複部分を提供します。この引数の値は、重複するトークンの数を定義します。
  • pad_to_multiple_of (int, 任意) — 設定すると、シーケンスを指定された値の倍数にパディングします。padding が有効になっている必要があります。 これは、計算能力が >= 7.5 (Volta) の NVIDIA ハードウェア上で Tensor Cores を使用できるようにするため、特に有用です。
  • return_token_type_ids (bool, 省略可能) — トークンタイプIDを返すかどうか。デフォルトのままにすると、特定のトークナイザーのデフォルトに従ってトークンタイプIDを返します。これは return_outputs 属性で定義されます。

    トークンタイプIDとは?

  • return_attention_mask (bool, 省略可能) — attention mask を返すかどうか。デフォルトのままにすると、 return_outputs 属性によって定義される、特定の tokenizer のデフォルトに従って attention mask を返します。

    アテンションマスクとは?

  • return_overflowing_tokens (bool、任意、デフォルトは False) — 溢れ出したトークンシーケンスを返すかどうかを指定します。入力 ID のシーケンスのペア(またはペアのバッチ)が truncation_strategy = longest_first または True とともに提供された場合、溢れ出したトークンを返す代わりにエラーが発生します。
  • return_special_tokens_mask (bool、省略可能、デフォルトはFalse) — 特殊トークンのマスク情報を返すかどうかを指定します。
  • return_offsets_mapping (bool, 省略可能, デフォルトは False) — 各トークンについて (char_start, char_end) を返すかどうか。

    この機能は、PreTrainedTokenizerFast を継承する高速トークナイザーでのみ利用可能です。Python のトークナイザーを使用している場合、このメソッドは NotImplementedError を送出します。

  • return_length (bool、任意、デフォルトは False) — エンコードされた入力の長さを返すかどうかを指定します。
  • verbose (bool、任意、デフォルトはTrue) — より多くの情報や警告を表示するかどうかを指定します。
  • return_tensors (Union[str, ~utils.generic.TensorType], 省略可能) — 設定すると、特定のフレームワークのテンソルを返します。受け入れられる値は以下の通りです:
    • 'pt': PyTorchのtorch.Tensorオブジェクトを返します。
    • 'np': NumPyのnp.ndarrayオブジェクトを返します。

戻り値

~tokenization_utils_base.BatchEncoding

  • data (dict、任意) — __call__/encode_plus/batch_encode_plus メソッドによって返される、リスト/配列/テンソルの辞書(‘input_ids’、‘attention_mask’ など)。
  • エンコーディング(tokenizers.Encoding または Sequence[tokenizers.Encoding]、省略可)— トークナイザーが、単語/文字空間からトークン空間へのマッピングなどの追加情報を出力する fast tokenizer の場合、tokenizers.Encoding インスタンス(バッチの場合はインスタンスのリスト)がこの情報を保持します。
  • tensor_type (Union[None, str, TensorType]、省略可) — 初期化時に PyTorch/Numpy の Tensor 内の整数リストを変換するために、ここで tensor_type を指定できます。
  • prepend_batch_axis (bool、任意、デフォルトは False) — テンソルへの変換時にバッチ軸を追加するかどうかを指定します(上記の tensor_type を参照)。tensor_type パラメータが設定されている場合のみこのパラメータが有効であり、それ以外の場合は無効です。
  • n_sequences (int, 任意) — 各エンコーディングが表す入力シーケンスの数(不明な場合はNone、単一のシーケンスの場合は1、シーケンスのペアの場合は2)。
Update on GitHub