Transformers documentation
Gemma4
Model ini disumbangkan ke Hugging Face Transformers pada 2026-04-02.
Gemma4
Ikhtisar
Gemma 4 adalah model multimodal dengan varian pra-pelatihan dan penyetelan instruksi, tersedia dalam ukuran parameter E2B, E4B, 31B, dan 26B-A4B (MoE). Model Gemma 4 menyediakan kemampuan berikut:
- Penalaran: Semua model dalam keluarga ini dirancang sebagai penalar yang sangat mumpuni, dengan mode berpikir yang dapat dikonfigurasi.
- Multimodalitas yang Diperluas: Memproses Teks, Gambar dengan dukungan rasio aspek dan resolusi yang bervariasi (semua model), Video, dan Audio (fitur bawaan pada model E2B dan E4B).
- Jendela Konteks yang Lebih Besar: Model-model kecil memiliki jendela konteks 128K, sedangkan model-model lainnya mendukung 256K.
- Kemampuan Coding & Agentic yang Ditingkatkan: Mencapai peningkatan yang signifikan pada benchmark coding sekaligus dukungan function-calling bawaan, yang menggerakkan agen otonom yang sangat mumpuni.
- Dukungan System Prompt Native: Gemma 4 memperkenalkan dukungan bawaan untuk peran sistem, memungkinkan percakapan yang lebih terstruktur dan dapat dikendalikan.
Anda dapat menemukan semua checkpoint asli Gemma 4 di bawah rilis Gemma 4.
Model Gemma4 Vision
Perbedaan utama dari rilis Gemma sebelumnya untuk visi adalah desain baru untuk memproses gambar dengan ukuran berbeda menggunakan jumlah token dengan anggaran tetap. Berbeda dengan banyak model yang memaksa setiap gambar menjadi persegi berukuran tetap (seperti 224×224), Gemma 4 mempertahankan rasio aspek alami gambar sambil menyesuaikannya ke ukuran yang tepat. Ada beberapa batasan yang perlu diikuti:
- Jumlah total piksel harus muat dalam anggaran patch
- Ketinggian dan lebar keduanya harus dapat dibagi habis oleh 48 (= ukuran patch 16 × kernel pooling 3)
Gemma 4 tidak menerapkan normalisasi mean/std ImageNet standar yang digunakan oleh banyak model visi lainnya. Lapisan patch embedding milik model itu sendiri menangani penskalaan akhir secara internal (menggeser nilai ke rentang [-1, 1]).
Jumlah “soft token” (disebut juga vision token) yang dapat dihasilkan oleh image processor dapat dikonfigurasi. Opsi yang didukung diuraikan di bawah ini dan nilai defaultnya adalah 280 soft token per gambar.
| Token Lunak | Patches (sebelum pooling) | Luas Gambar Perkiraan |
|---|---|---|
| 70 | 630 | ~161K piksel |
| 140 | 1,260 | ~323K piksel |
| 280 | 2,520 | ~645K piksel |
| 560 | 5,040 | ~1,3 juta piksel |
| 1,120 | 10,080 | ~2,6 juta piksel |
Untuk mengkodekan informasi posisi untuk setiap patch dalam gambar, Gemma 4 menggunakan tabel posisi 2D yang dipelajari. Tabel posisi menyimpan hingga 10.240 posisi per sumbu, yang memungkinkan model untuk menangani gambar yang sangat besar. Setiap posisi adalah vektor yang dipelajari dengan dimensi yang sama dengan patch embedding. 2D RoPE yang digunakan oleh Gemma 4 secara independen memutar setengah dimensi kepala perhatian untuk sumbu x dan setengah lainnya untuk sumbu y. Hal ini memungkinkan model untuk memahami hubungan spasial seperti “di atas,” “di bawah,” “di kiri,” dan “di kanan.”
Embedding Per-Lapisan (PLE)
Gemma 4 memperkenalkan sistem Per-Layer Embeddings (PLE) yang memberikan sinyal residual tambahan ke setiap lapisan decoder, alih-alih hanya mengandalkan satu embedding bersama di input.
PLE menggabungkan dua komponen yang dijumlahkan dan diskalakan dengan 1/√2 sebelum dimasukkan ke setiap lapisan decoder:
- Token-identity (
get_per_layer_inputs): mencariinput_idsdiembed_tokens_per_layer, yaituGemma4TextScaledWordEmbeddingyang mengalikan dengan√(hidden_size_per_layer_input). Output yang dikemas di-reshape dari[batch, seq, num_hidden_layers * hidden_size_per_layer_input]menjadi[batch, seq, num_hidden_layers, hidden_size_per_layer_input]. - Context-aware (
project_per_layer_inputs): memproyeksikaninputs_embedsmelaluiper_layer_model_projection(lapisan Linear), menskalakan dengan1/√(hidden_size), membentuk ulang menjadi[batch, seq, num_layers, ple_dim], dan menormalisasi denganper_layer_projection_norm(RMSNorm).
Ketika kedua komponen tersedia, input per-lapisan akhir adalah (token_identity + context_aware) * (1/√2). Untuk input multimodal di mana input_ids tidak tersedia, hanya proyeksi yang sadar konteks yang digunakan.
Contoh penggunaan
Contoh di bawah ini menunjukkan cara menghasilkan teks berdasarkan gambar dengan Pipeline atau kelas AutoModel.
<hfoptions id="usage"> <hfoption id="Pipeline">from transformers import pipeline
pipeline = pipeline(
task="image-text-to-text",
model="google/gemma-4-E2B-it",
)
pipeline(
images="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg",
text="<|image|>\n\nWhat is shown in this image?"
)from transformers import AutoModelForImageTextToText, AutoProcessor
model = AutoModelForImageTextToText.from_pretrained(
"google/gemma-4-E2B-it",
device_map="auto",
attn_implementation="sdpa"
)
processor = AutoProcessor.from_pretrained(
"google/gemma-4-E2B-it",
padding_side="left"
)
messages = [
{
"role": "user", "content": [
{"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
{"type": "text", "text": "What is shown in this image?"},
]
},
]
inputs = processor.apply_chat_template(
messages,
tokenize=True,
return_dict=True,
return_tensors="pt",
add_generation_prompt=True,
).to(model.device)
input_len = inputs["input_ids"].shape[-1]
output = model.generate(**inputs, max_new_tokens=50, cache_implementation="static")
print(processor.decode(output[0][input_len:], skip_special_tokens=True))Pemanggilan fungsi
from transformers import AutoModelForCausalLM, AutoProcessor
WEATHER_TOOL = {
"type": "function",
"function": {
"name": "get_n_day_weather_forecast",
"description": "Get an N-day weather forecast",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"format": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "The temperature unit to use",
},
"num_days": {
"type": "integer",
"description": "The number of days to forecast",
},
},
"required": ["location", "format", "num_days"],
},
},
}
messages = [
{
"role": "user",
"content": "What's the weather like the next 3 days in San Francisco, CA (using F)?",
},
]
model = AutoModelForCausalLM.from_pretrained(
"google/gemma-4-E2B-it",
device_map="auto",
attn_implementation="sdpa"
)
processor = AutoProcessor.from_pretrained(
"google/gemma-4-E2B-it",
padding_side="left"
)
text = processor.apply_chat_template(
messages,
tools=[WEATHER_TOOL],
tokenize=False,
add_generation_prompt=True,
)
inputs = processor(text=text, return_tensors="pt").to(model.device)
input_len = inputs["input_ids"].shape[-1]
outputs = model.generate(**inputs, max_new_tokens=200)
print(processor.decode(outputs[0][input_len:], skip_special_tokens=False))Audio (Hanya E2B dan E4B)
from transformers import AutoModelForMultimodalLM, AutoProcessor
messages = [
{
"role": "user",
"content": [
{"type": "text", "text": "Please transcribe the following audio:"},
{
"type": "audio",
"url": "https://huggingface.co/datasets/eustlb/audio-samples/resolve/main/dude_where_is_my_car.wav",
},
],
}
]
model = AutoModelForMultimodalLM.from_pretrained(
"google/gemma-4-E2B-it",
device_map="auto",
attn_implementation="sdpa"
)
processor = AutoProcessor.from_pretrained(
"google/gemma-4-E2B-it",
padding_side="left"
)
inputs = processor.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
return_tensors="pt"
).to(model.device, dtype=model.dtype)
input_len = inputs["input_ids"].shape[-1]
outputs = model.generate(**inputs, max_new_tokens=200)
print(processor.decode(outputs[0][input_len:], skip_special_tokens=False))Gemma4AudioConfig
kelas transformers.Gemma4AudioConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int = 1024num_hidden_layers: int = 12num_attention_heads: int = 8hidden_act: str = 'silu'subsampling_conv_channels: list[int] | tuple[int, int] = (128, 32)conv_kernel_size: int = 5residual_weight: float = 0.5attention_chunk_size: int = 12attention_context_left: int = 13attention_context_right: int = 0attention_logit_cap: float = 50.0attention_invalid_logits_value: float = -1000000000.0use_clipped_linears: bool = Truerms_norm_eps: float = 1e-06gradient_clipping: float = 10000000000.0output_proj_dims: int = 1536initializer_range: float = 0.02 )
Parameter
- hidden_size (
int, opsional, default1024) — Dimensi dari representasi tersembunyi. - num_hidden_layers (
int, opsional, default12) — Jumlah lapisan tersembunyi dalam decoder Transformer. - num_attention_heads (
int, opsional, default8) — Jumlah attention heads untuk setiap lapisan attention di decoder Transformer. - hidden_act (
str, opsional, defaultnyasilu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya,"gelu","relu","silu", dan sebagainya. - subsampling_conv_channels (
list[int], defaultnya[128, 32]) — Ukuran channel untuk lapisan konvolusional dalam Sub-sample Convolution Projection. - conv_kernel_size (
int, opsional, defaultnya5) — Ukuran kernel konvolusi. - residual_weight (
float, defaultnya0.5) — Skala yang diterapkan pada hidden_states sebelum digabungkan dengan residual di feedforward. - attention_chunk_size (
int, defaultnya12) — Ukuran sub-sekuens untuk pemrosesan attention. - attention_context_left (
int, defaultnya13) — Ukuran konteks ke kiri untuk chunk perhatian. - attention_context_right (
int, defaultnya0) — Ukuran konteks ke kanan untuk chunk perhatian. - attention_logit_cap (
float, defaultnya50.0) — Batas yang diterapkan pada bobot perhatian. - attention_invalid_logits_value (
float, defaultnya1e-9) — Nilai yang digunakan untuk logits tidak valid dalam attention. - use_clipped_linears (
bool, defaultnyaTrue) — Jika true, terapkan clipping pada lapisan Linear, dengan batas yang diambil dari checkpoint model. - rms_norm_eps (
float, opsional, defaultnya1e-06) — Epsilon yang digunakan oleh lapisan normalisasi rms. - gradient_clipping (
float, defaultnya1e10) — Nilai pemotongan yang digunakan untuk menstabilkan nilai gradien yang sangat besar. - output_proj_dims (
int, defaultnya1536) — Dimensi proyeksi linear akhir darihidden_sizeke output model. - initializer_range (
float, opsional, defaultnya0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari Gemma4Model. Kelas ini digunakan untuk membuat instans model Gemma4 sesuai dengan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari google/gemma-4-e2b-it
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
Gemma4VisionConfig
kelas transformers.Gemma4VisionConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int = 768intermediate_size: int = 3072num_hidden_layers: int = 16num_attention_heads: int = 12num_key_value_heads: int = 12head_dim: int = 64hidden_activation: str = 'gelu_pytorch_tanh'rms_norm_eps: float = 1e-06max_position_embeddings: int = 131072attention_bias: bool | None = Falseattention_dropout: float | None = 0.0rope_parameters: dict | None = Nonepooling_kernel_size: int = 3patch_size: int = 16position_embedding_size: int = 10240use_clipped_linears: bool = Falsestandardize: bool = Falseinitializer_range: float = 0.02 )
Parameter
- hidden_size (
int, opsional, default768) — Dimensi dari representasi tersembunyi. - intermediate_size (
int, opsional, default3072) — Dimensi representasi MLP. - num_hidden_layers (
int, opsional, default16) — Jumlah lapisan tersembunyi dalam decoder Transformer. - num_attention_heads (
int, opsional, default12) — Jumlah attention head untuk setiap lapisan attention di decoder Transformer. - num_key_value_heads (
int, opsional, default12) — Ini adalah jumlah key_value heads yang harus digunakan untuk mengimplementasikan Grouped Query Attention. Jikanum_key_value_heads=num_attention_heads, model akan menggunakan Multi Head Attention (MHA), jikanum_key_value_heads=1model 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 kenum_attention_heads. - head_dim (
int, opsional, default64) — Dimensi head perhatian. Jika None, nilainya akan default ke hidden_size // num_attention_heads - hidden_activation (
str, opsional, defaultnyagelu_pytorch_tanh) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya,"gelu","relu","silu", dan sebagainya. - rms_norm_eps (
float, opsional, defaultnya1e-06) — Epsilon yang digunakan oleh lapisan normalisasi rms. - max_position_embeddings (
int, opsional, default131072) — Panjang maksimum urutan yang mungkin digunakan dengan model ini. - attention_bias (
bool, opsional, defaultFalse) — Apakah akan menggunakan bias pada lapisan proyeksi query, key, value, dan output selama self-attention. - attention_dropout (
float, opsional, default0.0) — Rasio dropout untuk probabilitas perhatian. - rope_parameters (
dict, opsional) — Kamus yang berisi parameter konfigurasi untuk embedding RoPE. Kamus tersebut harus berisi nilai untukrope_thetadan secara opsional parameter yang digunakan untuk penskalaan jika Anda ingin menggunakan RoPE denganmax_position_embeddingsyang lebih panjang. - pooling_kernel_size (
int, opsional) — Ukuran kernel pooling spasial yang diterapkan setelah patchification. - patch_size (
int, opsional, defaultnya16) — Ukuran (resolusi) dari setiap patch. - position_embedding_size (
int, default 10240) — Jumlah maksimum position embedding untuk vision encoder. Mengontrol ukuran tabel position embedding 2D yang dipelajari dan digunakan oleh patch embedder. - use_clipped_linears (
bool, defaultnyaFalse) — Apakah akan menggunakan lapisan linear dengan pembatasan bobot. Saat diaktifkan, bobot lapisan linear akan dibatasi ke rentang tetap selama forward pass untuk meningkatkan stabilitas numerik. - standardize (
bool, defaultnyaFalse) — Jika true, menerapkan bias dan skala ke soft token yang dikembalikan dari pooler. - initializer_range (
float, opsional, defaultnya0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari Gemma4Model. Kelas ini digunakan untuk membuat instans model Gemma4 sesuai dengan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari google/gemma-4-e2b-it
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
Gemma4TextConfig
kelas transformers.Gemma4TextConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 262144hidden_size: int = 2304intermediate_size: int = 9216num_hidden_layers: int = 30num_attention_heads: int = 8num_key_value_heads: int = 4head_dim: int = 256hidden_activation: str = 'gelu_pytorch_tanh'max_position_embeddings: int = 131072initializer_range: float = 0.02rms_norm_eps: float = 1e-06use_cache: bool = Truepad_token_id: int | None = 0eos_token_id: int | list[int] | None = 1bos_token_id: int | None = 2tie_word_embeddings: bool = Truerope_parameters: dict | None = Noneattention_bias: bool = Falseattention_dropout: int | float | None = 0.0sliding_window: int = 512layer_types: list[str] | None = Nonefinal_logit_softcapping: float | None = Noneuse_bidirectional_attention: typing.Optional[typing.Literal['all', 'vision']] = Nonevocab_size_per_layer_input: int = 262144hidden_size_per_layer_input: int = 256attention_k_eq_v: bool = Falsenum_kv_shared_layers: int = 0enable_moe_block: bool = Falseuse_double_wide_mlp: bool = Falsenum_experts: int | None = Nonetop_k_experts: int | None = Nonemoe_intermediate_size: int | None = None )
Parameter
- vocab_size (
int, opsional, default262144) — Ukuran kosakata model. Menentukan jumlah token berbeda yang dapat direpresentasikan olehinput_ids. - hidden_size (
int, opsional, default2304) — Dimensi dari representasi tersembunyi. - intermediate_size (
int, opsional, default9216) — Dimensi representasi MLP. - num_hidden_layers (
int, opsional, default30) — Jumlah lapisan tersembunyi dalam decoder Transformer. - num_attention_heads (
int, opsional, default8) — Jumlah attention heads untuk setiap lapisan attention di decoder Transformer. - num_key_value_heads (
int, opsional, default4) — Ini adalah jumlah key_value heads yang harus digunakan untuk mengimplementasikan Grouped Query Attention. Jikanum_key_value_heads=num_attention_heads, model akan menggunakan Multi Head Attention (MHA), jikanum_key_value_heads=1model 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 kenum_attention_heads. - head_dim (
int, opsional, default256) — Dimensi head perhatian. Jika None, nilainya akan default ke hidden_size // num_attention_heads - hidden_activation (
str, opsional, defaultnyagelu_pytorch_tanh) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya,"gelu","relu","silu", dan sebagainya. - max_position_embeddings (
int, opsional, default131072) — Panjang maksimum urutan yang mungkin digunakan dengan model ini. - initializer_range (
float, opsional, defaultnya0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot. - rms_norm_eps (
float, opsional, defaultnya1e-06) — Epsilon yang digunakan oleh lapisan normalisasi rms. - use_cache (
bool, opsional, defaultnyaTrue) — Apakah model harus mengembalikan perhatian kunci/nilai terakhir (tidak digunakan oleh semua model). Hanya relevan jikaconfig.is_decoder=Trueatau ketika model adalah model generatif yang hanya decoder. - pad_token_id (
int, opsional, default0) — ID token yang digunakan untuk padding dalam kosakata. - eos_token_id (
Union[int, list[int]], opsional, default1) — ID token yang digunakan untuk end-of-stream dalam kosakata. - bos_token_id (
int, opsional, default2) — ID token yang digunakan untuk awal-stream dalam kosakata. - tie_word_embeddings (
bool, opsional, defaultTrue) — Apakah akan mengikat bobot embedding sesuai dengan pemetaantied_weights_keysmodel. - rope_parameters (
dict, opsional) — Kamus yang berisi parameter konfigurasi untuk embedding RoPE. Kamus tersebut harus berisi nilai untukrope_thetadan secara opsional parameter yang digunakan untuk penskalaan jika Anda ingin menggunakan RoPE denganmax_position_embeddingsyang lebih panjang. - attention_bias (
bool, opsional, defaultFalse) — Apakah akan menggunakan bias pada lapisan proyeksi query, key, value, dan output selama self-attention. - attention_dropout (
Union[int, float], opsional, default0.0) — Rasio dropout untuk probabilitas perhatian. - sliding_window (
int, opsional, default512) — Ukuran jendela untuk sliding window attention. JikaNone, sliding window tidak diterapkan. - 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. - final_logit_softcapping (
float, opsional) — Nilai soft-capping yang diterapkan pada logits akhir sebelum menghitung distribusi probabilitas. Logits diskalakan dengantanh(logit / cap) * cap. - use_bidirectional_attention (
str, opsional) — Mengontrol perilaku perhatian bidireksional. Ketika diatur ke"vision", token visual menggunakan perhatian bidireksional sementara token teks menggunakan perhatian kausal. Ketika diatur ke"all", semua token menggunakan perhatian bidireksional. - vocab_size_per_layer_input (
int, defaultnya 262144) — Ukuran kosakata untuk embedding input per-lapisan (PLE). Digunakan oleh model dengan aliran residual per-lapisan di mana embedding yang lebih kecil ditambahkan di setiap lapisan decoder. - hidden_size_per_layer_input (
int, default 256) — Dimensi hidden per layer untuk sistem PLE. Bobot embedding aktual memiliki bentuk[vocab_size_per_layer_input, num_hidden_layers * hidden_size_per_layer_input]karena semua layer dikemas ke dalam satu tabel. Lihat dokumentasi Gemma4 untuk deskripsi pipeline PLE lengkap. - attention_k_eq_v (
bool, defaultnyaFalse) — Apakah key dan value berbagi bobot proyeksi yang sama. KetikaTrue, output proyeksi key digunakan kembali sebagai proyeksi value. - num_kv_shared_layers (
int, default 0) — Jumlah lapisan decoder berurutan yang berbagi proyeksi key-value yang sama. Nilai 0 berarti tidak ada berbagi (setiap lapisan memiliki proyeksi KV independen). - enable_moe_block (
bool, defaultnyaFalse) — Apakah akan mengaktifkan blok Mixture-of-Experts (MoE) pada lapisan decoder. KetikaTrue, lapisan yang memenuhi syarat akan menggunakan jaringan feed-forward MoE yang sparse. - use_double_wide_mlp (
bool, defaultnyaFalse) — Apakah akan menggunakan MLP dengan lebar ganda yang memiliki proyeksi gate dan up yang digabungkan. - num_experts (
int, opsional) — Jumlah pakar yang dirutekan pada lapisan MoE. - top_k_experts (
int, opsional) — Jumlah ahli yang diaktifkan per token di lapisan MoE. Hanya digunakan ketikaenable_moe_block=True. - moe_intermediate_size (
int, opsional) — Ukuran (tersembunyi) antara dari jaringan feed-forward setiap ahli di lapisan MoE. Hanya digunakan ketikaenable_moe_block=True.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari Gemma4Model. Kelas ini digunakan untuk membuat instans model Gemma4 sesuai dengan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari google/gemma-4-e2b-it
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
Gemma4Config
kelas transformers.Gemma4Config
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonetext_config: transformers.models.gemma4.configuration_gemma4.Gemma4TextConfig | dict[str, typing.Any] | None = Nonevision_config: transformers.models.gemma4.configuration_gemma4.Gemma4VisionConfig | dict[str, typing.Any] | None = Noneaudio_config: transformers.models.gemma4.configuration_gemma4.Gemma4AudioConfig | 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.02tie_word_embeddings: bool = True )
Parameter
- text_config (
Union[~models.gemma4.configuration_gemma4.Gemma4TextConfig, dict[str, Any]], opsional) — Objek config atau dictionary dari text backbone. - vision_config (
Union[~models.gemma4.configuration_gemma4.Gemma4VisionConfig, dict[str, Any]], opsional) — Objek konfigurasi atau kamus dari tulang punggung visual. - audio_config (
Union[~models.gemma4.configuration_gemma4.Gemma4AudioConfig, dict[str, Any]], opsional) — Objek config atau dictionary dari audio backbone. - 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, default258880) — Indeks token gambar yang digunakan sebagai placeholder untuk gambar input. - video_token_id (
int, opsional, default258884) — 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, default258881) — Indeks token audio yang digunakan sebagai placeholder untuk audio input. - initializer_range (
float, opsional, defaultnya0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot. - tie_word_embeddings (
bool, opsional, defaultTrue) — Apakah akan mengikat bobot embedding sesuai dengan pemetaantied_weights_keysmodel.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari Gemma4Model. Kelas ini digunakan untuk membuat instans model Gemma4 sesuai dengan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari google/gemma-4-e2b-it
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
Contoh:
>>> from transformers import (
>>> Gemma4AudioConfig,
>>> Gemma4Config,
>>> Gemma4ForConditionalGeneration,
>>> Gemma4TextConfig,
>>> Gemma4VisionConfig,
>>> )
>>> # Initializing a Gemma 4 Audio config.
>>> audio_config = Gemma4AudioConfig()
>>> # Initializing a Gemma 4 Text config.
>>> text_config = Gemma4TextConfig()
>>> # Initializing a Gemma 4 vision config.
>>> vision_config = Gemma4VisionConfig()
>>> # Initializing a Gemma 4 config similar to google/gemma-4-e2b-it
>>> configuration = Gemma4Config(text_config, vision_config, audio_config)
>>> # Initializing a model from the google/gemma-4-e2b-it configuration
>>> model = Gemma4ForConditionalGeneration(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configGemma4AudioFeatureExtractor
kelas transformers.Gemma4AudioFeatureExtractor
< source >( feature_size: int = 128sampling_rate: int = 16000padding_value: float = 0.0return_attention_mask: bool = Trueframe_length_ms: float = 20.0hop_length_ms: float = 10.0min_frequency: float = 0.0max_frequency: float = 8000.0preemphasis: float = 0.0preemphasis_htk_flavor: bool = Truefft_overdrive: bool = Falsedither: float = 0.0input_scale_factor: float = 1.0mel_floor: float = 0.001per_bin_mean: collections.abc.Sequence[float] | None = Noneper_bin_stddev: collections.abc.Sequence[float] | None = None**kwargs )
Parameter
- feature_size (
int, opsional, default 128) — Dimensi fitur dari fitur yang diekstrak. - sampling_rate (
int, opsional, default 16000) — Laju sampling di mana file audio harus didigitalisasi, dinyatakan dalam hertz (Hz). - padding_value (
float, opsional, default 0.0) — Nilai padding yang digunakan untuk mengisi audio. Seharusnya sesuai dengan bagian hening. - return_attention_mask (
bool, opsional, defaultnyaTrue) — Apakah akan mengembalikan attention mask untuk spekrogram MEL yang dihasilkan. - frame_length_ms (
float, opsional, default 20.0) — Panjang frame dalam milidetik. - hop_length_ms (
float, opsional, default 10.0) — Panjang jendela yang tumpang tindih untuk STFT yang digunakan untuk memperoleh koefisien Frekuensi Mel. - min_frequency (
float, opsional, default 0.0) — Frekuensi minimum (dalam Hz) untuk Mel filterbank. - max_frequency (
float, opsional, default 8000.0) — Frekuensi maksimum (dalam Hz) untuk Mel filterbank. - preemphasis (
float, opsional, default 0.0) — Koefisien preemphasis. - preemphasis_htk_flavor (
bool, opsional, defaultTrue) — Apakah akan menggunakan preemphasis bergaya HTK. - fft_overdrive (
bool, opsional, defaultFalse) — Apakah akan menggunakan FFT overdrive. - dither (
float, opsional, default 0.0) — Menambahkan dithering. Dengan kata lain, menambahkan noise Gaussian kecil ke setiap frame. Misalnya, gunakan 0.0001 untuk menambahkan dithering dengan distribusi normal yang berpusat di sekitar 0.0 dengan deviasi standar 0.0001 (mengasumsikan rentang [-1,+1] dari raw_speech). Nilai 0.0 berarti tidak ada dithering. Dithering memiliki efek serupa denganspectrogram(mel_floor=...). Ini mengurangi nilai log_mel_fbank yang tinggi untuk sinyal dengan bagian hard-zero, ketika VAD cutoff hadir dalam sinyal. - input_scale_factor (
float, opsional, default 1.0) — Faktor penskalaan yang diterapkan pada waveform input. - mel_floor (
float, opsional, default 0.001) — Nilai minimum untuk spektrogram Mel untuk menghindari log(0). - per_bin_mean (
Optional[Sequence[float]], opsional) — Nilai rata-rata untuk normalisasi per bin. - per_bin_stddev (
Optional[Sequence[float]], opsional) — Nilai standar deviasi untuk normalisasi per bin.
Ekstraktor fitur audio Universal Speech Models https://huggingface.co/papers/2303.01037.
__call__
< source >( raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]]padding: bool | str | transformers.utils.generic.PaddingStrategy = 'longest'max_length: int | None = 480000truncation: bool = Truepad_to_multiple_of: int | None = 128return_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_attention_mask: bool | None = True**kwargs )
Parameter
- raw_speech — Audio tempat spekrogram MEL dibuat.
- padding (
Union[bool, str, PaddingStrategy], opsional, default"longest") — Strategi padding yang digunakan untuk batch audio dengan panjang berbeda. - max_length (
int, opsional, default 480000) — Jika diberikan, mendefinisikan panjang maksimum audio yang diizinkan. Audio yang lebih panjang dari ini akan dipangkas jikatruncation=True. - truncation (
bool, opsional, defaultTrue) — Apakah akan memotong audio yang melebihimax_length. - pad_to_multiple_of (
int, opsional, default 128) — Saat melakukan padding, pad hingga kelipatan dari nilai ini. Nilai default didefinisikan untuk dukungan TPU yang optimal. - return_tensors (
Union[str, TensorType], opsional, defaultnyaNone) — Jenis tensor yang akan dikembalikan (misalnya, NumPy, atau Torch). - return_attention_mask (
bool, opsional, defaultnyaTrue) — Apakah akan mengembalikan attention mask untuk spekrogram MEL yang dihasilkan.
Membuat batch spekrogram MEL dari ucapan mentah yang diberikan.
Implementasi ini menggunakan algoritma yang berbeda untuk windowing dan preemphasis dibandingkan dengan fungsi bawaan transformers.audio_utils.spectrogram() yang akan menghasilkan output yang berbeda. Pertimbangkan hal ini dengan cermat saat memilih audio feature extractor, terutama dengan model pre-trained.
Gemma4ImageProcessorPil
kelas transformers.Gemma4ImageProcessorPil
< source >( **kwargs: *<class 'transformers.models.gemma4.image_processing_pil_gemma4.Gemma4ImageProcessorKwargs'> )
Parameter
- do_convert_rgb (
bool, kwargs, opsional, defaultTrue) — Apakah akan mengkonversi gambar ke RGB. - do_resize (
bool, kwargs, opsional, defaultTrue) — 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, defaultnyaTrue) — Apakah akan menggunakan gambar persegi sebagai default saat melakukan resize, jika size berupa int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkancenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, defaultnya3) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini bisa berupa salah satu enumPILImageResampling. Hanya berpengaruh jikado_resizediatur keTrue. - do_rescale (
bool, kwargs, opsional, defaultTrue) — Apakah akan melakukan penskalaan ulang pada gambar. - rescale_factor (
float, kwargs, opsional, default0.00392156862745098) — Faktor rescale untuk menskalakan ulang gambar jikado_rescalediatur keTrue. - do_normalize (
bool, kwargs, opsional, defaultFalse) — 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 jikado_normalizediatur keTrue. - 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 jikado_normalizediatur keTrue. - 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. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam{"height": int, "width" int}untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jikapad_sizetidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketikado_pad=True. - do_center_crop (
bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — HanyaChannelDimension.FIRSTyang 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"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels)."none"atauChannelDimension.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. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke'pt', selain itu mengembalikan daftar tensor. - disable_grouping (
bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang. - patch_size (
int, kwargs, opsional) — Ukuran setiap patch gambar dalam piksel. - max_soft_tokens (
int, kwargs, opsional) — Jumlah maksimum token lunak (visi) per gambar. Harus salah satu dari {70, 140, 280, 560, 1120}. - pooling_kernel_size (
int, kwargs, opsional) — Ukuran kernel pooling spasial yang diterapkan setelah patchification.
Membangun pemroses gambar Gemma4.
praproses
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]**kwargs: *<class 'transformers.models.gemma4.image_processing_pil_gemma4.Gemma4ImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature
Parameter
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — 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, aturdo_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. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkancenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini dapat berupa salah satu enumPILImageResampling. Hanya berpengaruh jikado_resizediatur keTrue. - do_rescale (
bool, kwargs, opsional) — Apakah akan melakukan penskalaan ulang pada gambar. - rescale_factor (
float, kwargs, opsional) — Faktor rescale untuk menskalakan ulang gambar jikado_rescalediatur keTrue. - 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 jikado_normalizediatur keTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - 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. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam{"height": int, "width" int}untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jikapad_sizetidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketikado_pad=True. - do_center_crop (
bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — HanyaChannelDimension.FIRSTyang 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"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels)."none"atauChannelDimension.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. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke'pt', selain itu mengembalikan daftar tensor. - disable_grouping (
bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang. - patch_size (
int, kwargs, opsional) — Ukuran setiap patch gambar dalam piksel. - max_soft_tokens (
int, kwargs, opsional) — Jumlah maksimum token lunak (visi) per gambar. Harus salah satu dari {70, 140, 280, 560, 1120}. - pooling_kernel_size (
int, kwargs, opsional) — Ukuran kernel pooling spasial yang diterapkan setelah patchification.
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.
Gemma4ImageProcessor
kelas transformers.Gemma4ImageProcessor
< source >( **kwargs: *<class 'transformers.models.gemma4.image_processing_gemma4.Gemma4ImageProcessorKwargs'> )
Parameter
- do_convert_rgb (
bool, kwargs, opsional, defaultTrue) — Apakah akan mengkonversi gambar ke RGB. - do_resize (
bool, kwargs, opsional, defaultTrue) — Apakah akan mengubah ukuran gambar. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, defaultnyaNone) — Menggambarkan dimensi input maksimum ke model. - default_to_square (
bool, kwargs, opsional, defaultnyaTrue) — Apakah akan menggunakan gambar persegi sebagai default saat melakukan resize, jika size berupa int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkancenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, defaultnya3) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini bisa berupa salah satu enumPILImageResampling. Hanya berpengaruh jikado_resizediatur keTrue. - do_rescale (
bool, kwargs, opsional, defaultTrue) — Apakah akan melakukan penskalaan ulang pada gambar. - rescale_factor (
float, kwargs, opsional, default0.00392156862745098) — Faktor rescale untuk menskalakan ulang gambar jikado_rescalediatur keTrue. - do_normalize (
bool, kwargs, opsional, defaultFalse) — 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 jikado_normalizediatur keTrue. - 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 jikado_normalizediatur keTrue. - 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. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam{"height": int, "width" int}untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jikapad_sizetidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketikado_pad=True. - do_center_crop (
bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — HanyaChannelDimension.FIRSTyang 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"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels)."none"atauChannelDimension.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. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke'pt', selain itu mengembalikan daftar tensor. - disable_grouping (
bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang. - patch_size (
int, kwargs, opsional) — Ukuran setiap patch gambar dalam piksel. - max_soft_tokens (
int, kwargs, opsional) — Jumlah maksimum token lunak (visi) per gambar. Harus salah satu dari {70, 140, 280, 560, 1120}. - pooling_kernel_size (
int, kwargs, opsional) — Ukuran kernel pooling spasial yang diterapkan setelah patchification.
Membangun pemroses gambar Gemma4.
praproses
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]**kwargs: *<class 'transformers.models.gemma4.image_processing_gemma4.Gemma4ImageProcessorKwargs'> )
Gemma4VideoProcessor
kelas transformers.Gemma4VideoProcessor
< source >( **kwargs: *<class 'transformers.models.gemma4.video_processing_gemma4.Gemma4VideoProcessorKwargs'> )
Parameter
- do_convert_rgb (
bool, kwargs, opsional, defaultTrue) — Apakah akan mengkonversi gambar ke RGB. - do_resize (
bool, kwargs, opsional, defaultTrue) — Apakah akan mengubah ukuran gambar. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, defaultnyaNone) — Menggambarkan dimensi input maksimum ke model. - default_to_square (
bool, kwargs, opsional, defaultnyaTrue) — Apakah akan menggunakan gambar persegi sebagai default saat melakukan resize, jika size berupa int. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, defaultnya3) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini bisa berupa salah satu enumPILImageResampling. Hanya berpengaruh jikado_resizediatur keTrue. - do_rescale (
bool, kwargs, opsional, defaultTrue) — Apakah akan melakukan penskalaan ulang pada gambar. - rescale_factor (
float, kwargs, opsional, default0.00392156862745098) — Faktor rescale untuk menskalakan ulang gambar jikado_rescalediatur keTrue. - do_normalize (
bool, kwargs, opsional, defaultTrue) — 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 jikado_normalizediatur keTrue. - 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 jikado_normalizediatur keTrue. - 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 menerapkancenter_crop. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — HanyaChannelDimension.FIRSTyang 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"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels)."none"atauChannelDimension.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, defaultTrue) — 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 ketikado_sample_frames=True. - num_frames (
Annotated[int | None, None], kwargs, defaultnya32) — Jumlah maksimum frame yang akan disampel ketikado_sample_frames=True. - return_metadata (
bool, kwargs, opsional, defaultFalse) — 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 PyTorchtorch.Tensor.'np': Mengembalikan objek NumPynp.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. - **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 Gemma4VideoProcessor.
praproses
< source >( 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.gemma4.video_processing_gemma4.Gemma4VideoProcessorKwargs'> ) → ~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, aturdo_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 enumPILImageResampling. Hanya berpengaruh jikado_resizediatur keTrue. - do_rescale (
bool, kwargs, opsional) — Apakah akan melakukan penskalaan ulang pada gambar. - rescale_factor (
float, kwargs, opsional) — Faktor rescale untuk menskalakan ulang gambar jikado_rescalediatur keTrue. - 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 jikado_normalizediatur keTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - 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 menerapkancenter_crop. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — HanyaChannelDimension.FIRSTyang 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"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels)."none"atauChannelDimension.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 ketikado_sample_frames=True. - num_frames (
Annotated[int | None, None], kwargs) — Jumlah maksimum frame yang akan disampelkan saatdo_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.
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.
Gemma4Processor
kelas transformers.Gemma4Processor
< source >( 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 (Gemma4VideoProcessor) — Pemroses video 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 Gemma4Processor yang membungkus feature extractor, image processor, tokenizer, dan video processor menjadi satu processor.
[Gemma4Processor] menyediakan semua fungsionalitas dari [Gemma4AudioFeatureExtractor], [Gemma4ImageProcessor], [tokenizer_class], dan [Gemma4VideoProcessor]. Lihat [~Gemma4AudioFeatureExtractor], [~Gemma4ImageProcessor], [~tokenizer_class], dan [~Gemma4VideoProcessor] untuk informasi lebih lanjut.
__call__
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Nonetext: str | list[str] | list[list[str]] | None = Nonevideos: typing.Union[list['PIL.Image.Image'], numpy.ndarray, ForwardRef('torch.Tensor'), list[numpy.ndarray], list['torch.Tensor'], list[list['PIL.Image.Image']], list[list[numpy.ndarray]], list[list['torch.Tensor']], transformers.video_utils.URL, list[transformers.video_utils.URL], list[list[transformers.video_utils.URL]], transformers.video_utils.Path, list[transformers.video_utils.Path], list[list[transformers.video_utils.Path]], NoneType] = Noneaudio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = None**kwargs: *<class 'transformers.processing_utils.ProcessingKwargs'> )
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, aturdo_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, aturis_split_into_words=Trueuntuk 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, aturdo_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. - return_tensors (
stratau TensorType, opsional) — Jika diset, akan mengembalikan tensor dari framework tertentu. Nilai yang dapat diterima adalah:'pt': Mengembalikan objek PyTorchtorch.Tensor.'np': Mengembalikan objek NumPynp.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.
Gemma4PreTrainedModel
kelas transformers.Gemma4PreTrainedModel
< source >( 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.
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.
Gemma4AudioModel
Encoder audio yang didasarkan pada arsitektur Universal Speech Model.
forward
< source >( input_features: Tensorattention_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )
Parameter
- input_features (
torch.Tensordengan bentuk(batch_size, sequence_length, feature_dim)) — Tensor yang sesuai dengan fitur audio input. Fitur audio dapat diperoleh menggunakan Gemma4AudioFeatureExtractor. Lihat Gemma4AudioFeatureExtractor.call() untuk detailnya (Gemma4Processor menggunakan Gemma4AudioFeatureExtractor untuk memproses audio). - attention_mask (
torch.Tensordengan 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.
Mengkodekan fitur audio menjadi token lunak.
Gemma4VisionModel
Enkoder Visi Gemma 4.
forward
< source >( pixel_values: FloatTensorpixel_position_ids: LongTensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPast or tuple(torch.FloatTensor)
Parameter
- pixel_values (
torch.FloatTensorataulist[torch.FloatTensor]) — Gambar-gambar yang akan dienkod. Bisa berupa satu tensor[batch, channels, height, width](semua gambar berukuran sama) atau daftar tensor[1, channels, height, width](ukuran berbeda). - pixel_position_ids (
torch.LongTensordengan bentuk(batch_size, max_patches, 2)) — Posisi patch sebagai koordinat (x, y) dalam gambar. Patch padding ditandai dengan (-1, -1).
Mengembalikan
BaseModelOutputWithPast atau tuple(torch.FloatTensor)
A BaseModelOutputWithPast atau tuple dari
torch.FloatTensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (Gemma4Config) dan input.
Mengkodekan piksel gambar menjadi token lunak dari patch.
last_hidden_state (
torch.FloatTensordengan bentuk(batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.Jika
past_key_valuesdigunakan, hanya hidden-state terakhir dari sekuens dengan bentuk(batch_size, 1, hidden_size)yang dioutput.past_key_values (
Cache, opsional, dikembalikan saatuse_cache=Truedilewatkan atau saatconfig.use_cache=True) — Ini adalah instance Cache. Untuk detail lebih lanjut, lihat panduan kv cache kami.Berisi hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention, dan secara opsional jika
config.is_encoder_decoder=Truedi blok cross-attention) yang dapat digunakan (lihat inputpast_key_values) untuk mempercepat decoding berurutan.hidden_states (
tuple(torch.FloatTensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.FloatTensor(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.FloatTensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.FloatTensor(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).
Gemma4TextModel
kelas transformers.Gemma4TextModel
< source >( config: Gemma4TextConfig )
Parameter
- config (Gemma4TextConfig) — 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 bahasa dasar Gemma 4 tanpa kepala pemodelan bahasa.
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
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Noneper_layer_inputs: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Gemma4TextModelOutputWithPast or tuple(torch.FloatTensor)
Parameter
- input_ids (
torch.LongTensordengan 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.
- attention_mask (
torch.Tensordengan 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.
- position_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, opsional) — Hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri daripast_key_valuesyang dikembalikan oleh model pada tahap decoding sebelumnya, ketikause_cache=Trueatauconfig.use_cache=True.Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada
past_key_valuesyang diteruskan, DynamicCache akan diinisialisasi secara default.Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.
Jika
past_key_valuesdigunakan, pengguna diharapkan hanya memasukkaninput_idsyang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk(batch_size, unprocessed_length)alih-alih semuainput_idsdengan bentuk(batch_size, sequence_length). - inputs_embeds (
torch.FloatTensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - per_layer_inputs (
torch.Tensor, opsional) — Embedding teks input per lapisan yang sudah dihitung sebelumnya dengan bentuk(batch_size, sequence_length, num_hidden_layers, hidden_size_per_layer_input). Jika disediakan, embedding ini digunakan langsung alih-alih dihitung dariinput_idsmelaluiget_per_layer_inputs()di model teks. Jika memanggilforwarddenganinputs_embedsalih-alihinput_ids, sebaiknya hitung sebelumnya dan teruskan bersamainputs_embeds, karena jika tidak, menghitung ulang embedding ini memerlukan pembalikan embedding utama, yang sangat mahal. - use_cache (
bool, opsional) — Jika diset keTrue, state kunci-nilaipast_key_valuesakan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihatpast_key_values).
Mengembalikan
Gemma4TextModelOutputWithPast atau tuple(torch.FloatTensor)
A Gemma4TextModelOutputWithPast atau tuple dari
torch.FloatTensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (Gemma4Config) dan input.
Metode forward dari Gemma4TextModel menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
- shared_kv_states (
KVSharingDict, opsional) — Kontainer mirip dict yang memetakan string tipe layer ke tuple tensor (key_states, value_states). Digunakan untuk meneruskan state KV bersama antar layer selama KV sharing. - router_logits (
tuple(torch.FloatTensor), opsional, dikembalikan saatoutput_router_logits=Truediteruskan) — Tuple daritorch.FloatTensor(satu untuk setiap lapisan MoE) dengan bentuk(batch_size * sequence_length, num_experts).
Gemma4ForCausalLM
kelas transformers.Gemma4ForCausalLM
< source >( config: Gemma4TextConfig )
Parameter
- config (Gemma4TextConfig) — 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 bahasa dasar Gemma 4 dengan kepala pemodelan bahasa.
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
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0per_layer_inputs: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Gemma4CausalLMOutputWithPast or tuple(torch.FloatTensor)
Parameter
- input_ids (
torch.LongTensordengan 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.
- attention_mask (
torch.Tensordengan 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.
- position_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, opsional) — Hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri daripast_key_valuesyang dikembalikan oleh model pada tahap decoding sebelumnya, ketikause_cache=Trueatauconfig.use_cache=True.Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada
past_key_valuesyang diteruskan, DynamicCache akan diinisialisasi secara default.Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.
Jika
past_key_valuesdigunakan, pengguna diharapkan hanya memasukkaninput_idsyang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk(batch_size, unprocessed_length)alih-alih semuainput_idsdengan bentuk(batch_size, sequence_length). - inputs_embeds (
torch.FloatTensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - labels (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Label untuk menghitung kerugian pemodelan bahasa yang disamarkan (masked language modeling). Indeks harus berada dalam[0, ..., config.vocab_size]atau -100 (lihat docstringinput_ids). Token dengan indeks yang disetel ke-100diabaikan (disamarkan), kerugian hanya dihitung untuk token dengan label dalam[0, ..., config.vocab_size]. - use_cache (
bool, opsional) — Jika diset keTrue, state kunci-nilaipast_key_valuesakan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihatpast_key_values). - logits_to_keep (
Union[int, torch.Tensor], opsional, default0) — Jika berupaint, hitung logits untuklogits_to_keeptoken terakhir. Jika0, hitung logits untuk semuainput_ids(kasus khusus). Hanya logits token terakhir yang diperlukan untuk generasi, dan menghitungnya hanya untuk token tersebut dapat menghemat memori, yang menjadi cukup signifikan untuk urutan panjang atau ukuran kosakata besar. Jika berupatorch.Tensor, harus 1D yang sesuai dengan indeks yang akan dipertahankan pada dimensi panjang urutan. Ini berguna saat menggunakan format tensor terpadu (satu dimensi untuk batch dan panjang urutan). - per_layer_inputs (
torch.Tensor, opsional) — Embedding teks input per lapisan yang sudah dihitung sebelumnya dengan bentuk(batch_size, sequence_length, num_hidden_layers, hidden_size_per_layer_input). Jika disediakan, embedding ini digunakan langsung alih-alih dihitung dariinput_idsmelaluiget_per_layer_inputs()di model teks. Jika memanggilforwarddenganinputs_embedsalih-alihinput_ids, sebaiknya hitung sebelumnya dan teruskan bersamainputs_embeds, karena jika tidak, menghitung ulang embedding ini memerlukan pembalikan embedding utama, yang sangat mahal.
Mengembalikan
Gemma4CausalLMOutputWithPast atau tuple(torch.FloatTensor)
Gemma4CausalLMOutputWithPast atau tuple dari
torch.FloatTensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (Gemma4Config) dan input.
Metode forward dari Gemma4ForCausalLM menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
loss (
torch.FloatTensordengan bentuk(1,), opsional, dikembalikan saatlabelsdisediakan) — Loss pemodelan bahasa (untuk prediksi token berikutnya).logits (
torch.FloatTensordengan bentuk(batch_size, sequence_length, config.text_config.vocab_size)) — Skor prediksi dari kepala pemodelan bahasa (skor untuk setiap token kosakata sebelum SoftMax).past_key_values (
Cache, opsional, dikembalikan saatuse_cache=Truedilewatkan atau saatconfig.use_cache=True) — Ini adalah instance Cache. Untuk detail lebih lanjut, lihat panduan kv cache kami.Berisi hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention) yang dapat digunakan (lihat input
past_key_values) untuk mempercepat decoding berurutan.hidden_states (
tuple[torch.FloatTensor], opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.FloatTensor(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.FloatTensor], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.FloatTensor(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.FloatTensor, opsional) — Sebuahtorch.FloatTensorberukuran(batch_size, num_images, sequence_length, hidden_size). image_hidden_states dari model yang dihasilkan oleh vision encoder setelah memproyeksikan last hidden state.audio_hidden_states (
torch.FloatTensor, opsional) — Sebuahtorch.FloatTensorberukuran(batch_size, num_images, sequence_length, hidden_size). audio_hidden_states dari model yang dihasilkan oleh encoder audio dan setelah memproyeksikan hidden state terakhir.shared_kv_states (
KVSharingDict, opsional) — Kontainer mirip dict yang memetakan string tipe layer ke tuple tensor (key_states, value_states). Digunakan untuk meneruskan state KV bersama antar layer selama KV sharing.router_logits (
tuple(torch.FloatTensor), opsional, dikembalikan saatoutput_router_logits=Truediteruskan) — Tuple daritorch.FloatTensor(satu untuk setiap lapisan MoE) dengan bentuk(batch_size * sequence_length, num_experts).
Contoh:
>>> from transformers import AutoTokenizer, Gemma4ForCausalLM
>>> model = Gemma4ForCausalLM.from_pretrained("google/gemma-4-E2B-it")
>>> tokenizer = AutoTokenizer.from_pretrained("google/gemma-4-E2B-it")
>>> prompt = "What is your favorite condiment?"
>>> inputs = tokenizer(prompt, return_tensors="pt")
>>> # Generate
>>> generate_ids = model.generate(inputs.input_ids, max_length=30)
>>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
"What is your favorite condiment?"Gemma4Model
kelas transformers.Gemma4Model
< source >( config: Gemma4Config )
Parameter
- config (Gemma4Config) — 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 dasar Gemma 4 yang terdiri dari tulang punggung visual, tulang punggung audio, dan model bahasa tanpa kepala pemodelan bahasa.
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
< source >( 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] = Nonepast_key_values: transformers.cache_utils.Cache | None = Nonemm_token_type_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Noneuse_cache: bool | None = Noneimage_position_ids: typing.Optional[torch.LongTensor] = Nonevideo_position_ids: typing.Optional[torch.LongTensor] = Nonenum_frames_per_video: typing.Optional[torch.LongTensor] = Noneper_layer_inputs: typing.Optional[torch.Tensor] = Nonemm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Gemma4ModelOutputWithPast or tuple(torch.FloatTensor)
Parameter
- input_ids (
torch.LongTensordengan 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.
- pixel_values (
torch.FloatTensordengan 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 (Gemma4Processor menggunakan Gemma4ImageProcessor untuk memproses gambar). - pixel_values_videos (
torch.FloatTensordengan 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 Gemma4VideoProcessor. Lihat Gemma4VideoProcessor.call() untuk detailnya (Gemma4Processor menggunakan Gemma4VideoProcessor untuk memproses video). - input_features (
torch.FloatTensordengan 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 (Gemma4Processor menggunakan Gemma4AudioFeatureExtractor untuk memproses audio). - attention_mask (
torch.Tensordengan 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.
- input_features_mask (
torch.FloatTensordengan bentuk(num_images, seq_length)) — Mask perhatian untuk audio masukan. - position_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, opsional) — Hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri daripast_key_valuesyang dikembalikan oleh model pada tahap decoding sebelumnya, ketikause_cache=Trueatauconfig.use_cache=True.Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada
past_key_valuesyang diteruskan, DynamicCache akan diinisialisasi secara default.Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.
Jika
past_key_valuesdigunakan, pengguna diharapkan hanya memasukkaninput_idsyang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk(batch_size, unprocessed_length)alih-alih semuainput_idsdengan bentuk(batch_size, sequence_length). - mm_token_type_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token urutan masukan yang sesuai dengan setiap modalitas. Misalnya teks (0), gambar (1), video (2). ID token multimodal dapat diperoleh menggunakan AutoProcessor. Lihat ProcessorMixin.call() untuk detailnya. - inputs_embeds (
torch.FloatTensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - use_cache (
bool, opsional) — Jika diset keTrue, state kunci-nilaipast_key_valuesakan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihatpast_key_values). - image_position_ids (
torch.LongTensordengan 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.LongTensordengan 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.LongTensordengan bentuk(num_videos,), opsional) — Jumlah frame yang dimiliki oleh setiap video. Wajib diisi setiap kalipixel_values_videosdiberikan, karena frame dari semua video digabungkan sepanjang satu sumbu. - per_layer_inputs (
torch.Tensor, opsional) — Embedding teks input per lapisan yang sudah dihitung sebelumnya dengan bentuk(batch_size, sequence_length, num_hidden_layers, hidden_size_per_layer_input). Jika disediakan, embedding ini digunakan langsung alih-alih dihitung dariinput_idsmelaluiget_per_layer_inputs()di model teks. Jika memanggilforwarddenganinputs_embedsalih-alihinput_ids, sebaiknya hitung sebelumnya dan teruskan bersamainputs_embeds, karena jika tidak, menghitung ulang embedding ini memerlukan pembalikan embedding utama, yang sangat mahal. - mm_encoder_outputs (
dict[str, ~modeling_outputs.BaseModelOutputWithPooling], opsional) — Dict di mana kuncinya adalah modalitas yang didukung dan nilainya adalah output terenkod untuk modalitas tersebut. Setiap output terenkod adalah tuple yang terdiri dari (pooler_output, opsional:last_hidden_states, opsional:hidden_states, opsional:attentions)pooler_outputdengan bentuk(batch_size, sequence_length, hidden_size), opsional) adalah rangkaian fitur multimodal dari encoder yang digabungkan ke dalam embedding teks.
Mengembalikan
Gemma4ModelOutputWithPast atau tuple(torch.FloatTensor)
Gemma4ModelOutputWithPast atau tuple dari
torch.FloatTensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (Gemma4Config) dan input.
Metode forward dari Gemma4Model menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya 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.FloatTensordengan bentuk(batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.Jika
past_key_valuesdigunakan, hanya hidden-state terakhir dari sekuens dengan bentuk(batch_size, 1, hidden_size)yang dioutput.past_key_values (
Cache, opsional, dikembalikan saatuse_cache=Truedilewatkan atau saatconfig.use_cache=True) — Ini adalah instance Cache. Untuk detail lebih lanjut, lihat panduan kv cache kami.Berisi hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention) yang dapat digunakan (lihat input
past_key_values) untuk mempercepat decoding berurutan.hidden_states (
tuple(torch.FloatTensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.FloatTensor(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.FloatTensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.FloatTensor(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.FloatTensor, opsional) — Sebuahtorch.FloatTensorberukuran(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.FloatTensor, opsional) — Sebuahtorch.FloatTensorberukuran(batch_size, num_images, sequence_length, hidden_size). audio_hidden_states dari model yang dihasilkan oleh encoder audio dan setelah memproyeksikan hidden state terakhir.shared_kv_states (
KVSharingDict, opsional) — Kontainer mirip dict yang memetakan string tipe layer ke tuple tensor (key_states, value_states). Digunakan untuk meneruskan state KV bersama antar layer selama KV sharing.router_logits (
tuple(torch.FloatTensor), opsional, dikembalikan saatoutput_router_logits=Truediteruskan) — Tuple daritorch.FloatTensor(satu untuk setiap lapisan MoE) dengan bentuk(batch_size * sequence_length, num_experts).
Gemma4ForConditionalGeneration
kelas transformers.Gemma4ForConditionalGeneration
< source >( config: Gemma4Config )
Parameter
- config (Gemma4Config) — 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 dasar Gemma 4 yang terdiri dari tulang punggung visual, tulang punggung audio, model bahasa, dan kepala pemodelan bahasa.
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
< source >( 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] = Noneimage_position_ids: typing.Optional[torch.LongTensor] = Nonevideo_position_ids: typing.Optional[torch.LongTensor] = Nonenum_frames_per_video: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Nonemm_token_type_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0per_layer_inputs: typing.Optional[torch.Tensor] = Nonemm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Gemma4CausalLMOutputWithPast or tuple(torch.FloatTensor)
Parameter
- input_ids (
torch.LongTensordengan 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.
- pixel_values (
torch.FloatTensordengan 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 (Gemma4Processor menggunakan Gemma4ImageProcessor untuk memproses gambar). - pixel_values_videos (
torch.FloatTensordengan 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 Gemma4VideoProcessor. Lihat Gemma4VideoProcessor.call() untuk detailnya (Gemma4Processor menggunakan Gemma4VideoProcessor untuk memproses video). - input_features (
torch.FloatTensordengan 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 (Gemma4Processor menggunakan Gemma4AudioFeatureExtractor untuk memproses audio). - attention_mask (
torch.Tensordengan 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.
- input_features_mask (
torch.FloatTensordengan bentuk(num_images, seq_length)) — Mask perhatian untuk audio masukan. - position_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang[0, config.n_positions - 1]. - image_position_ids (
torch.LongTensordengan 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.LongTensordengan 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.LongTensordengan bentuk(num_videos,), opsional) — Jumlah frame yang dimiliki oleh setiap video. Wajib diisi setiap kalipixel_values_videosdiberikan, karena frame dari semua video digabungkan sepanjang satu sumbu. - past_key_values (
~cache_utils.Cache, opsional) — Hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri daripast_key_valuesyang dikembalikan oleh model pada tahap decoding sebelumnya, ketikause_cache=Trueatauconfig.use_cache=True.Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada
past_key_valuesyang diteruskan, DynamicCache akan diinisialisasi secara default.Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.
Jika
past_key_valuesdigunakan, pengguna diharapkan hanya memasukkaninput_idsyang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk(batch_size, unprocessed_length)alih-alih semuainput_idsdengan bentuk(batch_size, sequence_length). - mm_token_type_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token urutan masukan yang sesuai dengan setiap modalitas. Misalnya teks (0), gambar (1), video (2). ID token multimodal dapat diperoleh menggunakan AutoProcessor. Lihat ProcessorMixin.call() untuk detailnya. - inputs_embeds (
torch.FloatTensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - labels (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Label untuk menghitung kerugian pemodelan bahasa yang disamarkan (masked language modeling). Indeks harus berada dalam[0, ..., config.vocab_size]atau -100 (lihat docstringinput_ids). Token dengan indeks yang disetel ke-100diabaikan (disamarkan), kerugian hanya dihitung untuk token dengan label dalam[0, ..., config.vocab_size]. - use_cache (
bool, opsional) — Jika diset keTrue, state kunci-nilaipast_key_valuesakan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihatpast_key_values). - logits_to_keep (
Union[int, torch.Tensor], opsional, default0) — Jika berupaint, hitung logits untuklogits_to_keeptoken terakhir. Jika0, hitung logits untuk semuainput_ids(kasus khusus). Hanya logits token terakhir yang diperlukan untuk generasi, dan menghitungnya hanya untuk token tersebut dapat menghemat memori, yang menjadi cukup signifikan untuk urutan panjang atau ukuran kosakata besar. Jika berupatorch.Tensor, harus 1D yang sesuai dengan indeks yang akan dipertahankan pada dimensi panjang urutan. Ini berguna saat menggunakan format tensor terpadu (satu dimensi untuk batch dan panjang urutan). - per_layer_inputs (
torch.Tensor, opsional) — Embedding teks input per lapisan yang sudah dihitung sebelumnya dengan bentuk(batch_size, sequence_length, num_hidden_layers, hidden_size_per_layer_input). Jika disediakan, embedding ini digunakan langsung alih-alih dihitung dariinput_idsmelaluiget_per_layer_inputs()di model teks. Jika memanggilforwarddenganinputs_embedsalih-alihinput_ids, sebaiknya hitung sebelumnya dan teruskan bersamainputs_embeds, karena jika tidak, menghitung ulang embedding ini memerlukan pembalikan embedding utama, yang sangat mahal. - mm_encoder_outputs (
dict[str, ~modeling_outputs.BaseModelOutputWithPooling], opsional) — Dict di mana kuncinya adalah modalitas yang didukung dan nilainya adalah output terenkod untuk modalitas tersebut. Setiap output terenkod adalah tuple yang terdiri dari (pooler_output, opsional:last_hidden_states, opsional:hidden_states, opsional:attentions)pooler_outputdengan bentuk(batch_size, sequence_length, hidden_size), opsional) adalah rangkaian fitur multimodal dari encoder yang digabungkan ke dalam embedding teks.
Mengembalikan
Gemma4CausalLMOutputWithPast atau tuple(torch.FloatTensor)
Gemma4CausalLMOutputWithPast atau tuple dari
torch.FloatTensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (Gemma4Config) dan input.
Metode forward dari Gemma4ForConditionalGeneration menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
loss (
torch.FloatTensordengan bentuk(1,), opsional, dikembalikan saatlabelsdisediakan) — Loss pemodelan bahasa (untuk prediksi token berikutnya).logits (
torch.FloatTensordengan bentuk(batch_size, sequence_length, config.text_config.vocab_size)) — Skor prediksi dari kepala pemodelan bahasa (skor untuk setiap token kosakata sebelum SoftMax).past_key_values (
Cache, opsional, dikembalikan saatuse_cache=Truedilewatkan atau saatconfig.use_cache=True) — Ini adalah instance Cache. Untuk detail lebih lanjut, lihat panduan kv cache kami.Berisi hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention) yang dapat digunakan (lihat input
past_key_values) untuk mempercepat decoding berurutan.hidden_states (
tuple[torch.FloatTensor], opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.FloatTensor(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.FloatTensor], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.FloatTensor(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.FloatTensor, opsional) — Sebuahtorch.FloatTensorberukuran(batch_size, num_images, sequence_length, hidden_size). image_hidden_states dari model yang dihasilkan oleh vision encoder setelah memproyeksikan last hidden state.audio_hidden_states (
torch.FloatTensor, opsional) — Sebuahtorch.FloatTensorberukuran(batch_size, num_images, sequence_length, hidden_size). audio_hidden_states dari model yang dihasilkan oleh encoder audio dan setelah memproyeksikan hidden state terakhir.shared_kv_states (
KVSharingDict, opsional) — Kontainer mirip dict yang memetakan string tipe layer ke tuple tensor (key_states, value_states). Digunakan untuk meneruskan state KV bersama antar layer selama KV sharing.router_logits (
tuple(torch.FloatTensor), opsional, dikembalikan saatoutput_router_logits=Truediteruskan) — Tuple daritorch.FloatTensor(satu untuk setiap lapisan MoE) dengan bentuk(batch_size * sequence_length, num_experts).
Contoh:
>>> from PIL import Image
>>> from transformers import AutoProcessor, Gemma4ForConditionalGeneration
>>> model = Gemma4ForConditionalGeneration.from_pretrained("google/gemma-4-e2b-it")
>>> processor = AutoProcessor.from_pretrained("google/gemma-4-e2b-it")
>>> messages = [
... {
... "role": "user", "content": [
... {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
... {"type": "text", "text": "Where is the cat standing?"},
... ]
... },
... ]
>>> inputs = processor.apply_chat_template(
... messages,
... tokenize=True,
... return_dict=True,
... return_tensors="pt",
... add_generation_prompt=True
... )
>>> # Generate
>>> generate_ids = model.generate(**inputs)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True)[0]