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

Model ini disumbangkan ke Hugging Face Transformers pada 2026-10-06.

EmbeddingGemma2

Ikhtisar

EmbeddingGemma 2 adalah model embedding multimodal dari Google yang dibangun di atas arsitektur Gemma 4. Model ini mengodekan teks, gambar, audio, dan video—baik secara individual maupun digabungkan dalam input yang sama—ke dalam ruang vektor padat 768 dimensi yang bersama untuk pengambilan lintas modal, kesamaan semantik, pengelompokan, dan klasifikasi.

Fitur utama:

  • Ruang vektor multimodal terpadu. Menara visual (Gemma4VisionModel) dan audio (Gemma4AudioModel) diproyeksikan ke dalam encoder teks bidireksional (EmbeddingGemma2TextModel) yang menginterlekan perhatian penuh dan jendela geser dengan Per-Layer Embeddings (PLE). Setiap modalitas tunggal (text, image, audio, video) atau kombinasi modalitas (image + text, text + audio, image + audio, beberapa gambar, teks dan media yang diinterlekan) dipetakan ke satu embedding yang dapat dibandingkan.
  • Pelajaran Representasi Matryoshka (MRL). EmbeddingGemma2Model menghasilkan representasi token yang diproyeksikan ke embedding_dim (768) melalui kepala linear. Embedding dapat dipangkas menjadi prefiks yang lebih kecil (512, 256, atau 128) dan dinormalisasi ulang dengan kehilangan kualitas yang minimal.
  • Anggaran visual & video yang dapat dikonfigurasi. EmbeddingGemma2Processor memungkinkan Anda menyesuaikan anggaran soft-token per gambar atau frame (max_soft_tokens dalam {70, 140, 280, 560, 1120}) dan laju sampling video (fps=1, max_frames=32, overflow_strategy="uniform", add_timestamps=False secara default).
  • Pemuatan menara modalitas selektif. Menara visual atau audio yang tidak digunakan dapat dinonaktifkan saat pemuatan (vision_config=None, audio_config=None) untuk mengurangi jejak memori pada deployment yang hanya teks atau single-modality.

Anda dapat menemukan semua checkpoint asli EmbeddingGemma di bawah koleksi EmbeddingGemma. Contoh di bawah ini menggunakan identifikasi google/embeddinggemma-2.

Contoh penggunaan

Embedding kalimat atau multimodal diperoleh dalam dua langkah: mean pooling yang mempertimbangkan mask pada token non-padded dari last_hidden_state, diikuti dengan normalisasi L2 dalam float32. Sentence Transformers (>=6.1.0) melakukan pra-pemrosesan, pemformatan prompt, mean pooling, dan normalisasi secara otomatis, dan merupakan titik masuk yang direkomendasikan. Dengan AutoModel, gunakan processor.apply_chat_template (atau AutoTokenizer untuk teks polos) dan lakukan pooling pada last_hidden_state secara langsung.

Perolehan teks ( 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))

Prompt tugas

Model ini mendukung prompt tugas opsional yang ditambahkan di awal input (dan disertakan dalam mean pooling), meskipun prompt tidak wajib dan model juga berfungsi tanpa prompt. Karena setup optimal bergantung pada domain downstream dan campuran modalitas, kami merekomendasikan untuk mengevaluasi keduanya, dengan dan tanpa prompt tugas, pada tugas spesifik Anda. Sentence Transformers menyertakan katalog di bawah ini dalam config_sentence_transformers.json, sehingga berikan prompt_name (atau gunakan encode_query / encode_document, yang dipetakan ke query dan document); dengan AutoModel, berikan prompt sebagai pesan system dalam apply_chat_template (atau tambahkan di awal teks polos).

from sentence_transformers import SentenceTransformer


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

embeddings = model.encode("How to train a neural network", prompt_name="Classification")
prompt_nameprompt
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:

Embedding Matryoshka

Head embedding dilatih dengan Matryoshka Representation Learning, sehingga embedding berdimensi 768 dapat dipotong menjadi prefix yang lebih pendek (512, 256, atau 128) dan dinormalisasi ulang. Hal ini memperkecil indeks dan mempercepat proses pengambilan data sambil tetap mempertahankan kualitas peringkat secara signifikan. Potong query dan dokumen ke dimensi yang sama, dan selalu normalisasi setelah pemotongan — di Sentence Transformers, truncate_dim memotong output yang sudah dinormalisasi, sehingga prefix tidak lagi memiliki panjang satuan.

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))

Embedding multimodal

Teks, gambar, audio, dan video dipetakan ke ruang vektor 768 dimensi yang sama, memungkinkan retrieval lintas-modal (misalnya, mencari gambar, audio, atau video dengan kueri teks) serta retrieval multimodal komposit (menggabungkan beberapa modalitas menjadi satu embedding kueri atau dokumen).

Di Sentence Transformers, input multimodal diteruskan sebagai kamus yang dikunci dengan "text", "image", "audio", dan "video" (di mana setiap nilai dapat berupa satu item atau daftar item). Dengan AutoModel, teruskan daftar pesan bergaya chat ke processor.apply_chat_template(..., tokenize=True, return_dict=True, return_tensors="pt").

1. Modalitas tunggal & pengambilan lintas-modalitas

Setiap modalitas (text, image, audio, video) dapat di-embed secara mandiri dan dibandingkan langsung dengan modalitas lain melalui cosine similarity:

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. Embedding multimodal yang dikomposisikan (beberapa modalitas dalam satu input)

Beberapa modalitas—atau beberapa item dari modalitas yang sama—dapat digabungkan menjadi satu embedding gabungan, termasuk kombinasi murni non-teks seperti 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. Pengurutan otomatis vs. placeholder manual

Jika tidak ada token placeholder (<|image|>, <|video|>, <|audio|>) yang muncul dalam teks, modalitas akan dikeluarkan dalam urutan persis sesuai kemunculan entri mereka dalam kamus atau pesan obrolan content (tepat setelah prompt tugas system apa pun).

Untuk menyisipkan teks dan media pada posisi tertentu dalam kalimat, tulis <|image|>, <|video|>, atau <|audio|> langsung di dalam teks—penyisipan placeholder otomatis kemudian dinonaktifkan untuk input tersebut, dan setiap placeholder diperluas secara berurutan dengan item media yang diberikan:

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. Batching heterogen (campuran modalitas)

Satu batch dapat mencampurkan teks polos, media unimodalitas, dan input multimodalitas dalam satu forward pass, menghasilkan embedding yang sama per baris seperti saat mengenkod setiap item secara individual:

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. Menonaktifkan menara modalitas yang tidak digunakan (optimalisasi memori)

Jika beban kerja Anda hanya menyematkan subset dari modalitas (misalnya, hanya teks atau teks + gambar tanpa audio), Anda dapat melewati instansiasi dan pemuatan menara visual atau audio yang tidak digunakan dengan mengatur vision_config=None dan/atau audio_config=None pada config. Bobot menara yang tidak digunakan di checkpoint diabaikan dengan bersih tanpa peringatan, sehingga mengurangi model dari 744M menjadi 439M parameter tanpa menara audio, atau menjadi 271M tanpa kedua menara tersebut.

Sentence Transformers
AutoModel

Lewatkan ini melalui config_kwargs (yang mencapai AutoConfig.from_pretrained), bukan model_kwargs:

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},
)

Processor

EmbeddingGemma2Processor mengemas tokenizer, image processor, audio feature extractor, dan video processor.

Untuk input multimodal yang di-batch, kami merekomendasikan untuk meneruskan kamus per sampel melalui Sentence Transformers (model.encode([{"image": ..., "text": ...}, ...])). Untuk kontrol maksimal atas urutan dan penggabungan modalitas yang tepat, sertakan placeholder <|image|>, <|video|>, dan <|audio|> secara manual di text.

Mengontrol anggaran token visual ( max_soft_tokens )

Anggaran token lunak (max_soft_tokens, nilai yang didukung {70, 140, 280, 560, 1120}) mengontrol resolusi dan jumlah token visual yang dihasilkan per gambar atau bingkai video (defaultnya 280 per gambar dan 140 per bingkai video). Nilai yang lebih rendah mengurangi panjang urutan dan latensi:

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}},
)

Kontrol pengambilan sampel bingkai video

Secara default, EmbeddingGemma2VideoProcessor mengambil sampel frame pada 1 FPS (fps=1), membatasi setiap klip pada 32 frame (max_frames=32, overflow_strategy="uniform"), dan mengabaikan timestamp frame dari prompt (add_timestamps=False). Setiap parameter dapat ditimpa per pemanggilan:

  • fps (int | float | None): laju pengambilan sampel target dalam frame per detik. Memerlukan VideoMetadata dengan fps dan duration yang valid (diisi secara otomatis saat mendekode dari file/URL video). Untuk array frame yang sudah didekode sebelumnya tanpa metadata, pengambilan sampel FPS dilewati dengan peringatan dan max_frames diterapkan secara langsung.
  • max_frames (int | None): jumlah maksimum frame yang disimpan per video.
  • overflow_strategy ("uniform" | "truncate" | None): cara frame berlebih di atas max_frames dikurangi ("uniform" melakukan resampling secara merata di seluruh klip; "truncate" mempertahankan max_frames frame terdepan).
  • add_timestamps (bool): apakah setiap blok soft-token frame akan diberi awalan timestamp mm:ss miliknya. Berbeda dengan fps, parameter ini tidak memiliki fallback: add_timestamps=True pada video yang metadatanya tidak memiliki fps akan memicu error, karena laju yang ditebak akan menulis label mm:ss yang salah ke dalam prompt.
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"}},
)

Pemanggilan langsung processor(...) tanpa template chat

Meskipun processor.apply_chat_template adalah titik masuk utama untuk percakapan multimodal, processor(...) juga dapat dipanggil secara langsung. Ketika text diabaikan (text=None), placeholder <|image|>, <|video|>, dan <|audio|> disintesis secara otomatis untuk setiap sampel dalam batch:

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

kelas 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 )

Parameter

  • vocab_size (int, opsional, default 262144) — Ukuran kosakata model. Menentukan jumlah token berbeda yang dapat direpresentasikan oleh input_ids.
  • hidden_size (int, opsional, default 512) — Dimensi dari representasi tersembunyi.
  • intermediate_size (int, opsional, default 2048) — Dimensi representasi MLP.
  • num_hidden_layers (int, opsional, default 24) — Jumlah lapisan tersembunyi dalam decoder Transformer.
  • num_attention_heads (int, opsional, default 4) — Jumlah attention head untuk setiap lapisan attention di decoder Transformer.
  • num_key_value_heads (int, opsional, default 2) — Ini adalah jumlah key_value heads yang harus digunakan untuk mengimplementasikan Grouped Query Attention. Jika num_key_value_heads=num_attention_heads, model akan menggunakan Multi Head Attention (MHA), jika num_key_value_heads=1 model akan menggunakan Multi Query Attention (MQA), selain itu GQA yang digunakan. Saat mengkonversi checkpoint multi-head menjadi checkpoint GQA, setiap group key dan value head harus dibangun dengan meanpooling semua head asli di dalam group tersebut. Untuk detail lebih lanjut, lihat paper ini. Jika tidak ditentukan, akan default ke num_attention_heads.
  • head_dim (int, opsional, default 256) — Dimensi head perhatian. Jika None, nilainya akan default ke hidden_size // num_attention_heads
  • hidden_activation (str, opsional, defaultnya gelu_pytorch_tanh) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya, "gelu", "relu", "silu", dan sebagainya.
  • max_position_embeddings (int, opsional, default 262144) — Panjang maksimum urutan yang mungkin digunakan dengan model ini.
  • initializer_range (float, opsional, defaultnya 0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.
  • rms_norm_eps (float, opsional, defaultnya 1e-06) — Epsilon yang digunakan oleh lapisan normalisasi rms.
  • pad_token_id (int, opsional, default 0) — ID token yang digunakan untuk padding dalam kosakata.
  • eos_token_id (Union[int, list[int]], opsional, default 1) — ID token yang digunakan untuk end-of-stream dalam kosakata.
  • bos_token_id (int, opsional, default 2) — ID token yang digunakan untuk awal-stream dalam kosakata.
  • rope_parameters (dict, opsional) — Kamus yang berisi parameter konfigurasi untuk embedding RoPE. Kamus tersebut harus berisi nilai untuk rope_theta dan secara opsional parameter yang digunakan untuk penskalaan jika Anda ingin menggunakan RoPE dengan max_position_embeddings yang lebih panjang.
  • attention_bias (bool, opsional, default False) — Apakah akan menggunakan bias pada lapisan proyeksi query, key, value, dan output selama self-attention.
  • attention_dropout (Union[int, float], opsional, default 0.0) — Rasio dropout untuk probabilitas perhatian.
  • sliding_window (int, opsional, default 512) — Radius inklusif dari sliding window bidireksional: lapisan sliding_attention memperhatikan setiap posisi dengan abs(q_idx - kv_idx) <= sliding_window. Ini adalah radius dan bukan lebar satu sisi yang dikonfigurasi oleh model Gemma kausal, karena mask di sini simetris, sehingga default-nya adalah setengah dari window selebar 1024 yang dinyatakan oleh implementasi referensi.
  • layer_types (list[str], opsional) — Daftar yang secara eksplisit memetakan setiap indeks layer dengan tipe layernya. Jika tidak disediakan, daftar ini akan dibuat secara otomatis berdasarkan nilai config.
  • hidden_size_per_layer_input (int, opsional, default 512) — Dimensi dari sinyal residual per-lapisan (PLE). EmbeddingGemma 2 menggunakan PLE hanya-proyeksi: sinyal diturunkan hanya dari inputs_embeds, tanpa tabel pencarian token tambahan.
  • embedding_dim (int, opsional, default 768) — Dimensi dari embedding kalimat yang dihasilkan oleh embedding_projection.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari EmbeddingGemma2Model. Kelas ini digunakan untuk membuat model Embedding Gemma2 sesuai dengan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari google/embeddinggemma-2

Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.

EmbeddingGemma2Config

kelas 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 )

Parameter

  • text_config (EmbeddingGemma2TextConfig, opsional) — Konfigurasi dari backbone teks.
  • vision_config (PreTrainedConfig atau dict, opsional) — Konfigurasi menara visual. Digunakan apa adanya dari Gemma 4; menara itu sendiri diresolusi saat runtime melalui AutoModel.
  • audio_config (PreTrainedConfig atau dict, opsional) — Konfigurasi menara audio. Digunakan apa adanya dari Gemma 4; menara itu sendiri diresolusi saat runtime melalui AutoModel.
  • boi_token_id (int, opsional, default 255999) — Indeks token awal gambar untuk membungkus prompt gambar.
  • eoi_token_id (int, opsional, default 258882) — Indeks token end-of-image untuk membungkus prompt gambar.
  • image_token_id (int, opsional, default 258880) — Indeks token gambar yang digunakan sebagai placeholder untuk gambar input.
  • video_token_id (int, opsional, default 258884) — Indeks token video yang digunakan sebagai placeholder untuk video input.
  • boa_token_id (int, opsional, default 256000) — Indeks token awal audio untuk membungkus prompt audio.
  • eoa_token_index (int, opsional, defaultnya 258883) — Indeks token end-of-audio untuk membungkus prompt audio.
  • audio_token_id (int, opsional, default 258881) — Indeks token audio yang digunakan sebagai placeholder untuk audio input.
  • initializer_range (float, opsional, defaultnya 0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari EmbeddingGemma2Model. Kelas ini digunakan untuk membuat model Embedding Gemma2 sesuai dengan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari google/embeddinggemma-2

Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.

EmbeddingGemma2VideoProcessor

kelas transformers.EmbeddingGemma2VideoProcessor

< >

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

Parameter

  • do_convert_rgb (bool, kwargs, opsional, default True) — Apakah akan mengkonversi gambar ke RGB.
  • do_resize (bool, kwargs, opsional, default True) — Apakah akan mengubah ukuran gambar.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, defaultnya None) — Menggambarkan dimensi input maksimum ke model.
  • default_to_square (bool, kwargs, opsional, defaultnya True) — Apakah akan menggunakan gambar persegi sebagai default saat melakukan resize, jika size berupa int.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, defaultnya 3) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini bisa berupa salah satu enum PILImageResampling. Hanya berpengaruh jika do_resize diatur ke True.
  • do_rescale (bool, kwargs, opsional, default True) — Apakah akan melakukan penskalaan ulang pada gambar.
  • rescale_factor (float, kwargs, opsional, default 0.00392156862745098) — Faktor rescale untuk menskalakan ulang gambar jika do_rescale diatur ke True.
  • do_normalize (bool, kwargs, opsional, default True) — Apakah akan menormalisasi gambar.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya [0.0, 0.0, 0.0]) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya [1.0, 1.0, 1.0]) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • do_center_crop (bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar.
  • do_pad (bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkan center_crop.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Hanya ChannelDimension.FIRST yang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:
    • "channels_first" atau ChannelDimension.FIRST: gambar dalam format (num_channels, height, width).
    • "channels_last" atau ChannelDimension.LAST: gambar dalam format (height, width, num_channels).
    • "none" atau ChannelDimension.NONE: gambar dalam format (height, width).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input.
  • do_sample_frames (bool, kwargs, opsional, default True) — Apakah akan mengambil sampel frame dari video sebelum diproses atau memproses seluruh video.
  • video_metadata (Annotated[~video_utils.VideoMetadata | dict | list[dict | ~video_utils.VideoMetadata] | list[list[dict | ~video_utils.VideoMetadata]] | None, None], kwargs) — Metadata dari video yang berisi informasi tentang durasi total, fps, dan jumlah total frame. Metadata ini akan digunakan untuk mengambil sampel frame dari video atau menghitung timestamp. Jangan kirimkan metadata apa pun kecuali Anda mencoba mendekode video secara manual sebelum diproses
  • fps (Annotated[int | float | None, None], kwargs, defaultnya 1) — Target frame yang akan disampel per detik ketika do_sample_frames=True.
  • num_frames (Annotated[int | None, None], kwargs) — Jumlah maksimum frame yang akan disampelkan saat do_sample_frames=True.
  • return_metadata (bool, kwargs, opsional, default False) — Apakah akan mengembalikan metadata video atau tidak. Metadata video adalah objek yang berisi informasi tentang durasi video, fps, backend decoding, dll.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Jika diset, akan mengembalikan tensor dari framework tertentu. Nilai yang dapat diterima adalah:
    • 'pt': Mengembalikan objek PyTorch torch.Tensor.
    • 'np': Mengembalikan objek NumPy np.ndarray.
  • patch_size (int, kwargs, opsional) — Ukuran setiap patch gambar dalam piksel.
  • max_soft_tokens (int, kwargs, opsional) — Jumlah maksimum token lunak (visi) per bingkai video. Harus salah satu dari {70, 140, 280, 560, 1120}.
  • pooling_kernel_size (int, kwargs, opsional) — Ukuran kernel pooling spasial yang diterapkan setelah patchification.
  • add_timestamps (bool, kwargs, opsional) — Apakah setiap frame dalam ekspansi placeholder video akan diberi awalan timestamp mm:ss miliknya. Memerlukan VideoMetadata dengan fps yang valid, karena timestamp tidak dapat disimpulkan dari frame yang sudah didekode.
  • max_frames (int, kwargs, opsional) — Jumlah maksimum frame yang akan disampelkan. Jika diatur, indeks yang disampelkan akan disampelkan ulang secara seragam agar sesuai dengan anggaran.
  • overflow_strategy (str, kwargs, opsional) — Strategi yang digunakan untuk memangkas total jumlah frame yang disampel agar sesuai dengan anggaran. Hanya dapat diset ke “uniform” atau “truncate”. Diterapkan setelah sampling berbasis FPS, dan secara mandiri ketika sampling berbasis FPS dimatikan atau tidak berlaku.
  • load_audio_from_video (bool, kwargs, opsional) — Apakah akan memuat trek audio dari video input atau tidak.
  • **kwargs (ProcessingKwargs, opsional) — Opsi pemrosesan tambahan untuk setiap modalitas (teks, gambar, video, audio). Parameter spesifik model tercantum di atas; lihat kelas TypedDict untuk daftar lengkap argumen yang didukung.

Membangun pemroses video EmbeddingGemma2VideoProcessor.

praproses

< >

( 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

Parameter

  • 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]]]) — Video yang akan dipreprocess. Mengharapkan satu video atau batch video dengan nilai piksel berkisar dari 0 hingga 255. Jika mengirimkan video dengan nilai piksel antara 0 dan 1, atur do_rescale=False.
  • do_convert_rgb (bool, kwargs, opsional) — Apakah akan mengonversi gambar ke RGB.
  • do_resize (bool, kwargs, opsional) — Apakah akan mengubah ukuran gambar.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Menggambarkan dimensi input maksimum untuk model.
  • default_to_square (bool, kwargs, opsional) — Apakah akan menggunakan gambar persegi sebagai default saat mengubah ukuran, jika size berupa int.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini dapat berupa salah satu enum PILImageResampling. Hanya berpengaruh jika do_resize diatur ke True.
  • do_rescale (bool, kwargs, opsional) — Apakah akan melakukan penskalaan ulang pada gambar.
  • rescale_factor (float, kwargs, opsional) — Faktor rescale untuk menskalakan ulang gambar jika do_rescale diatur ke True.
  • do_normalize (bool, kwargs, opsional) — Apakah akan menormalisasi gambar.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • do_center_crop (bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar.
  • do_pad (bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkan center_crop.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Hanya ChannelDimension.FIRST yang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:
    • "channels_first" atau ChannelDimension.FIRST: gambar dalam format (num_channels, height, width).
    • "channels_last" atau ChannelDimension.LAST: gambar dalam format (height, width, num_channels).
    • "none" atau ChannelDimension.NONE: gambar dalam format (height, width).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input.
  • do_sample_frames (bool, kwargs, opsional) — Apakah akan mengambil sampel frame dari video sebelum diproses atau memproses seluruh video.
  • video_metadata (Annotated[~video_utils.VideoMetadata | dict | list[dict | ~video_utils.VideoMetadata] | list[list[dict | ~video_utils.VideoMetadata]] | None, None], kwargs) — Metadata dari video yang berisi informasi tentang durasi total, fps, dan jumlah total frame. Metadata ini akan digunakan untuk mengambil sampel frame dari video atau menghitung timestamp. Jangan kirimkan metadata apa pun kecuali Anda mencoba mendekode video secara manual sebelum diproses
  • fps (Annotated[int | float | None, None], kwargs) — Target frame yang akan disampel per detik ketika do_sample_frames=True.
  • num_frames (Annotated[int | None, None], kwargs) — Jumlah maksimum frame yang akan disampelkan saat do_sample_frames=True.
  • return_metadata (bool, kwargs, opsional) — Apakah akan mengembalikan metadata video atau tidak. Metadata video adalah objek yang berisi informasi tentang durasi video, fps, backend decoding, dll.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke 'pt', selain itu mengembalikan daftar tensor.
  • patch_size (int, kwargs, opsional) — Ukuran setiap patch gambar dalam piksel.
  • max_soft_tokens (int, kwargs, opsional) — Jumlah maksimum token lunak (visi) per bingkai video. Harus salah satu dari {70, 140, 280, 560, 1120}.
  • pooling_kernel_size (int, kwargs, opsional) — Ukuran kernel pooling spasial yang diterapkan setelah patchification.
  • add_timestamps (bool, kwargs, opsional) — Apakah setiap frame dalam ekspansi placeholder video akan diberi awalan timestamp mm:ss miliknya. Memerlukan VideoMetadata dengan fps yang valid, karena timestamp tidak dapat disimpulkan dari frame yang sudah didekode.
  • max_frames (int, kwargs, opsional) — Jumlah maksimum frame yang akan disampelkan. Jika diatur, indeks yang disampelkan akan disampelkan ulang secara seragam agar sesuai dengan anggaran.
  • overflow_strategy (str, kwargs, opsional) — Strategi yang digunakan untuk memangkas total jumlah frame yang disampel agar sesuai dengan anggaran. Hanya dapat diset ke “uniform” atau “truncate”. Diterapkan setelah sampling berbasis FPS, dan secara mandiri ketika sampling berbasis FPS dimatikan atau tidak berlaku.
  • load_audio_from_video (bool, kwargs, opsional) — Apakah akan memuat trek audio dari video input atau tidak.

Mengembalikan

~image_processing_base.BatchFeature

  • data (dict) — Kamus berisi daftar/array/tensor yang dikembalikan oleh metode call (‘pixel_values’, dll.).
  • tensor_type (Union[None, str, TensorType], opsional) — Anda dapat memberikan tensor_type di sini untuk mengonversi daftar bilangan bulat menjadi Tensor PyTorch/Numpy saat inisialisasi.

EmbeddingGemma2Processor

kelas transformers.EmbeddingGemma2Processor

< >

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

Parameter

  • feature_extractor (Gemma4AudioFeatureExtractor) — Ekstraktor fitur adalah input yang wajib.
  • image_processor (Gemma4ImageProcessor) — Pemroses gambar adalah input yang wajib.
  • tokenizer (tokenizer_class) — Tokenizer adalah input yang wajib.
  • video_processor (EmbeddingGemma2VideoProcessor) — Video processor adalah input yang wajib.
  • chat_template (str) — Template Jinja untuk mengonversi daftar pesan dalam chat menjadi string yang dapat ditokenisasi.
  • image_seq_length (int, opsional, default 280) — Jumlah token lunak per gambar yang digunakan untuk ekspansi placeholder.
  • audio_seq_length (int, opsional, default 750) — Jumlah maksimum token lunak audio per segmen audio. Berfungsi sebagai batas atas saat jumlah token audio dinamis dihitung.
  • audio_ms_per_token (int, opsional, default 40) — Milidetik audio per soft token output. Digunakan untuk menghitung secara dinamis jumlah token placeholder audio sebagai ceil(duration_ms / audio_ms_per_token). Nilai default 40 berasal dari reduksi waktu 4× pada convolution SSCP untuk frame 10ms.

Membangun EmbeddingGemma2Processor yang membungkus feature extractor, image processor, tokenizer, dan video processor menjadi satu processor.

[EmbeddingGemma2Processor] menyediakan semua fungsionalitas dari [Gemma4AudioFeatureExtractor], [Gemma4ImageProcessor], [tokenizer_class], dan [EmbeddingGemma2VideoProcessor]. Lihat [~Gemma4AudioFeatureExtractor], [~Gemma4ImageProcessor], [~tokenizer_class], dan [~EmbeddingGemma2VideoProcessor] untuk informasi lebih lanjut.

__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'> )

Parameter

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]], opsional) — Gambar yang akan dipreprocess. Mengharapkan satu gambar atau batch gambar dengan nilai piksel berkisar dari 0 hingga 255. Jika mengirimkan gambar dengan nilai piksel antara 0 dan 1, atur do_rescale=False.
  • text (Union[str, list[str], list[list[str]]], opsional) — Sequens atau batch dari sequens yang akan dienkod. Setiap sequens dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika Anda memasukkan input yang sudah dipretokenisasi, atur is_split_into_words=True untuk menghindari ambiguitas dengan input yang di-batch.
  • 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]]], opsional) — Video yang akan dipreprocess. Mengharapkan satu video atau batch video dengan nilai piksel berkisar dari 0 hingga 255. Jika mengirimkan video dengan nilai piksel antara 0 dan 1, atur do_rescale=False.
  • audio (Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]], opsional) — Audio atau batch audio yang akan disiapkan. Setiap audio dapat berupa array NumPy atau tensor PyTorch. Jika berupa array NumPy/tensor PyTorch, setiap audio harus memiliki bentuk (C, T), di mana C adalah jumlah channel, dan T adalah panjang sampel dari audio tersebut.
  • audio_from_video_indices (list[int], opsional) — Sebuah daftar yang menjelaskan sumber setiap slot audio, di mana
    • None -> audio mandiri yang tidak terkait dengan track video
    • i -> audio yang diekstrak dari videos[i]
  • return_tensors (str atau TensorType, opsional) — Jika diset, akan mengembalikan tensor dari framework tertentu. Nilai yang dapat diterima adalah:
    • 'pt': Mengembalikan objek PyTorch torch.Tensor.
    • 'np': Mengembalikan objek NumPy np.ndarray.
  • **kwargs (ProcessingKwargs, opsional) — Opsi pemrosesan tambahan untuk setiap modalitas (teks, gambar, video, audio). Parameter spesifik model tercantum di atas; lihat kelas TypedDict untuk daftar lengkap argumen yang didukung.

EmbeddingGemma2PreTrainedModel

kelas transformers.EmbeddingGemma2PreTrainedModel

< >

( config: PreTrainedConfig*inputs**kwargs )

Parameter

  • config (PreTrainedConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

( *args**kwargs )

Nilai mock untuk jalur bertitik (mis. torch.float32): rantai akses atribut, pemanggilan berperilaku sebagai dekorator pass-through, repr adalah jalur bertitik, dan penggunaannya sebagai kelas dasar menggantikan kelas dasar type polos (PEP 560 __mro_entries__), sehingga subkelas asli tetap mempertahankan metakelas normal dan inspect.signature membaca __init__ asli mereka, bukan milik mock.

EmbeddingGemma2TextModel

kelas transformers.EmbeddingGemma2TextModel

< >

( config: EmbeddingGemma2TextConfig )

Parameter

  • config (EmbeddingGemma2TextConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Backbone teks EmbeddingGemma 2. Komponen ini memiliki embedding_projection yang memetakan hidden states akhir ke config.embedding_dim, sehingga model komposit tidak memerlukan override forward.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

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

Parameter

  • input_ids (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.

    Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.

    Apa itu input ID?

  • attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

  • position_ids (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang [0, config.n_positions - 1].

    Apa itu ID posisi?

  • inputs_embeds (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan input_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeks input_ids menjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model.

Mengembalikan

BaseModelOutput atau tuple(torch.Tensor)

A BaseModelOutput atau tuple dari torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (EmbeddingGemma2Config) dan input.

Metode forward dari EmbeddingGemma2TextModel menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • last_hidden_state (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

    Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

EmbeddingGemma2Model

kelas transformers.EmbeddingGemma2Model

< >

( config: EmbeddingGemma2Config )

Parameter

  • config (EmbeddingGemma2Config) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Model EmbeddingGemma 2: sebuah backbone visual, backbone audio, dan backbone teks yang state tersembunyi akhirnya diproyeksikan ke config.text_config.embedding_dim. Dirancang untuk dibungkus oleh mean pooling dan normalisasi dari SentenceTransformers.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: typing.Optional[torch.Tensor] = Nonepixel_values_videos: typing.Optional[torch.Tensor] = Noneinput_features: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneinput_features_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = 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.Tensor)

Parameter

  • input_ids (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.

    Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.

    Apa itu input ID?

  • pixel_values (torch.Tensor dengan bentuk (batch_size, num_channels, image_size, image_size), opsional) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan Gemma4ImageProcessor. Lihat Gemma4ImageProcessor.call() untuk detailnya (EmbeddingGemma2Processor menggunakan Gemma4ImageProcessor untuk memproses gambar).
  • pixel_values_videos (torch.Tensor dengan bentuk (batch_size, num_frames, num_channels, frame_size, frame_size), opsional) — Tensor yang sesuai dengan video input. Nilai piksel untuk video dapat diperoleh menggunakan EmbeddingGemma2VideoProcessor. Lihat EmbeddingGemma2VideoProcessor.call() untuk detailnya (EmbeddingGemma2Processor menggunakan EmbeddingGemma2VideoProcessor untuk memproses video).
  • input_features (torch.Tensor dengan bentuk (batch_size, sequence_length, feature_dim), opsional) — Tensor yang sesuai dengan fitur audio input. Fitur audio dapat diperoleh menggunakan Gemma4AudioFeatureExtractor. Lihat Gemma4AudioFeatureExtractor.call() untuk detailnya (EmbeddingGemma2Processor menggunakan Gemma4AudioFeatureExtractor untuk memproses audio).
  • attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

  • input_features_mask (torch.Tensor dengan bentuk (num_images, seq_length)) — Mask perhatian untuk audio masukan.
  • position_ids (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang [0, config.n_positions - 1].

    Apa itu ID posisi?

  • inputs_embeds (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan input_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeks input_ids menjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model.
  • image_position_ids (torch.LongTensor dengan bentuk (batch_size, max_patches, 2), opsional) — Koordinat posisi patch 2D dari image processor, dengan (-1, -1) menunjukkan padding. Diteruskan ke vision encoder untuk perhitungan positional embedding.
  • video_position_ids (torch.LongTensor dengan bentuk (total_num_frames, max_patches, 2), opsional) — Koordinat posisi patch 2D dari video processor, dengan (-1, -1) menunjukkan padding. Diteruskan ke vision encoder untuk perhitungan positional embedding.
  • num_frames_per_video (torch.LongTensor dengan bentuk (num_videos,), opsional) — Jumlah frame yang dimiliki oleh setiap video. Wajib diisi setiap kali pixel_values_videos diberikan, karena frame dari semua video digabungkan sepanjang satu sumbu.

Mengembalikan

EmbeddingGemma2ModelOutput atau tuple(torch.Tensor)

EmbeddingGemma2ModelOutput atau tuple dari torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (EmbeddingGemma2Config) dan input.

Metode forward dari EmbeddingGemma2Model menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • last_hidden_state (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

    Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

  • image_hidden_states (torch.Tensor, opsional) — Sebuah torch.Tensor berukuran (batch_size, num_images, sequence_length, hidden_size). image_hidden_states dari model yang dihasilkan oleh vision encoder dan setelah memproyeksikan hidden state terakhir.

  • audio_hidden_states (torch.Tensor, opsional) — Sebuah torch.Tensor berukuran (batch_size, num_images, sequence_length, hidden_size). audio_hidden_states dari model yang dihasilkan oleh encoder audio dan setelah memproyeksikan hidden state terakhir.

get_image_features

< >

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

Parameter

  • pixel_values (torch.Tensor dengan bentuk (batch_size, num_channels, image_size, image_size)) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan Gemma4ImageProcessor. Lihat Gemma4ImageProcessor.call() untuk detailnya (EmbeddingGemma2Processor menggunakan Gemma4ImageProcessor untuk memproses gambar).
  • image_position_ids (torch.LongTensor dengan bentuk (batch_size, max_patches, 2), opsional) — Posisi patch sebagai koordinat (x, y) dalam gambar. Patch padding ditandai dengan (-1, -1).

Mengembalikan

BaseModelOutputWithPooling atau tuple(torch.Tensor)

A BaseModelOutputWithPooling atau tuple dari torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (EmbeddingGemma2Config) dan input.

Memproyeksikan state tersembunyi terakhir dari model visual ke ruang model bahasa.

  • last_hidden_state (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.

  • pooler_output (torch.Tensor dengan bentuk (batch_size, hidden_size)) — Hidden-state lapisan terakhir dari token pertama dalam urutan (token klasifikasi) setelah diproses lebih lanjut melalui lapisan yang digunakan untuk tugas pra-pelatihan tambahan. Misalnya, untuk keluarga model BERT, ini mengembalikan token klasifikasi setelah diproses melalui lapisan linear dan fungsi aktivasi tanh. Bobot lapisan linear dilatih dari tujuan prediksi kalimat berikutnya (klasifikasi) selama pra-pelatihan.

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

    Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

get_video_features

< >

( pixel_values_videos: Tensorvideo_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.Tensor)

Parameter

  • pixel_values_videos (torch.Tensor dengan bentuk (total_num_frames, max_patches, patch_pixels)) — Frame dari setiap video dalam batch, digabungkan sepanjang sumbu frame alih-alih ditumpuk pada sumbu video terpisah, sehingga video dengan panjang berbeda dapat di-batch bersama.
  • video_position_ids (torch.LongTensor dengan bentuk (total_num_frames, max_patches, 2), opsional) — Koordinat posisi patch 2D dari video processor, dengan (-1, -1) menunjukkan padding. Diteruskan ke vision encoder untuk perhitungan positional embedding.
  • num_frames_per_video (torch.LongTensor dengan bentuk (num_videos,)) — Jumlah frame yang dimiliki oleh setiap video, digunakan untuk memisahkan kembali urutan frame datar menjadi per video.

Mengembalikan

BaseModelOutputWithPooling atau tuple(torch.Tensor)

A BaseModelOutputWithPooling atau tuple dari torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (EmbeddingGemma2Config) dan input.

Memproyeksikan state tersembunyi terakhir dari encoder visual ke ruang model bahasa.

  • last_hidden_state (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.

  • pooler_output (torch.Tensor dengan bentuk (batch_size, hidden_size)) — Hidden-state lapisan terakhir dari token pertama dalam urutan (token klasifikasi) setelah diproses lebih lanjut melalui lapisan yang digunakan untuk tugas pra-pelatihan tambahan. Misalnya, untuk keluarga model BERT, ini mengembalikan token klasifikasi setelah diproses melalui lapisan linear dan fungsi aktivasi tanh. Bobot lapisan linear dilatih dari tujuan prediksi kalimat berikutnya (klasifikasi) selama pra-pelatihan.

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

    Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

get_audio_features

< >

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

Parameter

  • input_features (torch.Tensor dengan bentuk (num_images, seq_length, num_features)) — Tensor yang sesuai dengan audio input.
  • input_features_mask (torch.Tensor dengan bentuk (num_images, seq_length)) — Mask perhatian untuk audio masukan.

Mengembalikan

EmbeddingGemma2AudioModelOutput atau tuple(torch.Tensor)

EmbeddingGemma2AudioModelOutput atau tuple dari torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (EmbeddingGemma2Config) dan input.

Memproyeksikan hidden state terakhir dari audio encoder ke ruang model bahasa.

  • last_hidden_state (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.

  • pooler_output (torch.Tensor dengan bentuk (batch_size, hidden_size)) — Hidden-state lapisan terakhir dari token pertama dalam urutan (token klasifikasi) setelah diproses lebih lanjut melalui lapisan yang digunakan untuk tugas pra-pelatihan tambahan. Misalnya, untuk keluarga model BERT, ini mengembalikan token klasifikasi setelah diproses melalui lapisan linear dan fungsi aktivasi tanh. Bobot lapisan linear dilatih dari tujuan prediksi kalimat berikutnya (klasifikasi) selama pra-pelatihan.

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

    Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

  • attention_mask (torch.BoolTensor, opsional) — Sebuah torch.BoolTensor dengan bentuk (batch_size, num_frames). True untuk posisi valid, False untuk padding.

Update on GitHub