Transformers documentation
Pixtral
このモデルは2024年10月9日にHF papersで公開され、2024年9月14日にHugging Face Transformersに貢献されました。
Pixtral
Pixtralは、自然な画像や文書の理解を目的として学習されたマルチモーダルモデルです。2D RoPE埋め込みにより、リサイズやパディングなしで、画像を元の解像度とアスペクト比のまま受け入れることができます。さらに、Pixtralは多数の画像を処理するための128Kトークンという長いコンテキストウィンドウを備えています。Pixtralは、400Mのビジョンエンコーダーと12BのMistral Nemoデコーダーを組み合わせています。
Pixtral architecture. Taken from the blog post. すべてのオリジナルのPixtralチェックポイントは、Mistral AI組織の下で確認できます。
このモデルは amyeroberts と ArthurZ によって提供されました。 右側のサイドバーにある Pixtral モデルをクリックすると、Pixtral をさまざまなビジョンおよび言語タスクに適用する方法の例をさらに確認できます。
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
< source >( 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.configMistralCommonBackend
クラス transformers.MistralCommonBackend
< source >( 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
< source >( special_tokens_dict: dictreplace_extra_special_tokens: bool = True )
MistralCommonBackend は、設計上 add_special_tokens を実装していません。
この動作の実装を希望される場合は、Transformersまたはmistral-commonリポジトリでissueを作成してご依頼ください。
MistralCommonBackend は、設計上 add_special_tokens を実装していません。
この動作の実装を希望される場合は、Transformersまたはmistral-commonリポジトリでissueを作成してご依頼ください。
apply_chat_template
< source >( 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
< source >( 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
< source >( token_ids_0: listtoken_ids_1: None = None ) → list[int]
特殊トークンを追加して、シーケンスからモデルの入力を構築します。
このメソッドは、トークナイザーのmodeに基づいて入力を動的に構築します。
"test": seq0 [EOS]"finetuning": [BOS] seq0
convert_added_tokens
< source >( 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
< source >( token_ids_0: listtoken_ids_1: None = None ) → list[int]
…
Transformersの実装に合わせて維持されています。
decode
< source >( 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
< source >( 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
< source >( 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をインスタンス化します。
MistralCommonBackend は、mistral-common がチャットテンプレートを使用しないため、get_chat_template を実装していません。
get_special_tokens_mask
< source >( token_ids_0: listtoken_ids_1: None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]
特殊トークンが追加されていないトークンリストからシーケンスIDを取得します。このメソッドは、トークナイザーのprepare_for_modelまたはencode_plusメソッドを使用して特殊トークンを追加する際に呼び出されます。
トークンからインデックスへの辞書として語彙を返します。
これは有損変換です。部分的な UTF-8 バイトシーケンスが � に変換されるため、同じ文字列にデコードされるトークン ID が複数存在する可能性があります。
num_special_tokens_to_add
< source >( pair: typing.Literal[False] = False ) → int
特殊トークン付きでシーケンスをエンコードする際に追加されるトークンの数を返します。
これはダミー入力をエンコードし、追加されたトークンの数をチェックするため、効率的ではありません。この処理をトレーニングループ内に配置しないでください。
prepare_for_model
< source >( ids: listpair_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つのシーケンスのみサポートされるためです。 - 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:
-
input_ids — モデルに与えるトークン 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
< source >( save_directory: str | os.PathLiketokenizer_config: dictfilename_prefix: str | Nonesave_jinja_files: bool )
MistralCommonBackend は、mistral-common がチャットテンプレートを使用しないため、save_chat_templates を実装していません。
save_pretrained
< source >( 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)が生成されます。
MistralCommonBackend は、設計上 save_vocabulary を実装していません。
これは、mistral-commonが1つのトークナイザーファイルで構成されているためです。語彙を保存したい場合は、代わりにsave_pretrainedメソッドの使用をご検討ください。
tokenize
< source >( 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
< source >( ids: listpair_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
< source >( config: PixtralVisionConfig )
パラメータ
- config (PixtralVisionConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
…
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( pixel_values: Tensorimage_sizes: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.FloatTensor)
パラメータ
- 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.FloatTensor)
torch.FloatTensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)または BaseModelOutputWithPooling。設定(PixtralVisionConfig)と入力に応じて、さまざまな要素で構成されます。
PixtralVisionModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
last_hidden_state (
torch.FloatTensor、shape(batch_size, sequence_length, hidden_size)) — モデルの最終層の出力における隠れ状態のシーケンス。pooler_output (
torch.FloatTensor、shape(batch_size, hidden_size)) — 補助事前学習タスクに使用される層をさらに通して処理された後、シーケンスの最初のトークン(分類トークン)の最終層の隠れ状態。例えば、BERT 系のモデルでは、線形層と tanh 活性化関数を経て処理された後の分類トークンを返します。この線形層の重みは、事前学習中の次文予測(分類)目的から学習されます。hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返されます)—torch.FloatTensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます)—torch.FloatTensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
PixtralImageProcessor
クラス transformers.PixtralImageProcessor
< source >( **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
< source >( 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
< source >( **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
< source >( 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
< source >( 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__
< source >( 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_tensors (
strまたは TensorType, 省略可) — 設定すると、特定のフレームワークのテンソルを返します。使用可能な値は以下の通りです:'pt': PyTorchのtorch.Tensorオブジェクトを返します。'np': NumPyのnp.ndarrayオブジェクトを返します。
- **kwargs (ProcessingKwargs、任意) — 各モダリティ(テキスト、画像、動画、音声)の追加処理オプション。モデル固有のパラメータは上記にリストされています。サポートされている引数の完全なリストについては、TypedDictクラスを参照してください。