Transformers documentation
Gemma4
Эта модель была добавлена в Hugging Face Transformers 2026-04-02.
Gemma4
Обзор
Gemma 4 — это мультимодальная модель, доступная в вариантах с предобучением и дообучением по инструкциям, с размерами параметров E2B, E4B, 31B и 26B-A4B (MoE). Модели Gemma 4 обеспечивают следующие возможности:
- Рассуждения: Все модели в семействе разработаны как высокопроизводительные рассуждающие модели с настраиваемыми режимами размышления.
- Расширенные мультимодальности: обработка текста, изображений с поддержкой переменного соотношения сторон и разрешения (во всех моделях), видео и аудио (нативно поддерживается в моделях E2B и E4B).
- Увеличенное контекстное окно: у небольших моделей контекстное окно составляет 128K, а у остальных моделей — 256K.
- Расширенные возможности кодирования и агентные функции: Достигает значительных улучшений в бенчмарках по кодированию, а также поддерживает встроенные вызовы функций, что обеспечивает работу высокопроизводительных автономных агентов.
- Поддержка системного промпта: Gemma 4 вводит встроенную поддержку системной роли, что позволяет вести более структурированные и управляемые диалоги.
Все исходные контрольные точки Gemma 4 можно найти в релизе Gemma 4.
Модель Gemma4 Vision
Ключевое отличие от предыдущих релизов Gemma для задач компьютерного зрения — новый подход к обработке изображений разного размера с использованием фиксированного бюджета токенов. В отличие от многих моделей, которые вписывают любое изображение в фиксированный квадрат (например, 224×224), Gemma 4 сохраняет естественное соотношение сторон изображения, приводя его к нужному размеру. При этом необходимо соблюдать несколько ограничений:
- Общее количество пикселей должно укладываться в бюджет патчей
- Высота и ширина должны делиться нацело на 48 (= размер патча 16 × ядро пулинга 3)
Gemma 4 не применяет стандартную нормализацию по среднему/стандартному отклонению ImageNet, которую используют многие другие модели компьютерного зрения. Слой встраивания патчей самой модели выполняет финальное масштабирование внутри (сдвигая значения в диапазон [-1, 1]).
Количество «мягких токенов» (также называемых визуальными токенами), которые может сгенерировать процессор изображений, настраивается. Поддерживаемые варианты описаны ниже, а значением по умолчанию является 280 мягких токенов на изображение.
| Мягкие токены | Патчи (до пулинга) | Прибл. область изображения |
|---|---|---|
| 70 | 630 | ~161 тыс. пикселей |
| 140 | 1,260 | ~323 тыс. пикселей |
| 280 | 2,520 | ~645 тыс. пикселей |
| 560 | 5,040 | ~1,3 млн пикселей |
| 1,120 | 10,080 | ~2,6 млн пикселей |
Для кодирования позиционной информации каждого патча в изображении Gemma 4 использует обучаемую таблицу 2D-позиционных эмбеддингов. Таблица позиций хранит до 10 240 позиций по каждой оси, что позволяет модели обрабатывать очень большие изображения. Каждая позиция представляет собой обучаемый вектор тех же размерностей, что и эмбеддинг патча. 2D RoPE, который использует Gemma 4, независимо вращает половину размерностей головы внимания для оси x и другую половину для оси y. Это позволяет модели понимать пространственные отношения, такие как «выше», «ниже», «слева» и «справа».
Встраивания по слоям (PLE)
Gemma 4 вводит систему Per-Layer Embeddings (PLE), которая подаёт дополнительный остаточный сигнал в каждый слой декодера, а не полагается исключительно на единую общую эмбеддинг на входе.
PLE объединяет два компонента, которые суммируются и масштабируются множителем 1/√2 перед подачей на каждый слой декодера:
- Идентичность токенов (
get_per_layer_inputs): выполняет поискinput_idsвembed_tokens_per_layer, являющемсяGemma4TextScaledWordEmbedding, который умножает на√(hidden_size_per_layer_input). Упакованный вывод изменяет форму с[batch, seq, num_hidden_layers * hidden_size_per_layer_input]на[batch, seq, num_hidden_layers, hidden_size_per_layer_input]. - С учётом контекста (
project_per_layer_inputs): проецируетinputs_embedsчерезper_layer_model_projection(линейный слой), масштабирует на1/√(hidden_size), изменяет форму до[batch, seq, num_layers, ple_dim]и нормализует с помощьюper_layer_projection_norm(RMSNorm).
Когда оба компонента доступны, итоговый вход для каждого слоя равен (token_identity + context_aware) * (1/√2). Для мультимодальных входов, когда input_ids недоступны, используется только контекстно-зависимая проекция.
Примеры использования
Приведённый ниже пример показывает, как генерировать текст на основе изображения с помощью Pipeline или класса 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))Вызов функций
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))Аудио (только E2B и 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
класс 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 )
Параметры
- hidden_size (
int, необязательный, по умолчанию1024) — Размерность скрытых представлений. - num_hidden_layers (
int, необязательный, по умолчанию12) — Количество скрытых слоев в декодере Transformer. - num_attention_heads (
int, необязательный, по умолчанию8) — Количество головок внимания в каждом слое внимания декодера Transformer. - hidden_act (
str, необязательный, по умолчаниюsilu) — Нелинейная функция активации (функция или строка) в декодере. Например,"gelu","relu","silu"и т. д. - subsampling_conv_channels (
list[int], по умолчанию[128, 32]) — Размеры каналов для свёрточных слоев в Sub-sample Convolution Projection. - conv_kernel_size (
int, необязательный, по умолчанию5) — Размер свёрточного ядра. - residual_weight (
float, по умолчанию0.5) — Масштабирование, применяемое к hidden_states перед объединением с остаточным соединением в feedforward. - attention_chunk_size (
int, по умолчанию12) — Размер подпоследовательности для обработки внимания. - attention_context_left (
int, по умолчанию13) — Размер контекста слева для блока внимания. - attention_context_right (
int, по умолчанию0) — Размер контекста справа для блока внимания. - attention_logit_cap (
float, по умолчанию50.0) — Ограничение, применяемое к весам внимания. - attention_invalid_logits_value (
float, по умолчанию1e-9) — Значение, используемое для недействительных logits в attention. - use_clipped_linears (
bool, по умолчаниюTrue) — Если значение равно true, применяется обрезание (clipping) к слоям Linear, при этом границы берутся из контрольной точки модели. - rms_norm_eps (
float, необязательный, по умолчанию1e-06) — Значение epsilon, используемое слоями нормализации rms. - gradient_clipping (
float, по умолчанию1e10) — Значение обрезки, используемое для стабилизации чрезвычайно больших значений градиентов. - output_proj_dims (
int, по умолчанию1536) — Размерность финального линейного проецирования изhidden_sizeв выход модели. - initializer_range (
float, необязательный, по умолчанию0.02) — Стандартное отклонение truncated_normal_initializer, используемое для инициализации всех матриц весов.
Это класс конфигурации для хранения настроек модели Gemma4Model. Он используется для создания модели Gemma4 в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации google/gemma-4-e2b-it
Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.
Gemma4VisionConfig
класс 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 )
Параметры
- hidden_size (
int, необязательный, по умолчанию768) — Размерность скрытых представлений. - intermediate_size (
int, необязательный, по умолчанию3072) — Размерность представлений MLP. - num_hidden_layers (
int, необязательный, по умолчанию16) — Количество скрытых слоев в декодере Transformer. - num_attention_heads (
int, необязательный, по умолчанию12) — Количество головок внимания в каждом слое внимания декодера Transformer. - num_key_value_heads (
int, необязательный, по умолчанию12) — Это количество ключевых и value-голов, используемых для реализации Grouped Query Attention. Еслиnum_key_value_heads=num_attention_heads, модель использует Multi Head Attention (MHA); еслиnum_key_value_heads=1— Multi Query Attention (MQA); в остальных случаях применяется GQA. При конвертации мультиголовного чекпоинта в GQA-чекпоинт каждая групповая ключевая и value-голова должна построиться путём усреднения (meanpooling) всех исходных голов в этой группе. Дополнительные сведения см. в этой статье. Если значение не указано, по умолчанию используетсяnum_attention_heads. - head_dim (
int, необязательный, по умолчанию64) — Размерность головы внимания. Если значение равно None, по умолчанию используется hidden_size // num_attention_heads - hidden_activation (
str, необязательный, по умолчаниюgelu_pytorch_tanh) — Нелинейная функция активации (функция или строка) в декодере. Например,"gelu","relu","silu"и т. д. - rms_norm_eps (
float, необязательный, по умолчанию1e-06) — Значение epsilon, используемое слоями нормализации rms. - max_position_embeddings (
int, необязательный, по умолчанию131072) — Максимальная длина последовательности, с которой может использоваться эта модель. - attention_bias (
bool, необязательный, по умолчаниюFalse) — Использовать ли смещение (bias) в слоях проекции query, key, value и output при само-внимании. - attention_dropout (
float, необязательный, по умолчанию0.0) — Коэффициент dropout для вероятностей внимания. - rope_parameters (
dict, необязательный) — Словарь, содержащий параметры конфигурации для эмбеддингов RoPE. В словаре должно быть указано значение дляrope_thetaи, при необходимости, параметры, используемые для масштабирования, если вы хотите использовать RoPE с более длиннымиmax_position_embeddings. - pooling_kernel_size (
int, необязательный) — Размер ядра пространственного пулинга, применяемого после патчификации. - patch_size (
int, необязательный, по умолчанию16) — Размер (разрешение) каждого патча. - position_embedding_size (
int, по умолчанию 10240) — Максимальное количество позиционных эмбеддингов для визуального энкодера. Определяет размер таблицы обучаемых 2D позиционных эмбеддингов, используемой patch embedder. - use_clipped_linears (
bool, по умолчаниюFalse) — Использовать ли линейные слои со срезанием весов. При включении веса линейных слоёв ограничиваются фиксированным диапазоном во время прямого прохода для повышения численной устойчивости. - standardize (
bool, по умолчаниюFalse) — Если установлено в true, применяет смещение и масштабирование к мягким токенам, возвращаемым пулером. - initializer_range (
float, необязательный, по умолчанию0.02) — Стандартное отклонение truncated_normal_initializer, используемое для инициализации всех матриц весов.
Это класс конфигурации для хранения настроек модели Gemma4Model. Он используется для создания модели Gemma4 в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации google/gemma-4-e2b-it
Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.
Gemma4TextConfig
класс 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 )
Параметры
- vocab_size (
int, необязательный, по умолчанию262144) — Размер словаря модели. Определяет количество различных токенов, которые могут быть представлены вinput_ids. - hidden_size (
int, необязательный, по умолчанию2304) — Размерность скрытых представлений. - intermediate_size (
int, необязательный, по умолчанию9216) — Размерность представлений MLP. - num_hidden_layers (
int, необязательный, по умолчанию30) — Количество скрытых слоев в декодере Transformer. - num_attention_heads (
int, необязательный, по умолчанию8) — Количество головок внимания в каждом слое внимания декодера Transformer. - num_key_value_heads (
int, необязательный, по умолчанию4) — Это количество ключевых и value-голов, используемых для реализации Grouped Query Attention. Еслиnum_key_value_heads=num_attention_heads, модель использует Multi Head Attention (MHA); еслиnum_key_value_heads=1— Multi Query Attention (MQA); в остальных случаях применяется GQA. При конвертации мультиголовного чекпоинта в GQA-чекпоинт каждая групповая ключевая и value-голова должна конструироваться путем усреднения (meanpooling) всех исходных голов в этой группе. Дополнительные подробности см. в этой статье. Если значение не указано, по умолчанию используетсяnum_attention_heads. - head_dim (
int, необязательный, по умолчанию256) — Размер измерения головы внимания. Если значение равно None, по умолчанию используется hidden_size // num_attention_heads - hidden_activation (
str, необязательный, по умолчаниюgelu_pytorch_tanh) — Нелинейная функция активации (функция или строка) в декодере. Например,"gelu","relu","silu"и т. д. - max_position_embeddings (
int, необязательный, по умолчанию131072) — Максимальная длина последовательности, с которой может использоваться эта модель. - initializer_range (
float, необязательный, по умолчанию0.02) — Стандартное отклонение truncated_normal_initializer, используемое для инициализации всех матриц весов. - rms_norm_eps (
float, необязательный, по умолчанию1e-06) — Значение epsilon, используемое слоями нормализации rms. - use_cache (
bool, необязательный, по умолчаниюTrue) — Указывает, должен ли модель возвращать последние ключи/значения внимания (не используется во всех моделях). Актуально только еслиconfig.is_decoder=Trueили если модель является генеративной моделью только с декодером. - pad_token_id (
int, необязательный, по умолчанию0) — Идентификатор токена, используемого для дополнения (padding) в словаре. - eos_token_id (
Union[int, list[int]], необязательный, по умолчанию1) — Идентификатор токена, используемого для обозначения конца потока в словаре. - bos_token_id (
int, необязательный, по умолчанию2) — Идентификатор токена, используемого для обозначения начала потока в словаре. - tie_word_embeddings (
bool, необязательный, по умолчаниюTrue) — Определяет, следует ли связывать веса эмбеддингов согласно маппингуtied_weights_keysмодели. - rope_parameters (
dict, необязательный) — Словарь, содержащий параметры конфигурации для эмбеддингов RoPE. В словаре должно быть указано значение дляrope_thetaи, при необходимости, параметры, используемые для масштабирования, если вы хотите использовать RoPE с более длиннымиmax_position_embeddings. - attention_bias (
bool, необязательный, по умолчаниюFalse) — Использовать ли смещение (bias) в слоях проекции query, key, value и output при само-внимании. - attention_dropout (
Union[int, float], необязательный, по умолчанию0.0) — Коэффициент dropout для вероятностей внимания. - sliding_window (
int, необязательный, по умолчанию512) — Размер окна скользящего внимания. ЕслиNone, скользящее окно не применяется. - layer_types (
list[str], необязательный) — Список, в котором явно указывается тип слоя для каждого индекса слоя. Если не задан, будет автоматически сгенерирован на основе значений конфигурации. - final_logit_softcapping (
float, необязательный) — Значение мягкого ограничения, применяемое к финальным логитам перед вычислением распределения вероятностей. Логиты масштабируются по формулеtanh(logit / cap) * cap. - use_bidirectional_attention (
str, необязательный) — Управляет поведением двунаправленного внимания. При значении"vision"визуальные токены используют двунаправленное внимание, а текстовые — каузальное. При значении"all"все токены используют двунаправленное внимание. - vocab_size_per_layer_input (
int, по умолчанию 262144) — Размер словаря для входных эмбеддингов на каждый слой (PLE). Используется в моделях с остаточными потоками на каждый слой, где на каждом слое декодера добавляется более мелкое эмбеддинг. - hidden_size_per_layer_input (
int, по умолчанию 256) — Скрытое измерение для каждого слоя в системе PLE. Фактический вес эмбеддинга имеет форму[vocab_size_per_layer_input, num_hidden_layers * hidden_size_per_layer_input], поскольку все слои упакованы в единую таблицу. Описание полного конвейера PLE см. в документации Gemma4. - attention_k_eq_v (
bool, по умолчаниюFalse) — Определяет, разделяют ли ключи и значения одни и те же веса проекции. ЕслиTrue, то результат проекции ключей переиспользуется как проекция значений. - num_kv_shared_layers (
int, по умолчанию 0) — Количество последовательных слоев декодера, которые используют одни и те же проекции ключей и значений. Значение 0 означает отсутствие общего использования (каждый слой имеет собственные проекции KV). - enable_moe_block (
bool, по умолчаниюFalse) — Определяет, следует ли включать блоки Mixture-of-Experts (MoE) в слоях декодера. ЕслиTrue, подходящие слои будут использовать разреженную MoE-сеть с прямой передачей. - use_double_wide_mlp (
bool, по умолчаниюFalse) — Использовать ли MLP с удвоенной шириной и объединёнными проекциями gate и up. - num_experts (
int, необязательный) — Количество маршрутизируемых экспертов в слоях MoE. - top_k_experts (
int, необязательный) — Количество экспертов, активируемых на каждый токен в слоях MoE. Используется только приenable_moe_block=True. - moe_intermediate_size (
int, необязательный) — Промежуточный (скрытый) размер сети прямого распространения каждого эксперта в слоях MoE. Используется только приenable_moe_block=True.
Это класс конфигурации для хранения настроек модели Gemma4Model. Он используется для создания модели Gemma4 в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации google/gemma-4-e2b-it
Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.
Gemma4Config
класс 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 )
Параметры
- text_config (
Union[~models.gemma4.configuration_gemma4.Gemma4TextConfig, dict[str, Any]], необязательный) — Объект конфигурации или словарь текстового бэкбона. - vision_config (
Union[~models.gemma4.configuration_gemma4.Gemma4VisionConfig, dict[str, Any]], необязательный) — Объект конфигурации или словарь для визуального бэкбона. - audio_config (
Union[~models.gemma4.configuration_gemma4.Gemma4AudioConfig, dict[str, Any]], необязательный) — Объект конфигурации или словарь аудио-бэкбона. - boi_token_id (
int, необязательный, по умолчанию 255999) — Индекс токена начала изображения, используемого для обрамления запроса с изображением. - eoi_token_id (
int, необязательный, по умолчанию 258882) — Индекс токена конца изображения, используемый для обрамления подсказки изображения. - image_token_id (
int, необязательный, по умолчанию258880) — Индекс токена изображения, используемый как плейсхолдер для входных изображений. - video_token_id (
int, необязательный, по умолчанию258884) — Индекс токена видео, используемый как плейсхолдер для входных видео. - boa_token_id (
int, необязательный, по умолчанию 256000) — Индекс токена начала аудио, используемого для обрамления аудиозапроса. - eoa_token_index (
int, необязательный, по умолчанию 258883) — Индекс токена конца аудио, используемый для обрамления аудио-промпта. - audio_token_id (
int, необязательный, по умолчанию258881) — Индекс аудио-токена, используемый как плейсхолдер для входного аудио. - initializer_range (
float, необязательный, по умолчанию0.02) — Стандартное отклонение truncated_normal_initializer, используемое для инициализации всех матриц весов. - tie_word_embeddings (
bool, необязательный, по умолчаниюTrue) — Определяет, следует ли связывать веса эмбеддингов согласно маппингуtied_weights_keysмодели.
Это класс конфигурации для хранения настроек модели Gemma4Model. Он используется для создания модели Gemma4 в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации google/gemma-4-e2b-it
Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.
Пример:
>>> 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
класс 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 )
Параметры
- feature_size (
int, необязательный, по умолчанию 128) — Размерность признаков извлечённых признаков. - sampling_rate (
int, необязательный, по умолчанию 16000) — Частота дискретизации, с которой аудиофайлы должны быть оцифрованы, выраженная в герцах (Гц). - padding_value (
float, необязательный, по умолчанию 0.0) — Значение, используемое для дополнения аудио. Должно соответствовать тишине. - return_attention_mask (
bool, необязательный, по умолчаниюTrue) — Указывает, следует ли возвращать маску внимания для сгенерированных спектрограмм MEL. - frame_length_ms (
float, необязательный, по умолчанию 20.0) — Длина кадра в миллисекундах. - hop_length_ms (
float, необязательный, по умолчанию 10.0) — Длина перекрывающихся окон для БПФ, используемой для получения коэффициентов Мель-частот. - min_frequency (
float, необязательный, по умолчанию 0.0) — Минимальная частота (в Гц) для Mel-фильтрового банка. - max_frequency (
float, необязательный, по умолчанию 8000.0) — Максимальная частота (в Гц) для Mel-фильтрового банка. - preemphasis (
float, необязательный, по умолчанию 0.0) — Коэффициент предварительного усиления. - preemphasis_htk_flavor (
bool, необязательный, по умолчаниюTrue) — Использовать ли предподчёркивание в стиле HTK. - fft_overdrive (
bool, необязательный, по умолчаниюFalse) — Использовать ли FFT overdrive. - dither (
float, необязательный, по умолчанию 0.0) — Добавляет диттеринг. Другими словами, добавляет небольшой гауссов шум к каждому кадру. Например, значение 0.0001 добавляет диттеринг с нормальным распределением, центром 0.0 и стандартным отклонением 0.0001 (при условии диапазона [-1,+1] для raw_speech). Значение 0.0 означает отсутствие диттеринга. Диттеринг оказывает аналогичный эффект, что иspectrogram(mel_floor=...). Он снижает высокие значения log_mel_fbank для сигналов с участками, где сигнал равен нулю, когда в сигнале присутствует срез VAD. - input_scale_factor (
float, необязательный, по умолчанию 1.0) — Коэффициент масштабирования, применяемый к входной звуковой волне. - mel_floor (
float, необязательный, по умолчанию 0.001) — Минимальное значение для мел-спектрограмм, чтобы избежать log(0). - per_bin_mean (
Optional[Sequence[float]], необязательный) — Средние значения для нормализации по каждому бину. - per_bin_stddev (
Optional[Sequence[float]], необязательный) — Значения стандартного отклонения для нормализации по каждому бину.
Извлекатель аудиопризнаков 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 )
Параметры
- raw_speech — Аудио, для которого создаются MEL-спектрограммы.
- padding (
Union[bool, str, PaddingStrategy], необязательный, по умолчанию"longest") — Стратегия выравнивания для батчей аудио разной длины. - max_length (
int, необязательный, по умолчанию 480000) — Если указано, задаёт максимальную допустимую длину аудио. Аудио, превышающее эту длину, будет обрезано, еслиtruncation=True. - truncation (
bool, необязательный, по умолчаниюTrue) — Указывает, нужно ли обрезать аудио, превышающееmax_length. - pad_to_multiple_of (
int, необязательный, по умолчанию 128) — При дополнении (padding) дополняет до кратного этому значению. Значение по умолчанию определено для оптимальной поддержки TPU. - return_tensors (
Union[str, TensorType], необязательный, по умолчаниюNone) — Тип возвращаемых тензоров (например, NumPy или Torch). - return_attention_mask (
bool, необязательный, по умолчаниюTrue) — Указывает, следует ли возвращать маску внимания для сгенерированных спектрограмм MEL.
Создаёт пакет MEL-спектрограмм из предоставленных исходных данных речи.
Эта реализация использует другой алгоритм для оконирования и предварительного усиления по сравнению со встроенной функцией transformers.audio_utils.spectrogram(), что приведёт к получению различных результатов. Тщательно учитывайте это при выборе аудио-фиче-экстрактора, особенно при работе с предобученными моделями.
Gemma4ImageProcessorPil
класс transformers.Gemma4ImageProcessorPil
< source >( **kwargs: *<class 'transformers.models.gemma4.image_processing_pil_gemma4.Gemma4ImageProcessorKwargs'> )
Параметры
- do_convert_rgb (
bool, kwargs, optional, по умолчаниюTrue) — Следует ли преобразовать изображение в RGB. - do_resize (
bool, kwargs, optional, по умолчаниюTrue) — Указывает, нужно ли изменять размер изображения. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Описывает максимальные размеры входных данных для модели. - default_to_square (
bool, kwargs, optional, по умолчаниюTrue) — Определяет, следует ли по умолчанию использовать квадратное изображение при изменении размера, если size задано как int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Размер выходного изображения после примененияcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, по умолчанию3) — Фильтр ресемплинга, используемый при изменении размера изображения. Может быть одним из значений перечисленияPILImageResampling. Влияет только в том случае, еслиdo_resizeустановлено вTrue. - do_rescale (
bool, kwargs, optional, по умолчаниюTrue) — Указывает, следует ли выполнять рескейлинг изображения. - rescale_factor (
float, kwargs, optional, по умолчанию0.00392156862745098) — Коэффициент масштабирования, применяемый к изображению, еслиdo_rescaleустановлен вTrue. - do_normalize (
bool, kwargs, необязательный, по умолчаниюFalse) — Указывает, следует ли нормализовать изображение. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, optional, по умолчанию[0.0, 0.0, 0.0]) — Среднее значение изображения, используемое для нормализации. Влияет только в том случае, еслиdo_normalizeустановлено вTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, optional, по умолчанию[1.0, 1.0, 1.0]) — Стандартное отклонение изображения, используемое для нормализации. Влияет только в том случае, еслиdo_normalizeустановлено вTrue. - do_pad (
bool, kwargs, optional) — Определяет, нужно ли выравнивать изображение. Выравнивание выполняется либо до максимального размера в батче, либо до фиксированного квадратного размера для каждого изображения. Точная стратегия выравнивания зависит от модели. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Размер в формате{"height": int, "width" int}, до которого следует дополнить изображения. Должен быть больше любого размера изображения, предоставленного для предобработки. Еслиpad_sizeне указан, изображения будут дополнены до наибольшей высоты и ширины в батче. Применяется только приdo_pad=True. - do_center_crop (
bool, kwargs, optional) — Выполнять ли центрированную обрезку изображения. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, optional) — Поддерживается толькоChannelDimension.FIRST. Добавлено для совместимости с медленными процессорами. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, необязательный) — Формат размерности каналов для входного изображения. Если не задан, формат размерности каналов выводится из входного изображения. Может быть одним из:"channels_first"илиChannelDimension.FIRST: изображение в формате (num_channels, height, width)."channels_last"илиChannelDimension.LAST: изображение в формате (высота, ширина, число каналов)."none"илиChannelDimension.NONE: изображение в формате (height, width).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Устройство, на котором будут обрабатываться видео. Если не задано, устройство определяется на основе входных видео. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Возвращает стопку тензоров, если установлено значение'pt', иначе возвращает список тензоров. - disable_grouping (
bool, kwargs, optional) — Определяет, следует ли отключить группировку изображений по размеру для их индивидуальной обработки, а не пачками. Если значение равно None, оно будет установлено в True, если изображения находятся на CPU, и в False в противном случае. Этот выбор основан на эмпирических наблюдениях, описанных здесь: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, optional) — Количество токенов изображения, используемых для каждого изображения во входных данных. Добавлено для обратной совместимости, но в будущих моделях это значение следует задавать как атрибут процессора. - patch_size (
int, kwargs, optional) — Размер каждого патча изображения в пикселях. - max_soft_tokens (
int, kwargs, optional) — Максимальное количество мягких (визуальных) токенов на изображение. Должно быть одним из {70, 140, 280, 560, 1120}. - pooling_kernel_size (
int, kwargs, optional) — Размер ядра пространственного пулинга, применяемого после патчификации.
Создает процессор изображений Gemma4.
preprocess
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]**kwargs: *<class 'transformers.models.gemma4.image_processing_pil_gemma4.Gemma4ImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature
Параметры
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Изображение для предобработки. Ожидается одно изображение или батч изображений со значениями пикселей в диапазоне от 0 до 255. Если передаются изображения со значениями пикселей в диапазоне от 0 до 1, установитеdo_rescale=False. - do_convert_rgb (
bool, kwargs, optional) — Следует ли преобразовать изображение в RGB. - do_resize (
bool, kwargs, optional) — Указывает, нужно ли изменить размер изображения. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Описывает максимальные размеры входных данных для модели. - default_to_square (
bool, kwargs, optional) — Определяет, следует ли по умолчанию использовать квадратное изображение при изменении размера, если size является целым числом. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Размер выходного изображения после примененияcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Фильтр ресемплинга, используемый при изменении размера изображения. Может быть одним из значений перечисленияPILImageResampling. Влияет только в том случае, еслиdo_resizeустановлено вTrue. - do_rescale (
bool, kwargs, optional) — Нужно ли перемасштабировать изображение. - rescale_factor (
float, kwargs, optional) — Коэффициент масштабирования, применяемый к изображению, еслиdo_rescaleустановлен вTrue. - do_normalize (
bool, kwargs, optional) — Нужно ли нормализовать изображение. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, optional) — Среднее значение изображения, используемое для нормализации. Влияет только в том случае, еслиdo_normalizeустановлено вTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, optional) — Стандартное отклонение изображения, используемое для нормализации. Влияет только в том случае, еслиdo_normalizeустановлено вTrue. - do_pad (
bool, kwargs, optional) — Определяет, нужно ли выравнивать изображение. Выравнивание выполняется либо до максимального размера в батче, либо до фиксированного квадратного размера для каждого изображения. Точная стратегия выравнивания зависит от модели. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Размер в формате{"height": int, "width" int}, до которого следует дополнить изображения. Должен быть больше любого размера изображения, предоставленного для предобработки. Еслиpad_sizeне указан, изображения будут дополнены до наибольшей высоты и ширины в батче. Применяется только приdo_pad=True. - do_center_crop (
bool, kwargs, optional) — Выполнять ли центрированную обрезку изображения. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, optional) — Поддерживается толькоChannelDimension.FIRST. Добавлено для совместимости с медленными процессорами. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, необязательный) — Формат размерности каналов для входного изображения. Если не задан, формат размерности каналов выводится из входного изображения. Может быть одним из:"channels_first"илиChannelDimension.FIRST: изображение в формате (num_channels, height, width)."channels_last"илиChannelDimension.LAST: изображение в формате (высота, ширина, число каналов)."none"илиChannelDimension.NONE: изображение в формате (height, width).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Устройство, на котором будут обрабатываться видео. Если не задано, устройство определяется на основе входных видео. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Возвращает стопку тензоров, если установлено значение'pt', иначе возвращает список тензоров. - disable_grouping (
bool, kwargs, optional) — Определяет, следует ли отключить группировку изображений по размеру для их индивидуальной обработки, а не пачками. Если значение равно None, оно будет установлено в True, если изображения находятся на CPU, и в False в противном случае. Этот выбор основан на эмпирических наблюдениях, описанных здесь: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, optional) — Количество токенов изображения, используемых для каждого изображения во входных данных. Добавлено для обратной совместимости, но в будущих моделях это значение следует задавать как атрибут процессора. - patch_size (
int, kwargs, optional) — Размер каждого патча изображения в пикселях. - max_soft_tokens (
int, kwargs, optional) — Максимальное количество мягких (визуальных) токенов на изображение. Должно быть одним из {70, 140, 280, 560, 1120}. - pooling_kernel_size (
int, kwargs, optional) — Размер ядра пространственного пулинга, применяемого после патчификации.
Возвращает
~image_processing_base.BatchFeature
- data (
dict) — Словарь списков/массивов/тензоров, возвращаемый методом call (‘pixel_values’ и т. д.). - tensor_type (
Union[None, str, TensorType], необязательный) — Здесь можно указать tensor_type, чтобы при инициализации преобразовать списки целых чисел в тензоры PyTorch/Numpy.
Gemma4ImageProcessor
класс transformers.Gemma4ImageProcessor
< source >( **kwargs: *<class 'transformers.models.gemma4.image_processing_gemma4.Gemma4ImageProcessorKwargs'> )
Параметры
- do_convert_rgb (
bool, kwargs, optional, по умолчаниюTrue) — Следует ли преобразовать изображение в RGB. - do_resize (
bool, kwargs, optional, по умолчаниюTrue) — Указывает, нужно ли изменять размер изображения. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, по умолчаниюNone) — Описывает максимальные размеры входных данных для модели. - default_to_square (
bool, kwargs, optional, по умолчаниюTrue) — Определяет, следует ли по умолчанию использовать квадратное изображение при изменении размера, если size задано как int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Размер выходного изображения после примененияcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, по умолчанию3) — Фильтр ресемплинга, используемый при изменении размера изображения. Может быть одним из значений перечисленияPILImageResampling. Влияет только в том случае, еслиdo_resizeустановлено вTrue. - do_rescale (
bool, kwargs, optional, по умолчаниюTrue) — Указывает, следует ли выполнять рескейлинг изображения. - rescale_factor (
float, kwargs, optional, по умолчанию0.00392156862745098) — Коэффициент масштабирования, применяемый к изображению, еслиdo_rescaleустановлен вTrue. - do_normalize (
bool, kwargs, optional, по умолчаниюFalse) — Нужно ли нормализовать изображение. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, optional, по умолчанию[0.0, 0.0, 0.0]) — Среднее значение изображения, используемое для нормализации. Влияет только в том случае, еслиdo_normalizeустановлено вTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, optional, по умолчанию[1.0, 1.0, 1.0]) — Стандартное отклонение изображения, используемое для нормализации. Влияет только в том случае, еслиdo_normalizeустановлено вTrue. - do_pad (
bool, kwargs, optional) — Определяет, нужно ли выравнивать изображение. Выравнивание выполняется либо до максимального размера в батче, либо до фиксированного квадратного размера для каждого изображения. Точная стратегия выравнивания зависит от модели. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Размер в формате{"height": int, "width" int}, до которого следует дополнить изображения. Должен быть больше любого размера изображения, предоставленного для предобработки. Еслиpad_sizeне указан, изображения будут дополнены до наибольшей высоты и ширины в батче. Применяется только приdo_pad=True. - do_center_crop (
bool, kwargs, optional) — Выполнять ли центрированную обрезку изображения. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, optional) — Поддерживается толькоChannelDimension.FIRST. Добавлено для совместимости с медленными процессорами. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, необязательный) — Формат размерности каналов для входного изображения. Если не задан, формат размерности каналов выводится из входного изображения. Может быть одним из:"channels_first"илиChannelDimension.FIRST: изображение в формате (num_channels, height, width)."channels_last"илиChannelDimension.LAST: изображение в формате (высота, ширина, число каналов)."none"илиChannelDimension.NONE: изображение в формате (height, width).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Устройство, на котором будут обрабатываться видео. Если не задано, устройство определяется на основе входных видео. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Возвращает стопку тензоров, если установлено значение'pt', иначе возвращает список тензоров. - disable_grouping (
bool, kwargs, optional) — Определяет, следует ли отключить группировку изображений по размеру для их индивидуальной обработки, а не пачками. Если значение равно None, оно будет установлено в True, если изображения находятся на CPU, и в False в противном случае. Этот выбор основан на эмпирических наблюдениях, описанных здесь: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, optional) — Количество токенов изображения, используемых для каждого изображения во входных данных. Добавлено для обратной совместимости, но в будущих моделях это значение следует задавать как атрибут процессора. - patch_size (
int, kwargs, optional) — Размер каждого патча изображения в пикселях. - max_soft_tokens (
int, kwargs, optional) — Максимальное количество мягких (визуальных) токенов на изображение. Должно быть одним из {70, 140, 280, 560, 1120}. - pooling_kernel_size (
int, kwargs, optional) — Размер ядра пространственного пулинга, применяемого после патчификации.
Создает процессор изображений Gemma4.
preprocess
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]**kwargs: *<class 'transformers.models.gemma4.image_processing_gemma4.Gemma4ImageProcessorKwargs'> )
Gemma4VideoProcessor
класс transformers.Gemma4VideoProcessor
< source >( **kwargs: *<class 'transformers.models.gemma4.video_processing_gemma4.Gemma4VideoProcessorKwargs'> )
Параметры
- do_convert_rgb (
bool, kwargs, optional, по умолчаниюTrue) — Следует ли преобразовать изображение в RGB. - do_resize (
bool, kwargs, optional, по умолчаниюTrue) — Указывает, нужно ли изменять размер изображения. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, по умолчаниюNone) — Описывает максимальные размеры входных данных для модели. - default_to_square (
bool, kwargs, optional, по умолчаниюTrue) — Определяет, следует ли по умолчанию использовать квадратное изображение при изменении размера, если size задано как int. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, по умолчанию3) — Фильтр ресемплинга, используемый при изменении размера изображения. Может быть одним из значений перечисленияPILImageResampling. Влияет только в том случае, еслиdo_resizeустановлено вTrue. - do_rescale (
bool, kwargs, optional, по умолчаниюTrue) — Указывает, следует ли выполнять рескейлинг изображения. - rescale_factor (
float, kwargs, optional, по умолчанию0.00392156862745098) — Коэффициент масштабирования, применяемый к изображению, еслиdo_rescaleустановлен вTrue. - do_normalize (
bool, kwargs, optional, по умолчаниюTrue) — Указывает, следует ли нормализовать изображение. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, optional, по умолчанию[0.0, 0.0, 0.0]) — Среднее значение изображения, используемое для нормализации. Влияет только в том случае, еслиdo_normalizeустановлено вTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, optional, по умолчанию[1.0, 1.0, 1.0]) — Стандартное отклонение изображения, используемое для нормализации. Влияет только в том случае, еслиdo_normalizeустановлено вTrue. - do_center_crop (
bool, kwargs, optional) — Выполнять ли центрированную обрезку изображения. - do_pad (
bool, kwargs, optional) — Определяет, нужно ли выравнивать изображение. Выравнивание выполняется либо до максимального размера в батче, либо до фиксированного квадратного размера для каждого изображения. Точная стратегия выравнивания зависит от модели. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Размер выходного изображения после примененияcenter_crop. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, optional) — Поддерживается толькоChannelDimension.FIRST. Добавлено для совместимости с медленными процессорами. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, необязательный) — Формат размерности каналов для входного изображения. Если не задан, формат размерности каналов выводится из входного изображения. Может быть одним из:"channels_first"илиChannelDimension.FIRST: изображение в формате (num_channels, height, width)."channels_last"илиChannelDimension.LAST: изображение в формате (высота, ширина, число каналов)."none"илиChannelDimension.NONE: изображение в формате (height, width).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Устройство, на котором будут обрабатываться видео. Если не задано, устройство определяется на основе входных видео. - do_sample_frames (
bool, kwargs, optional, по умолчаниюTrue) — Следует ли извлекать кадры из видео перед обработкой или обрабатывать видео целиком. - video_metadata (
Annotated[~video_utils.VideoMetadata | dict | list[dict | ~video_utils.VideoMetadata] | list[list[dict | ~video_utils.VideoMetadata]] | None, None], kwargs) — Метаданные видео, содержащие информацию о общей длительности, fps и общем количестве кадров. Будут использоваться для выборки кадров из видео или вычисления временных меток. Не передавайте метаданные, если не пытаетесь декодировать видео вручную перед обработкой - fps (
Annotated[int | float | None, None], kwargs) — Целевое количество кадров для выборки в секунду приdo_sample_frames=True. - num_frames (
Annotated[int | None, None], kwargs, по умолчанию32) — Максимальное количество кадров для выборки, еслиdo_sample_frames=True. - return_metadata (
bool, kwargs, optional, по умолчаниюFalse) — Указывает, следует ли возвращать метаданные видео. Метаданные видео — это объект, содержащий информацию о длительности видео, частоте кадров (fps), используемом бэкенде декодирования и т. д. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Если задано, возвращает тензоры конкретного фреймворка. Допустимые значения:'pt': возвращает объектыtorch.TensorPyTorch.'np': возвращает объекты NumPynp.ndarray.
- patch_size (
int, kwargs, optional) — Размер каждого патча изображения в пикселях. - max_soft_tokens (
int, kwargs, optional) — Максимальное количество мягких (визуальных) токенов на кадр видео. Должно быть одним из {70, 140, 280, 560, 1120}. - pooling_kernel_size (
int, kwargs, optional) — Размер ядра пространственного пулинга, применяемого после патчификации. - **kwargs (ProcessingKwargs, optional) — Дополнительные параметры обработки для каждой модальности (текст, изображения, видео, аудио). Специфичные для модели параметры перечислены выше; полный список поддерживаемых аргументов см. в классе TypedDict.
Создаёт видеопроцессор Gemma4VideoProcessor.
preprocess
< 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
Параметры
- videos (
Union[list[PIL.Image.Image], numpy.ndarray, torch.Tensor, list[numpy.ndarray], list[torch.Tensor], list[list[PIL.Image.Image]], list[list[numpy.ndarray]], list[list[torch.Tensor]], ~video_utils.URL, list[~video_utils.URL], list[list[~video_utils.URL]], ~video_utils.Path, list[~video_utils.Path], list[list[~video_utils.Path]]]) — Видео для предобработки. Ожидается одно видео или батч видео со значениями пикселей в диапазоне от 0 до 255. Если передаются видео со значениями пикселей в диапазоне от 0 до 1, установитеdo_rescale=False. - do_convert_rgb (
bool, kwargs, optional) — Следует ли преобразовать изображение в RGB. - do_resize (
bool, kwargs, optional) — Указывает, нужно ли изменить размер изображения. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Описывает максимальные размеры входных данных для модели. - default_to_square (
bool, kwargs, optional) — Определяет, следует ли по умолчанию использовать квадратное изображение при изменении размера, если size является целым числом. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Фильтр ресемплинга, используемый при изменении размера изображения. Может быть одним из значений перечисленияPILImageResampling. Влияет только в том случае, еслиdo_resizeустановлено вTrue. - do_rescale (
bool, kwargs, optional) — Нужно ли перемасштабировать изображение. - rescale_factor (
float, kwargs, optional) — Коэффициент масштабирования, применяемый к изображению, еслиdo_rescaleустановлен вTrue. - do_normalize (
bool, kwargs, optional) — Нужно ли нормализовать изображение. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, optional) — Среднее значение изображения, используемое для нормализации. Влияет только в том случае, еслиdo_normalizeустановлено вTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, optional) — Стандартное отклонение изображения, используемое для нормализации. Влияет только в том случае, еслиdo_normalizeустановлено вTrue. - do_center_crop (
bool, kwargs, optional) — Выполнять ли центрированную обрезку изображения. - do_pad (
bool, kwargs, optional) — Определяет, нужно ли выравнивать изображение. Выравнивание выполняется либо до максимального размера в батче, либо до фиксированного квадратного размера для каждого изображения. Точная стратегия выравнивания зависит от модели. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Размер выходного изображения после примененияcenter_crop. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, optional) — Поддерживается толькоChannelDimension.FIRST. Добавлено для совместимости с медленными процессорами. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, необязательный) — Формат размерности каналов для входного изображения. Если не задан, формат размерности каналов выводится из входного изображения. Может быть одним из:"channels_first"илиChannelDimension.FIRST: изображение в формате (num_channels, height, width)."channels_last"илиChannelDimension.LAST: изображение в формате (высота, ширина, число каналов)."none"илиChannelDimension.NONE: изображение в формате (height, width).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Устройство, на котором будут обрабатываться видео. Если не задано, устройство определяется на основе входных видео. - do_sample_frames (
bool, kwargs, optional) — Следует ли извлекать кадры из видео перед обработкой или обрабатывать видео целиком. - video_metadata (
Annotated[~video_utils.VideoMetadata | dict | list[dict | ~video_utils.VideoMetadata] | list[list[dict | ~video_utils.VideoMetadata]] | None, None], kwargs) — Метаданные видео, содержащие информацию о общей длительности, fps и общем количестве кадров. Будут использоваться для выборки кадров из видео или вычисления временных меток. Не передавайте метаданные, если не пытаетесь декодировать видео вручную перед обработкой - fps (
Annotated[int | float | None, None], kwargs) — Целевое количество кадров для выборки в секунду приdo_sample_frames=True. - num_frames (
Annotated[int | None, None], kwargs) — Максимальное количество кадров для выборки приdo_sample_frames=True. - return_metadata (
bool, kwargs, optional) — Указывает, следует ли возвращать метаданные видео. Метаданные видео — это объект, содержащий информацию о длительности видео, частоте кадров (fps), используемом бэкенде декодирования и т. д. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Возвращает стопку тензоров, если установлено значение'pt', иначе возвращает список тензоров. - patch_size (
int, kwargs, optional) — Размер каждого патча изображения в пикселях. - max_soft_tokens (
int, kwargs, optional) — Максимальное количество мягких (визуальных) токенов на кадр видео. Должно быть одним из {70, 140, 280, 560, 1120}. - pooling_kernel_size (
int, kwargs, optional) — Размер ядра пространственного пулинга, применяемого после патчификации.
Возвращает
~image_processing_base.BatchFeature
- data (
dict) — Словарь списков/массивов/тензоров, возвращаемый методом call (‘pixel_values’ и т. д.). - tensor_type (
Union[None, str, TensorType], необязательный) — Здесь можно указать tensor_type, чтобы при инициализации преобразовать списки целых чисел в тензоры PyTorch/Numpy.
Gemma4Processor
класс transformers.Gemma4Processor
< source >( feature_extractorimage_processortokenizervideo_processorchat_template = Noneimage_seq_length: int = 280audio_seq_length: int = 750audio_ms_per_token: int = 40**kwargs )
Параметры
- feature_extractor (Gemma4AudioFeatureExtractor) — Экстрактор признаков является обязательным входным параметром.
- image_processor (Gemma4ImageProcessor) — Обработчик изображений является обязательным входным параметром.
- tokenizer (tokenizer_class) — Токенизатор является обязательным входным параметром.
- video_processor (Gemma4VideoProcessor) — Обработчик видео является обязательным входным параметром.
- chat_template (str) — Jinja-шаблон для преобразования списков сообщений в чате в строку, пригодную для токенизации.
- image_seq_length (int, optional, по умолчанию 280) — Количество мягких токенов на изображение, используемых для расширения плейсхолдеров.
- audio_seq_length (int, optional, по умолчанию 750) — Максимальное количество аудио-мягких токенов на сегмент аудио. Служит верхним ограничением при вычислении динамического количества аудио-токенов.
- audio_ms_per_token (int, optional, по умолчанию 40) —
Миллисекунды аудио на каждый выходной soft-токен. Используется для динамического
вычисления количества аудио-плейсхолдерных токенов по формуле
ceil(duration_ms / audio_ms_per_token). Значение по умолчанию 40 обусловлено 4-кратным сокращением времени в свёртке SSCP для 10-миллисекундных кадров.
Создаёт Gemma4Processor, который объединяет feature extractor, image processor, tokenizer и video processor в единый процессор.
[Gemma4Processor] предоставляет все возможности [Gemma4AudioFeatureExtractor], [Gemma4ImageProcessor], [tokenizer_class] и [Gemma4VideoProcessor]. Подробнее см. в документации по [~Gemma4AudioFeatureExtractor], [~Gemma4ImageProcessor], [~tokenizer_class] и [~Gemma4VideoProcessor].
__call__
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Nonetext: str | list[str] | list[list[str]] | None = Nonevideos: typing.Union[list['PIL.Image.Image'], numpy.ndarray, ForwardRef('torch.Tensor'), list[numpy.ndarray], list['torch.Tensor'], list[list['PIL.Image.Image']], list[list[numpy.ndarray]], list[list['torch.Tensor']], transformers.video_utils.URL, list[transformers.video_utils.URL], list[list[transformers.video_utils.URL]], transformers.video_utils.Path, list[transformers.video_utils.Path], list[list[transformers.video_utils.Path]], NoneType] = Noneaudio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = None**kwargs: *<class 'transformers.processing_utils.ProcessingKwargs'> )
Параметры
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]], необязательный) — Изображение для предобработки. Ожидается одно изображение или батч изображений со значениями пикселей в диапазоне от 0 до 255. Если передаются изображения со значениями пикселей в диапазоне от 0 до 1, установитеdo_rescale=False. - text (
Union[str, list[str], list[list[str]]], необязательный) — Последовательность или батч последовательностей для кодирования. Каждая последовательность может быть строкой или списком строк (предварительно токенизированная строка). Если вы передаёте предварительно токенизированный вход, установитеis_split_into_words=True, чтобы избежать неоднозначности с батчированными входами. - videos (
Union[list[PIL.Image.Image], numpy.ndarray, torch.Tensor, list[numpy.ndarray], list[torch.Tensor], list[list[PIL.Image.Image]], list[list[numpy.ndarray]], list[list[torch.Tensor]], ~video_utils.URL, list[~video_utils.URL], list[list[~video_utils.URL]], ~video_utils.Path, list[~video_utils.Path], list[list[~video_utils.Path]]], необязательный) — Видео для предобработки. Ожидается одно видео или батч видео со значениями пикселей в диапазоне от 0 до 255. Если передаются видео со значениями пикселей в диапазоне от 0 до 1, установитеdo_rescale=False. - audio (
Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]], необязательный) — Аудио или пакет аудио, подлежащий подготовке. Каждое аудио может быть массивом NumPy или тензором PyTorch. В случае массива NumPy/тензора PyTorch каждое аудио должно иметь форму (C, T), где C — количество каналов, а T — длина выборки аудио. - return_tensors (
strили TensorType, необязательный) — Если задано, возвращает тензоры конкретного фреймворка. Допустимые значения:'pt': возвращает объектыtorch.TensorPyTorch.'np': возвращает объекты NumPynp.ndarray.
- **kwargs (ProcessingKwargs, optional) — Дополнительные параметры обработки для каждой модальности (текст, изображения, видео, аудио). Специфичные для модели параметры перечислены выше; полный список поддерживаемых аргументов см. в классе TypedDict.
Gemma4PreTrainedModel
класс transformers.Gemma4PreTrainedModel
< source >( config: PreTrainedConfig*inputs**kwargs )
Параметры
- config (PreTrainedConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
Мок-значение для пути с точками (например, torch.float32): цепочки доступа к атрибутам и вызовы работают как пропускные декораторы, repr возвращает путь с точками, а использование в качестве базового класса подставляет обычный базовый класс type (PEP 560 __mro_entries__), благодаря чему реальные дочерние классы сохраняют обычный метакласс, а inspect.signature читает их реальный __init__, а не мок-объект.
Gemma4AudioModel
Аудио-энкодер, основанный на архитектуре Universal Speech Model.
forward
< source >( input_features: Tensorattention_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )
Параметры
- input_features (
torch.Tensorформы(batch_size, sequence_length, feature_dim)) — Тензоры, соответствующие входным аудиособытиям. Аудиособытия можно получить с помощью Gemma4AudioFeatureExtractor. Подробности см. в Gemma4AudioFeatureExtractor.call() (Gemma4Processor использует Gemma4AudioFeatureExtractor для обработки аудио). - attention_mask (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона[0, 1]:- 1 для токенов, которые не замаскированы,
- 0 для токенов, которые замаскированы.
Кодирует аудиопризнаки в мягкие токены.
Gemma4VisionModel
Видеоэнкодер Gemma 4.
forward
< source >( pixel_values: FloatTensorpixel_position_ids: LongTensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPast or tuple(torch.FloatTensor)
Параметры
- pixel_values (
torch.FloatTensorилиlist[torch.FloatTensor]) — Изображения для кодирования. Либо один тензор[batch, channels, height, width](все изображения одного размера), либо список тензоров[1, channels, height, width](разные размеры). - pixel_position_ids (
torch.LongTensorформы(batch_size, max_patches, 2)) — Позиции патчей в виде координат (x, y) на изображении. Патчи, используемые для дополнения, обозначаются парой (-1, -1).
Возвращает
BaseModelOutputWithPast или tuple(torch.FloatTensor)
Объект BaseModelOutputWithPast или кортеж
torch.FloatTensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (Gemma4Config) и входных данных.
Кодирует пиксели изображения в мягкие токены из патчей.
last_hidden_state (
torch.FloatTensorформы(batch_size, sequence_length, hidden_size)) — Последовательность скрытых состояний на выходе последнего слоя модели.Если используется
past_key_values, выводится только последнее скрытое состояние последовательностей формы(batch_size, 1, hidden_size).past_key_values (
Cache, необязательный, возвращается при передачеuse_cache=Trueили когдаconfig.use_cache=True) — это экземпляр Cache. Подробнее см. в нашем руководстве по кэшу kv.Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания и, при необходимости, если
config.is_encoder_decoder=True, в блоках кросс-внимания), которые можно использовать (см. входной параметрpast_key_values) для ускорения последовательного декодирования.hidden_states (
tuple(torch.FloatTensor), необязательный, возвращается, если переданоoutput_hidden_states=Trueили еслиconfig.output_hidden_states=True) — кортеж изtorch.FloatTensor(один для вывода слоя встраиваний, если модель имеет такой слой, + один для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
attentions (
tuple(torch.FloatTensor), необязательный, возвращается, если переданоoutput_attentions=Trueили еслиconfig.output_attentions=True) — Кортежtorch.FloatTensor(по одному для каждого слоя) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
Gemma4TextModel
класс transformers.Gemma4TextModel
< source >( config: Gemma4TextConfig )
Параметры
- config (Gemma4TextConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Базовая языковая модель Gemma 4 без заголовка моделирования языка.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
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)
Параметры
- input_ids (
torch.LongTensorформы(batch_size, sequence_length), , необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию токены отсечки (padding) игнорируются.Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().
- attention_mask (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона[0, 1]:- 1 для токенов, которые не замаскированы,
- 0 для токенов, которые замаскированы.
- position_ids (
torch.LongTensorформы(batch_size, sequence_length), , необязательный) — Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбираются из диапазона[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, необязательный) — Предвычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать для ускорения последовательного декодирования. Обычно этоpast_key_values, возвращённые моделью на предыдущем этапе декодирования, когдаuse_cache=Trueилиconfig.use_cache=True.В качестве входного параметра допускается только экземпляр Cache, см. наше руководство по кэшу KV. Если
past_key_valuesне переданы, по умолчанию будет инициализирован DynamicCache.Модель будет выводить тот же формат кэша, который был передан на вход.
Если используются
past_key_values, ожидается, что пользователь передаст только необработанныеinput_ids(те, для которых в этой модели ещё не заданы состояния прошлых ключей и значений) формы(batch_size, unprocessed_length), а не всеinput_idsформы(batch_size, sequence_length). - inputs_embeds (
torch.FloatTensorформы(batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачиinput_idsможно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексыinput_idsпреобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска эмбеддингов модели. - per_layer_inputs (
torch.Tensor, необязательный) — Предварительно вычисленные входные текстовые эмбеддинги для каждого слоя формы(batch_size, sequence_length, num_hidden_layers, hidden_size_per_layer_input). Если переданы, используются напрямую вместо вычисления изinput_idsчерезget_per_layer_inputs()в текстовой модели. Если вы вызываетеforwardсinputs_embedsвместоinput_ids, вероятно, стоит предварительно вычислить их и передать вместе сinputs_embeds, иначе для их пересчёта потребуется обратное преобразование основного эмбеддинга, что дорого по вычислениям. - use_cache (
bool, необязательный) — Если установлено вTrue, возвращаются состояния ключей и значенийpast_key_values, которые можно использовать для ускорения декодирования (см.past_key_values).
Возвращает
Gemma4TextModelOutputWithPast или tuple(torch.FloatTensor)
Объект Gemma4TextModelOutputWithPast или кортеж из
torch.FloatTensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (Gemma4Config) и входных данных.
Метод forward модели Gemma4TextModel переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
- shared_kv_states (
KVSharingDict, необязательный) — контейнер, похожий на словарь, который сопоставляет строки с типами слоёв кортежам тензоров (key_states, value_states). Используется для передачи общих состояний KV между слоями при использовании KV sharing. - router_logits (
tuple(torch.FloatTensor), необязательный, возвращается при передачеoutput_router_logits=True) — Кортежtorch.FloatTensor(по одному для каждого слоя MoE) формы(batch_size * sequence_length, num_experts).
Gemma4ForCausalLM
класс transformers.Gemma4ForCausalLM
< source >( config: Gemma4TextConfig )
Параметры
- config (Gemma4TextConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Базовая языковая модель Gemma 4 с головой для моделирования языка.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
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)
Параметры
- input_ids (
torch.LongTensorформы(batch_size, sequence_length), , необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию токены отсечки (padding) игнорируются.Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().
- attention_mask (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона[0, 1]:- 1 для токенов, которые не замаскированы,
- 0 для токенов, которые замаскированы.
- position_ids (
torch.LongTensorформы(batch_size, sequence_length), , необязательный) — Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбираются из диапазона[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, необязательный) — Предвычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать для ускорения последовательного декодирования. Обычно этоpast_key_values, возвращённые моделью на предыдущем этапе декодирования, когдаuse_cache=Trueилиconfig.use_cache=True.В качестве входного параметра допускается только экземпляр Cache, см. наше руководство по кэшу KV. Если
past_key_valuesне переданы, по умолчанию будет инициализирован DynamicCache.Модель будет выводить тот же формат кэша, который был передан на вход.
Если используются
past_key_values, ожидается, что пользователь передаст только необработанныеinput_ids(те, для которых в этой модели ещё не заданы состояния прошлых ключей и значений) формы(batch_size, unprocessed_length), а не всеinput_idsформы(batch_size, sequence_length). - inputs_embeds (
torch.FloatTensorформы(batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачиinput_idsможно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексыinput_idsпреобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска эмбеддингов модели. - labels (
torch.LongTensorформы(batch_size, sequence_length), необязательный) — Метки для вычисления потерь маскированного языкового моделирования. Индексы должны находиться в диапазоне[0, ..., config.vocab_size]или быть равны -100 (см. docstringinput_ids). Токены с индексами, установленными в-100, игнорируются (маскируются); потери вычисляются только для токенов с метками в диапазоне[0, ..., config.vocab_size]. - use_cache (
bool, необязательный) — Если установлено вTrue, возвращаются состояния ключей и значенийpast_key_values, которые можно использовать для ускорения декодирования (см.past_key_values). - logits_to_keep (
Union[int, torch.Tensor], необязательный, по умолчанию0) — Если передано значение типаint, вычисляет logits для последнихlogits_to_keepтокенов. Если указано0, logits вычисляются для всехinput_ids(особый случай). Для генерации нужны logits только последнего токена, и вычисление их только для этого токена позволяет сэкономить память, что становится весьма значимым для длинных последовательностей или большого размера словаря. Если передано значение типаtorch.Tensor, оно должно быть одномерным и соответствовать индексам, которые нужно сохранить в измерении длины последовательности. Это полезно при использовании упакованного формата тензоров (один размер для batch и длины последовательности). - per_layer_inputs (
torch.Tensor, необязательный) — Предварительно вычисленные входные текстовые эмбеддинги для каждого слоя с формой(batch_size, sequence_length, num_hidden_layers, hidden_size_per_layer_input). Если переданы, используются напрямую вместо вычисления изinput_idsчерезget_per_layer_inputs()в текстовой модели. Если вы вызываетеforwardсinputs_embedsвместоinput_ids, вероятно, стоит предварительно вычислить их и передать вместе сinputs_embeds, иначе для их пересчёта потребуется обратное преобразование основного эмбеддинга, что дорого по вычислениям.
Возвращает
Gemma4CausalLMOutputWithPast или tuple(torch.FloatTensor)
Объект Gemma4CausalLMOutputWithPast или кортеж из
torch.FloatTensor (если передан аргумент return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (Gemma4Config) и входных данных.
Метод forward класса Gemma4ForCausalLM переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
loss (
torch.FloatTensorформы(1,), необязательный, возвращается, если заданlabels) — Потери языковой модели (для предсказания следующего токена).logits (
torch.FloatTensorформы(batch_size, sequence_length, config.text_config.vocab_size)) — Оценки предсказаний языковой модели (оценки для каждого токена словаря до применения SoftMax).past_key_values (
Cache, необязательный, возвращается при передачеuse_cache=Trueили когдаconfig.use_cache=True) — это экземпляр Cache. Подробнее см. в нашем руководстве по кэшу kv.Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания), которые можно использовать (см. вход
past_key_values) для ускорения последовательного декодирования.hidden_states (
tuple[torch.FloatTensor], необязательный, возвращается, если переданоoutput_hidden_states=Trueили еслиconfig.output_hidden_states=True) — Кортежtorch.FloatTensor(один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
attentions (
tuple[torch.FloatTensor], необязательный, возвращается при передачеoutput_attentions=Trueили когдаconfig.output_attentions=True) — Кортежtorch.FloatTensor(по одному для каждого слоя) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
image_hidden_states (
torch.FloatTensor, необязательный) —torch.FloatTensorразмера(batch_size, num_images, sequence_length, hidden_size). image_hidden_states модели, полученные визуальным энкодером после проецирования последнего скрытого состояния.audio_hidden_states (
torch.FloatTensor, необязательный) —torch.FloatTensorразмера(batch_size, num_images, sequence_length, hidden_size). audio_hidden_states модели, полученные аудио-энкодером после проекции последнего скрытого состояния.shared_kv_states (
KVSharingDict, необязательный) — контейнер, похожий на словарь, который сопоставляет строки с типами слоёв кортежам тензоров (key_states, value_states). Используется для передачи общих состояний KV между слоями при использовании KV sharing.router_logits (
tuple(torch.FloatTensor), необязательный, возвращается при передачеoutput_router_logits=True) — Кортежtorch.FloatTensor(по одному для каждого слоя MoE) формы(batch_size * sequence_length, num_experts).
Пример:
>>> 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
класс transformers.Gemma4Model
< source >( config: Gemma4Config )
Параметры
- config (Gemma4Config) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с файлом конфигурации не загружает веса, связанные с моделью, только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Базовая модель Gemma 4, включающая визуальный бэкбон, аудиобэкбон и языковую модель без головы для моделирования языка.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
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)
Параметры
- input_ids (
torch.LongTensorформы(batch_size, sequence_length), , необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию токены отсечки (padding) игнорируются.Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().
- pixel_values (
torch.FloatTensorформы(batch_size, num_channels, image_size, image_size), необязательный) — Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью Gemma4ImageProcessor. Подробности см. в Gemma4ImageProcessor.call() (Gemma4Processor использует Gemma4ImageProcessor для обработки изображений). - pixel_values_videos (
torch.FloatTensorформы(batch_size, num_frames, num_channels, frame_size, frame_size), необязательный) — Тензоры, соответствующие входному видео. Пиксельные значения для видео можно получить с помощью Gemma4VideoProcessor. Подробности см. в Gemma4VideoProcessor.call() (Gemma4Processor использует Gemma4VideoProcessor для обработки видео). - input_features (
torch.FloatTensorформы(batch_size, sequence_length, feature_dim), необязательный) — Тензоры, соответствующие входным аудиособытиям. Аудиособытия можно получить с помощью Gemma4AudioFeatureExtractor. Подробности см. в Gemma4AudioFeatureExtractor.call() (Gemma4Processor использует Gemma4AudioFeatureExtractor для обработки аудио). - attention_mask (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона[0, 1]:- 1 для токенов, которые не замаскированы,
- 0 для токенов, которые замаскированы.
- input_features_mask (
torch.FloatTensorформы(num_images, seq_length)) — Маска внимания для входного аудио. - position_ids (
torch.LongTensorформы(batch_size, sequence_length), , необязательный) — Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбираются из диапазона[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, необязательный) — Предвычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать для ускорения последовательного декодирования. Обычно этоpast_key_values, возвращённые моделью на предыдущем этапе декодирования, когдаuse_cache=Trueилиconfig.use_cache=True.В качестве входного параметра допускается только экземпляр Cache, см. наше руководство по кэшу KV. Если
past_key_valuesне переданы, по умолчанию будет инициализирован DynamicCache.Модель будет выводить тот же формат кэша, который был передан на вход.
Если используются
past_key_values, ожидается, что пользователь передаст только необработанныеinput_ids(те, для которых в этой модели ещё не заданы состояния прошлых ключей и значений) формы(batch_size, unprocessed_length), а не всеinput_idsформы(batch_size, sequence_length). - mm_token_type_ids (
torch.LongTensorформы(batch_size, sequence_length), необязательный) — Индексы токенов входной последовательности, соответствующие каждой модальности. Например, текст (0), изображение (1), видео (2). Мультимодальные идентификаторы типов токенов можно получить с помощью AutoProcessor. Подробности см. в ProcessorMixin.call(). - inputs_embeds (
torch.FloatTensorформы(batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачиinput_idsможно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексыinput_idsпреобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска эмбеддингов модели. - use_cache (
bool, необязательный) — Если установлено вTrue, возвращаются состояния ключей и значенийpast_key_values, которые можно использовать для ускорения декодирования (см.past_key_values). - image_position_ids (
torch.LongTensorформы(batch_size, max_patches, 2), необязательный) — двумерные координаты позиций патчей от обработчика изображений, где(-1, -1)обозначает заполнение. Передаётся в визуальный энкодер для вычисления позиционных эмбеддингов. - video_position_ids (
torch.LongTensorформы(total_num_frames, max_patches, 2), необязательный) — двумерные координаты позиций патчей от видео-процессора, где(-1, -1)обозначает заполнение. Передаётся в визуальный энкодер для вычисления позиционных эмбеддингов. - num_frames_per_video (
torch.LongTensorформы(num_videos,), необязательный) — Количество кадров, принадлежащих каждому видео. Обязателен при передачеpixel_values_videos, так как кадры всех видео конкатенируются вдоль одной оси. - per_layer_inputs (
torch.Tensor, необязательный) — Предварительно вычисленные входные текстовые эмбеддинги для каждого слоя с формой(batch_size, sequence_length, num_hidden_layers, hidden_size_per_layer_input). Если переданы, используются напрямую вместо вычисления изinput_idsчерезget_per_layer_inputs()в текстовой модели. Если вы вызываетеforwardсinputs_embedsвместоinput_ids, вероятно, стоит предварительно вычислить их и передать вместе сinputs_embeds, иначе для их пересчёта потребуется обратное преобразование основного эмбеддинга, что дорого по вычислениям. - mm_encoder_outputs (
dict[str, ~modeling_outputs.BaseModelOutputWithPooling], необязательный) — Словарь, где ключами являются поддерживаемые модальности, а значениями — закодированные результаты для соответствующей модальности. Каждый закодированный результат представляет собой кортеж вида (pooler_output, необязательный:last_hidden_states, необязательный:hidden_states, необязательный:attentions)pooler_outputформы(batch_size, sequence_length, hidden_size), необязательный) — последовательность мультимодальных признаков энкодера, объединённых с текстовыми эмбеддингами.
Возвращает
Gemma4ModelOutputWithPast или tuple(torch.FloatTensor)
Gemma4ModelOutputWithPast или кортеж
torch.FloatTensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (Gemma4Config) и входных данных.
Метод forward модели Gemma4Model переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
last_hidden_state (
torch.FloatTensorформы(batch_size, sequence_length, hidden_size)) — Последовательность скрытых состояний на выходе последнего слоя модели.Если используется
past_key_values, выводится только последнее скрытое состояние последовательностей формы(batch_size, 1, hidden_size).past_key_values (
Cache, необязательный, возвращается при передачеuse_cache=Trueили когдаconfig.use_cache=True) — это экземпляр Cache. Подробнее см. в нашем руководстве по кэшу kv.Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания), которые можно использовать (см. вход
past_key_values) для ускорения последовательного декодирования.hidden_states (
tuple(torch.FloatTensor), необязательный, возвращается, если переданоoutput_hidden_states=Trueили еслиconfig.output_hidden_states=True) — кортеж изtorch.FloatTensor(один для вывода слоя встраиваний, если модель имеет такой слой, + один для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
attentions (
tuple(torch.FloatTensor), необязательный, возвращается, если переданоoutput_attentions=Trueили еслиconfig.output_attentions=True) — Кортежtorch.FloatTensor(по одному для каждого слоя) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
image_hidden_states (
torch.FloatTensor, необязательный) —torch.FloatTensorразмера(batch_size, num_images, sequence_length, hidden_size). image_hidden_states модели, полученные от визуального кодировщика после проекции последнего скрытого состояния.audio_hidden_states (
torch.FloatTensor, необязательный) —torch.FloatTensorразмера(batch_size, num_images, sequence_length, hidden_size). audio_hidden_states модели, полученные аудио-энкодером после проекции последнего скрытого состояния.shared_kv_states (
KVSharingDict, необязательный) — контейнер, похожий на словарь, который сопоставляет строки с типами слоёв кортежам тензоров (key_states, value_states). Используется для передачи общих состояний KV между слоями при использовании KV sharing.router_logits (
tuple(torch.FloatTensor), необязательный, возвращается при передачеoutput_router_logits=True) — Кортежtorch.FloatTensor(по одному для каждого слоя MoE) формы(batch_size * sequence_length, num_experts).
Gemma4ForConditionalGeneration
класс transformers.Gemma4ForConditionalGeneration
< source >( config: Gemma4Config )
Параметры
- config (Gemma4Config) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с файлом конфигурации не загружает веса, связанные с моделью, только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Базовая модель Gemma 4, включающая визуальный бэкбон, аудиобэкбон, языковую модель и головку для моделирования языка.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
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)
Параметры
- input_ids (
torch.LongTensorформы(batch_size, sequence_length), , необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию токены отсечки (padding) игнорируются.Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().
- pixel_values (
torch.FloatTensorформы(batch_size, num_channels, image_size, image_size), необязательный) — Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью Gemma4ImageProcessor. Подробности см. в Gemma4ImageProcessor.call() (Gemma4Processor использует Gemma4ImageProcessor для обработки изображений). - pixel_values_videos (
torch.FloatTensorформы(batch_size, num_frames, num_channels, frame_size, frame_size), необязательный) — Тензоры, соответствующие входному видео. Пиксельные значения для видео можно получить с помощью Gemma4VideoProcessor. Подробности см. в Gemma4VideoProcessor.call() (Gemma4Processor использует Gemma4VideoProcessor для обработки видео). - input_features (
torch.FloatTensorформы(batch_size, sequence_length, feature_dim), необязательный) — Тензоры, соответствующие входным аудиособытиям. Аудиособытия можно получить с помощью Gemma4AudioFeatureExtractor. Подробности см. в Gemma4AudioFeatureExtractor.call() (Gemma4Processor использует Gemma4AudioFeatureExtractor для обработки аудио). - attention_mask (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона[0, 1]:- 1 для токенов, которые не замаскированы,
- 0 для токенов, которые замаскированы.
- input_features_mask (
torch.FloatTensorформы(num_images, seq_length)) — Маска внимания для входного аудио. - position_ids (
torch.LongTensorформы(batch_size, sequence_length), , необязательный) — Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбираются из диапазона[0, config.n_positions - 1]. - image_position_ids (
torch.LongTensorформы(batch_size, max_patches, 2), необязательный) — двумерные координаты позиций патчей от обработчика изображений, где(-1, -1)обозначает заполнение. Передаётся в визуальный энкодер для вычисления позиционных эмбеддингов. - video_position_ids (
torch.LongTensorформы(total_num_frames, max_patches, 2), необязательный) — двумерные координаты позиций патчей от видео-процессора, где(-1, -1)обозначает заполнение. Передаётся в визуальный энкодер для вычисления позиционных эмбеддингов. - num_frames_per_video (
torch.LongTensorформы(num_videos,), необязательный) — Количество кадров, принадлежащих каждому видео. Обязателен при передачеpixel_values_videos, так как кадры всех видео конкатенируются вдоль одной оси. - past_key_values (
~cache_utils.Cache, необязательный) — Предвычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать для ускорения последовательного декодирования. Обычно этоpast_key_values, возвращённые моделью на предыдущем этапе декодирования, когдаuse_cache=Trueилиconfig.use_cache=True.В качестве входного параметра допускается только экземпляр Cache, см. наше руководство по кэшу KV. Если
past_key_valuesне переданы, по умолчанию будет инициализирован DynamicCache.Модель будет выводить тот же формат кэша, который был передан на вход.
Если используются
past_key_values, ожидается, что пользователь передаст только необработанныеinput_ids(те, для которых в этой модели ещё не заданы состояния прошлых ключей и значений) формы(batch_size, unprocessed_length), а не всеinput_idsформы(batch_size, sequence_length). - mm_token_type_ids (
torch.LongTensorформы(batch_size, sequence_length), необязательный) — Индексы токенов входной последовательности, соответствующие каждой модальности. Например, текст (0), изображение (1), видео (2). Мультимодальные идентификаторы типов токенов можно получить с помощью AutoProcessor. Подробности см. в ProcessorMixin.call(). - inputs_embeds (
torch.FloatTensorформы(batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачиinput_idsможно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексыinput_idsпреобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска эмбеддингов модели. - labels (
torch.LongTensorформы(batch_size, sequence_length), необязательный) — Метки для вычисления потерь маскированного языкового моделирования. Индексы должны находиться в диапазоне[0, ..., config.vocab_size]или быть равны -100 (см. docstringinput_ids). Токены с индексами, установленными в-100, игнорируются (маскируются); потери вычисляются только для токенов с метками в диапазоне[0, ..., config.vocab_size]. - use_cache (
bool, необязательный) — Если установлено вTrue, возвращаются состояния ключей и значенийpast_key_values, которые можно использовать для ускорения декодирования (см.past_key_values). - logits_to_keep (
Union[int, torch.Tensor], необязательный, по умолчанию0) — Если передано значение типаint, вычисляет logits для последнихlogits_to_keepтокенов. Если указано0, logits вычисляются для всехinput_ids(особый случай). Для генерации нужны logits только последнего токена, и вычисление их только для этого токена позволяет сэкономить память, что становится весьма значимым для длинных последовательностей или большого размера словаря. Если передано значение типаtorch.Tensor, оно должно быть одномерным и соответствовать индексам, которые нужно сохранить в измерении длины последовательности. Это полезно при использовании упакованного формата тензоров (один размер для batch и длины последовательности). - per_layer_inputs (
torch.Tensor, необязательный) — Предварительно вычисленные входные текстовые эмбеддинги для каждого слоя формы(batch_size, sequence_length, num_hidden_layers, hidden_size_per_layer_input). Если переданы, используются напрямую вместо вычисления изinput_idsчерезget_per_layer_inputs()в текстовой модели. Если вы вызываетеforwardсinputs_embedsвместоinput_ids, вероятно, стоит предварительно вычислить их и передать вместе сinputs_embeds, иначе для их пересчёта потребуется обратное преобразование основного эмбеддинга, что дорого по вычислениям. - mm_encoder_outputs (
dict[str, ~modeling_outputs.BaseModelOutputWithPooling], необязательный) — Словарь, где ключами являются поддерживаемые модальности, а значениями — закодированные результаты для соответствующей модальности. Каждый закодированный результат представляет собой кортеж вида (pooler_output, необязательный:last_hidden_states, необязательный:hidden_states, необязательный:attentions)pooler_outputформы(batch_size, sequence_length, hidden_size), необязательный) — последовательность мультимодальных признаков энкодера, объединённых с текстовыми эмбеддингами.
Возвращает
Gemma4CausalLMOutputWithPast или tuple(torch.FloatTensor)
Объект Gemma4CausalLMOutputWithPast или кортеж из
torch.FloatTensor (если передан аргумент return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (Gemma4Config) и входных данных.
Метод forward класса Gemma4ForConditionalGeneration переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
loss (
torch.FloatTensorформы(1,), необязательный, возвращается, если заданlabels) — Потери языковой модели (для предсказания следующего токена).logits (
torch.FloatTensorформы(batch_size, sequence_length, config.text_config.vocab_size)) — Оценки предсказаний языковой модели (оценки для каждого токена словаря до применения SoftMax).past_key_values (
Cache, необязательный, возвращается при передачеuse_cache=Trueили когдаconfig.use_cache=True) — это экземпляр Cache. Подробнее см. в нашем руководстве по кэшу kv.Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания), которые можно использовать (см. вход
past_key_values) для ускорения последовательного декодирования.hidden_states (
tuple[torch.FloatTensor], необязательный, возвращается, если переданоoutput_hidden_states=Trueили еслиconfig.output_hidden_states=True) — Кортежtorch.FloatTensor(один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
attentions (
tuple[torch.FloatTensor], необязательный, возвращается при передачеoutput_attentions=Trueили когдаconfig.output_attentions=True) — Кортежtorch.FloatTensor(по одному для каждого слоя) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
image_hidden_states (
torch.FloatTensor, необязательный) —torch.FloatTensorразмера(batch_size, num_images, sequence_length, hidden_size). image_hidden_states модели, полученные визуальным энкодером после проецирования последнего скрытого состояния.audio_hidden_states (
torch.FloatTensor, необязательный) —torch.FloatTensorразмера(batch_size, num_images, sequence_length, hidden_size). audio_hidden_states модели, полученные аудио-энкодером после проекции последнего скрытого состояния.shared_kv_states (
KVSharingDict, необязательный) — контейнер, похожий на словарь, который сопоставляет строки с типами слоёв кортежам тензоров (key_states, value_states). Используется для передачи общих состояний KV между слоями при использовании KV sharing.router_logits (
tuple(torch.FloatTensor), необязательный, возвращается при передачеoutput_router_logits=True) — Кортежtorch.FloatTensor(по одному для каждого слоя MoE) формы(batch_size * sequence_length, num_experts).
Пример:
>>> 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]