Transformers documentation
Gemma3n
Эта модель была опубликована в HF papers 12.11.2024 и добавлена в Hugging Face Transformers 26.06.2025.
Gemma3n
Обзор
Gemma3n — это мультимодальная модель, доступная в вариантах с предобучением и с обучением по инструкциям, в размерах E4B и E2B. Хотя значительная часть архитектуры языковой модели совпадает с предыдущими выпусками Gemma, в этой модели появилось множество новых элементов, включая Alternating Updates (AltUp), Learned Augmented Residual Layer (LAuReL), MatFormer, Per-Layer Embeddings (PLE), Activation Sparsity with Statistical Top-k и общий KV-кэш. Языковая модель использует схему внимания, аналогичную Gemma 3: на каждый слой глобального само-внимания приходится четыре слоя локального само-внимания со скользящим окном, а максимальная длина контекста составляет 32k токенов. Gemma 3n вводит MobileNet v5 в качестве визуального энкодера с разрешением по умолчанию 768x768 пикселей и добавляет новый аудиоэнкодер, обученный на основе архитектуры Universal Speech Model (USM).
Инструктивно настроенная версия была дообучена с использованием дистилляции знаний и обучения с подкреплением.
Все исходные контрольные точки Gemma 3n можно найти в релизе Gemma 3n.
Нажмите на модели Gemma 3n в боковой панели справа, чтобы увидеть дополнительные примеры применения Gemma к различным задачам в области зрения, аудио и языка.
Установите
use_kernels=Trueв from_pretrained(), чтобы заменить поддерживаемые слои на оптимизированные ядра из Hub. Подробнее см. в разделе Загрузка ядер.
Приведённый ниже пример показывает, как генерировать текст на основе изображения с помощью Pipeline или класса AutoModel.
from transformers import pipeline
pipeline = pipeline(
task="image-text-to-text",
model="google/gemma-3n-e4b",
device=0,
)
pipeline(
"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg",
text="<start_of_image> What is shown in this image?"
)from transformers import AutoProcessor, Gemma3nForConditionalGeneration
model = Gemma3nForConditionalGeneration.from_pretrained(
"google/gemma-3n-e4b-it",
device_map="auto",
attn_implementation="sdpa"
)
processor = AutoProcessor.from_pretrained(
"google/gemma-3n-e4b-it",
padding_side="left"
)
messages = [
{
"role": "system",
"content": [
{"type": "text", "text": "You are a helpful assistant."}
]
},
{
"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)
output = model.generate(**inputs, max_new_tokens=50, cache_implementation="static")
print(processor.decode(output[0], skip_special_tokens=True))Примечания
Используйте Gemma3nForConditionalGeneration для входов, содержащих изображение, аудио и текст, изображение и текст, изображение и аудио, аудио и текст, только изображение или только аудио.
Gemma 3n поддерживает несколько изображений на один вход, но убедитесь, что изображения правильно сгруппированы в батчи перед передачей в процессор. Каждый батч должен представлять собой список из одного или нескольких изображений.
url_cow = "https://media.istockphoto.com/id/1192867753/photo/cow-in-berchida-beach-siniscola.jpg?s=612x612&w=0&k=20&c=v0hjjniwsMNfJSuKWZuIn8pssmD5h5bSN1peBd1CmH4=" url_cat = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg" messages =[ { "role": "system", "content": [ {"type": "text", "text": "You are a helpful assistant."} ] }, { "role": "user", "content": [ {"type": "image", "url": url_cow}, {"type": "image", "url": url_cat}, {"type": "text", "text": "Which image is cuter?"}, ] }, ]Текст, передаваемый в процессор, должен содержать токен
<image_soft_token>в тех местах, где необходимо вставить изображение.Gemma 3n принимает не более одного целевого аудиоклипа на вход, хотя в few-shot промптах, например, можно указать несколько аудиоклипов.
Текст, передаваемый в процессор, должен содержать токен
<audio_soft_token>в тех местах, где необходимо вставить аудиоклип.У процессора есть собственный метод apply_chat_template() для преобразования сообщений чата во входные данные модели.
Gemma3nAudioFeatureExtractor
класс transformers.Gemma3nAudioFeatureExtractor
< source >( feature_size: int = 128sampling_rate: int = 16000padding_value: float = 0.0return_attention_mask: bool = Trueframe_length_ms: float = 32.0hop_length_ms: float = 10.0min_frequency: float = 125.0max_frequency: float = 7600.0preemphasis: float = 0.97preemphasis_htk_flavor: bool = Truefft_overdrive: bool = Truedither: float = 0.0input_scale_factor: float = 1.0mel_floor: float = 1e-05per_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, необязательный, по умолчанию 32.0) — Длина кадра в миллисекундах. - hop_length_ms (
float, необязательный, по умолчанию 10.0) — Длина перекрывающихся окон для БПФ, используемой для получения коэффициентов Мель-частот. - min_frequency (
float, необязательный, по умолчанию 125.0) — Минимальная частота (в Гц) для Mel-фильтров. - max_frequency (
float, необязательный, по умолчанию 7600.0) — Максимальная частота (в Гц) для Mel-фильтров. - preemphasis (
float, необязательный, по умолчанию 0.97) — Коэффициент предварительного усиления. - preemphasis_htk_flavor (
bool, необязательный, по умолчаниюTrue) — Использовать ли предподчёркивание в стиле HTK. - fft_overdrive (
bool, необязательный, по умолчаниюTrue) — Использовать ли 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, необязательный, по умолчанию 1e-05) — Минимальное значение для мел-спектрограмм, чтобы избежать log(0). - per_bin_mean (
Optional[Sequence[float]], необязательный) — Средние значения для нормализации по каждому бину. - per_bin_stddev (
Optional[Sequence[float]], необязательный) — Значения стандартного отклонения для нормализации по каждому бину.
Извлекатель аудиопризнаков Universal Speech Models https://huggingface.co/papers/2303.01037.
Gemma3nProcessor
класс transformers.Gemma3nProcessor
< source >( feature_extractorimage_processortokenizerchat_template = Noneaudio_seq_length: int = 188image_seq_length: int = 256**kwargs )
Параметры
- feature_extractor (
Gemma3nAudioFeatureExtractor) — Экстрактор признаков является обязательным входным параметром. - image_processor (
SiglipImageProcessor) — Обработчик изображений является обязательным входным параметром. - tokenizer (
GemmaTokenizer) — Токенизатор является обязательным входным параметром. - chat_template (
str) — Jinja-шаблон для преобразования списков сообщений в чате в строку, пригодную для токенизации. - audio_seq_length (
int, необязательный, по умолчанию 188) — Количество аудио-мягких токенов, которые будут добавлены к текстовому промпту - image_seq_length (
int, необязательный, по умолчанию 256) — Количество мягких токенов изображения, которые должны быть добавлены
Создаёт Gemma3nProcessor, который объединяет feature extractor, image processor и tokenizer в единый процессор.
Gemma3nProcessor предоставляет все возможности Gemma3nAudioFeatureExtractor, SiglipImageProcessor и GemmaTokenizer. Подробнее см. в ~Gemma3nAudioFeatureExtractor, ~SiglipImageProcessor и ~GemmaTokenizer.
__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]] = Noneaudio: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]] | None = None**kwargs: *<class 'transformers.models.gemma3n.processing_gemma3n.Gemma3nProcessorKwargs'> ) → ~feature_extraction_utils.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. - text (
Union[str, list[str], list[list[str]]], необязательный) — Последовательность или батч последовательностей для кодирования. Каждая последовательность может быть строкой или списком строк (предварительно токенизированная строка). Если вы передаёте предварительно токенизированный вход, установитеis_split_into_words=True, чтобы избежать неоднозначности с батчированными входами. - audio (
Union[numpy.ndarray, list[float], list[numpy.ndarray], list[list[float]]], необязательный) — Аудио или пакет аудио, подлежащий подготовке. Каждое аудио может быть массивом NumPy или тензором PyTorch. В случае массива NumPy/тензора PyTorch каждое аудио должно иметь форму (C, T), где C — количество каналов, а T — длина выборки аудио. - return_tensors (
strили TensorType, необязательный) — Если задано, возвращает тензоры конкретного фреймворка. Допустимые значения:'pt': возвращает объектыtorch.TensorPyTorch.'np': возвращает объекты NumPynp.ndarray.
- **kwargs (ProcessingKwargs, optional) — Дополнительные параметры обработки для каждой модальности (текст, изображения, видео, аудио). Специфичные для модели параметры перечислены выше; полный список поддерживаемых аргументов см. в классе TypedDict.
Возвращает
~feature_extraction_utils.BatchFeature
- data (
dict, необязательный) — Словарь списков/массивов/тензоров, возвращаемый методами call/pad (‘input_values’, ‘attention_mask’, и т. д.). - tensor_type (
Union[None, str, TensorType], необязательный) — Здесь можно указать tensor_type, чтобы при инициализации преобразовать списки целых чисел в тензоры PyTorch/Numpy. - skip_tensor_conversion (
list[str]илиset[str], необязательный) — список или множество ключей, которые не следует преобразовывать в тензоры, даже если указанtensor_type.
Gemma3nTextConfig
класс transformers.Gemma3nTextConfig
< 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 = 262400hidden_size: int = 2048intermediate_size: int | list[int] = 16384num_hidden_layers: int = 35num_attention_heads: int = 8num_key_value_heads: int = 2head_dim: int = 256hidden_activation: str = 'gelu_pytorch_tanh'max_position_embeddings: int = 32768initializer_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 = 30.0vocab_size_per_layer_input: int = 262144hidden_size_per_layer_input: int = 256altup_active_idx: int = 0altup_coef_clip: float = 120.0altup_correct_scale: bool = Truealtup_num_inputs: int = 4num_kv_shared_layers: int = 15laurel_rank: int = 64activation_sparsity_pattern: float | list[float] | None = None )
Параметры
- vocab_size (
int, необязательный, по умолчанию262400) — Размер словаря модели. Определяет количество различных токенов, которые могут быть представлены вinput_ids. - hidden_size (
int, необязательный, по умолчанию2048) — Размерность скрытых представлений. - intermediate_size (
Union[int, list[int]], необязательный, по умолчанию16384) — Размерность представлений MLP. - num_hidden_layers (
int, необязательный, по умолчанию35) — Количество скрытых слоев в декодере Transformer. - num_attention_heads (
int, необязательный, по умолчанию8) — Количество головок внимания в каждом слое внимания декодера Transformer. - num_key_value_heads (
int, необязательный, по умолчанию2) — Это количество ключевых и 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, необязательный, по умолчанию32768) — Максимальная длина последовательности, с которой может использоваться эта модель. - 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, необязательный, по умолчанию30.0) — Значение мягкого ограничения, применяемое к финальным логитам перед вычислением распределения вероятностей. Логиты масштабируются по формулеtanh(logit / cap) * cap. - vocab_size_per_layer_input (
int, необязательный, по умолчанию 262144) — Размер словаря текстовых эмбеддингов для каждого слоя, дополняющих стандартные эмбеддинги. - hidden_size_per_layer_input (
int, необязательный, по умолчанию 256) — Размерность скрытых представлений для послойных эмбеддингов. - altup_active_idx (
int, необязательный, по умолчанию 0) — Индекс предсказания, от которого AltUp вычисляет дополнительные предсказания или корректирует активное предсказание. - altup_coef_clip (
float, необязательный, по умолчанию 120.0) — Максимальная амплитуда веса коэффициента предсказания или коррекции AltUp. - altup_correct_scale (
bool, необязательный, по умолчаниюTrue) — Если True, применяетAltUp.correct_output_scaleк скорректированному предсказанию наaltup_active_idx. - altup_num_inputs (
int, необязательный, по умолчанию 4) — Количество предсказаний, которые AltUp должен сделать для заданной входной последовательности. - num_kv_shared_layers (
int, необязательный, по умолчанию 15) — Количество слоев, которые разделяют значения кэша KV. Во время прямого прохода последниеnum_kv_shared_layersслои модели «разделяют» значения KV: каждый локальный и глобальный слой в этом диапазоне использует значения кэша KV, вычисленные для последнего локального или глобального слоя соответственно, перед входом в этот диапазон. Значение должно быть кратным размеру паттерна внимания (см. параметрlayer_types). - laurel_rank (
int, необязательный, по умолчанию 64) — Промежуточный размер для линейных проекций в Learned Augmented Residual Layer. - activation_sparsity_pattern (
Sequence[float], необязательный) — Коэффициент разреженности, используемый для извлечения top-k активаций для данного слоя. Передаваемая последовательность Sequence должна явно указывать значение разреженности для каждого слоя модели. По умолчанию первые 10 слоёв являются разреженными с коэффициентом разреженности 0.95, а остальные — плотными.
Это класс конфигурации для хранения настроек модели Gemma3nModel. Он используется для создания модели Gemma3N в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации google/gemma-3n-E4B
Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.
>>> from transformers import Gemma3nTextModel, Gemma3nTextConfig
>>> # Initializing a Gemma3nText gemma3n_text-E4B style configuration
>>> configuration = Gemma3nTextConfig()
>>> # Initializing a model from the gemma3n_text-E4B style configuration
>>> model = Gemma3nTextModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configGemma3nVisionConfig
класс transformers.Gemma3nVisionConfig
< 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 = Nonearchitecture: str = 'mobilenetv5_300m_enc'initializer_range: float = 0.02do_pooling: bool = Falsemodel_args: dict | None = Nonehidden_size: int = 2048vocab_size: int = 128vocab_offset: int = 262144rms_norm_eps: float = 1e-06 )
Параметры
- architecture (
str, необязательный, по умолчанию"resnet50") — Архитектура timm, которую нужно загрузить. - initializer_range (
float, необязательный, по умолчанию0.02) — Стандартное отклонение truncated_normal_initializer, используемое для инициализации всех матриц весов. - do_pooling (
bool, необязательный, по умолчаниюTrue) — Выполнять ли пулинг для last_hidden_state вTimmWrapperModel. - model_args (
dict[str, Any], необязательный) — Дополнительные именованные аргументы, передаваемые в функциюtimm.create_model. Например,model_args={"depth": 3}дляtimm/vit_base_patch32_clip_448.laion2b_ft_in12k_in1kсоздаст модель с 3 блоками. По умолчаниюNone. - hidden_size (
int, необязательный, по умолчанию2048) — Размерность скрытых представлений. - vocab_size (
int, необязательный, по умолчанию128) — Размер словаря модели. Определяет количество различных токенов, которые могут быть представлены вinput_ids. - vocab_offset (
int, необязательный, по умолчанию 262144) — Смещение между индексом токена в словаре токенизатора для идентификаторов токенов, встроенныхGemma3nMultimodalEmbedder, и таблицейGemma3nMultimodalEmbedder.embeddingс индексацией с нуля. - rms_norm_eps (
float, необязательный, по умолчанию1e-06) — Значение epsilon, используемое слоями нормализации rms.
Это класс конфигурации для хранения настроек модели Gemma3nModel. Он используется для создания модели Gemma3N в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации google/gemma-3n-E4B
Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.
Пример:
>>> from transformers import Gemma3nVisionConfig, TimmWrapper
>>> # Initializing a TimmWrapper gemma3n_vision-E4B-style configuration
>>> configuration = Gemma3nVisionConfig()
>>> # Initializing a gemma3n_vision-E4B-style TimmWrapper from the configuration
>>> model = TimmWrapper(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configGemma3nAudioConfig
класс transformers.Gemma3nAudioConfig
< 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 = 128vocab_offset: int = 262272input_feat_size: int = 128hidden_size: int = 1536rms_norm_eps: float = 1e-06gradient_clipping: float = 10000000000.0conf_attention_chunk_size: int = 12conf_attention_context_left: int = 13conf_attention_context_right: int = 0conf_attention_logit_cap: float = 50.0conf_num_attention_heads: int = 8conf_num_hidden_layers: int = 12conf_conv_kernel_size: int = 5conf_reduction_factor: int = 4conf_residual_weight: float = 0.5sscp_conv_channel_size: list[int] | tuple[int, int] = (128, 32)sscp_conv_group_norm_eps: float = 0.001sscp_conv_kernel_size: list | tuple[tuple[int, int], tuple[int, int]] = ((3, 3), (3, 3))sscp_conv_stride_size: list | tuple[tuple[int, int], tuple[int, int]] = ((2, 2), (2, 2)) )
Параметры
- vocab_size (
int, необязательный, по умолчанию128) — Размер словаря модели. Определяет количество различных токенов, которые могут быть представлены вinput_ids. - vocab_offset (
int, необязательный, по умолчанию 262272) — Смещение между индексом токена в словаре токенизатора для идентификаторов токенов, встроенныхGemma3nMultimodalEmbedder, и таблицейGemma3nMultimodalEmbedder.embeddingс индексацией с нуля. - input_feat_size (
int, необязательный, по умолчанию 128) — Количество каналов в каждом кадре мел-спектрограммы. - hidden_size (
int, необязательный, по умолчанию1536) — Размерность скрытых представлений. - rms_norm_eps (
float, необязательный, по умолчанию1e-06) — Значение epsilon, используемое слоями нормализации rms. - gradient_clipping (
float, необязательный, по умолчанию 10000000000.0) — Значение обрезки, используемое для стабилизации чрезвычайно больших значений градиентов. - conf_attention_chunk_size (
int, необязательный, по умолчанию 12) — Размер подпоследовательности для обработки локального внимания внутри раздела Conformer («conf») модели Universal Speech Model. - conf_attention_context_left (
int, необязательный, по умолчанию 13) — Размер левого контекста локального внимания внутри секции Conformer («conf») модели Universal Speech Model. - conf_attention_context_right (
int, необязательный, по умолчанию 0) — Размер правого контекста локального внимания внутри секции Conformer (“conf”) модели Universal Speech Model. - conf_attention_logit_cap (
float, необязательный, по умолчанию 50.0) — Ограничение логитов, применяемое при локальном внимании в разделе Conformer («conf») модели Universal Speech Model. - conf_num_attention_heads (
int, необязательный, по умолчанию 8) — Количество головок внимания в локальном внимании внутри Conformer (раздел «conf») модели Universal Speech Model. - conf_num_hidden_layers (
int, необязательный, по умолчанию 12) — Количество слоев, использующих локальное внимание, в разделе Conformer («conf») модели Universal Speech Model. - conf_conv_kernel_size (
int, необязательный, по умолчанию 5) — Размер ядра свёртки для блока Conformer в разделе Conformer («conf») модели Universal Speech Model. - conf_reduction_factor (
int, необязательный, по умолчанию 4) — Коэффициент редукции, используемый в блоке conformer внутри раздела Conformer («conf») модели Universal Speech Model. - conf_residual_weight (
float, необязательный, по умолчанию 0.5) — Вес остаточного соединения внутри секции Conformer («conf») модели Universal Speech Model. - sscp_conv_channel_size (
tuple(int, int), необязательный, по умолчанию(128, 32)) — Размеры каналов для первого и второго свёрточных слоёв в разделе Sub-sample Convolution Projection (“sscp”) модели Universal Speech Model. - sscp_conv_group_norm_eps (
float, необязательный, по умолчанию 0.001) — Значение epsilon, используемое в групповой нормализации в проекции подвыборочной свёртки в разделе «sscp» (Sub-sample Convolution Projection) модели Universal Speech Model. - sscp_conv_kernel_size (
tuple(tuple(int, int), tuple(int, int)), optional, по умолчанию((3, 3), (3, 3))) — Размеры ядер двух свёрточных слоёв в проекции подвыборки (subsample convolution projection) в разделе Sub-sample Convolution Projection (“sscp”) модели Universal Speech Model. Размеры ядер задаются в виде кортежа высоты и ширины для каждого слоя, где высота соответствует временному измерению, а ширина — частотному измерению. - sscp_conv_stride_size (
tuple(tuple(int, int), tuple(int, int)), optional, по умолчанию((2, 2), (2, 2))) — Размеры шага (stride) для двух свёрточных слоёв в проекции подвыборки (subsample convolution projection) в разделе Sub-sample Convolution Projection (“sscp”) модели Universal Speech Model. Размеры шага задаются в виде кортежа из высоты и ширины для каждого слоя, где высота соответствует временному измерению, а ширина — частотному измерению.
Это класс конфигурации для хранения настроек модели Gemma3nModel. Он используется для создания модели Gemma3N в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации google/gemma-3n-E4B
Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.
Пример:
>>> from transformers import Gemma3nAudioConfig, Gemma3nAudioEncoder
>>> # Initializing a Gemma3nAudioEncoder gemma3n_audio-E4B-style configuration
>>> configuration = Gemma3nAudioConfig()
>>> # Initializing a model from the gemma3n_audio-E4B style configuration
>>> model = Gemma3nAudioEncoder(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configGemma3nConfig
класс transformers.Gemma3nConfig
< 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.gemma3n.configuration_gemma3n.Gemma3nTextConfig | dict[str, typing.Any] | None = Nonevision_config: transformers.models.gemma3n.configuration_gemma3n.Gemma3nVisionConfig | dict[str, typing.Any] | None = Noneaudio_config: transformers.models.gemma3n.configuration_gemma3n.Gemma3nAudioConfig | dict[str, typing.Any] | None = Noneaudio_soft_tokens_per_image: int | None = 188vision_soft_tokens_per_image: int | None = 256boi_token_id: int | None = 255999eoi_token_id: int | None = 262144image_token_id: int | None = 262145boa_token_id: int | None = 256000eoa_token_id: int | None = 262272audio_token_id: int | None = 262273initializer_range: float | None = 0.02tie_word_embeddings: bool | None = Trueuse_cache: bool = True )
Параметры
- text_config (
Union[~models.gemma3n.configuration_gemma3n.Gemma3nTextConfig, dict[str, Any]], необязательный) — Объект конфигурации или словарь текстового бэкбона. - vision_config (
Union[~models.gemma3n.configuration_gemma3n.Gemma3nVisionConfig, dict[str, Any]], необязательный) — Объект конфигурации или словарь для визуального бэкбона. - audio_config (
Union[~models.gemma3n.configuration_gemma3n.Gemma3nAudioConfig, dict[str, Any]], необязательный) — Объект конфигурации или словарь аудио-бэкбона. - audio_soft_tokens_per_image (
int, необязательный, по умолчанию 188) — Количество мягких токенов на аудиоклип. - vision_soft_tokens_per_image (
int, необязательный, по умолчанию 256) — Количество soft-токенов на изображение. - boi_token_id (
int, необязательный, по умолчанию 255999) — Индекс токена начала изображения, используемого для обрамления запроса с изображением. - eoi_token_id (
int, необязательный, по умолчанию 262144) — Индекс токена конца изображения, используемого для обрамления изображения-подсказки. - image_token_id (
int, необязательный, по умолчанию262145) — Индекс токена изображения, используемый в качестве плейсхолдера для входных изображений. - boa_token_id (
int, необязательный, по умолчанию 256000) — Индекс токена начала аудио, используемого для обрамления аудиозапроса. - eoa_token_id (
int, необязательный, по умолчанию 262272) — Индекс токена конца аудио, используемый для обрамления аудио-подсказки. - audio_token_id (
int, необязательный, по умолчанию262273) — Индекс аудио-токена, используемый как плейсхолдер для входного аудио. - initializer_range (
float, необязательный, по умолчанию0.02) — Стандартное отклонение truncated_normal_initializer, используемое для инициализации всех матриц весов. - tie_word_embeddings (
bool, необязательный, по умолчаниюTrue) — Определяет, следует ли связывать веса эмбеддингов согласно маппингуtied_weights_keysмодели. - use_cache (
bool, необязательный, по умолчаниюTrue) — Указывает, должен ли модель возвращать последние ключи/значения внимания (не используется во всех моделях). Актуально только еслиconfig.is_decoder=Trueили если модель является генеративной моделью только с декодером.
Это класс конфигурации для хранения настроек модели Gemma3nModel. Он используется для создания модели Gemma3N в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации google/gemma-3n-E4B
Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.
Пример:
>>> from transformers import Gemma3nForConditionalGeneration, Gemma3nConfig, Gemma3nTextConfig
>>> # Initializing a MobileNet vision config, which is loaded from TIMM
>>> vision_config = Gemma3nVisionConfig()
>>> # Initializing a Gemma3n Audio config
>>> audio_config = Gemma3nAudioConfig()
>>> # Initializing a Gemma3n Text config
>>> text_config = Gemma3nTextConfig()
>>> # Initializing a Gemma3n gemma-3-4b style configuration
>>> configuration = Gemma3nConfig(text_config, vision_config, audio_config)
>>> # Initializing a model from the gemma-3-4b style configuration
>>> model = Gemma3nTextConfig(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configGemma3nTextModel
класс transformers.Gemma3nTextModel
< source >( config: Gemma3nTextConfig )
Параметры
- config (Gemma3nTextConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Для загрузки весов модели используйте метод from_pretrained().
Базовая языковая модель Gemma 3n без заголовка для моделирования языка.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneper_layer_inputs: typing.Optional[torch.Tensor] = 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.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPast or tuple(torch.Tensor)
Параметры
- input_ids (
torch.LongTensorформы(batch_size, sequence_length), , необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию токены отсечки (padding) игнорируются.Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().
- per_layer_inputs (
torch.Tensor, необязательный, по умолчанию None) — Предварительно вычисленные эмбеддинги для каждого слоя. Если значение равно None, они вычисляются из input_ids, если те были переданы. - 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.Tensorформы(batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачиinput_idsможно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексыinput_idsпреобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели. - use_cache (
bool, необязательный) — Если установлено вTrue, возвращаются состояния ключей и значенийpast_key_values, которые можно использовать для ускорения декодирования (см.past_key_values).
Возвращает
BaseModelOutputWithPast или tuple(torch.Tensor)
Объект BaseModelOutputWithPast или кортеж
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (Gemma3nConfig) и входных данных.
Метод forward модели Gemma3nTextModel переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
last_hidden_state (
torch.Tensorформы(batch_size, sequence_length, hidden_size)) — Последовательность скрытых состояний на выходе последнего слоя модели.Если используется
past_key_values, выводится только последнее скрытое состояние последовательностей формы(batch_size, 1, hidden_size).past_key_values (
Cache, необязательный, возвращается при передачеuse_cache=Trueили когдаconfig.use_cache=True) — это экземпляр Cache. Подробнее см. в нашем руководстве по кэшу kv.Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания и, при необходимости, если
config.is_encoder_decoder=True, в блоках кросс-внимания), которые можно использовать (см. входной параметрpast_key_values) для ускорения последовательного декодирования.hidden_states (
tuple(torch.Tensor), optional, возвращается, если переданоoutput_hidden_states=Trueили еслиconfig.output_hidden_states=True) — кортеж изtorch.Tensor(один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
attentions (
tuple(torch.Tensor), необязательный, возвращается при передачеoutput_attentions=Trueили приconfig.output_attentions=True) — Кортежtorch.Tensor(по одному на каждый слой) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
Gemma3nModel
класс transformers.Gemma3nModel
< source >( config: Gemma3nConfig )
Параметры
- config (Gemma3nConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().
Базовая модель Gemma 3n, включающая визуальный бэкбон, аудиобэкбон и языковую модель без головы для моделирования языка.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: typing.Optional[torch.Tensor] = Noneinput_features: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneinput_features_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneper_layer_inputs: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = Nonemm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )
input_features_mask (torch.Tensor формы (batch_size, sequence_length), необязательный):
Маска внимания для input_features, где ненулевые значения указывают на валидные аудиокадры.
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, иначе компонент токен-идентичности в эмбеддингах по слоям будет пропущен.
Пример:
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from transformers import AutoProcessor, Gemma3nForConditionalGeneration
>>> model = Gemma3nForConditionalGeneration.from_pretrained("google/gemma3n2-3b-mix-224")
>>> processor = AutoProcessor.from_pretrained("google/gemma3n2-3b-mix-224")
>>> prompt = "Where is the cat standing?"
>>> url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read()))
>>> inputs = processor(images=image, text=prompt, return_tensors="pt")
>>> # Generate
>>> generate_ids = model.generate(**inputs,)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
"Where is the cat standing?\nsnow"get_image_features
< source >( pixel_values: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
Параметры
- pixel_values (
torch.Tensorформы(batch_size, num_channels, image_size, image_size)) — Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью SiglipImageProcessor. Подробности см. в SiglipImageProcessor.call() (Gemma3nProcessor использует SiglipImageProcessor для обработки изображений).
Возвращает
BaseModelOutputWithPooling или tuple(torch.Tensor)
Объект BaseModelOutputWithPooling или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (Gemma3nConfig) и входных данных.
Проекция последнего скрытого состояния из визуальной модели в пространство языковой модели.
last_hidden_state (
torch.Tensorформы(batch_size, sequence_length, hidden_size)) — Последовательность скрытых состояний на выходе последнего слоя модели.pooler_output (
torch.Tensorформы(batch_size, hidden_size)) — Скрытое состояние последнего слоя для первого токена последовательности (токен классификации) после дополнительной обработки слоями, используемыми для вспомогательной задачи предварительного обучения. Например, для моделей семейства BERT это возвращает токен классификации после обработки линейным слоем и функцией активации tanh. Веса линейного слоя обучаются по задаче предсказания следующего предложения (классификации) во время предварительного обучения.hidden_states (
tuple(torch.Tensor), optional, возвращается, если переданоoutput_hidden_states=Trueили еслиconfig.output_hidden_states=True) — кортеж изtorch.Tensor(один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
attentions (
tuple(torch.Tensor), необязательный, возвращается при передачеoutput_attentions=Trueили приconfig.output_attentions=True) — Кортежtorch.Tensor(по одному на каждый слой) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
get_audio_features
< source >( input_features: Tensorinput_features_mask: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Gemma3nAudioEncoderModelOutput or tuple(torch.Tensor)
Параметры
- input_features (
torch.Tensorформы(num_images, seq_length, num_features)) — Тензоры, соответствующие входному аудио. - input_features_mask (
torch.Tensorформы(num_images, seq_length)) — Маска внимания для входного аудио.
Возвращает
Gemma3nAudioEncoderModelOutput или tuple(torch.Tensor)
Gemma3nAudioEncoderModelOutput или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (Gemma3nConfig) и входных данных.
Проекция последнего скрытого состояния из аудио-кодера в пространство языковой модели.
last_hidden_state (
torch.Tensorформы(batch_size, sequence_length, hidden_size)) — Последовательность скрытых состояний на выходе последнего слоя модели.pooler_output (
torch.Tensorформы(batch_size, hidden_size)) — Скрытое состояние последнего слоя для первого токена последовательности (токен классификации) после дополнительной обработки слоями, используемыми для вспомогательной задачи предварительного обучения. Например, для моделей семейства BERT это возвращает токен классификации после обработки линейным слоем и функцией активации tanh. Веса линейного слоя обучаются по задаче предсказания следующего предложения (классификации) во время предварительного обучения.hidden_states (
tuple(torch.Tensor), optional, возвращается, если переданоoutput_hidden_states=Trueили еслиconfig.output_hidden_states=True) — кортеж изtorch.Tensor(один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
attentions (
tuple(torch.Tensor), необязательный, возвращается при передачеoutput_attentions=Trueили приconfig.output_attentions=True) — Кортежtorch.Tensor(по одному на каждый слой) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
audio_mel_mask (
torch.BoolTensor, необязательный) — torch.BoolTensor формы(batch_size, num_frames)
Gemma3nForCausalLM
класс transformers.Gemma3nForCausalLM
< source >( config: Gemma3nTextConfig )
Параметры
- config (Gemma3nTextConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Для загрузки весов модели используйте метод from_pretrained().
Базовая языковая модель Gemma 3n с головой для моделирования языка.
Эта модель наследуется от 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.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CausalLMOutputWithPast or tuple(torch.Tensor)
Параметры
- 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.Tensorформы(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 и длины последовательности).
Возвращает
CausalLMOutputWithPast или tuple(torch.Tensor)
Объект CausalLMOutputWithPast или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (Gemma3nConfig) и входных данных.
Метод forward класса Gemma3nForCausalLM переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
loss (
torch.Tensorформы(1,), необязательный, возвращается, если заданlabels) — Потери языковой модели (для предсказания следующего токена).logits (
torch.Tensorформы(batch_size, sequence_length, config.vocab_size)) — Оценки предсказаний языковой модели (оценки для каждого токена словаря до применения SoftMax).past_key_values (
Cache, необязательный, возвращается при передачеuse_cache=Trueили когдаconfig.use_cache=True) — это экземпляр Cache. Подробнее см. в нашем руководстве по кэшу kv.Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания), которые можно использовать (см. вход
past_key_values) для ускорения последовательного декодирования.hidden_states (
tuple(torch.Tensor), optional, возвращается, если переданоoutput_hidden_states=Trueили еслиconfig.output_hidden_states=True) — кортеж изtorch.Tensor(один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
attentions (
tuple(torch.Tensor), необязательный, возвращается при передачеoutput_attentions=Trueили приconfig.output_attentions=True) — Кортежtorch.Tensor(по одному на каждый слой) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
Пример:
>>> from transformers import AutoTokenizer, Gemma3nForCausalLM
>>> model = Gemma3nForCausalLM.from_pretrained("google/gemma-2-9b")
>>> tokenizer = AutoTokenizer.from_pretrained("google/gemma-2-9b")
>>> 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?"Gemma3nForConditionalGeneration
класс transformers.Gemma3nForConditionalGeneration
< source >( config: Gemma3nConfig )
Параметры
- config (Gemma3nConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().
Базовая модель Gemma 3n, включающая визуальный бэкбон, аудиобэкбон, языковую модель и головку для моделирования языка.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: typing.Optional[torch.Tensor] = Noneinput_features: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneinput_features_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = 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'> ) → Gemma3nCausalLMOutputWithPast or tuple(torch.Tensor)
Параметры
- input_ids (
torch.LongTensorформы(batch_size, sequence_length), , необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию токены отсечки (padding) игнорируются.Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().
- pixel_values (
torch.Tensorформы(batch_size, num_channels, image_size, image_size), необязательный) — Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью SiglipImageProcessor. Подробности см. в SiglipImageProcessor.call() (Gemma3nProcessor использует SiglipImageProcessor для обработки изображений). - input_features (
torch.Tensorформы(batch_size, sequence_length, feature_dim), необязательный) — Тензоры, соответствующие входным аудиособытиям. Аудиособытия можно получить с помощью Gemma3nAudioFeatureExtractor. Подробности см. вGemma3nAudioFeatureExtractor.__call__()(Gemma3nProcessor использует Gemma3nAudioFeatureExtractor для обработки аудио). - attention_mask (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона[0, 1]:- 1 для токенов, которые не замаскированы,
- 0 для токенов, которые замаскированы.
- input_features_mask (
torch.Tensor, необязательный, по умолчанию None) — Маска внимания для входного аудио. - 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). - token_type_ids (
torch.LongTensorформы(batch_size, sequence_length), необязательный) — Индексы сегментных токенов для указания первой и второй частей входных данных. Индексы выбираются из[0, 1]:- 0 соответствует токену sentence A,
- 1 соответствует токену sentence B.
- inputs_embeds (
torch.Tensorформы(batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачиinput_idsможно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексыinput_idsпреобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели. - labels (
torch.LongTensorформы(batch_size, sequence_length), необязательный) — Метки для вычисления потерь маскированного языкового моделирования. Индексы должны находиться в диапазоне[0, ..., config.text_config.vocab_size]или быть равны -100 (см. docstringinput_ids). Токены с индексами, установленными в-100, игнорируются (маскируются); потери вычисляются только для токенов, у которых метки находятся в диапазоне[0, ..., config.text_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), необязательный) — последовательность мультимодальных признаков энкодера, объединённых с текстовыми эмбеддингами.
Возвращает
Gemma3nCausalLMOutputWithPast или tuple(torch.Tensor)
Gemma3nCausalLMOutputWithPast или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (Gemma3nConfig) и входных данных.
Метод forward класса Gemma3nForConditionalGeneration переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
loss (
torch.Tensorформы(1,), необязательный, возвращается, если заданlabels) — Потери языковой модели (для предсказания следующего токена).logits (
torch.Tensorформы(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.Tensor], необязательный, возвращается при передачеoutput_hidden_states=Trueили когдаconfig.output_hidden_states=True) — Кортеж изtorch.Tensor(один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
attentions (
tuple[torch.Tensor], необязательный, возвращается при передачеoutput_attentions=Trueили когдаconfig.output_attentions=True) — Кортежtorch.Tensor(по одному на каждый слой) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
image_hidden_states (
torch.Tensor, необязательный) —torch.Tensorразмера(batch_size, num_images, sequence_length, hidden_size). image_hidden_states модели, полученные визуальным энкодером после проекции последнего скрытого состояния.audio_hidden_states (
torch.Tensor, необязательный) —torch.Tensorразмера(batch_size, num_images, sequence_length, hidden_size). audio_hidden_states модели, полученные аудио-энкодером после проекции последнего скрытого состояния.
Пример:
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from transformers import AutoProcessor, Gemma3ForConditionalGeneration
>>> model = Gemma3ForConditionalGeneration.from_pretrained("google/gemma-3-4b-it")
>>> processor = AutoProcessor.from_pretrained("google/gemma-3-4b-it")
>>> messages = [
... {
... "role": "system",
... "content": [
... {"type": "text", "text": "You are a helpful assistant."}
... ]
... },
... {
... "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,
... tokenizer=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, clean_up_tokenization_spaces=False)[0]
"user\nYou are a helpful assistant.\n\n\n\n\n\nWhere is the cat standing?\nmodel\nBased on the image, the cat is standing in a snowy area, likely outdoors. It appears to"get_image_features
< source >( pixel_values: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )
Параметры
- pixel_values (
torch.Tensorформы(batch_size, num_channels, image_size, image_size)) — Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью SiglipImageProcessor. Подробности см. в SiglipImageProcessor.call() (Gemma3nProcessor использует SiglipImageProcessor для обработки изображений).
Пример:
>>> from PIL import Image
>>> from transformers import AutoProcessor, Gemma3nForConditionalGeneration
>>> model = Gemma3nForConditionalGeneration.from_pretrained("google/gemma-3n-E4B")
>>> processor = AutoProcessor.from_pretrained("google/gemma-3n-E4B")
>>> 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]