Transformers documentation

MiniCPM-V

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

このモデルは2025年9月16日にHF papersで公開され、2026年4月28日にHugging Face Transformersに貢献されました。

SDPA FlashAttention

MiniCPM-V

MiniCPM-V は、OpenBMB によって開発された、効率的なマルチモーダル大規模言語モデルのシリーズです。MiniCPM-V 4.6 のアーキテクチャは、SigLIP ビジョンエンコーダーとウィンドウアテンションマージャー、および Qwen3.5 言語モデルバックボーンを使用し、4x と 16x のビジュアルダウンサンプリングモードの両方をサポートしています。

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

使用例

Pipeline による推論

from transformers import pipeline

messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "image",
                "image": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bee.jpg",
            },
            {"type": "text", "text": "Describe this image."},
        ],
    },
]

pipe = pipeline("image-text-to-text", model="openbmb/MiniCPM-V-4_6")
outputs = pipe(text=messages, max_new_tokens=50, return_full_text=False)
outputs[0]["generated_text"]

単一画像での推論

モデルは、チャット用の特定のプロンプト形式で学習されています。プロンプトを正しくフォーマットするには、processor.apply_chat_template(my_conversation_dict) を使用してください。

from transformers import AutoProcessor, AutoModelForImageTextToText

model_checkpoint = "openbmb/MiniCPM-V-4_6"
processor = AutoProcessor.from_pretrained(model_checkpoint)
model = AutoModelForImageTextToText.from_pretrained(model_checkpoint, device_map="auto")

messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
            {"type": "text", "text": "Describe this image."},
        ],
    }
]

inputs = processor.apply_chat_template(
    messages, add_generation_prompt=True, tokenize=True,
    return_dict=True, return_tensors="pt",
).to(model.device, dtype=model.dtype)

output = model.generate(**inputs, max_new_tokens=100)
decoded_output = processor.decode(output[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True)
print(decoded_output)

ダウンサンプリングモード

MiniCPM-V 4.6 は、2 つのビジュアルダウンサンプリングモードをサポートしています:

  • 16x(デフォルト): より積極的なダウンサンプリングにより、視覚トークン数が減少し、推論が高速になります。
  • 4x: ダウンサンプリングの回数が少なく、視覚トークンが多いため、細部が重要なタスクに適しています。

processor_kwargs および model.generate に downsample_mode を渡すことで、ランタイム時にダウンサンプリングモードを変更できます。

inputs = processor.apply_chat_template(
    messages, add_generation_prompt=True, tokenize=True,
    return_dict=True, return_tensors="pt",
    processor_kwargs={"downsample_mode": "4x"},
).to(model.device, dtype=model.dtype)

output = model.generate(**inputs, max_new_tokens=100, downsample_mode="4x")

思考モード

モデルは、チャットテンプレート内のenable_thinkingによって制御される思考モードをサポートしています。有効にすると、モデルは最終的な回答を提示する前に内部の推論を生成します。

inputs = processor.apply_chat_template(
    messages, add_generation_prompt=True, tokenize=True,
    return_dict=True, return_tensors="pt",
    enable_thinking=True,
).to(model.device, dtype=model.dtype)

output = model.generate(**inputs, max_new_tokens=1024)

思考を無効にするには(評価時のデフォルト):

inputs = processor.apply_chat_template(
    messages, add_generation_prompt=True, tokenize=True,
    return_dict=True, return_tensors="pt",
    enable_thinking=False,
).to(model.device, dtype=model.dtype)

画像処理バックエンド

MiniCPM-V 4.6 は、2 つの画像処理バックエンドを提供します:

  • torchvision(デフォルト): torchvision.transforms を使用して画像のリサイズを行います。
  • pil: PIL.Image.resizeを使用し、元の実装と一致します。

PILバックエンドを使用するには:

from transformers import AutoProcessor, AutoImageProcessor

processor = AutoProcessor.from_pretrained(model_checkpoint)
processor.image_processor = AutoImageProcessor.from_pretrained(model_checkpoint, backend="pil")

動画推論

MiniCPM-V 4.6 は、動画の理解に対応しています。

messages = [
    {
        "role": "user",
        "content": [
            {"type": "video", "video": "path/to/video.mp4"},
            {"type": "text", "text": "Describe what happens in this video."},
        ],
    }
]

inputs = processor.apply_chat_template(
    messages, add_generation_prompt=True, tokenize=True,
    return_dict=True, return_tensors="pt",
).to(model.device, dtype=model.dtype)

output = model.generate(**inputs, max_new_tokens=200)
decoded_output = processor.decode(output[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True)
print(decoded_output)

レンダリング済みのプロンプト文字列が既に手元にある場合は、代わりに processor(text=..., videos=[...]) を直接呼び出すことができます。

MiniCPMV4_6Config

クラス transformers.MiniCPMV4_6Config

< >

( 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 = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonevision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneinsert_layer_id: int = 6image_size: int = 448drop_vision_last_layer: bool = Falseimage_token_id: int | None = Nonevideo_token_id: int | None = Nonetie_word_embeddings: bool = Falsedownsample_mode: str = '16x'merge_kernel_size: tuple[int, int] | list[int] = (2, 2)merger_times: int = 1 )

パラメータ

  • text_config (Union[dict, ~configuration_utils.PreTrainedConfig]、省略可) — テキストバックボーンの設定オブジェクトまたは辞書。
  • vision_config (Union[dict, ~configuration_utils.PreTrainedConfig]、任意) — ビジョンバックボーンの config オブジェクトまたは辞書です。
  • insert_layer_id (int、任意、デフォルトは 6) — ウィンドウアテンションマージャーが適用されるビジョンエンコーダーのレイヤーインデックス。
  • image_size (int、任意、デフォルト値は 448) — 画像前処理のベース解像度。
  • drop_vision_last_layer (bool、任意、デフォルトはFalse) — ビジョンエンコーダーの最終層を削除するかどうか。
  • image_token_id (int, 任意) — 画像プレースホルダーとして使用されるトークンIDです。
  • video_token_id (int, 省略可) — 動画プレースホルダーとして使用されるトークンIDです。
  • tie_word_embeddings (bool、任意、デフォルトは False) — モデルの tied_weights_keys マッピングに従って重み埋め込みを共有するかどうかを指定します。
  • downsample_mode (str、任意、デフォルトは"16x") — ビジュアルトークンのダウンサンプリング比率。"4x"の場合、トークン数を4倍多く保持します。
  • merge_kernel_size (tuple[int, int]、任意、デフォルトは (2, 2)) — Merger で隣接する視覚パッチをマージするためのカーネルサイズ (h, w)。
  • merger_times (int、省略可能、デフォルトは 1) — Merger における反復マージのラウンド数です。

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

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

MiniCPMV4_6VisionConfig

クラス transformers.MiniCPMV4_6VisionConfig

< >

( 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 = 768intermediate_size: int = 3072num_hidden_layers: int = 12num_attention_heads: int = 12num_channels: int = 3image_size: int | list[int] | tuple[int, int] = 224patch_size: int | list[int] | tuple[int, int] = 16hidden_act: str = 'gelu_pytorch_tanh'layer_norm_eps: float = 1e-06attention_dropout: float | int = 0.0insert_layer_id: int = 6window_kernel_size: tuple[int, int] | list[int] = (2, 2) )

パラメータ

  • hidden_size (int、任意、デフォルトは 768) — 隠れ表現の次元数。
  • intermediate_size (int、任意、デフォルトは3072) — MLP 表現の次元数。
  • num_hidden_layers (int、任意、デフォルトは 12) — Transformer デコーダーの隠れ層の数。
  • num_attention_heads (int、任意、デフォルトは12) — Transformerデコーダーの各アテンション層におけるアテンションヘッドの数。
  • num_channels (int、任意、デフォルトは3) — 入力チャネル数。
  • image_size (Union[int, list[int], tuple[int, int]]、任意、デフォルトは224) — 各画像のサイズ(解像度)。
  • patch_size (Union[int, list[int], tuple[int, int]]、任意、デフォルトは16) — 各パッチのサイズ(解像度)です。
  • hidden_act (str、任意、デフォルトは gelu_pytorch_tanh) — デコーダーで使用する非線形活性化関数(関数または文字列)です。例えば、"gelu"、 "relu"、"silu" などです。
  • layer_norm_eps (float、任意、デフォルトは 1e-06) — レイヤーノーマル層で使用する epsilon です。
  • attention_dropout (Union[float, int]、任意、デフォルトは 0.0) — アテンション確率のドロップアウト率です。
  • insert_layer_id (int、任意、デフォルトは 6) — ウィンドウアテンションマージャーが適用されるビジョンエンコーダーのレイヤーインデックス。
  • window_kernel_size (tuple[int, int]、任意、デフォルトは (2, 2)) — 中間のウィンドウアテンションマージャーのウィンドウサイズ (h, w)。

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

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

MiniCPMV4_6Model

クラス transformers.MiniCPMV4_6Model

< >

( config: MiniCPMV4_6Config )

パラメータ

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

MiniCPMV4_6モデルは、ビジョンバックボーンと、言語モデリングヘッドを備えない言語モデルで構成されています。

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: typing.Optional[torch.Tensor] = Nonetarget_sizes: typing.Optional[torch.IntTensor] = Nonepixel_values_videos: typing.Optional[torch.Tensor] = Nonetarget_sizes_videos: typing.Optional[torch.IntTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: list[torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = Nonedownsample_mode: str | None = Nonemm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPast or tuple(torch.Tensor)

パラメータ

  • input_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。

    インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。

    入力IDとは何ですか?

  • pixel_values (torch.Tensor, 任意) — NaViT形式でパッキングされた画像のピクセル値パッチ。
  • target_sizes (torch.IntTensor, 任意) — 各画像の高さと幅(パッチ単位)。
  • pixel_values_videos (torch.Tensor、任意) — 動画フレームのピクセル値パッチ、NaViT形式でパックされています。
  • target_sizes_videos (torch.IntTensor, 任意) — 各動画フレームの高さと幅(パッチ単位)。
  • attention_mask (torch.Tensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

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

  • position_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — 各入力シーケンスのトークンが位置埋め込み内で占める位置のインデックス。範囲 [0, config.n_positions - 1].

    ポジションIDとは?

  • past_key_values (list[torch.Tensor], 省略可) — 逐次デコードを高速化するために使用できる、事前計算された隠れ状態(自己アテンションブロックおよびクロスアテンションブロックのキーとバリュー)。通常、これはデコードの以前の段階でモデルが返した past_key_values であり、 use_cache=True または config.use_cache=True.

    入力として許可されるのは Cache インスタンスのみです。kv cache ガイドを参照してください。 past_key_values が渡されない場合、デフォルトで DynamicCache が初期化されます。

    モデルは、入力として与えられたのと同じキャッシュ形式を出力します。

    past_key_values を使用する場合、すべての input_ids(形状 (batch_size, sequence_length))ではなく、このモデルに過去のキー・バリュー状態が与えられていない未処理の input_ids(形状 (batch_size, unprocessed_length))のみを入力することになります。

  • inputs_embeds (torch.Tensor、形状 (batch_size, sequence_length, hidden_size)、任意) — input_ids を渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込み参照行列よりも、input_ids のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。
  • use_cache (bool、任意) — True に設定すると、past_key_values のキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_values を参照)。
  • downsample_mode (str, 省略可) — "4x" を指定すると、視覚トークンを 4 倍保持します。デフォルトの "16x" では、完全なマージが適用されます。
  • mm_encoder_outputs (dict[str, ~modeling_outputs.BaseModelOutputWithPooling], 省略可) — キーがサポートされているモダリティ、値がそのモダリティのエンコード済み出力である辞書。各エンコード済み出力は、(pooler_output, 省略可: last_hidden_states, 省略可: hidden_states, 省略可: attentions) pooler_output (形状 (batch_size, sequence_length, hidden_size), 省略可) からなるタプルです。pooler_output は、エンコーダーのマルチモーダル特徴量をテキスト埋め込みにマージしたシーケンスです。

戻り値

BaseModelOutputWithPast または tuple(torch.Tensor)

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

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

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

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

    past_key_valuesが使用されている場合、出力されるのは、形状(batch_size, 1, hidden_size)のシーケンスの最後の隠れ状態のみです。

  • past_key_values (Cache、任意、use_cache=True が渡された場合または config.use_cache=True の場合に返されます) — Cache のインスタンスです。詳細については、kv cache ガイドを参照してください。

    自己アテンションブロック(および config.is_encoder_decoder=True の場合、クロスカレンションブロック)の事前計算済みヒドゥンステート(キーとバリュー)を保持します。これらは逐次デコーディングを高速化するために使用できます(past_key_values 入力参照)。

  • 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後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

get_image_features

< >

( pixel_values: Tensortarget_sizes: IntTensordownsample_mode: str | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)

パラメータ

  • pixel_values (torch.Tensor、形状 (batch_size, num_channels, image_size, image_size)) — 入力画像に対応するテンソルです。ピクセル値は MiniCPMV4_6ImageProcessor を使用して取得できます。詳細は MiniCPMV4_6ImageProcessor.call() を参照してください(MiniCPMV4_6Processor は画像の処理に MiniCPMV4_6ImageProcessor を使用します)。
  • target_sizes (torch.IntTensor、shape (num_images, 2)) — 各画像の高さと幅(パッチ単位)。
  • downsample_mode (str, 省略可) — "4x" に設定すると、中間の vit_merger がスキップされ、各画像の視覚トークン数が 4× 多くなります。デフォルトの "16x" モードでは、完全なマージパイプラインが適用されます。

戻り値

BaseModelOutputWithPooling または tuple(torch.Tensor)

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

画像特徴の抽出:ビジュアルエンコーダー、インサートマージャー、その後MLPマージャー。

  • 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後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

MiniCPMV4_6ForConditionalGeneration

クラス transformers.MiniCPMV4_6ForConditionalGeneration

< >

( config: MiniCPMV4_6Config )

パラメータ

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

他のモダリティ(画像とテキストからテキストへの生成など)を条件としてトークンを生成するためのMinicpmv4 6モデル。

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: typing.Optional[torch.Tensor] = Nonetarget_sizes: typing.Optional[torch.IntTensor] = Nonepixel_values_videos: typing.Optional[torch.Tensor] = Nonetarget_sizes_videos: typing.Optional[torch.IntTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: list[torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonedownsample_mode: str | None = Nonemm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CausalLMOutputWithPast or tuple(torch.Tensor)

パラメータ

  • input_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。

    インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。

    入力IDとは何ですか?

  • pixel_values (torch.Tensor, 任意) — NaViT形式でパッキングされた画像のピクセル値パッチ。
  • target_sizes (torch.IntTensor, 任意) — 各画像の高さと幅(パッチ単位)。
  • pixel_values_videos (torch.Tensor、任意) — 動画フレームのピクセル値パッチ、NaViT形式でパックされています。
  • target_sizes_videos (torch.IntTensor, 任意) — 各動画フレームの高さと幅(パッチ単位)。
  • attention_mask (torch.Tensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

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

  • position_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — 各入力シーケンスのトークンが位置埋め込み内で占める位置のインデックス。範囲 [0, config.n_positions - 1].

    ポジションIDとは?

  • past_key_values (list[torch.Tensor], 省略可) — 逐次デコードを高速化するために使用できる、事前計算された隠れ状態(自己アテンションブロックおよびクロスアテンションブロックのキーとバリュー)。通常、これはデコードの以前の段階でモデルが返した past_key_values であり、 use_cache=True または config.use_cache=True.

    入力として許可されるのは Cache インスタンスのみです。kv cache ガイドを参照してください。 past_key_values が渡されない場合、デフォルトで DynamicCache が初期化されます。

    モデルは、入力として与えられたのと同じキャッシュ形式を出力します。

    past_key_values を使用する場合、すべての input_ids(形状 (batch_size, sequence_length))ではなく、このモデルに過去のキー・バリュー状態が与えられていない未処理の input_ids(形状 (batch_size, unprocessed_length))のみを入力することになります。

  • inputs_embeds (torch.Tensor、形状 (batch_size, sequence_length, hidden_size)、任意) — input_ids を渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込み参照行列よりも、input_ids のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。
  • labels (torch.LongTensor、shape (batch_size, sequence_length)、任意) — マスク言語モデリング損失を計算するためのラベルです。インデックスは [0, ..., config.vocab_size] の範囲内であるか、-100 である必要があります(input_ids の docstring を参照)。インデックスが -100 に設定されたトークンは無視(マスク)され、損失は [0, ..., config.vocab_size] の範囲内のラベルを持つトークンに対してのみ計算されます。
  • use_cache (bool、任意) — True に設定すると、past_key_values のキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_values を参照)。
  • downsample_mode (str, 省略可) — "4x" を指定すると、視覚トークンを 4 倍保持します。デフォルトの "16x" では、完全なマージが適用されます。
  • mm_encoder_outputs (dict[str, ~modeling_outputs.BaseModelOutputWithPooling], 省略可) — キーがサポートされているモダリティ、値がそのモダリティのエンコード済み出力である辞書。各エンコード済み出力は、(pooler_output, 省略可: last_hidden_states, 省略可: hidden_states, 省略可: attentions) pooler_output (形状 (batch_size, sequence_length, hidden_size), 省略可) からなるタプルです。pooler_output は、エンコーダーのマルチモーダル特徴量をテキスト埋め込みにマージしたシーケンスです。

戻り値

CausalLMOutputWithPast または tuple(torch.Tensor)

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

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

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

  • loss (torch.Tensor、形状 (1,)、任意、labels が指定された場合に返されます) — 言語モデリングの損失(次のトークンの予測用)。

  • logits (torch.Tensor、形状 (batch_size, sequence_length, config.vocab_size)) — 言語モデリングヘッドの予測スコア(SoftMax 適用前の各語彙トークンのスコア)。

  • past_key_values (Cache、任意、use_cache=True が渡された場合または config.use_cache=True の場合に返されます) — Cache のインスタンスです。詳細については、kv cache ガイドを参照してください。

    逐次デコーディングを高速化するために使用できる(past_key_values 入力参照)、事前計算済みの隠れ状態(自己注意ブロックのキーとバリュー)が含まれます。

  • 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後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

例:

>>> from PIL import Image
>>> from transformers import AutoProcessor, MiniCPMV4_6ForConditionalGeneration

>>> model = MiniCPMV4_6ForConditionalGeneration.from_pretrained("openbmb/MiniCPM-V-4.6")
>>> processor = AutoProcessor.from_pretrained("openbmb/MiniCPM-V-4.6")

>>> messages = [
...     {
...         "role": "user", "content": [
...             {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
...             {"type": "text", "text": "Where is the cat standing?"},
...         ]
...     },
... ]

>>> inputs = processor.apply_chat_template(
...     messages,
...     tokenize=True,
...     return_dict=True,
...     return_tensors="pt",
...     add_generation_prompt=True
... )
>>> # Generate
>>> generate_ids = model.generate(**inputs)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True)[0]

get_image_features

< >

( *args**kwargs ) → BaseModelOutputWithPooling or tuple(torch.Tensor)

戻り値

BaseModelOutputWithPooling または tuple(torch.Tensor)

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

画像特徴の抽出:ビジュアルエンコーダー、インサートマージャー、その後MLPマージャー。

  • 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後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

例:

>>> from PIL import Image
>>> from transformers import AutoProcessor, MiniCPMV4_6ForConditionalGeneration

>>> model = MiniCPMV4_6ForConditionalGeneration.from_pretrained("openbmb/MiniCPM-V-4.6")
>>> processor = AutoProcessor.from_pretrained("openbmb/MiniCPM-V-4.6")

>>> messages = [
...     {
...         "role": "user", "content": [
...             {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
...             {"type": "text", "text": "Where is the cat standing?"},
...         ]
...     },
... ]

>>> inputs = processor.apply_chat_template(
...     messages,
...     tokenize=True,
...     return_dict=True,
...     return_tensors="pt",
...     add_generation_prompt=True
... )
>>> # Generate
>>> generate_ids = model.generate(**inputs)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True)[0]

MiniCPMV4_6Processor

クラス transformers.MiniCPMV4_6Processor

< >

( image_processor = Nonevideo_processor = Nonetokenizer = Nonechat_template = None**kwargs )

パラメータ

  • image_processor (MiniCPMV4_6ImageProcessor) — 画像プロセッサは必須の入力です。
  • video_processor (MiniCPMV4_6VideoProcessor) — ビデオプロセッサは必須の入力です。
  • tokenizer (TokenizersBackend) — トークナイザーは必須の入力です。
  • chat_template (str) — チャット内のメッセージのリストをトークン化可能な文字列に変換するための Jinja テンプレート。

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

MiniCPMV4_6Processor は、MiniCPMV4_6ImageProcessor、MiniCPMV4_6VideoProcessor、および TokenizersBackend のすべての機能を提供します。詳細については、~MiniCPMV4_6ImageProcessor、~MiniCPMV4_6VideoProcessor、および ~TokenizersBackend を参照してください。

__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] = None**kwargs: *<class 'transformers.models.minicpmv4_6.processing_minicpmv4_6.MiniCPMV4_6ProcessorKwargs'> )

パラメータ

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]], optional) — 前処理する画像です。ピクセル値が0から255の範囲にある単一の画像またはバッチの画像を想定しています。ピクセル値が0から1の範囲にある画像を渡す場合は、do_rescale=Falseを設定してください。
  • text (Union[str, list[str], list[list[str]]], optional) — The sequence or batch of sequences to be encoded. Each sequence can be a string or a list of strings (pretokenized string). If you pass a pretokenized input, set is_split_into_words=True to avoid ambiguity with batched inputs.
  • 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]]], optional) — 前処理対象の動画です。ピクセル値が 0 から 255 の範囲にある、単一の動画またはバッチの動画を想定しています。ピクセル値が 0 から 1 の範囲にある動画を渡す場合は、do_rescale=False を設定してください。
  • return_mm_token_type_ids (bool, kwargs) — マルチモーダルプレースホルダトークンの位置を示すマルチモーダルトークンタイプIDを返すかどうか。
  • return_text_replacement_offsets (bool, kwargs) — 各マルチモーダルプレースホルダーとその置換文字列の文字オフセットを返すかどうかを指定します。
  • use_image_id (bool、kwargs、任意) — 各画像プレースホルダーの前に、画像IDタグ(<image_id>N</image_id>)を付加するかどうか。未設定の場合、画像プロセッサのuse_image_idの値がデフォルトとして使用されます。
  • return_tensors (str または [~utils.TensorType], 、省略可) — 設定すると、特定のフレームワークのテンソルを返します。受け入れられる値は以下の通りです:
    • ‘pt’: PyTorch の torch.Tensor オブジェクトを返します。
    • ‘np’: NumPy の np.ndarray オブジェクトを返します。
  • **kwargs ([ProcessingKwargs], optional) — 各モダリティ(テキスト、画像、動画、音声)の追加処理オプション。モデル固有のパラメータは上記にリストされています。サポートされている引数の完全なリストについては、TypedDictクラスを参照してください。

MiniCPMV4_6ImageProcessor

class transformers.MiniCPMV4_6ImageProcessor

< >

( **kwargs: *<class 'transformers.models.minicpmv4_6.image_processing_minicpmv4_6.MiniCPMV4_6ImageProcessorKwargs'> )

パラメータ

  • do_convert_rgb (bool、kwargs、任意、デフォルトは True) — 画像を RGB に変換するかどうか。
  • do_resize (bool, kwargs, 任意、デフォルトは True) — 画像をリサイズするかどうか。
  • size (Annotated[int | list[int] | tuple[int, …] | dict[str, int] | None, None], kwargs) — モデルへの最大入力次元を記述します。
  • default_to_square (bool、kwargs、任意、デフォルトは True) — size が整数の場合、リサイズ時に正方形の画像をデフォルトとするかどうか。
  • 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, optional, デフォルトは 0.00392156862745098) — do_rescale が True に設定されている場合、画像をリスケールするための係数。
  • do_normalize (bool, kwargs, optional, デフォルトは True) — 画像を正規化するかどうかを指定します。
  • image_mean (Union[float, list[float], tuple[float, …]]、kwargs、optional、デフォルトは [0.5, 0.5, 0.5]) — 正規化に使用する画像の平均値。do_normalize が True に設定されている場合のみ有効です。
  • image_std (Union[float, list[float], tuple[float, …]]、kwargs、optional、デフォルトは [0.5, 0.5, 0.5]) — 正規化に使用する画像の標準偏差。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, optional) — 入力画像のチャネル次元の形式です。設定されていない場合、入力画像からチャネル次元の形式が推測されます。以下のいずれかになります:
    • “channels_first” または ChannelDimension.FIRST: (num_channels, height, width) 形式の画像。
    • “channels_last” または ChannelDimension.LAST: (高さ, 幅, チャネル数) 形式の画像。
    • “none”またはChannelDimension.NONE: (高さ, 幅)形式の画像。
  • 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, optional) — 入力内の各画像に使用される画像トークンの数です。 後方互換性のために追加されましたが、将来のモデルではプロセッサの属性として設定されるべきです。
  • max_slice_nums (int, kwargs, optional, デフォルト値は 9) — 高解像度画像を分割する際の最大スライス数。
  • scale_resolution (int、kwargs、任意、デフォルト値は 448) — 個別のスライスに対する目標解像度。
  • patch_size (int、kwargs、任意、デフォルト値は 14) — ビジョンエンコーダーの空間パッチサイズです。
  • slice_mode (bool、kwargs、任意、デフォルトは True) — 解像度を高めるために画像を複数のスライスに分割するかどうか。
  • downsample_mode (str、kwargs、optional、デフォルトは “16x”) — ビジュアルトークンのダウンサンプリングモードです。“16x” は完全なマージを適用し、“4x” はトークンを 4 倍多く保持します。
  • use_image_id (bool、kwargs、任意、デフォルトは True) — 各画像プレースホルダーの前に、画像IDタグ(<image_id>N</image_id>)を付加するかどうかを指定します。この引数は画像処理パイプライン自体ではなく、プレースホルダーの生成を行う Processor によって使用されます。

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

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.minicpmv4_6.image_processing_minicpmv4_6.MiniCPMV4_6ImageProcessorKwargs'> ) → ~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, optional) — 画像を RGB に変換するかどうか。
  • do_resize (bool, kwargs, optional) — 画像をリサイズするかどうかを指定します。
  • size (Annotated[int | list[int] | tuple[int, …] | dict[str, int] | None, None], kwargs) — モデルへの最大入力次元を記述します。
  • default_to_square (bool, kwargs, optional) — が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) — 画像のリサイズ時に使用するリサンプリングフィルタです。PILImageResampling の列挙型のいずれかを使用できます。do_resize が True に設定されている場合のみ、効果が表れます。
  • do_rescale (bool, kwargs, optional) — 画像をリスケールするかどうかを指定します。
  • rescale_factor (float, kwargs, optional) — 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, optional) — 入力画像のチャネル次元の形式です。設定されていない場合、入力画像からチャネル次元の形式が推測されます。以下のいずれかになります:
    • “channels_first” または ChannelDimension.FIRST: (num_channels, height, width) 形式の画像。
    • “channels_last” または ChannelDimension.LAST: (高さ, 幅, チャネル数) 形式の画像。
    • “none”またはChannelDimension.NONE: (高さ, 幅)形式の画像。
  • 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, optional) — 入力内の各画像に使用される画像トークンの数です。 後方互換性のために追加されましたが、将来のモデルではプロセッサの属性として設定されるべきです。
  • max_slice_nums (int, kwargs, optional, デフォルト値は 9) — 高解像度画像を分割する際の最大スライス数。
  • scale_resolution (int、kwargs、任意、デフォルト値は 448) — 個別のスライスに対する目標解像度。
  • patch_size (int、kwargs、任意、デフォルト値は 14) — ビジョンエンコーダーの空間パッチサイズです。
  • slice_mode (bool、kwargs、任意、デフォルトは True) — 解像度を高めるために画像を複数のスライスに分割するかどうか。
  • downsample_mode (str、kwargs、optional、デフォルトは “16x”) — ビジュアルトークンのダウンサンプリングモードです。“16x” は完全なマージを適用し、“4x” はトークンを 4 倍多く保持します。
  • use_image_id (bool、kwargs、任意、デフォルトは True) — 各画像プレースホルダーの前に、画像IDタグ(<image_id>N</image_id>)を付加するかどうかを指定します。この引数は画像処理パイプライン自体ではなく、プレースホルダーの生成を行う Processor によって使用されます。

戻り値

~image_processing_base.BatchFeature

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

MiniCPMV4_6ImageProcessorPil

class transformers.MiniCPMV4_6ImageProcessorPil

< >

( **kwargs: *<class 'transformers.models.minicpmv4_6.image_processing_pil_minicpmv4_6.MiniCPMV4_6ImageProcessorPilKwargs'> )

パラメータ

  • **kwargs (MiniCPMV4_6ImageProcessorPilKwargs、任意) — 追加の画像前処理オプションです。モデル固有の kwargs は上記にリストされています。サポートされている引数の完全なリストについては、TypedDict クラスを参照してください。

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

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.minicpmv4_6.image_processing_pil_minicpmv4_6.MiniCPMV4_6ImageProcessorPilKwargs'> ) → ~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 を設定してください。
  • return_tensors (str または TensorType、省略可) — 'pt' に設定されている場合はスタックされたテンソルを返し、それ以外の場合はテンソルのリストを返します。
  • **kwargs (MiniCPMV4_6ImageProcessorPilKwargs、任意) — 追加の画像前処理オプションです。モデル固有の kwargs は上記にリストされています。サポートされている引数の完全なリストについては、TypedDict クラスを参照してください。

戻り値

~image_processing_base.BatchFeature

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

MiniCPMV4_6VideoProcessor

class transformers.MiniCPMV4_6VideoProcessor

< >

( **kwargs: *<class 'transformers.models.minicpmv4_6.video_processing_minicpmv4_6.MiniCPMV4_6VideoProcessorKwargs'> )

パラメータ

  • do_convert_rgb (bool、kwargs、任意、デフォルトは True) — 画像を RGB に変換するかどうか。
  • do_resize (bool, kwargs, 任意、デフォルトは True) — 画像をリサイズするかどうか。
  • size (Annotated[int | list[int] | tuple[int, …] | dict[str, int] | None, None], kwargs) — モデルへの最大入力次元を記述します。
  • default_to_square (bool、kwargs、任意、デフォルトは True) — size が整数の場合、リサイズ時に正方形の画像をデフォルトとするかどうか。
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None]、kwargs、デフォルトは 3) — 画像のリサイズ時に使用するリサンプリングフィルタです。PILImageResampling の列挙型のいずれかを使用できます。do_resize が True に設定されている場合のみ、効果が表れます。
  • do_rescale (bool、kwargs、任意、デフォルトは True) — 画像をリスケールするかどうか。
  • rescale_factor (float, kwargs, optional, デフォルトは 0.00392156862745098) — do_rescale が True に設定されている場合、画像をリスケールするための係数。
  • do_normalize (bool, kwargs, optional, デフォルトは True) — 画像を正規化するかどうかを指定します。
  • image_mean (Union[float, list[float], tuple[float, …]]、kwargs、optional、デフォルトは [0.5, 0.5, 0.5]) — 正規化に使用する画像の平均値。do_normalize が True に設定されている場合のみ有効です。
  • image_std (Union[float, list[float], tuple[float, …]]、kwargs、optional、デフォルトは [0.5, 0.5, 0.5]) — 正規化に使用する画像の標準偏差。do_normalize が True に設定されている場合のみ有効です。
  • do_center_crop (bool, kwargs, optional) — 画像を中央クロップするかどうかを指定します。
  • do_pad (bool, kwargs, optional) — 画像をパディングするかどうか。パディングは、バッチ内の最大サイズに合わせるか、画像ごとに固定の正方形サイズに合わせるかのいずれかで行われます。正確なパディング戦略はモデルによって異なります。
  • crop_size (Annotated[int | list[int] | tuple[int, …] | dict[str, int] | None, None], kwargs) — center_crop を適用した後の出力画像のサイズ。
  • data_format (Union[str, ~image_utils.ChannelDimension]、kwargs、任意) — サポートされているのは ChannelDimension.FIRST のみです。slow processors との互換性のために追加されました。
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, optional) — 入力画像のチャネル次元の形式です。設定されていない場合、入力画像からチャネル次元の形式が推測されます。以下のいずれかになります:
    • “channels_first” または ChannelDimension.FIRST: (num_channels, height, width) 形式の画像。
    • “channels_last” または ChannelDimension.LAST: (高さ, 幅, チャネル数) 形式の画像。
    • “none”またはChannelDimension.NONE: (高さ, 幅)形式の画像。
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — 動画を処理するデバイスです。未設定の場合、入力動画からデバイスが推論されます。
  • do_sample_frames (bool、kwargs、任意、デフォルトは True) — 処理前に動画からフレームをサンプリングするか、動画全体を処理するかを指定します。
  • video_metadata (Annotated[~video_utils.VideoMetadata | dict | list[dict | ~video_utils.VideoMetadata] | list[list[dict | ~video_utils.VideoMetadata]] | None, None], kwargs) — 動画のメタデータ。総再生時間、fps、総フレーム数に関する情報を含みます。動画からのフレームサンプリングやタイムスタンプの計算に使用されます。動画を処理する前に手動でデコードしようとする場合を除き、メタデータは渡さないでください。
  • fps (Annotated[int | float | None, None], kwargs) — do_sample_frames=True の場合、1 秒あたりサンプリングするターゲットフレーム数。
  • num_frames (Annotated[int | None, None], kwargs) — do_sample_frames=True の場合、サンプリングするフレームの最大数。
  • return_metadata (bool、kwargs、optional、デフォルトは False) — 動画メタデータを返すかどうかを指定します。動画メタデータは、動画の長さ、fps、デコードバックエンドなどの情報を含むオブジェクトです。
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — 設定すると、特定のフレームワークのテンソルを返します。受け入れられる値は以下の通りです:
    • ‘pt’: PyTorch の torch.Tensor オブジェクトを返します。
    • ‘np’: NumPy の np.ndarray オブジェクトを返します。
  • max_num_frames (int, kwargs, optional, デフォルト値は 128) — 1 つの動画からサンプリングするメインフレームの最大数。
  • stack_frames (int, kwargs, optional、デフォルト値は 1) — スタックする 1 秒あたりのサブフレーム数。1 を指定すると、スタッキングが無効になります。
  • max_slice_nums (int, kwargs, optional, デフォルト値は 9) — 高解像度画像を分割する際の最大スライス数。
  • scale_resolution (int、kwargs、任意、デフォルト値は 448) — 個別のスライスに対する目標解像度。
  • patch_size (int、kwargs、任意、デフォルト値は 14) — ビジョンエンコーダーの空間パッチサイズです。
  • slice_mode (bool、kwargs、任意、デフォルトは True) — 解像度を高めるために画像を複数のスライスに分割するかどうか。
  • downsample_mode (str、kwargs、optional、デフォルトは “16x”) — ビジュアルトークンのダウンサンプリングモードです。“16x” は完全なマージを適用し、“4x” はトークンを 4 倍多く保持します。
  • use_image_id (bool、kwargs、任意、デフォルトは True) — 各画像プレースホルダーの前に、画像IDタグ(<image_id>N</image_id>)を付加するかどうかを指定します。この引数は画像処理パイプライン自体ではなく、プレースホルダーの生成を行う Processor によって使用されます。
  • **kwargs ([ProcessingKwargs], optional) — 各モダリティ(テキスト、画像、動画、音声)の追加処理オプション。モデル固有のパラメータは上記にリストされています。サポートされている引数の完全なリストについては、TypedDictクラスを参照してください。

MiniCPMV4_6VideoProcessorのビデオプロセッサを構築します。

preprocess

< >

( videos: 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]]]**kwargs: *<class 'transformers.processing_utils.VideosKwargs'> ) → ~image_processing_base.BatchFeature

パラメータ

  • 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 を設定してください。
  • 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、任意) — サイズが整数の場合、リサイズ時に正方形の画像をデフォルトとするかどうか。
  • 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_center_crop (bool, kwargs, optional) — 画像を中央クロップするかどうかを指定します。
  • do_pad (bool, kwargs, optional) — 画像をパディングするかどうかを指定します。パディングは、バッチ内の最大サイズに合わせるか、画像ごとに固定の正方形サイズに合わせるかのいずれかで行われます。具体的なパディング戦略はモデルによって異なります。
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — center_crop を適用した後の出力画像のサイズ。
  • 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) — 動画を処理するデバイスです。未設定の場合、入力動画からデバイスが推論されます。
  • do_sample_frames (bool、kwargs、任意) — 処理前に動画からフレームをサンプリングするか、動画全体を処理するかどうかを指定します。
  • video_metadata (Annotated[~video_utils.VideoMetadata | dict | list[dict | ~video_utils.VideoMetadata] | list[list[dict | ~video_utils.VideoMetadata]] | None, None], kwargs) — 動画のメタデータで、総再生時間、fps、総フレーム数に関する情報を含みます。動画からのフレームサンプリングやタイムスタンプの計算に使用されます。動画を処理する前に手動でデコードしようとしている場合を除き、メタデータは渡さないでください。
  • fps (Annotated[int | float | None, None], kwargs) — do_sample_frames=True の場合、1 秒あたりサンプリングするターゲットフレーム数。
  • num_frames (Annotated[int | None, None], kwargs) — do_sample_frames=True の場合、サンプリングするフレームの最大数。
  • return_metadata (bool、kwargs、optional) — 動画メタデータを返すかどうかを指定します。動画メタデータは、動画の長さ、fps、デコードバックエンドなどの情報を含むオブジェクトです。
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — 'pt' に設定されている場合はスタックされたテンソルを返し、それ以外の場合はテンソルのリストを返します。

戻り値

~image_processing_base.BatchFeature

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