Transformers documentation

EmbeddingGemma2

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

and get access to the augmented documentation experience

to get started

このモデルは2026年10月6日にHugging Face Transformersに貢献されました。

EmbeddingGemma2

概要

EmbeddingGemma 2 は、Google によって Gemma 4 アーキテクチャを基盤として構築されたマルチモーダル埋め込みモデルです。テキスト、画像、音声、動画を、それぞれ単独で、または同一の入力内で組み合わせて、クロスモーダル検索、意味的類似性、クラスタリング、分類のために、共有される 768 次元の稠密ベクトル空間にエンコードします。

主な機能:

  • 統合されたマルチモーダルベクトル空間。ビジョン(Gemma4VisionModel)とオーディオ(Gemma4AudioModel)のタワーは、Per-Layer Embeddings(PLE)を用いてフルアテンションとスライディングウィンドウアテンションを交互に適用する双方向テキストエンコーダー(EmbeddingGemma2TextModel)に射影されます。単一のモダリティ(text、image、audio、video)や、モダリティの組み合わせ(image + text、text + audio、image + audio、複数の画像、テキストとメディアの交互配置)は、いずれも単一の比較可能な埋め込みにマッピングされます。
  • マトリョーシカ表現学習 (MRL)。 EmbeddingGemma2Model は、線形ヘッドを通じて embedding_dim (768) に射影されたトークン表現を出力します。埋め込みは、より小さいプレフィックス (512、256、または 128) に切り詰め、品質の低下を最小限に抑えながら再正規化できます。
  • 設定可能なビジュアルおよびビデオの予算。 EmbeddingGemma2Processor では、画像またはフレームごとのソフトトークン予算({70, 140, 280, 560, 1120} 内の max_soft_tokens)と、ビデオのサンプリングレート(デフォルトでは fps=1、max_frames=32、overflow_strategy="uniform"、add_timestamps=False)を調整できます。
  • モダリティタワーの選択的読み込み。テキストのみまたは単一モダリティのデプロイメントでは、メモリ使用量を削減するために、未使用のビジョンまたはオーディオタワーをロード時に無効化できます(vision_config=None、audio_config=None)。

すべての元のEmbeddingGemmaチェックポイントは、EmbeddingGemmaコレクション内で確認できます。以下の例では、google/embeddinggemma-2識別子を使用しています。

使用例

文またはマルチモーダル埋め込みは、2つのステップで取得されます。last_hidden_stateのパディングされていないトークンに対してマスクを考慮した平均プーリングを行い、その後float32でL2正規化を実行します。Sentence Transformers(>=6.1.0)は、前処理、プロンプトの整形、平均プーリング、正規化を自動的に実行するため、推奨されるエントリポイントです。AutoModelを使用する場合は、processor.apply_chat_template(プレーンテキストの場合はAutoTokenizer)を使用し、last_hidden_stateを直接プーリングします。

テキスト検索(encode_query / encode_document)

Sentence Transformers
AutoModel
pip install -U sentence-transformers
from sentence_transformers import SentenceTransformer


model = SentenceTransformer("google/embeddinggemma-2")

queries = ["Which planet is known as the Red Planet?"]
documents = [
    "Venus is often called Earth's twin because of its similar size and proximity.",
    "Mars, known for its reddish appearance, is often referred to as the Red Planet.",
]

# encode_query and encode_document apply the "query" and "document" task prompts
query_embeddings = model.encode_query(queries)
document_embeddings = model.encode_document(documents)
print(query_embeddings.shape, document_embeddings.shape)
# (1, 768) (2, 768)

# (1, 2) matrix of cosine similarities
print(model.similarity(query_embeddings, document_embeddings))

タスクプロンプト

モデルは、入力に前置される任意のタスクプロンプト(平均プーリングにも含まれる)をサポートしていますが、プロンプトは必須ではなく、プロンプトなしでも動作します。最適な設定は下流のドメインやモダリティの組み合わせによって異なるため、特定のタスクに対してプロンプトあり・なしの両方を評価することをお勧めします。Sentence Transformers は、以下のカタログを config_sentence_transformers.json に同梱しています。そのため、prompt_name を渡すか、query と document にそれぞれ対応する encode_query / encode_document を使用してください。AutoModel を使用する場合は、プロンプトを apply_chat_template 内の system メッセージとして渡すか、プレーンテキストの先頭に前置してください。

from sentence_transformers import SentenceTransformer


model = SentenceTransformer("google/embeddinggemma-2")

embeddings = model.encode("How to train a neural network", prompt_name="Classification")
prompt_nameプロンプト
query, Retrieval-query, Retrieval, Reranking, BitextMining, SearchQuerytask: search result \| query:
document, Document, Retrieval-documenttitle: none \| text:
Classification, MultilabelClassificationtask: classification \| query:
Clusteringtask: clustering \| query:
CodeRetrieval, InstructionRetrievaltask: code retrieval \| query:
FactCheckingtask: fact checking \| query:
QuestionAnsweringtask: question answering \| query:
STS, SentenceSimilarity, PairClassification, Summarizationtask: sentence similarity \| query:

Matryoshka埋め込み

Embedding head は Matryoshka Representation Learning で学習されるため、768 次元の embedding をより短いプレフィックス (512、256、または 128) にスライスして再正規化できます。これによりインデックスが縮小し、検索が高速化され、ランキング品質は概ね維持されます。クエリとドキュメントは同じ次元に切り詰め、スライス後は必ず正規化してください。Sentence Transformers では truncate_dim はすでに正規化済みの出力をスライスするため、プレフィックスはもはや単位ベクトルではなくなります。

Sentence Transformers
AutoModel
import torch.nn.functional as F
from sentence_transformers import SentenceTransformer


# truncate_dim can also be set once at load time: SentenceTransformer(..., truncate_dim=256)
model = SentenceTransformer("google/embeddinggemma-2")

queries = ["Which planet is known as the Red Planet?"]
documents = [
    "Venus is often called Earth's twin because of its similar size and proximity.",
    "Mars, known for its reddish appearance, is often referred to as the Red Planet.",
]

query_embeddings = model.encode_query(queries, truncate_dim=256, convert_to_tensor=True)
document_embeddings = model.encode_document(documents, truncate_dim=256, convert_to_tensor=True)

query_embeddings = F.normalize(query_embeddings.float(), p=2, dim=-1)
document_embeddings = F.normalize(document_embeddings.float(), p=2, dim=-1)

# (1, 256) and (2, 256): a 3x smaller index than the full 768 dimensions
print(query_embeddings.shape, document_embeddings.shape)

# the Mars document still ranks first
print(model.similarity(query_embeddings, document_embeddings))

マルチモーダル埋め込み

テキスト、画像、音声、動画はすべて同じ768次元のベクトル空間にマッピングされるため、クロスモーダル検索(テキストクエリで画像、音声、動画を検索する)や、複合マルチモーダル検索(複数のモーダルを単一のクエリまたはドキュメントの埋め込みに統合する)が可能になります。

Sentence Transformersでは、マルチモーダル入力は"text"、"image"、"audio"、"video"をキーとする辞書として渡されます(各値は単一のアイテムまたはアイテムのリストであることができます)。AutoModelを使用する場合は、チャット形式のメッセージリストをprocessor.apply_chat_template(..., tokenize=True, return_dict=True, return_tensors="pt")に渡します。

1. 単一モダリティおよびクロスモダリティ検索

各モダリティ(text、image、audio、video)は、それぞれ独立して埋め込みベクトル化でき、コサイン類似度によって他の任意のモダリティと直接比較できます。

Sentence Transformers
AutoModel
from sentence_transformers import SentenceTransformer


model = SentenceTransformer("google/embeddinggemma-2")
IMAGE = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"

# Embed each modality on its own into the shared (768,) space
candidates = model.encode(
    [
        {"text": "A photo of a cat"},
        {"image": IMAGE},
        {"audio": "path/to/audio.wav"},
        {"video": "path/to/video.mp4"},
    ]
)
print(candidates.shape)
# (4, 768)

# Cross-modal retrieval: rank text, image, audio, and video candidates against a text query
query = model.encode_query(["A fluffy cat outdoors"])
print(model.similarity(query, candidates))
# tensor([[...]]) of shape (1, 4)

2. 複合マルチモーダル埋め込み(1つの入力に複数のモダリティを含む)

複数のモダリティ、または同一モダリティの複数のアイテムを、image + audioのような純粋にテキスト以外の組み合わせも含めて、単一の結合埋め込みに統合できます。

Sentence Transformers
AutoModel
from sentence_transformers import SentenceTransformer


model = SentenceTransformer("google/embeddinggemma-2")
IMAGE_1 = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"
IMAGE_2 = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/coco_sample.png"

composed_embeddings = model.encode(
    [
        # text + image
        {"text": "A photo of a cat", "image": IMAGE_1},
        # text + audio
        {"text": "A song", "audio": "path/to/audio.wav"},
        # image + audio (no text required)
        {"image": IMAGE_1, "audio": "path/to/audio.wav"},
        # multiple images + audio + text in one embedding
        {"image": [IMAGE_1, IMAGE_2], "audio": "path/to/audio.wav", "text": "Compare both cats"},
    ]
)
print(composed_embeddings.shape)
# (4, 768)

3. 自動順序付けと手動プレースホルダー

プレースホルダートークン(<|image|>、<|video|>、<|audio|>)がテキストに存在しない場合、モダリティは辞書またはチャットメッセージのcontentにエントリが出現した正確な順序で出力されます(systemタスクプロンプトの直後)。

文内の特定の位置にテキストとメディアを交互に配置するには、テキスト内に直接<|image|>、<|video|>、または<|audio|>を記述します。これにより、その入力に対するプレースホルダーの自動挿入は無効になり、各プレースホルダーは提供されたメディアアイテムの順に展開されます。

Sentence Transformers
AutoModel
from sentence_transformers import SentenceTransformer


model = SentenceTransformer("google/embeddinggemma-2")
IMAGE_1 = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"
IMAGE_2 = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/coco_sample.png"

# 1. Automatic ordering: follows the dictionary's key order
#    -> <bos> [prompt] <image_tokens> <text_tokens> <eos>
image_first = model.encode({"image": IMAGE_1, "text": "A photo of a cat"}, prompt_name="document")

#    -> <bos> [prompt] <text_tokens> <image_tokens> <eos>
text_first = model.encode({"text": "A photo of a cat", "image": IMAGE_1}, prompt_name="document")

# 2. Manual placeholders: interleave media at exact positions in the text
#    No extra placeholders are inserted; counts must match the passed media inputs.
interleaved = model.encode(
    {
        "text": "A jacket similar to <|image|> or <|image|> featured in <|audio|>",
        "image": [IMAGE_1, IMAGE_2],
        "audio": "path/to/audio.wav",
    },
    prompt_name="query",
)

4. 異種(混合モダリティ)バッチ処理

1つのバッチでは、プレーンテキスト、単一モダリティのメディア、マルチモダリティの入力を1回のフォワードパスで混合でき、各行について個別にエンコードした場合と同一の埋め込みを生成します。

Sentence Transformers
AutoModel
from sentence_transformers import SentenceTransformer


model = SentenceTransformer("google/embeddinggemma-2")
IMAGE = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"

embeddings = model.encode(
    [
        "A photo of a cat",
        {"image": IMAGE},
        {"text": "A photo of a cat", "image": IMAGE},
        {"audio": "path/to/audio.wav"},
    ],
    prompt_name="document",
)
print(embeddings.shape)
# (4, 768)

5. 未使用のモダリティタワーの無効化(メモリ最適化)

ワークロードがモダリティのサブセットのみを埋め込む場合(例: テキストのみ または音声なしの テキスト + 画像)、設定で vision_config=None および/または audio_config=None を設定することで、未使用のビジョンまたはオーディオタワーのインスタンス化と読み込みをスキップできます。チェックポイント内の未使用タワーの重みは、警告なしにクリーンに無視され、オーディオタワーなしでモデルは 744M パラメータから 439M パラメータに、両方のタワーを除外すると 271M パラメータに削減されます。

Sentence Transformers
AutoModel

これらはmodel_kwargsではなく、config_kwargs(AutoConfig.from_pretrainedに到達する)に渡してください:

from sentence_transformers import SentenceTransformer


# Text-only deployment (skips both vision and audio towers)
text_model = SentenceTransformer(
    "google/embeddinggemma-2",
    config_kwargs={"vision_config": None, "audio_config": None},
)

# Vision + text deployment (skips audio tower)
vision_text_model = SentenceTransformer(
    "google/embeddinggemma-2",
    config_kwargs={"audio_config": None},
)

プロセッサ

EmbeddingGemma2Processor は、トークナイザー、画像プロセッサー、音声特徴抽出器、動画プロセッサーをまとめたものです。

バッチ処理されるマルチモーダル入力については、Sentence Transformers 経由でサンプルごとの辞書を渡すことを推奨します(model.encode([{"image": ..., "text": ...}, ...]))。モダリティの正確な順序やインターリーブを完全に制御したい場合は、text に <|image|>、<|video|>、<|audio|> のプレースホルダーを手動で含めてください。

ビジュアルトークン予算の制御(max_soft_tokens)

ソフトトークン予算(max_soft_tokens、サポートされる値は{70, 140, 280, 560, 1120})は、画像または動画フレームごとに生成される視覚トークンの解像度と数を制御します(デフォルトでは画像ごとに280、動画フレームごとに140)。値を下げると、シーケンス長とレイテンシが減少します:

Sentence Transformers
AutoProcessor
from sentence_transformers import SentenceTransformer


model = SentenceTransformer("google/embeddinggemma-2")
IMAGE = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"

image_embedding = model.encode(
    {"image": IMAGE},
    processing_kwargs={"image": {"max_soft_tokens": 70}},
)

Video frame sampling controls

デフォルトでは、EmbeddingGemma2VideoProcessor は 1 FPS (fps=1) でフレームをサンプリングし、各クリップのフレーム数を 32 フレームに制限 (max_frames=32、overflow_strategy="uniform") し、プロンプトからフレームのタイムスタンプを省略 (add_timestamps=False) します。各パラメータは呼び出しごとに上書きできます。

  • fps (int | float | None): 1 秒あたりのフレーム数で指定する、ターゲットのサンプリングレートです。有効な fps と duration を持つ VideoMetadata が必要です(動画ファイル/URL からデコードする場合は自動的に設定されます)。メタデータなしの事前デコード済みフレーム配列の場合、FPS サンプリングは警告を出力してスキップされ、max_frames が直接適用されます。
  • max_frames (int | None): 1つの動画ごとに保持されるフレーム数の最大値。
  • overflow_strategy ("uniform" | "truncate" | None): max_frames を超えるフレームを削減する方法("uniform" はクリップ全体で均等にリサンプリングし、"truncate" は先頭の max_frames フレームを保持します)。
  • add_timestamps (bool): 各フレームのソフトトークンブロックの先頭にmm:ss形式のタイムスタンプを付与するかどうかを指定します。fpsとは異なり、フォールバックはありません。メタデータにfpsが含まれていない動画に対してadd_timestamps=Trueを指定すると、推測したレートではプロンプトに誤ったmm:ssラベルが書き込まれてしまうため、例外が発生します。
Sentence Transformers
AutoProcessor
from sentence_transformers import SentenceTransformer


model = SentenceTransformer("google/embeddinggemma-2")

video_embedding = model.encode(
    {"video": "path/to/video.mp4"},
    processing_kwargs={"video": {"add_timestamps": True, "fps": 2, "max_frames": 16, "overflow_strategy": "truncate"}},
)

チャットテンプレートなしでprocessor(...)を直接呼び出す

processor.apply_chat_template はマルチモーダル会話の主なエントリポイントですが、processor(...) を直接呼び出すこともできます。text を省略した場合(text=None)、バッチ内の各サンプルに対して <|image|>、<|video|>、<|audio|> のプレースホルダーが自動的に生成されます。

from transformers import AutoProcessor


processor = AutoProcessor.from_pretrained("google/embeddinggemma-2")

IMAGE = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"
AUDIO = "path/to/audio.wav"  # a path, a URL, or a 1-D float array sampled at 16 kHz

# Text only
inputs = processor(text=["task: search result | query: Which planet is the Red Planet?"], return_tensors="pt")

# Media only (text=None): placeholders are synthesized per sample
inputs = processor(images=[IMAGE], return_tensors="pt")
inputs = processor(videos=["path/to/video.mp4"], return_tensors="pt")
inputs = processor(audio=[AUDIO], return_tensors="pt")

# Nested per-sample lists or combined modalities with text=None
inputs = processor(
    images=[[IMAGE, IMAGE], [IMAGE]],
    audio=[[AUDIO], [AUDIO, AUDIO]],
    return_tensors="pt",
)

# Manual placeholders in text for direct processor calls
inputs = processor(text=["<|image|> a photo of a cat"], images=[[IMAGE]], return_tensors="pt")
print(list(inputs.keys()))
# ['input_ids', 'attention_mask', 'pixel_values', 'image_position_ids']

EmbeddingGemma2TextConfig

class transformers.EmbeddingGemma2TextConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 262144hidden_size: int = 512intermediate_size: int = 2048num_hidden_layers: int = 24num_attention_heads: int = 4num_key_value_heads: int = 2head_dim: int = 256hidden_activation: str = 'gelu_pytorch_tanh'max_position_embeddings: int = 262144initializer_range: float = 0.02rms_norm_eps: float = 1e-06pad_token_id: int | None = 0eos_token_id: int | list[int] | None = 1bos_token_id: int | None = 2rope_parameters: dict | None = Noneattention_bias: bool = Falseattention_dropout: int | float | None = 0.0sliding_window: int = 512layer_types: list[str] | None = Nonehidden_size_per_layer_input: int = 512embedding_dim: int = 768 )

パラメータ

  • vocab_size (int、任意、デフォルト値は 262144) — モデルの語彙サイズです。input_ids で表現できるトークンの種類数を定義します。
  • hidden_size (int、任意、デフォルトは 512) — 隠れ表現の次元数。
  • intermediate_size (int、任意、デフォルトは2048) — MLP 表現の次元数。
  • num_hidden_layers (int、任意、デフォルトは24) — Transformer デコーダーの隠れ層の数。
  • num_attention_heads (int、任意、デフォルトは 4) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。
  • num_key_value_heads (int、任意、デフォルトは 2) — Grouped Query Attention の実装に使用する key_value ヘッドの数を指定します。 num_key_value_heads=num_attention_heads の場合、モデルは Multi Head Attention (MHA) を使用し、 num_key_value_heads=1 の場合は Multi Query Attention (MQA) を使用し、それ以外の場合は GQA が使用されます。 マルチヘッドのチェックポイントを GQA チェックポイントに変換する際は、各グループの key ヘッドと value ヘッドは、そのグループ内の元のすべてのヘッドを平均プーリングして構築する必要があります。詳細については、この論文を参照してください。指定しない場合、デフォルトで num_attention_heads が使用されます。
  • head_dim (int、任意、デフォルトは 256) — アテンションヘッドの次元です。None の場合、hidden_size // num_attention_heads がデフォルトとして使用されます。
  • hidden_activation (str、任意、デフォルトは gelu_pytorch_tanh) — デコーダーで使用する非線形活性化関数(関数または文字列)です。例えば、"gelu"、"relu"、"silu" などです。
  • max_position_embeddings (int、任意、デフォルトは 262144) — このモデルが使用される可能性のある最大シーケンス長です。
  • initializer_range (float、任意、デフォルトは 0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。
  • rms_norm_eps (float、任意、デフォルトは 1e-06) — RMS 正規化レイヤーで使用する epsilon。
  • pad_token_id (int、任意、デフォルトは 0) — 語彙内でパディングに使用されるトークン ID。
  • eos_token_id (Union[int, list[int]]、任意、デフォルトは 1) — 語彙内でストリーム終了に使用されるトークン ID。
  • bos_token_id (int、任意、デフォルトは 2) — 語彙におけるストリーム開始に使用されるトークン ID。
  • rope_parameters (dict, 任意) — RoPE 埋め込みの設定パラメータを含む辞書です。辞書には rope_theta の値が含まれており、より長い max_position_embeddings で RoPE を使用する場合、スケーリングに使用されるパラメータが任意で含まれます。
  • attention_bias (bool、任意、デフォルトはFalse) — 自己注意機構において、クエリ、キー、バリュー、出力の投影層にバイアスを使用するかどうかを指定します。
  • attention_dropout (Union[int, float]、任意、デフォルトは 0.0) — アテンション確率のドロップアウト率です。
  • sliding_window (int, 任意、デフォルトは 512) — 双方向スライディングウィンドウの包含半径です。sliding_attention レイヤーは、abs(q_idx - kv_idx) <= sliding_window を満たすすべての位置にアテンションを適用します。ここでのマスクは対称であるため、causal Gemma モデルが設定する片側の幅ではなく半径として定義されており、デフォルト値は参照実装で示される幅 1024 のウィンドウの半分です。
  • layer_types (list[str]、省略可) — 各レイヤーのインデックスとレイヤータイプを明示的に対応付けるリストです。指定しない場合、config の値に基づいて自動的に生成されます。
  • hidden_size_per_layer_input (int、任意、デフォルト値は 512)— レイヤーごとの (PLE) 残差信号の次元数です。EmbeddingGemma 2 はprojection-onlyの PLE を使用しており、この信号はinputs_embedsのみから導出され、補助的なトークンルックアップテーブルは使用されません。
  • embedding_dim (int、任意、デフォルト値は 768)— embedding_projection によって生成される文埋め込みの次元数です。

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

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

EmbeddingGemma2Config

クラス transformers.EmbeddingGemma2Config

< >

( 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: transformers.models.embedding_gemma2.configuration_embedding_gemma2.EmbeddingGemma2TextConfig | dict[str, typing.Any] | None = Nonevision_config: transformers.configuration_utils.PreTrainedConfig | dict[str, typing.Any] | None = Noneaudio_config: transformers.configuration_utils.PreTrainedConfig | dict[str, typing.Any] | None = Noneboi_token_id: int | None = 255999eoi_token_id: int | None = 258882image_token_id: int | None = 258880video_token_id: int | None = 258884boa_token_id: int | None = 256000eoa_token_index: int | None = 258883audio_token_id: int | None = 258881initializer_range: float | None = 0.02 )

パラメータ

  • text_config (EmbeddingGemma2TextConfig、任意) — テキストバックボーンの設定です。
  • vision_config (PreTrainedConfig または dict、任意) — ビジョンタワーの設定です。Gemma 4 からそのまま再利用されます。タワー自体は実行時に AutoModel によって解決されます。
  • audio_config (PreTrainedConfig または dict、省略可) — オーディオタワーの設定です。Gemma 4 からそのまま再利用されます。タワー自体は実行時に AutoModel によって解決されます。
  • boi_token_id (int、省略可能、デフォルト値は 255999) — 画像プロンプトをラップするために使用する begin-of-image トークンのインデックスです。
  • eoi_token_id (int、任意、デフォルト値は 258882) — 画像プロンプトをラップするために使用する、画像終了トークンのインデックスです。
  • image_token_id (int、任意、デフォルトは 258880) — 入力画像のプレースホルダーとして使用される画像トークンのインデックスです。
  • video_token_id (int、任意、デフォルトは 258884) — 入力動画のプレースホルダーとして使用される動画トークンのインデックスです。
  • boa_token_id (int、任意、デフォルトは 256000) — オーディオプロンプトをラップするために使用する begin-of-audio トークンのインデックスです。
  • eoa_token_index (int、任意、デフォルト値は 258883) — オーディオプロンプトをラップするために使用する end-of-audio トークンのインデックスです。
  • audio_token_id (int、任意、デフォルト値は 258881) — 入力音声のプレースホルダーとして使用されるオーディオトークンのインデックスです。
  • initializer_range (float、任意、デフォルトは 0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。

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

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

EmbeddingGemma2VideoProcessor

class transformers.EmbeddingGemma2VideoProcessor

< >

( **kwargs: *<class 'transformers.models.embedding_gemma2.video_processing_embedding_gemma2.EmbeddingGemma2VideoProcessorKwargs'> )

パラメータ

  • 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、デフォルトは None) — モデルへの最大入力次元を記述します。
  • default_to_square (bool、kwargs、任意、デフォルトは True) — size が int の場合、リサイズ時に正方形の画像をデフォルトとするかどうかを指定します。
  • 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.0, 0.0, 0.0]) — 正規化に使用する画像の平均値。do_normalize が True に設定されている場合のみ有効です。
  • image_std (Union[float, list[float], tuple[float, ...]]、kwargs、optional、デフォルトは [1.0, 1.0, 1.0]) — 正規化に使用する画像の標準偏差。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、任意、デフォルトは 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、デフォルトは 1) — do_sample_frames=True の場合、1 秒あたりにサンプリングするターゲットフレーム数。
  • num_frames (Annotated[int | None, None], kwargs) — do_sample_frames=True の場合、サンプリングするフレームの最大数。
  • return_metadata (bool、kwargs、任意、デフォルトは False) — 動画メタデータを返すかどうかを指定します。動画メタデータは、動画の長さ、fps、デコードバックエンドなどの情報を含むオブジェクトです。
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — 設定されている場合、特定のフレームワークのテンソルを返します。受け入れられる値は以下の通りです:
    • 'pt': PyTorchのtorch.Tensorオブジェクトを返します。
    • 'np': NumPyのnp.ndarrayオブジェクトを返します。
  • patch_size (int、kwargs、任意) — 各画像パッチのピクセル数。
  • max_soft_tokens (int、kwargs、任意) — 1枚の動画フレームあたりのソフト(ビジョン)トークンの最大数。 {70, 140, 280, 560, 1120} のいずれかである必要があります。
  • pooling_kernel_size (int、kwargs、任意) — パッチ化後に適用される空間プーリングのカーネルサイズ。
  • add_timestamps (bool, kwargs, optional) — 動画プレースホルダーの展開において、各フレームにmm:ssのタイムスタンプを付加するかどうかを指定します。 デコード済みのフレームからはタイムスタンプを推定できないため、有効なfpsを持つVideoMetadataが必要です。
  • max_frames (int, kwargs, 任意) — サンプリングするフレームの最大数です。設定されている場合、サンプリングされたインデックスは、この予算に収まるように均等に再サンプリングされます。
  • overflow_strategy (str, kwargs, optional) — サンプリングされたフレームの総数を予算内に収めるために削減する際に使用する戦略です。 “uniform” または “truncate” のいずれかにのみ設定できます。FPS ベースのサンプリングの後に適用され、FPS ベースのサンプリングがオフまたは適用されない場合は、それ単独で適用されます。
  • load_audio_from_video (bool、kwargs、optional) — 入力動画のオーディオトラックを読み込むかどうかを指定します。
  • **kwargs (ProcessingKwargs、任意) — 各モダリティ(テキスト、画像、動画、音声)の追加処理オプション。モデル固有のパラメータは上記にリストされています。サポートされている引数の完全なリストについては、TypedDictクラスを参照してください。

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

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.models.embedding_gemma2.video_processing_embedding_gemma2.EmbeddingGemma2VideoProcessorKwargs'> ) → ~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' に設定されている場合はスタックされたテンソルを返し、それ以外の場合はテンソルのリストを返します。
  • patch_size (int、kwargs、任意) — 各画像パッチのピクセル数。
  • max_soft_tokens (int、kwargs、任意) — 1枚の動画フレームあたりのソフト(ビジョン)トークンの最大数。 {70, 140, 280, 560, 1120} のいずれかである必要があります。
  • pooling_kernel_size (int、kwargs、任意) — パッチ化後に適用される空間プーリングのカーネルサイズ。
  • add_timestamps (bool, kwargs, optional) — 動画プレースホルダーの展開において、各フレームにmm:ssのタイムスタンプを付加するかどうかを指定します。 デコード済みのフレームからはタイムスタンプを推定できないため、有効なfpsを持つVideoMetadataが必要です。
  • max_frames (int, kwargs, 任意) — サンプリングするフレームの最大数です。設定されている場合、サンプリングされたインデックスは、この予算に収まるように均等に再サンプリングされます。
  • overflow_strategy (str, kwargs, optional) — サンプリングされたフレームの総数を予算内に収めるために削減する際に使用する戦略です。 “uniform” または “truncate” のいずれかにのみ設定できます。FPS ベースのサンプリングの後に適用され、FPS ベースのサンプリングがオフまたは適用されない場合は、それ単独で適用されます。
  • load_audio_from_video (bool、kwargs、optional) — 入力動画のオーディオトラックを読み込むかどうかを指定します。

戻り値

~image_processing_base.BatchFeature

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

EmbeddingGemma2Processor

class transformers.EmbeddingGemma2Processor

< >

( feature_extractorimage_processortokenizervideo_processorchat_template = Noneimage_seq_length: int = 280audio_seq_length: int = 750audio_ms_per_token: int = 40**kwargs )

パラメータ

  • feature_extractor (Gemma4AudioFeatureExtractor) — フィーチャーエクストラクターは必須の入力です。
  • image_processor (Gemma4ImageProcessor) — 画像プロセッサは必須の入力です。
  • tokenizer (tokenizer_class) — トークナイザーは必須の入力です。
  • video_processor (EmbeddingGemma2VideoProcessor) — ビデオプロセッサは必須の入力です。
  • chat_template (str) — チャットのメッセージのリストをトークン化可能な文字列に変換するための Jinja テンプレート。
  • image_seq_length (int、任意、デフォルト値は 280) — プレースホルダーの展開に使用される、1 画像あたりのソフトトークンの数です。
  • audio_seq_length (int、optional、デフォルト値: 750) — 1つの音声セグメントあたりの音声ソフトトークンの最大数です。動的に音声トークン数が計算される場合の上限として機能します。
  • audio_ms_per_token (int、optional、デフォルトは 40) — 出力される 1 つの soft token に対応する音声のミリ秒数です。ceil(duration_ms / audio_ms_per_token) として、音声プレースホルダー token の数を動的に計算するために使用されます。デフォルト値 40 は、10ms フレームに対する SSCP 畳み込みの 4 倍の時間方向圧縮に由来します。

EmbeddingGemma2Processorを構築します。このクラスは、フィーチャーエクストラクター、画像プロセッサー、トークナイザー、およびビデオプロセッサーを単一のプロセッサーとしてラップします。

[EmbeddingGemma2Processor] は、[Gemma4AudioFeatureExtractor]、[Gemma4ImageProcessor]、[tokenizer_class]、および [EmbeddingGemma2VideoProcessor] のすべての機能を提供します。詳細については、[~Gemma4AudioFeatureExtractor]、[~Gemma4ImageProcessor]、[~tokenizer_class]、および [~EmbeddingGemma2VideoProcessor] を参照してください。

__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] = Noneaudio_from_video_indices: list[int] | None = 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 はオーディオのサンプル長です。
  • audio_from_video_indices (list[int], 省略可) — 各オーディオスロットのソースを記述するリスト。
    • None -> どのビデオトラックにも関連付けられていないスタンドアロンオーディオ
    • i -> ビデオ[i]から抽出されたオーディオ
  • return_tensors (str または TensorType, 省略可) — 設定すると、特定のフレームワークのテンソルを返します。使用可能な値は以下の通りです:
    • 'pt': PyTorchのtorch.Tensorオブジェクトを返します。
    • 'np': NumPyのnp.ndarrayオブジェクトを返します。
  • **kwargs (ProcessingKwargs、任意) — 各モダリティ(テキスト、画像、動画、音声)の追加処理オプション。モデル固有のパラメータは上記にリストされています。サポートされている引数の完全なリストについては、TypedDictクラスを参照してください。

EmbeddingGemma2PreTrainedModel

class transformers.EmbeddingGemma2PreTrainedModel

< >

( config: PreTrainedConfig*inputs**kwargs )

パラメータ

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

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

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

forward

( *args**kwargs )

ドット区切りパス(例: torch.float32)のモック値: 属性アクセスのチェーン、呼び出しはパススルーデコレータとして動作し、repr はドット区切りパスを返し、ベースクラスとして使用するとプレーンな type ベースに置き換えられます(PEP 560 の __mro_entries__)。これにより、実際のサブクラスは通常のメタクラスを保持し、inspect.signature はモックの __init__ ではなく、実際の __init__ を読み取ります。

EmbeddingGemma2TextModel

class transformers.EmbeddingGemma2TextModel

< >

( config: EmbeddingGemma2TextConfig )

パラメータ

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

EmbeddingGemma 2 のテキストバックボーンです。embedding_projection を保持しており、最終的な隠れ状態を config.embedding_dim にマッピングします。これにより、複合モデルでは forward のオーバーライドが不要になります。

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutput or tuple(torch.FloatTensor)

パラメータ

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

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

    入力IDとは何ですか?

  • 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とは?

  • inputs_embeds (torch.FloatTensor、形状 (batch_size, sequence_length, hidden_size)、任意) — input_ids を渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込みルックアップ行列よりも、input_ids のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。

戻り値

BaseModelOutput または tuple(torch.FloatTensor)

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

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

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

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

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

EmbeddingGemma2Model

class transformers.EmbeddingGemma2Model

< >

( config: EmbeddingGemma2Config )

パラメータ

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

EmbeddingGemma 2 モデル: ビジョン・バックボーン、オーディオ・バックボーン、テキスト・バックボーンから構成され、それぞれの最終的な隠れ状態が config.text_config.embedding_dim に射影されます。SentenceTransformers の平均プーリングと正規化によってラップされることを想定しています。

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: typing.Optional[torch.FloatTensor] = Nonepixel_values_videos: typing.Optional[torch.FloatTensor] = Noneinput_features: typing.Optional[torch.FloatTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneinput_features_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Noneimage_position_ids: typing.Optional[torch.LongTensor] = Nonevideo_position_ids: typing.Optional[torch.LongTensor] = Nonenum_frames_per_video: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → EmbeddingGemma2ModelOutput or tuple(torch.FloatTensor)

パラメータ

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

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

    入力IDとは何ですか?

  • pixel_values (torch.FloatTensor、形状 (batch_size, num_channels, image_size, image_size)、任意) — 入力画像に対応するテンソルです。ピクセル値は Gemma4ImageProcessor を使用して取得できます。詳細については Gemma4ImageProcessor.call() を参照してください(EmbeddingGemma2Processor は画像の処理に Gemma4ImageProcessor を使用します)。
  • pixel_values_videos (torch.FloatTensor、形状 (batch_size, num_frames, num_channels, frame_size, frame_size)、任意) — 入力動画に対応するテンソルです。動画のピクセル値は、EmbeddingGemma2VideoProcessor を使用して取得できます。詳細については、EmbeddingGemma2VideoProcessor.call() を参照してください(EmbeddingGemma2Processor は、動画の処理に EmbeddingGemma2VideoProcessor を使用します)。
  • input_features (torch.FloatTensor、形状 (batch_size, sequence_length, feature_dim)、任意) — 入力音声特徴に対応するテンソルです。音声特徴は Gemma4AudioFeatureExtractor を使用して取得できます。詳細については Gemma4AudioFeatureExtractor.call() を参照してください(EmbeddingGemma2Processor は音声の処理に Gemma4AudioFeatureExtractor を使用します)。
  • attention_mask (torch.Tensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

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

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

    ポジションIDとは?

  • inputs_embeds (torch.FloatTensor、形状 (batch_size, sequence_length, hidden_size)、任意) — input_ids を渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込みルックアップ行列よりも、input_ids のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。
  • image_position_ids (torch.LongTensor、形状 (batch_size, max_patches, 2)、任意) — 画像プロセッサからの2次元パッチ位置座標で、(-1, -1)はパディングを示します。 位置埋め込みの計算のためにビジョンエンコーダーにそのまま渡されます。
  • video_position_ids (torch.LongTensor、形状 (total_num_frames, max_patches, 2)、任意) — video processor からの 2D パッチ位置座標で、(-1, -1) はパディングを示します。 位置埋め込みの計算のために vision encoder にそのまま渡されます。
  • num_frames_per_video (torch.LongTensor、形状 (num_videos,)、任意) — 各動画に属するフレーム数です。pixel_values_videos が渡される場合は必須です。すべての動画のフレームが単一の軸に沿って連結されるためです。

戻り値

EmbeddingGemma2ModelOutput または tuple(torch.FloatTensor)

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

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

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

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

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

  • image_hidden_states (torch.FloatTensor、任意) — サイズが(batch_size, num_images, sequence_length, hidden_size)のtorch.FloatTensor。 ビジョンエンコーダーによって生成され、最後の隠れ状態を投影した後のモデルのimage_hidden_statesです。

  • audio_hidden_states (torch.FloatTensor、任意) — サイズが(batch_size, num_images, sequence_length, hidden_size)のtorch.FloatTensor。 オーディオエンコーダーによって生成され、最後の隠れ状態を投影した後のモデルのaudio_hidden_statesです。

get_image_features

< >

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

パラメータ

  • pixel_values (torch.FloatTensor、shape (batch_size, num_channels, image_size, image_size)) — 入力画像に対応するテンソルです。ピクセル値は Gemma4ImageProcessor を使用して取得できます。詳細は Gemma4ImageProcessor.call() を参照してください(EmbeddingGemma2Processor は画像の処理に Gemma4ImageProcessor を使用します)。
  • image_position_ids (torch.LongTensor、形状 (batch_size, max_patches, 2)、任意) — 画像内の (x, y) 座標として表されたパッチの位置です。パディング用のパッチは (-1, -1) で示されます。

戻り値

BaseModelOutputWithPooling または tuple(torch.FloatTensor)

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

ビジョンモデルの最後の隠れ状態を、言語モデルの空間に射影します。

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

get_video_features

< >

( pixel_values_videos: FloatTensorvideo_position_ids: typing.Optional[torch.LongTensor] = Nonenum_frames_per_video: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.FloatTensor)

パラメータ

  • pixel_values_videos (torch.FloatTensor、形状 (total_num_frames, max_patches, patch_pixels)) — バッチ内のすべての動画のフレームを、別々の動画軸にスタックするのではなく、フレーム軸に沿って連結したものです。これにより、長さの異なる動画をまとめてバッチ処理できます。
  • video_position_ids (torch.LongTensor、形状 (total_num_frames, max_patches, 2)、任意) — video processor からの 2D パッチ位置座標で、(-1, -1) はパディングを示します。 位置埋め込みの計算のために vision encoder にそのまま渡されます。
  • num_frames_per_video (torch.LongTensor、形状 (num_videos,)) — 各動画に属するフレーム数です。フラットなフレームシーケンスを動画ごとに分割するために使用されます。

戻り値

BaseModelOutputWithPooling または tuple(torch.FloatTensor)

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

ビジョンエンコーダーの最後の隠れ状態を、言語モデルの空間に射影します。

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

get_audio_features

< >

( input_features: Tensorinput_features_mask: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → EmbeddingGemma2AudioModelOutput or tuple(torch.FloatTensor)

パラメータ

  • input_features (torch.FloatTensor、形状 (num_images, seq_length, num_features)) — 入力音声に対応するテンソルです。
  • input_features_mask (torch.FloatTensor、形状 (num_images, seq_length)) — 入力オーディオの注意マスクです。

戻り値

EmbeddingGemma2AudioModelOutput または tuple(torch.FloatTensor)

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

オーディオエンコーダーの最後の隠れ状態を、言語モデルの空間に射影します。

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

  • attention_mask (torch.BoolTensor、任意) — 形状が(batch_size, num_frames)のtorch.BoolTensorです。有効な位置はTrue、パディングはFalseです。

Update on GitHub