Transformers documentation

Pixtral

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

このモデルは2024年10月9日にHF papersで公開され、2024年9月14日にHugging Face Transformersに貢献されました。

Pixtral

Pixtralは、自然な画像や文書の理解を目的として学習されたマルチモーダルモデルです。2D RoPE埋め込みにより、リサイズやパディングなしで、画像を元の解像度とアスペクト比のまま受け入れることができます。さらに、Pixtralは多数の画像を処理するための128Kトークンという長いコンテキストウィンドウを備えています。Pixtralは、400Mのビジョンエンコーダーと12BのMistral Nemoデコーダーを組み合わせています。

drawing Pixtral architecture. Taken from the blog post.

すべてのオリジナルのPixtralチェックポイントは、Mistral AI組織の下で確認できます。

このモデルは amyeroberts と ArthurZ によって提供されました。 右側のサイドバーにある Pixtral モデルをクリックすると、Pixtral をさまざまなビジョンおよび言語タスクに適用する方法の例をさらに確認できます。

AutoModel
import torch
from transformers import AutoProcessor, LlavaForConditionalGeneration

model_id = "mistral-community/pixtral-12b"
model = LlavaForConditionalGeneration.from_pretrained(model_id, device_map="auto")
processor = AutoProcessor.from_pretrained(model_id)

url_dog = "https://picsum.photos/id/237/200/300"
url_mountain = "https://picsum.photos/seed/picsum/200/300"

chat = [
    {
      "role": "user", "content": [
        {"type": "text", "content": "Can this animal"}, 
        {"type": "image", "url": url_dog}, 
        {"type": "text", "content": "live here?"}, 
        {"type": "image", "url" : url_mountain}
      ]
    }
]

inputs = processor.apply_chat_template(chat, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt").to(model.device)
generate_ids = model.generate(**inputs, max_new_tokens=500)
output = processor.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]

Quantization は、重みを低精度で表現することで、大規模モデルのメモリ負荷を軽減します。利用可能な Quantization バックエンドの詳細については、Quantization の概要を参照してください。

以下の例では、bitsandbytes を使用してモデルを4ビットに量子化します。

import requests
import torch
from PIL import Image

from transformers import AutoProcessor, BitsAndBytesConfig, LlavaForConditionalGeneration


model_id = "mistral-community/pixtral-12b"

quantization_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16
)

model = LlavaForConditionalGeneration.from_pretrained(
    model_id,
    quantization_config=quantization_config,
    device_map="auto"
)
processor = AutoProcessor.from_pretrained(model_id)

dog_url = "https://picsum.photos/id/237/200/300"
mountain_url = "https://picsum.photos/seed/picsum/200/300"
dog_image = Image.open(requests.get(dog_url, stream=True).raw)
mountain_image = Image.open(requests.get(mountain_url, stream=True).raw)

chat = [
    {
      "role": "user", "content": [
        {"type": "text", "text": "Can this animal"},
        {"type": "image"},
        {"type": "text", "text": "live here?"},
        {"type": "image"}
      ]
    }
]

prompt = processor.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)
inputs = processor(text=prompt, images=[dog_image, mountain_image], return_tensors="pt").to(model.device)

inputs["pixel_values"] = inputs["pixel_values"].to(model.dtype)
inputs = {k: v.to(model.device) for k, v in inputs.items()}

generate_ids = model.generate(**inputs, max_new_tokens=100)
output = processor.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)
print(output)

注記

  • Pixtral は、ビジョンエンコーダーとして PixtralVisionModel を、言語デコーダーとして MistralForCausalLM を使用しています。

  • モデルは内部で、[IMG] トークンのプレースホルダーを画像埋め込みで置き換えます。

    "<s>[INST][IMG]\nWhat are the things I should be cautious about when I visit this place?[/INST]"

    [IMG] トークンは、各画像の高さと幅に応じて、[IMG] トークンの数に置き換えられます。画像の各行は [IMG_BREAK] トークンで区切られ、各画像は [IMG_END] トークンで区切られます。これらのトークンの処理は、~Processor.apply_chat_template メソッドを使用することで自動的に処理されます。

PixtralVisionConfig

クラス transformers.PixtralVisionConfig

< >

( 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 = Nonehidden_size: int = 1024intermediate_size: int = 4096num_hidden_layers: int = 24num_attention_heads: int = 16num_channels: int = 3image_size: int | list[int] | tuple[int, int] = 1024patch_size: int | list[int] | tuple[int, int] = 16hidden_act: str = 'gelu'attention_dropout: float | int = 0.0rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Noneinitializer_range: float = 0.02 )

パラメータ

  • hidden_size (int、任意、デフォルトは 1024) — 隠れ表現の次元数。
  • intermediate_size (int、任意、デフォルトは4096) — MLP 表現の次元数。
  • num_hidden_layers (int、任意、デフォルトは24) — Transformer デコーダーの隠れ層の数。
  • num_attention_heads (int、任意、デフォルトは 16) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。
  • num_channels (int、任意、デフォルトは3) — 入力チャネル数。
  • image_size (Union[int, list[int], tuple[int, int]]、任意、デフォルトは 1024) — 各画像のサイズ(解像度)です。
  • patch_size (Union[int, list[int], tuple[int, int]]、任意、デフォルトは16) — 各パッチのサイズ(解像度)です。
  • hidden_act (str、任意、デフォルトは gelu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、 "relu"、"silu" など。
  • attention_dropout (Union[float, int]、任意、デフォルトは 0.0) — アテンション確率のドロップアウト率です。
  • rope_parameters (Union[~modeling_rope_utils.RopeParameters, dict], 省略可) — RoPE 埋め込みの設定パラメータを含む辞書です。この辞書には rope_theta の値が含まれており、より長い max_position_embeddings で RoPE を使用する場合にスケーリングに使用されるパラメータが任意で含まれます。
  • initializer_range (float、任意、デフォルトは 0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。

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

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

例:

>>> from transformers import PixtralVisionModel, PixtralVisionConfig

>>> # Initializing a Pixtral-12B style configuration
>>> config = PixtralVisionConfig()

>>> # Initializing a model (with randomly initialized weights) from the configuration
>>> model = PixtralVisionModel(configuration)

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

MistralCommonBackend

クラス transformers.MistralCommonBackend

< >

( tokenizer_path: str | os.PathLike | pathlib.Pathmode: str | ValidationMode = 'test'model_max_length: int = 1000000000000000019884624838656padding_side: str = 'left'truncation_side: str = 'right'model_input_names: list[str] | None = Noneclean_up_tokenization_spaces: bool = False**kwargs )

mistral-common のトークナイザをラップするためのクラスです。

mistral-common は、Mistral AI モデル用の公式トークナイザライブラリです。使用するには、以下でインストールする必要があります。

pip install transformers[mistral-common]

それ以外の場合、tokenizer は Transformers による tokenizer の実装にフォールバックします。

mistral-commonの詳細については、mistral-commonを参照してください。

このクラスは、mistral_common.tokens.tokenizers.mistral.MistralTokenizer のラッパーです。 公式の mistral-common トークナイザーを使用してトークン化するための Hugging Face 互換インターフェースを提供し、PreTrainedTokenizerBase クラスを継承しています。

PythonBackend クラスとの主な動作上の違いは以下の通りです:

  • シーケンスのペアはサポートされていません。互換性のためにシグネチャは維持されていますが、シーケンスのペアに関連するすべての引数は無視されます。ペアの戻り値はNoneとして返されます。
  • is_split_into_words 引数はサポートされていません。
  • トークナイザーに新しいトークンを追加することはできません。特殊トークンの扱いは Transformers と異なります。mistral-common では、特殊トークンは直接エンコードされません。つまり、tokenizer.encode("<s>") は <s> トークンの ID を返しません。代わりに、文字列 "<s>" のトークン化に対応する ID のリストを返します。詳細については、mistral-common のドキュメントを参照してください。

このクラスの改善に関するご提案がある場合は、トークナイザーに関連する場合はmistral-common GitHub リポジトリに、Hugging Face インターフェースに関連する場合はTransformers GitHub リポジトリに、それぞれ issue を作成してください。

add_special_tokens

< >

( special_tokens_dict: dict[str, str | tokenizers.AddedToken | collections.abc.Sequence[str | tokenizers.AddedToken]]replace_extra_special_tokens: bool = True )

MistralCommonBackend は、設計上 add_special_tokens を実装していません。

この動作の実装を希望される場合は、Transformersまたはmistral-commonリポジトリでissueを作成してご依頼ください。

add_tokens

< >

( special_tokens_dict: dict[str, str | tokenizers.AddedToken | collections.abc.Sequence[str | tokenizers.AddedToken]]replace_extra_special_tokens: bool = True )

MistralCommonBackend は、設計上 add_special_tokens を実装していません。

この動作の実装を希望される場合は、Transformersまたはmistral-commonリポジトリでissueを作成してご依頼ください。

apply_chat_template

< >

( conversation: list[dict[str, str]] | list[list[dict[str, str]]]tools: list[dict | collections.abc.Callable] | None = Noneadd_generation_prompt: bool = Falsecontinue_final_message: bool = Falsetokenize: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool = Falsemax_length: int | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_dict: bool = Truereasoning_effort: ReasoningEffort | None = None**kwargs ) → Union[str, list[int], list[str], list[list[int]], BatchEncoding]

パラメータ

  • conversation (Union[List[Dict[str, str]], List[List[Dict[str, str]]]]) — “role”キーと“content”キーを持つ辞書のリストで、これまでに蓄積されたチャット履歴を表します。
  • tools (List[Union[Dict, Callable]]、任意) — モデルからアクセス可能なツール(呼び出し可能な関数)のリストです。テンプレートが関数呼び出しをサポートしていない場合、この引数は無効になります。各ツールは、ツールの名前、説明、引数の型を指定した JSON Schema として渡す必要があります。詳細については、チャットテンプレートガイドを参照してください。
  • add_generation_prompt (bool, 省略可) — この引数は MistralCommonBackend に対しては何もせず(no-op)です。ただし、API の一貫性を保つため、continue_final_message と同時に使用することはできません。 会話の最後にアシスタントのメッセージがある場合、エラーが発生します。そのような場合は、代わりに continue_final_message を使用してください。
  • continue_final_message (bool, 省略可) — これを設定すると、チャットは最終メッセージがオープンエンドになるようにフォーマットされ、EOS トークンが付きません。モデルは新しいメッセージを開始するのではなく、このメッセージを続けます。これにより、モデルの応答の一部を「プリフィル」できます。add_generation_prompt と同時に使用することはできません。
  • tokenize (bool、デフォルトはTrue) — 出力をトークン化するかどうかを指定します。Falseの場合、出力は文字列になります。
  • padding (bool, str または PaddingStrategy, 省略可, デフォルトは False) — 返されるシーケンスのパディング戦略(モデルのパディング側およびパディングインデックスに従う)として、以下から選択します:
    • Trueまたは'longest': バッチ内の最長のシーケンスの長さにパディングします(単一のシーケンスのみが提供された場合は、パディングを行いません)。
    • 'max_length': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れ可能な最大入力長までパディングします。
    • False または 'do_not_pad'(デフォルト):パディングを行いません(つまり、長さが異なるシーケンスのバッチを出力できます)。
  • truncation (bool、デフォルトは False) — 最大長でシーケンスを切り詰めるかどうか。tokenize が False の場合は無効です。
  • max_length (int, 省略可) — パディングや切り詰めのために使用する最大長(トークン数)。tokenize が False の場合は無効です。指定しない場合、デフォルトとしてトークナイザーの max_length 属性が使用されます。
  • return_tensors (str または TensorType, 省略可) — 設定すると、特定のフレームワークのテンソルを返します。tokenize が False. 指定可能な値は次のとおりです:
    • 'pt': PyTorchのtorch.Tensorオブジェクトを返します。
  • return_dict (bool、デフォルトはFalse) — 名前付きの出力を含む辞書を返すかどうかを指定します。Falseの場合、この引数は無効になります。 少なくとも1つの会話に画像が含まれている場合、そのピクセル値はpixel_valuesキーに、画像サイズはimage_sizesキーに返されます。
  • reasoning_effort (ReasoningEffort, 省略可能) — 対応するモデルのチャット補完に使用する推論の努力度。指定可能な値は以下の通りです:
    • ReasoningEffort.none: モデルは推論を行いません。
    • ReasoningEffort.high: モデルは推論アプローチを使用します。 指定しない場合、デフォルトの推論努力度が使用されます。
  • kwargs (追加のキーワード引数、省略可) — mistral-common の ChatCompletionRequest.from_openai メソッドに渡される追加の引数。

戻り値

Union[str, list[int], list[str], list[list[int]], BatchEncoding]

これまでにトークン化されたチャット(制御トークンを含む)です。この出力は、モデルに直接渡すか、generate()などのメソッドを介して渡す準備ができています。

"role"キーと"content"キーを持つ辞書のリストを、トークンIDのリストに変換します。

batch_decode

< >

( sequences: typing.Union[list[int], list[list[int]], numpy.ndarray, ForwardRef('torch.Tensor')]skip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = None**kwargs ) → list[str]

パラメータ

  • sequences (Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — トークン化された入力 ID のリスト。__call__ メソッドを使用して取得できます。
  • skip_special_tokens (bool、省略可、デフォルトはFalse) — デコーディング時に特殊トークンを除去するかどうかを指定します。
  • clean_up_tokenization_spaces (bool、任意) — トークン化のスペースを整理するかどうか。None の場合、self.clean_up_tokenization_spaces がデフォルトとして使用されます。
  • kwargs(追加のキーワード引数、任意) — MistralCommonBackend.batch_decode ではサポートされていません。使用するとエラーが発生します。

戻り値

list[str]

デコードされた文のリスト。

decode を呼び出して、トークン ID のリストのリストを文字列のリストに変換します。

このメソッドは後方互換性のために提供されています。decodeメソッドは現在、バッチ入力をネイティブで処理するため、batch_decodeの代わりにdecodeを直接使用できます。

build_inputs_with_special_tokens

< >

( token_ids_0: list[int]token_ids_1: None = None ) → list[int]

パラメータ

  • token_ids_0 (list[int]) — 特殊トークンが追加されるIDのリストです。
  • token_ids_1 (None、任意) — None。Transformers のシグネチャに合わせるため、このまま残しています。

戻り値

list[int]

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

特殊トークンを追加して、シーケンスからモデルの入力を構築します。

このメソッドは、トークナイザーのmodeに基づいて入力を動的に構築します。

  • "test": seq0 [EOS]
  • "finetuning": [BOS] seq0

convert_added_tokens

< >

( obj: tokenizers.AddedToken | typing.Anysave: bool = Falseadd_type_field: bool = True )

MistralCommonBackend は、設計上 convert_added_tokens を実装していません。

この動作の実装を希望される場合は、Transformersまたはmistral-commonリポジトリでissueを作成してご依頼ください。

create_token_type_ids_from_sequences

< >

( token_ids_0: list[int]token_ids_1: None = None ) → list[int]

パラメータ

  • token_ids_0 (list[int]) — ID のリストです。
  • token_ids_1 (None、任意) — None。Transformers のシグネチャに合わせるため、このまま残しています。

戻り値

list[int]

設定されたパターンに従ったトークンタイプID。

…

Transformersの実装に合わせて維持されています。

decode

< >

( token_ids: typing.Union[int, list[int], list[list[int]], numpy.ndarray, ForwardRef('torch.Tensor')]skip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = None**kwargs ) → Union[str, list[str]]

パラメータ

  • token_ids (Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]) — トークン化された入力 ID の単一シーケンスまたはバッチ(シーケンスのリスト)です。__call__ メソッドを使用して取得できます。
  • skip_special_tokens (bool、省略可、デフォルトはFalse) — デコーディング時に特殊トークンを除去するかどうかを指定します。
  • clean_up_tokenization_spaces (bool、任意) — トークン化のスペースを整理するかどうか。None の場合、self.clean_up_tokenization_spaces がデフォルトとして使用されます。
  • kwargs(追加のキーワード引数、任意) — MistralCommonBackend.decode ではサポートされていません。使用するとエラーが発生します。

戻り値

Union[str, list[str]]

単一のシーケンスに対するデコード済み文字列、またはシーケンスのバッチに対するデコード済み文字列のリスト。

トークナイザーと語彙を使用して、文字列内のIDのシーケンスを変換します。特殊トークンの削除や、トークン化スペースのクリーンアップなどのオプションが利用できます。

encode

< >

( text: str | list[int]text_pair: 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 = Noneverbose: bool = Truereturn_offsets_mapping: typing.Literal[False] = Falsesplit_special_tokens: typing.Literal[False] = False**kwargs ) → list[int], torch.Tensor

パラメータ

  • text (str または list[int]) — エンコードする最初のシーケンスです。文字列または整数のリスト(トークン化された文字列 ID)を指定できます。
  • text_pair (None, 任意) — MistralCommonBackend.encode ではサポートされていません。PreTrainedTokenizerBase.encode のシグネチャに合わせるために保持されています。
  • add_special_tokens (bool、省略可、デフォルトは True) — シーケンスをエンコードする際に特殊トークンを追加するかどうかを指定します。これは、入力 ID に自動的に追加されるトークンを定義する PretrainedTokenizerBase.build_inputs_with_special_tokens 関数を使用します。bos や eos トークンを自動的に追加したい場合に便利です。Tokenizer が finetuning モードで読み込まれる場合、bos と eos の両方が追加されます。それ以外の場合、つまり “test” モードでは、bos のみが追加されます。
  • 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 で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れることのできる最大入力長まで切り詰めます。
    • 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 を使用可能にするために特に有用です。
  • padding_side (str, 省略可) — モデルにパディングを適用する側です。[‘right’, ‘left’] のいずれかを選択してください。 デフォルト値は、同名のクラス属性から取得されます。
  • return_tensors (str または TensorType, 省略可) — 設定すると、Python の整数のリストではなくテンソルを返します。指定可能な値は以下の通りです:
    • 'pt': PyTorchのtorch.Tensorオブジェクトを返します。
  • **kwargs — MistralCommonBackend.encodeではサポートされていません。使用するとエラーが発生します。

戻り値

list[int], torch.Tensor

テキストのトークン化されたIDです。

トークナイザーと語彙を使用して、文字列をid(整数)のシーケンスに変換します。

from_pretrained

< >

( pretrained_model_name_or_path: str | os.PathLike*init_inputsmode: str | ValidationMode = 'test'cache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'model_max_length: int = 1000000000000000019884624838656padding_side: str = 'left'truncation_side: str = 'right'model_input_names: list[str] | None = Noneclean_up_tokenization_spaces: bool = False**kwargs )

パラメータ

  • pretrained_model_name_or_path (str または os.PathLike) — 以下のいずれかです:
    • huggingface.co上のモデルリポジトリにホストされている事前定義されたトークナイザーのmodel idを表す文字列。
    • トークナイザー設定を含むディレクトリへのパスです。例えば、MistralCommonBackend.tokenization_mistral_common.save_pretrainedメソッドを使用して保存されたもの、./my_model_directory/などです。
  • mode (Union[str, ValidationMode], 省略可, デフォルトは ValidationMode.test) — の検証モード MistralTokenizer 。指定可能な値は以下の通りです:
    • "finetuning" または ValidationMode.finetuning: ファインチューニングモードです。
    • "test" または ValidationMode.test: テストモードです。 トークナイザーが入力を検証し、モデルへのリクエストを準備する方法を変更します。
  • cache_dir (str または os.PathLike、省略可) — 標準のキャッシュを使用しない場合、ダウンロードされた事前定義されたトークナイザの語彙ファイルをキャッシュするディレクトリのパス。
  • force_download (bool、任意、デフォルトは False) — 語彙ファイルの(再)ダウンロードを強制し、キャッシュされたバージョンが存在する場合にそれを上書きするかどうかを指定します。
  • token (str または bool、省略可) — リモートファイルの HTTP ベアラ認証に使用するトークン。True の場合、hf auth login を実行した際に生成されたトークン(~/.huggingface に保存)を使用します。
  • local_files_only (bool、省略可、デフォルトはFalse) — ローカルファイルのみを使用し、ファイルのダウンロードを試みないかどうかを指定します。
  • revision (str、任意、デフォルトは "main") — 使用する特定のモデルのバージョンです。huggingface.co 上でモデルやその他の成果物を保存するために git ベースのシステムを使用しているため、ブランチ名、タグ名、コミット ID のいずれかを指定できます。したがって、revision には git で許可される任意の識別子を指定できます。
  • max_length (int, 省略可能) — truncation/padding パラメータのいずれかによって使用される最大長を制御します。

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

  • padding_side (str、任意、デフォルトは "left") — モデルにパディングを適用する側です。[‘right’, ‘left’] から選択してください。 デフォルト値は、同名のクラス属性から取得されます。
  • truncation_side (str、任意、デフォルトは "right") — モデルに切り詰めを適用する側です。[‘right’, ‘left’] から選択してください。
  • model_input_names (List[str]、省略可) — モデルの forward pass が受け入れる入力のリスト("token_type_ids" や "attention_mask" など)です。デフォルト値は、同名のクラス属性から選択されます。
  • clean_up_tokenization_spaces (bool、任意、デフォルトはFalse) — トークン化処理中にテキストを分割する際に追加されたスペースを、モデルがクリーンアップすべきかどうかを指定します。
  • kwargs(追加のキーワード引数、任意) — MistralCommonBackend.from_pretrained ではサポートされていません。使用するとエラーが発生します。

事前定義されたトークナイザーからMistralCommonBackendをインスタンス化します。

get_chat_template

< >

( chat_template: str | None = Nonetools: list[dict] | None = None )

MistralCommonBackend は、mistral-common がチャットテンプレートを使用しないため、get_chat_template を実装していません。

get_special_tokens_mask

< >

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

パラメータ

  • token_ids_0 (list[int]) — シーケンスの ID のリスト。
  • token_ids_1 (None、任意) — Transformers の実装に合わせて None を保持します。
  • already_has_special_tokens (bool、任意、デフォルトは False) — トークンリストが、モデル用の特殊トークンで既にフォーマットされているかどうかを示します。

戻り値

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

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

特殊トークンが追加されていないトークンリストからシーケンスIDを取得します。このメソッドは、トークナイザーのprepare_for_modelまたはencode_plusメソッドを使用して特殊トークンを追加する際に呼び出されます。

get_vocab

< >

( ) → Dict[str, int]

戻り値

Dict[str, int]

語彙。

トークンからインデックスへの辞書として語彙を返します。

これは有損変換です。部分的な UTF-8 バイトシーケンスが � に変換されるため、同じ文字列にデコードされるトークン ID が複数存在する可能性があります。

num_special_tokens_to_add

< >

( pair: typing.Literal[False] = False ) → int

パラメータ

  • pair (Literal[False], 省略可) — Transformer のシグネチャに合わせるため、False に固定されています。

戻り値

int

シーケンスに追加される特殊トークンの数。

特殊トークン付きでシーケンスをエンコードする際に追加されるトークンの数を返します。

これはダミー入力をエンコードし、追加されたトークンの数をチェックするため、効率的ではありません。この処理をトレーニングループ内に配置しないでください。

prepare_for_model

< >

( ids: list[int]pair_ids: 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_length: bool = Falseverbose: bool = Trueprepend_batch_axis: bool = Falsereturn_offsets_mapping: typing.Literal[False] = Falsesplit_special_tokens: typing.Literal[False] = False**kwargs ) → BatchEncoding

パラメータ

  • ids (list[int]) — 最初のシーケンスのトークン化された入力 ID です。
  • pair_ids (None、任意) — MistralCommonBackend ではサポートされていません。PreTrainedTokenizerBase のインターフェースと一致させるために保持されています。
  • add_special_tokens (bool、省略可、デフォルトは True) — シーケンスをエンコードする際に特殊トークンを追加するかどうかを指定します。これは、入力 ID に自動的に追加されるトークンを定義する PretrainedTokenizerBase.build_inputs_with_special_tokens 関数を使用します。bos や eos トークンを自動的に追加したい場合に便利です。Tokenizer が finetuning モードで読み込まれる場合、bos と eos の両方が追加されます。それ以外の場合、つまり “test” モードでは、bos のみが追加されます。
  • 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 で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れることのできる最大入力長まで切り詰めます。
    • 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 を使用可能にするために特に有用です。
  • padding_side (str, 省略可) — モデルにパディングを適用する側です。[‘right’, ‘left’] のいずれかを選択してください。 デフォルト値は、同名のクラス属性から取得されます。
  • return_tensors (str または TensorType, 省略可) — 設定すると、Python の整数のリストではなくテンソルを返します。指定可能な値は以下の通りです:
    • 'pt': PyTorchのtorch.Tensorオブジェクトを返します。
  • return_token_type_ids (bool, 省略可能) — トークンタイプIDを返すかどうか。 MistralCommonBackend では、シーケンス長分のゼロのリストを返します。1つのシーケンスのみサポートされるためです。

    トークンタイプ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_length (bool、任意、デフォルトは False) — エンコードされた入力の長さを返すかどうかを指定します。
  • verbose (bool、任意、デフォルトはTrue) — より多くの情報や警告を表示するかどうかを指定します。
  • return_offsets_mapping (Literal[False]、省略可能) — Transformers のシグネチャに合わせるため、False に固定されています。
  • split_special_tokens (Literal[False]、省略可) — Transformers のシグネチャに合わせるため、False に固定されています。
  • **kwargs — self.tokenize() メソッドに渡されます

戻り値

BatchEncoding

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

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

    入力IDとは何ですか?

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

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

  • 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の場合)

モデルで使用できるように、入力 ID のシーケンスを準備します。特殊トークンを追加し、特殊トークンを考慮しながら、オーバーフローが発生した場合はシーケンスを切り詰めます。また、オーバーフローしたトークンに対して、ユーザーが定義したストライド付きの移動ウィンドウを管理します。

save_chat_templates

< >

( save_directory: str | os.PathLiketokenizer_config: dictfilename_prefix: str | Nonesave_jinja_files: bool )

MistralCommonBackend は、mistral-common がチャットテンプレートを使用しないため、save_chat_templates を実装していません。

save_pretrained

< >

( save_directory: str | os.PathLike | pathlib.Pathpush_to_hub: bool = Falsetoken: str | bool | None = Nonecommit_message: str | None = Nonerepo_id: str | None = Noneprivate: bool | None = Nonesave_format: str | None = None**kwargs ) → tuple[str, ...]

パラメータ

  • save_directory (str | os.PathLike | Path) — トークナイザーを保存するディレクトリ。
  • push_to_hub (bool、任意、デフォルトは False) — 保存後に HF Hub にプッシュします。
  • token (str または bool、省略可) — Hub 認証用のトークン。
  • commit_message (str, 任意) — プッシュ時のコミットメッセージ。
  • repo_id (str, 省略可) — Hub リポジトリの ID。
  • private (bool、任意) — リポジトリがプライベートかどうかを示します。
  • save_format (str, 省略可) — "mistral" を指定するとネイティブの tekken 形式で保存し、"hf" を指定すると HuggingFace 形式で保存します。 None の場合は元の形式を保持します。
  • kwargs (dict、省略可) — サポートされていません。エラーが発生します。

戻り値

tuple[str, ...]

保存されたファイルのパス。

トークナイザーの完全な状態を保存します。

save_format が "mistral"(tekken トークナイザーの場合は None)の場合、元のトークナイザーファイル(例: tekken.json)が save_directory に書き込まれます。 save_format が "hf" の場合、代わりに HF 形式のファイル(tokenizer.json + tokenizer_config.json)が生成されます。

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None )

MistralCommonBackend は、設計上 save_vocabulary を実装していません。

これは、mistral-commonが1つのトークナイザーファイルで構成されているためです。語彙を保存したい場合は、代わりにsave_pretrainedメソッドの使用をご検討ください。

tokenize

< >

( text: strreturn_offsets_mapping: typing.Literal[False] = Falsesplit_special_tokens: typing.Literal[False] = False**kwargs ) → list[str]

パラメータ

  • text (str) — エンコード対象のシーケンス。
  • return_offsets_mapping (Literal[False]、省略可能) — Transformers のシグネチャに合わせるため、False に固定されています。
  • split_special_tokens (Literal[False]、省略可) — Transformers のシグネチャに合わせるため、False に固定されています。
  • **kwargs (追加のキーワード引数) — MistralCommonBackend.tokenize ではサポートされていません。使用するとエラーが発生します。

戻り値

list[str]

トークンのリスト。

トークナイザーを使用して、文字列をトークンのシーケンスに変換します。

単語ベースの語彙の場合は単語に、サブワードベースの語彙の場合はサブワードに分割します。

truncate_sequences

< >

( ids: list[int]pair_ids: None = Nonenum_tokens_to_remove: int = 0truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first'stride: int = 0**kwargs ) → Tuple[list[int], None, list[int]]

パラメータ

  • ids (list[int]) — トークン化された入力 ID です。tokenize メソッドと convert_tokens_to_ids メソッドをチェーンすることで、文字列から取得できます。
  • pair_ids (None、任意) — MistralCommonBackend ではサポートされていません。PreTrainedTokenizerBase.truncate_sequences のシグネチャと一致させるために保持されています。
  • num_tokens_to_remove (int、任意、デフォルトは 0) — 切り詰め戦略を使用して削除するトークンの数。
  • truncation_strategy (str または TruncationStrategy, 省略可, デフォルトは 'longest_first') — 切り詰め (truncation) に適用する戦略です。以下のいずれかを指定できます:
    • 'longest_first': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れることのできる最大入力長まで切り詰めます。
    • 'do_not_truncate'(デフォルト):切り詰めを行いません(つまり、モデルが許容する最大入力サイズを超えるシーケンス長を持つバッチを出力する可能性があります)。
  • stride (int、省略可能、デフォルトは 0) — 正の値に設定すると、返されるオーバーフローのトークンには、返されるメインシーケンスの一部のトークンも含まれます。この引数の値は、追加されるトークンの数を定義します。

戻り値

Tuple[list[int], None, list[int]]

切り詰められたidsと、オーバーフローしたトークンのリスト。Noneが返され、Transformersのシグネチャに一致します。

シーケンスのペアを、戦略に従ってインプレースで切り詰めます。

PixtralVisionModel

class transformers.PixtralVisionModel

< >

( config: PixtralVisionConfig )

パラメータ

  • config (PixtralVisionConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。

…

このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。

このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。

forward

< >

( pixel_values: Tensorimage_sizes: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)

パラメータ

  • pixel_values (torch.Tensor、形状 (batch_size, num_channels, image_size, image_size)) — 入力画像に対応するテンソルです。ピクセル値は PixtralImageProcessor を使用して取得できます。詳細については PixtralImageProcessor.call() を参照してください(PixtralProcessor は画像の処理に PixtralImageProcessor を使用します)。
  • image_sizes (torch.Tensor、形状 (batch_size, 2)、任意) — バッチ内の各画像のサイズです。各画像について (高さ, 幅) の形式です。

戻り値

BaseModelOutputWithPooling または tuple(torch.Tensor)

torch.Tensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)または BaseModelOutputWithPooling。設定(PixtralVisionConfig)と入力に応じて、さまざまな要素で構成されます。

PixtralVisionModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。

この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなくModuleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。

  • last_hidden_state (torch.Tensor、形状 (batch_size, sequence_length, hidden_size)) — モデルの最終層の出力における隠れ状態のシーケンス。

  • pooler_output (torch.Tensor、shape (batch_size, hidden_size)) — シーケンスの最初のトークン(分類トークン)の最終層の隠れ状態を、補助的な事前学習タスクに使用される層でさらに処理した後の出力。例えば、BERT系のモデルでは、線形層とtanh活性化関数を経て処理された分類トークンを返します。この線形層の重みは、事前学習中の次の文予測(分類)目的から学習されます。

  • hidden_states (tuple(torch.Tensor)、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返されます) — torch.Tensor のタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は (batch_size, sequence_length, hidden_size) です。

    各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。

  • attentions (tuple(torch.Tensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます) — torch.Tensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

PixtralImageProcessor

クラス transformers.PixtralImageProcessor

< >

( **kwargs: *<class 'transformers.models.pixtral.image_processing_pixtral.PixtralImageProcessorKwargs'> )

パラメータ

  • do_convert_rgb (bool、kwargs、optional、デフォルトは True) — 画像を RGB に変換するかどうか。
  • do_resize (bool、kwargs、任意、デフォルトはTrue) — 画像をリサイズするかどうか。
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, デフォルトは {'longest_edge' -- 1024}): モデルへの最大入力サイズを指定します。
  • default_to_square (bool、kwargs、任意、デフォルトは True) — size が int の場合、リサイズ時に正方形の画像をデフォルトとするかどうかを指定します。
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — center_crop を適用した後の出力画像のサイズ。
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs、デフォルトは 3) — 画像のリサイズ時に使用するリサンプリングフィルタです。PILImageResampling の列挙型のいずれかを使用できます。do_resize が True に設定されている場合のみ、効果が現れます。
  • do_rescale (bool、kwargs、任意、デフォルトはTrue) — 画像をリスケールするかどうかを指定します。
  • rescale_factor (float、kwargs、任意、デフォルト値は 0.00392156862745098) — do_rescale が True に設定されている場合、画像をリスケールするための係数です。
  • do_normalize (bool、kwargs、optional、デフォルトはTrue) — 画像を正規化するかどうかを指定します。
  • image_mean (Union[float, list[float], tuple[float, ...]]、kwargs、optional、デフォルトは [0.48145466, 0.4578275, 0.40821073]) — 正規化に使用する画像の平均値です。do_normalize が True に設定されている場合のみ有効です。
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, optional, デフォルト値は [0.26862954, 0.26130258, 0.27577711]) — 正規化に使用する画像の標準偏差です。do_normalize が True に設定されている場合のみ、効果が現れます。
  • do_pad (bool、kwargs、optional、デフォルトは True) — 画像をパディングするかどうか。パディングは、バッチ内の最大サイズに合わせるか、画像ごとに固定の正方形サイズに合わせるかのいずれかで行われます。具体的なパディング戦略はモデルによって異なります。
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — 画像をパディングする {"height": int, "width" int} のサイズです。前処理に提供されるすべての画像サイズより大きくなければなりません。pad_size が指定されない場合、バッチ内の最大の幅と高さにパディングされます。do_pad=True. の場合のみ適用されます。
  • do_center_crop (bool, kwargs, optional) — 画像を中央クロップするかどうかを指定します。
  • data_format (Union[str, ~image_utils.ChannelDimension]、kwargs、任意) — サポートされているのは ChannelDimension.FIRST のみです。slow processors との互換性のために追加されました。
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, 省略可) — 入力画像のチャネル次元の形式です。設定されていない場合、入力画像からチャネル次元の形式が推測されます。次のいずれかになります:
    • "channels_first" または ChannelDimension.FIRST: (num_channels, height, width) 形式の画像。
    • "channels_last" または ChannelDimension.LAST: (高さ, 幅, チャネル数) 形式の画像。
    • "none" または ChannelDimension.NONE: (height, width) 形式の画像。
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — 動画を処理するデバイスです。未設定の場合、入力動画からデバイスが推論されます。
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — 'pt' に設定されている場合はスタックされたテンソルを返し、それ以外の場合はテンソルのリストを返します。
  • disable_grouping (bool、kwargs、任意) — サイズごとに画像をグループ化してバッチ処理するのではなく、個別に処理するためにグループ化を無効にするかどうか。None の場合、画像が CPU にある場合は True、それ以外の場合は False に設定されます。この選択は、https://github.com/huggingface/transformers/pull/38157 に詳しく記載されている経験則に基づいています。
  • image_seq_length (int、kwargs、任意) — 入力内の各画像に使用される画像トークンの数です。 後方互換性のために追加されましたが、将来のモデルではプロセッサの属性として設定されるべきです。
  • patch_size (Union[dict[str, *kwargs*, int], int] 省略可、デフォルトは {"height" -- 16, "width": 16}): モデルにおけるパッチのサイズです。出力画像のサイズを計算するために使用されます。

PixtralImageProcessor の画像プロセッサを構築します。

preprocess

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]**kwargs: *<class 'transformers.models.pixtral.image_processing_pixtral.PixtralImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature

パラメータ

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — 前処理対象の画像です。ピクセル値が 0 から 255 の範囲にある単一の画像またはバッチを想定しています。ピクセル値が 0 から 1 の範囲にある画像を渡す場合は、do_rescale=False を設定してください。
  • do_convert_rgb (bool、kwargs、任意) — 画像を RGB に変換するかどうかを指定します。
  • do_resize (bool、kwargs、optional) — 画像をリサイズするかどうか。
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — モデルへの最大入力次元を記述します。
  • default_to_square (bool、kwargs、任意) — サイズが整数の場合、リサイズ時に正方形の画像をデフォルトとするかどうか。
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — center_crop を適用した後の出力画像のサイズ。
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — 画像のリサイズ時に使用するリサンプリングフィルタ。PILImageResampling の列挙型のいずれかを使用できます。do_resize が True に設定されている場合のみ有効です。
  • do_rescale (bool、kwargs、optional) — 画像をリスケールするかどうかを指定します。
  • rescale_factor (float、kwargs、任意) — do_rescale が True に設定されている場合、画像をリスケールするための係数。
  • do_normalize (bool, kwargs, optional) — 画像を正規化するかどうかを指定します。
  • image_mean (Union[float, list[float], tuple[float, ...]]、kwargs、optional) — 正規化に使用する画像の平均値。do_normalize が True に設定されている場合のみ有効です。
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, optional) — 正規化に使用する画像の標準偏差。do_normalize が True に設定されている場合のみ有効です。
  • do_pad (bool, kwargs, optional) — 画像をパディングするかどうかを指定します。パディングは、バッチ内の最大サイズに合わせるか、画像ごとに固定の正方形サイズに合わせるかのいずれかで行われます。具体的なパディング戦略はモデルによって異なります。
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — 画像をパディングする {"height": int, "width" int} のサイズです。前処理に提供されるすべての画像サイズより大きくなければなりません。pad_size が指定されない場合、バッチ内の最大の幅と高さにパディングされます。do_pad=True. の場合のみ適用されます。
  • do_center_crop (bool, kwargs, optional) — 画像を中央クロップするかどうかを指定します。
  • data_format (Union[str, ~image_utils.ChannelDimension]、kwargs、任意) — サポートされているのは ChannelDimension.FIRST のみです。slow processors との互換性のために追加されました。
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, 省略可) — 入力画像のチャネル次元の形式です。設定されていない場合、入力画像からチャネル次元の形式が推測されます。次のいずれかになります:
    • "channels_first" または ChannelDimension.FIRST: (num_channels, height, width) 形式の画像。
    • "channels_last" または ChannelDimension.LAST: (高さ, 幅, チャネル数) 形式の画像。
    • "none" または ChannelDimension.NONE: (height, width) 形式の画像。
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — 動画を処理するデバイスです。未設定の場合、入力動画からデバイスが推論されます。
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — 'pt' に設定されている場合はスタックされたテンソルを返し、それ以外の場合はテンソルのリストを返します。
  • disable_grouping (bool、kwargs、任意) — サイズごとに画像をグループ化してバッチ処理するのではなく、個別に処理するためにグループ化を無効にするかどうか。None の場合、画像が CPU にある場合は True、それ以外の場合は False に設定されます。この選択は、https://github.com/huggingface/transformers/pull/38157 に詳しく記載されている経験則に基づいています。
  • image_seq_length (int、kwargs、任意) — 入力内の各画像に使用される画像トークンの数です。 後方互換性のために追加されましたが、将来のモデルではプロセッサの属性として設定されるべきです。
  • patch_size (Union[dict[str, *kwargs*, int], int] 省略可、デフォルトは {"height" -- 16, "width": 16}): モデルにおけるパッチのサイズです。出力画像のサイズを計算するために使用されます。

戻り値

~image_processing_base.BatchFeature

  • data (dict) — call メソッド(‘pixel_values’ など)によって返される、リスト/配列/テンソルの辞書。
  • tensor_type (Union[None, str, TensorType]、省略可) — 初期化時に PyTorch/Numpy の Tensor 内の整数リストを変換するために、ここで tensor_type を指定できます。

PixtralImageProcessorPil

クラス transformers.PixtralImageProcessorPil

< >

( **kwargs: *<class 'transformers.models.pixtral.image_processing_pil_pixtral.PixtralImageProcessorKwargs'> )

パラメータ

  • do_convert_rgb (bool、kwargs、optional、デフォルトは True) — 画像を RGB に変換するかどうか。
  • do_resize (bool、kwargs、任意、デフォルトはTrue) — 画像をリサイズするかどうか。
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, デフォルトは {'longest_edge' -- 1024}): モデルへの最大入力サイズを指定します。
  • default_to_square (bool、kwargs、任意、デフォルトは True) — size が int の場合、リサイズ時に正方形の画像をデフォルトとするかどうかを指定します。
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — center_crop を適用した後の出力画像のサイズ。
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs、デフォルトは 3) — 画像のリサイズ時に使用するリサンプリングフィルタです。PILImageResampling の列挙型のいずれかを使用できます。do_resize が True に設定されている場合のみ、効果が現れます。
  • do_rescale (bool、kwargs、任意、デフォルトはTrue) — 画像をリスケールするかどうかを指定します。
  • rescale_factor (float、kwargs、任意、デフォルト値は 0.00392156862745098) — do_rescale が True に設定されている場合、画像をリスケールするための係数です。
  • do_normalize (bool、kwargs、optional、デフォルトはTrue) — 画像を正規化するかどうかを指定します。
  • image_mean (Union[float, list[float], tuple[float, ...]]、kwargs、optional、デフォルトは [0.48145466, 0.4578275, 0.40821073]) — 正規化に使用する画像の平均値です。do_normalize が True に設定されている場合のみ有効です。
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, optional, デフォルト値は [0.26862954, 0.26130258, 0.27577711]) — 正規化に使用する画像の標準偏差です。do_normalize が True に設定されている場合のみ、効果が現れます。
  • do_pad (bool、kwargs、optional、デフォルトは True) — 画像をパディングするかどうか。パディングは、バッチ内の最大サイズに合わせるか、画像ごとに固定の正方形サイズに合わせるかのいずれかで行われます。具体的なパディング戦略はモデルによって異なります。
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — 画像をパディングする {"height": int, "width" int} のサイズです。前処理に提供されるすべての画像サイズより大きくなければなりません。pad_size が指定されない場合、バッチ内の最大の幅と高さにパディングされます。do_pad=True. の場合のみ適用されます。
  • do_center_crop (bool, kwargs, optional) — 画像を中央クロップするかどうかを指定します。
  • data_format (Union[str, ~image_utils.ChannelDimension]、kwargs、任意) — サポートされているのは ChannelDimension.FIRST のみです。slow processors との互換性のために追加されました。
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, 省略可) — 入力画像のチャネル次元の形式です。設定されていない場合、入力画像からチャネル次元の形式が推測されます。次のいずれかになります:
    • "channels_first" または ChannelDimension.FIRST: (num_channels, height, width) 形式の画像。
    • "channels_last" または ChannelDimension.LAST: (高さ, 幅, チャネル数) 形式の画像。
    • "none" または ChannelDimension.NONE: (height, width) 形式の画像。
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — 動画を処理するデバイスです。未設定の場合、入力動画からデバイスが推論されます。
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — 'pt' に設定されている場合はスタックされたテンソルを返し、それ以外の場合はテンソルのリストを返します。
  • disable_grouping (bool、kwargs、任意) — サイズごとに画像をグループ化してバッチ処理するのではなく、個別に処理するためにグループ化を無効にするかどうか。None の場合、画像が CPU にある場合は True、それ以外の場合は False に設定されます。この選択は、https://github.com/huggingface/transformers/pull/38157 に詳しく記載されている経験則に基づいています。
  • image_seq_length (int、kwargs、任意) — 入力内の各画像に使用される画像トークンの数です。 後方互換性のために追加されましたが、将来のモデルではプロセッサの属性として設定されるべきです。
  • patch_size (Union[dict[str, *kwargs*, int], int] 省略可、デフォルトは {"height" -- 16, "width": 16}): モデルにおけるパッチのサイズです。出力画像のサイズを計算するために使用されます。

PixtralImageProcessor の画像プロセッサを構築します。

preprocess

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]**kwargs: *<class 'transformers.models.pixtral.image_processing_pil_pixtral.PixtralImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature

パラメータ

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — 前処理対象の画像です。ピクセル値が 0 から 255 の範囲にある単一の画像またはバッチを想定しています。ピクセル値が 0 から 1 の範囲にある画像を渡す場合は、do_rescale=False を設定してください。
  • do_convert_rgb (bool、kwargs、任意) — 画像を RGB に変換するかどうかを指定します。
  • do_resize (bool、kwargs、optional) — 画像をリサイズするかどうか。
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — モデルへの最大入力次元を記述します。
  • default_to_square (bool、kwargs、任意) — サイズが整数の場合、リサイズ時に正方形の画像をデフォルトとするかどうか。
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — center_crop を適用した後の出力画像のサイズ。
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — 画像のリサイズ時に使用するリサンプリングフィルタ。PILImageResampling の列挙型のいずれかを使用できます。do_resize が True に設定されている場合のみ有効です。
  • do_rescale (bool、kwargs、optional) — 画像をリスケールするかどうかを指定します。
  • rescale_factor (float、kwargs、任意) — do_rescale が True に設定されている場合、画像をリスケールするための係数。
  • do_normalize (bool, kwargs, optional) — 画像を正規化するかどうかを指定します。
  • image_mean (Union[float, list[float], tuple[float, ...]]、kwargs、optional) — 正規化に使用する画像の平均値。do_normalize が True に設定されている場合のみ有効です。
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, optional) — 正規化に使用する画像の標準偏差。do_normalize が True に設定されている場合のみ有効です。
  • do_pad (bool, kwargs, optional) — 画像をパディングするかどうかを指定します。パディングは、バッチ内の最大サイズに合わせるか、画像ごとに固定の正方形サイズに合わせるかのいずれかで行われます。具体的なパディング戦略はモデルによって異なります。
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — 画像をパディングする {"height": int, "width" int} のサイズです。前処理に提供されるすべての画像サイズより大きくなければなりません。pad_size が指定されない場合、バッチ内の最大の幅と高さにパディングされます。do_pad=True. の場合のみ適用されます。
  • do_center_crop (bool, kwargs, optional) — 画像を中央クロップするかどうかを指定します。
  • data_format (Union[str, ~image_utils.ChannelDimension]、kwargs、任意) — サポートされているのは ChannelDimension.FIRST のみです。slow processors との互換性のために追加されました。
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, 省略可) — 入力画像のチャネル次元の形式です。設定されていない場合、入力画像からチャネル次元の形式が推測されます。次のいずれかになります:
    • "channels_first" または ChannelDimension.FIRST: (num_channels, height, width) 形式の画像。
    • "channels_last" または ChannelDimension.LAST: (高さ, 幅, チャネル数) 形式の画像。
    • "none" または ChannelDimension.NONE: (height, width) 形式の画像。
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — 動画を処理するデバイスです。未設定の場合、入力動画からデバイスが推論されます。
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — 'pt' に設定されている場合はスタックされたテンソルを返し、それ以外の場合はテンソルのリストを返します。
  • disable_grouping (bool、kwargs、任意) — サイズごとに画像をグループ化してバッチ処理するのではなく、個別に処理するためにグループ化を無効にするかどうか。None の場合、画像が CPU にある場合は True、それ以外の場合は False に設定されます。この選択は、https://github.com/huggingface/transformers/pull/38157 に詳しく記載されている経験則に基づいています。
  • image_seq_length (int、kwargs、任意) — 入力内の各画像に使用される画像トークンの数です。 後方互換性のために追加されましたが、将来のモデルではプロセッサの属性として設定されるべきです。
  • patch_size (Union[dict[str, *kwargs*, int], int] 省略可、デフォルトは {"height" -- 16, "width": 16}): モデルにおけるパッチのサイズです。出力画像のサイズを計算するために使用されます。

戻り値

~image_processing_base.BatchFeature

  • data (dict) — call メソッド(‘pixel_values’ など)によって返される、リスト/配列/テンソルの辞書。
  • tensor_type (Union[None, str, TensorType]、省略可) — 初期化時に PyTorch/Numpy の Tensor 内の整数リストを変換するために、ここで tensor_type を指定できます。

PixtralProcessor

クラス transformers.PixtralProcessor

< >

( image_processor = Nonetokenizer = Nonepatch_size: int = 16spatial_merge_size: int = 1chat_template = Noneimage_token = '[IMG]'image_break_token = '[IMG_BREAK]'image_end_token = '[IMG_END]'**kwargs )

パラメータ

  • image_processor (PixtralImageProcessor) — 画像プロセッサは必須の入力です。
  • tokenizer (MistralCommonBackend) — トークナイザーは必須の入力です。
  • patch_size (int、任意、デフォルトは 16)— ビジョンタワーのパッチサイズ。
  • spatial_merge_size (int、任意、デフォルトは 1) — 空間マージ操作におけるダウンサンプリング係数です。
  • chat_template (str) — チャット内のメッセージのリストをトークン化可能な文字列に変換するための Jinja テンプレート。
  • image_token (str、任意、デフォルトは "[IMG]") — 画像の位置を示すために使用される特別なトークン。
  • image_break_token (str、任意、デフォルトは "[IMG_BREAK]") — 画像内のピクセル行の終わりを示すために使用される特別なトークン。
  • image_end_token (str、任意、デフォルトは "[IMG_END]") — 画像入力の終了を示すために使用される特殊トークンです。

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

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

__call__

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Nonetext: str | list[str] | list[list[str]] | None = Nonevideos: typing.Union[list['PIL.Image.Image'], numpy.ndarray, ForwardRef('torch.Tensor'), list[numpy.ndarray], list['torch.Tensor'], list[list['PIL.Image.Image']], list[list[numpy.ndarray]], list[list['torch.Tensor']], transformers.video_utils.URL, list[transformers.video_utils.URL], list[list[transformers.video_utils.URL]], transformers.video_utils.Path, list[transformers.video_utils.Path], list[list[transformers.video_utils.Path]], NoneType] = Noneaudio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = None**kwargs: *<class 'transformers.processing_utils.ProcessingKwargs'> )

パラメータ

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]], 任意) — 前処理対象の画像です。ピクセル値が 0 から 255 の範囲にある単一の画像またはバッチを想定しています。ピクセル値が 0 から 1 の範囲にある画像を渡す場合は、do_rescale=False を設定してください。
  • text (Union[str, list[str], list[list[str]]]、省略可) — エンコード対象のシーケンスまたはシーケンスのバッチです。各シーケンスは文字列、または文字列のリスト(事前トークン化済み文字列)であることができます。事前トークン化済みの入力を渡す場合は、バッチ入力との曖昧さを避けるために is_split_into_words=True を設定してください。
  • videos (Union[list[PIL.Image.Image], numpy.ndarray, torch.Tensor, list[numpy.ndarray], list[torch.Tensor], list[list[PIL.Image.Image]], list[list[numpy.ndarray]], list[list[torch.Tensor]], ~video_utils.URL, list[~video_utils.URL], list[list[~video_utils.URL]], ~video_utils.Path, list[~video_utils.Path], list[list[~video_utils.Path]]], 任意) — 前処理を行う動画です。ピクセル値が 0 から 255 の範囲にある、単一の動画またはバッチの動画を想定しています。ピクセル値が 0 から 1 の範囲にある動画を渡す場合は、do_rescale=False を設定してください。
  • audio (Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]], 任意) — 準備対象のオーディオまたはオーディオのバッチです。各オーディオは NumPy 配列または PyTorch テンソルであることができます。 NumPy 配列/PyTorch テンソルの場合、各オーディオの形状は (C, T) である必要があります。ここで C はチャネル数、T はオーディオのサンプル長です。
  • return_mm_token_type_ids (bool, kwargs) — マルチモーダルプレースホルダトークンの位置を示すマルチモーダルトークンタイプIDを返すかどうか。
  • return_text_replacement_offsets (bool, kwargs) — 各マルチモーダルプレースホルダーとその置換文字列の文字オフセットを返すかどうかを指定します。
  • return_tensors (str または TensorType, 省略可) — 設定すると、特定のフレームワークのテンソルを返します。使用可能な値は以下の通りです:
    • 'pt': PyTorchのtorch.Tensorオブジェクトを返します。
    • 'np': NumPyのnp.ndarrayオブジェクトを返します。
  • **kwargs (ProcessingKwargs、任意) — 各モダリティ(テキスト、画像、動画、音声)の追加処理オプション。モデル固有のパラメータは上記にリストされています。サポートされている引数の完全なリストについては、TypedDictクラスを参照してください。
Update on GitHub