Transformers documentation

Gemma3n

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

and get access to the augmented documentation experience

to get started

このモデルは2024年11月12日にHF papersで公開され、2025年6月26日にHugging Face Transformersに貢献されました。

SDPA

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 トークンを持つグローバル自己アテンション層ごとに、4 つのローカルスライディングウィンドウ自己アテンション層が交互に配置されています。Gemma 3n では、デフォルトの解像度を 768x768 ピクセルとする MobileNet v5 をビジョンエンコーダーとして導入し、Universal Speech Model (USM) アーキテクチャに基づいて新たに訓練されたオーディオエンコーダーを追加しています。

指示チューニング済みバリアントは、知識蒸留と強化学習を用いてポストトレーニングされました。

Gemma 3nリリースの下に、すべてのオリジナルの Gemma 3n チェックポイントを見つけることができます。

右側のサイドバーにある Gemma 3n モデルをクリックすると、Gemma を異なるビジョン、オーディオ、言語タスクに適用する方法のより多くの例を確認できます。

use_kernels=True を from_pretrained() に設定すると、対応するレイヤーが Hub からの最適化されたカーネルに置き換えられます。詳細は カーネルの読み込み を参照してください。

以下の例では、PipelineまたはAutoModelクラスを使用して、画像に基づいてテキストを生成する方法を示しています。

パイプライン
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?"
)

注記

  • 画像・音声・テキスト、画像・テキスト、画像・音声、音声・テキスト、画像のみ、音声のみの入力には、Gemma3nForConditionalGenerationを使用します。

  • Gemma 3n は 1 つの入力に対する複数の画像をサポートしていますが、プロセッサーに渡す前に画像が正しくバッチ化されていることを確認してください。各バッチは、1 つ以上の画像のリストである必要があります。

    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 は、1 つの入力につき最大 1 つのターゲット音声クリップを受け取ります。ただし、例えば few-shot プロンプトでは複数の音声クリップを指定できます。

  • プロセッサーに渡すテキストには、音声クリップを挿入するべき箇所に<audio_soft_token>トークンを含める必要があります。

  • プロセッサには、チャットメッセージをモデルの入力に変換するための独自の apply_chat_template() メソッドがあります。

Gemma3nAudioFeatureExtractor

class transformers.Gemma3nAudioFeatureExtractor

< >

( 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) — オーディオファイルをデジタル化するためのサンプリングレート(ヘルツ (Hz) 表記)。
  • padding_value (float、任意、デフォルトは 0.0) — オーディオをパディングするために使用される値です。無音に対応する値である必要があります。
  • return_attention_mask (bool、省略可、デフォルトはTrue) — 生成されたMELスペクトログラムのattention maskを返すかどうかを指定します。
  • frame_length_ms (float、任意、デフォルト値は 32.0) — フレームの長さ(ミリ秒単位)。
  • hop_length_ms (float, 任意、デフォルトは 10.0) — Mel 周波数係数を取得するために使用される STFT の、重複するウィンドウの長さ。
  • min_frequency (float、任意、デフォルト値は 125.0) — Mel フィルターバンクの最小周波数(Hz)です。
  • max_frequency (float、任意、デフォルト値は 7600.0) — Mel フィルターバンクの最大周波数 (Hz)。
  • preemphasis (float、任意、デフォルトは 0.97) — プリエンファシス係数です。
  • preemphasis_htk_flavor (bool、任意、デフォルトは True) — HTK 形式の事前強調を使用するかどうか。
  • fft_overdrive (bool、任意、デフォルトは True) — FFT オーバードライブを使用するかどうか。
  • dither (float、任意、デフォルトは 0.0) — ディザリングを追加します。つまり、各フレームに小さなガウスノイズを加えます。 例えば、0.0001 を指定すると、平均 0.0、標準偏差 0.0001 の正規分布によるディザリングが加えられます(raw_speech の範囲が [-1,+1] であると仮定)。 値が 0.0 の場合は、ディザリングを行いません。 ディザリングは spectrogram(mel_floor=...) と同様の効果を持ちます。 信号に VAD カットオフが存在する場合、ハードゼロ区間を持つ信号の大きな log_mel_fbank 値を低減します。
  • input_scale_factor (float、任意、デフォルト値は 1.0)— 入力波形に適用されるスケーリング係数です。
  • mel_floor (float、任意、デフォルトは 1e-05) — log(0) を回避するために、Mel スペクトログラムに適用される最小値。
  • per_bin_mean (Optional[Sequence[float]]、任意) — ビンごとの正規化における平均値。
  • per_bin_stddev (Optional[Sequence[float]]、任意) — ビンごとの正規化に使用する標準偏差の値です。

音声特徴抽出器 Universal Speech Models https://huggingface.co/papers/2303.01037。

Gemma3nProcessor

class transformers.Gemma3nProcessor

< >

( 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 を構築します。このプロセッサーは、フィーチャーエクストラクター、画像プロセッサー、トークナイザーを単一のプロセッサーとしてラップします。

Gemma3nProcessor は、Gemma3nAudioFeatureExtractor、SiglipImageProcessor、および GemmaTokenizer のすべての機能を提供します。詳細については、~Gemma3nAudioFeatureExtractor、~SiglipImageProcessor、および ~GemmaTokenizer を参照してください。

__call__

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Nonetext: str | list[str] | list[list[str]] = 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': PyTorchのtorch.Tensorオブジェクトを返します。
    • 'np': NumPyのnp.ndarrayオブジェクトを返します。
  • **kwargs (ProcessingKwargs、任意) — 各モダリティ(テキスト、画像、動画、音声)の追加処理オプション。モデル固有のパラメータは上記にリストされています。サポートされている引数の完全なリストについては、TypedDictクラスを参照してください。

戻り値

~feature_extraction_utils.BatchFeature

  • data (dict、任意) — call/pad メソッドによって返されるリスト/配列/テンソルの辞書(‘input_values’、‘attention_mask’ など)。
  • tensor_type (Union[None, str, TensorType]、省略可) — 初期化時に PyTorch/Numpy の Tensor 内の整数リストを変換するために、ここで tensor_type を指定できます。
  • skip_tensor_conversion (list[str] または set[str]、任意) — tensor_type が指定されている場合でも、テンソルに変換すべきでないキーのリストまたはセット。

Gemma3nTextConfig

class transformers.Gemma3nTextConfig

< >

( 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) — Grouped Query Attention の実装に使用する key_value ヘッドの数を指定します。 num_key_value_heads=num_attention_heads の場合、モデルは Multi Head Attention (MHA) を使用し、 num_key_value_heads=1 の場合は Multi Query Attention (MQA) を使用し、それ以外の場合は GQA が使用されます。 マルチヘッドのチェックポイントを GQA チェックポイントに変換する際は、各グループの key ヘッドと value ヘッドは、そのグループ内の元のすべてのヘッドを平均プーリングして構築する必要があります。詳細については、この論文を参照してください。指定しない場合、デフォルトで num_attention_heads が使用されます。
  • head_dim (int、任意、デフォルトは 256) — アテンションヘッドの次元です。None の場合、hidden_size // num_attention_heads がデフォルトとして使用されます。
  • hidden_activation (str、任意、デフォルトは gelu_pytorch_tanh) — デコーダーで使用する非線形活性化関数(関数または文字列)です。例えば、"gelu"、"relu"、"silu" などです。
  • max_position_embeddings (int、任意、デフォルトは 32768) — このモデルが使用される可能性のある最大シーケンス長です。
  • initializer_range (float、任意、デフォルトは 0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。
  • rms_norm_eps (float、任意、デフォルトは 1e-06) — RMS 正規化レイヤーで使用する epsilon。
  • use_cache (bool、任意、デフォルトは True) — モデルが最後のキー/バリューの注意を返すかどうか(すべてのモデルで利用されるわけではありません)。config.is_decoder=True の場合、またはモデルがデコーダー専用の生成モデルである場合にのみ関連します。
  • pad_token_id (int、任意、デフォルトは 0) — 語彙内でパディングに使用されるトークン ID。
  • eos_token_id (Union[int, list[int]]、任意、デフォルトは 1) — 語彙内でストリーム終了に使用されるトークン ID。
  • bos_token_id (int、任意、デフォルトは 2) — 語彙におけるストリーム開始に使用されるトークン ID。
  • tie_word_embeddings (bool、任意、デフォルトは True) — モデルの tied_weights_keys マッピングに従って重み埋め込みを共有するかどうかを指定します。
  • rope_parameters (dict, 任意) — RoPE 埋め込みの設定パラメータを含む辞書です。辞書には rope_theta の値が含まれており、より長い max_position_embeddings で RoPE を使用する場合、スケーリングに使用されるパラメータが任意で含まれます。
  • attention_bias (bool、任意、デフォルトはFalse) — 自己注意機構において、クエリ、キー、バリュー、出力の投影層にバイアスを使用するかどうかを指定します。
  • attention_dropout (Union[int, float]、任意、デフォルトは 0.0) — アテンション確率のドロップアウト率です。
  • sliding_window (int、任意、デフォルトは512) — スライディングウィンドウアテンションのウィンドウサイズ。Noneの場合、スライディングウィンドウは適用されません。
  • layer_types (list[str]、省略可) — 各レイヤーのインデックスとレイヤータイプを明示的に対応付けるリストです。指定しない場合、config の値に基づいて自動的に生成されます。
  • final_logit_softcapping (float、任意、デフォルト値は30.0) — 確率分布を計算する前に、最終的な logits に適用されるソフトキャップの値です。logits は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_active_idx における補正済み予測に AltUp.correct_output_scale を適用します。
  • 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], 任意) — 指定された層のトップ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.config

Gemma3nVisionConfig

クラス transformers.Gemma3nVisionConfig

< >

( 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) — TimmWrapperModelのlast_hidden_stateに対してプーリングを行うかどうかを指定します。
  • model_args (dict[str, Any]、省略可) — timm.create_model 関数に渡す追加のキーワード引数です。例えば、timm/vit_base_patch32_clip_448.laion2b_ft_in12k_in1k で 3 ブロックのモデルを作成するには model_args={"depth": 3} を指定します。デフォルト値は None です。
  • hidden_size (int、任意、デフォルトは 2048) — 隠れ表現の次元数。
  • vocab_size (int、任意、デフォルトは 128) — モデルの語彙サイズ。input_ids で表現できるトークンの種類数を定義します。
  • vocab_offset (int, 任意、デフォルト値は 262144) — Gemma3nMultimodalEmbedder が埋め込むトークン ID に対するトークナイザの語彙インデックスと、0 始まりの Gemma3nMultimodalEmbedder.embedding テーブルとの間のオフセット。
  • rms_norm_eps (float、任意、デフォルトは 1e-06) — RMS 正規化レイヤーで使用する epsilon。

これは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.config

Gemma3nAudioConfig

クラス transformers.Gemma3nAudioConfig

< >

( 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 によって埋め込まれるトークン ID に対するトークナイザの語彙インデックスと、0 始まりの Gemma3nMultimodalEmbedder.embedding テーブルとの間のオフセット。
  • input_feat_size (int、任意、デフォルト値は 128) — 各メルスペクトログラムフレームのチャネル数です。
  • hidden_size (int、任意、デフォルトは 1536) — 隠れ表現の次元数。
  • rms_norm_eps (float、任意、デフォルトは 1e-06) — RMS 正規化レイヤーで使用する epsilon。
  • gradient_clipping (float、任意、デフォルト値は 10000000000.0) — 極端に大きな勾配値を安定化するために使用されるクリッピング値。
  • conf_attention_chunk_size (int, 任意, デフォルト値は 12)— Universal Speech Model の Conformer (“conf”) セクション内で、ローカルアテンション処理に使用されるサブシーケンスのサイズです。
  • conf_attention_context_left (int、任意、デフォルト値は 13)— Universal Speech Model の Conformer(“conf”)セクション内のローカルアテンションの左コンテキストサイズです。
  • conf_attention_context_right (int、省略可、デフォルト値は 0) — Universal Speech Model の Conformer(“conf”)セクション内のローカルアテンションの右コンテキストサイズです。
  • conf_attention_logit_cap (float、任意、デフォルト値は 50.0) — Universal Speech Model の Conformer(“conf”)セクション内でのローカルアテンション時に適用される logit cap です。
  • conf_num_attention_heads (int、任意、デフォルトは 8)— Universal Speech Model の Conformer(“conf”)セクション内のローカルアテンションにおけるアテンションヘッドの数。
  • conf_num_hidden_layers (int、任意、デフォルト値は 12)— Universal Speech Model の Conformer(“conf”)セクション内で、ローカルアテンションを使用するレイヤーの数です。
  • conf_conv_kernel_size (int, 任意、デフォルト値は 5) — Universal Speech Model の Conformer(“conf”)セクション内の Conformer ブロックで使用する畳み込みカーネルサイズ。
  • conf_reduction_factor (int、任意、デフォルト値は 4) — Universal Speech Model の Conformer(“conf”)セクション内の Conformer ブロックで使用する縮小係数です。
  • conf_residual_weight (float、任意、デフォルト値は 0.5) — Universal Speech Model の Conformer(“conf”)セクション内の残差接続の重み。
  • sscp_conv_channel_size (tuple(int, int)、任意、デフォルトは (128, 32)) — Universal Speech Model の Sub-sample Convolution Projection(“sscp”)セクションにおける、第 1 層および第 2 層の畳み込み層のチャネルサイズです。
  • sscp_conv_group_norm_eps (float, 任意、デフォルト値は 0.001) — Universal Speech Model の Sub-sample Convolution Projection(“sscp”)セクションにおける、サブサンプリング畳み込み投影のグループ正規化で使用する Epsilon。
  • sscp_conv_kernel_size (tuple(tuple(int, int), tuple(int, int))、任意、デフォルトは ((3, 3), (3, 3))) — Universal Speech Model の Sub-sample Convolution Projection(“sscp”)セクションにある、下位サンプリング畳み込み投影内の2つの畳み込み層のカーネルサイズです。各層のカーネルサイズは、高さと幅のタプルとして指定されます。ここで、高さは時間次元に対応し、幅は周波数次元に対応します。
  • sscp_conv_stride_size (tuple(tuple(int, int), tuple(int, int))、optional、デフォルトは ((2, 2), (2, 2))) — Universal Speech Model の Sub-sample Convolution Projection(“sscp”)セクションにある、サブサンプル畳み込み投影内の 2 つの畳み込み層のストライドサイズです。各層のストライドサイズは、高さと幅のタプルとして指定されます。ここで、高さは時間次元に対応し、幅は周波数次元に対応します。

これは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.config

Gemma3nConfig

クラス transformers.Gemma3nConfig

< >

( 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)— 1 つのオーディオクリップあたりのソフトトークン数です。
  • vision_soft_tokens_per_image (int、任意、デフォルト値は 256) — 1 枚の画像あたりのソフトトークン数です。
  • boi_token_id (int、省略可能、デフォルト値は 255999) — 画像プロンプトをラップするために使用する begin-of-image トークンのインデックスです。
  • eoi_token_id (int、任意、デフォルトは 262144) — 画像プロンプトをラップするために使用する end-of-image トークンのインデックスです。
  • image_token_id (int、任意、デフォルトは 262145) — 入力画像のプレースホルダーとして使用される画像トークンのインデックスです。
  • boa_token_id (int、任意、デフォルトは 256000) — オーディオプロンプトをラップするために使用する begin-of-audio トークンのインデックスです。
  • eoa_token_id (int、任意、デフォルト値は 262272) — オーディオプロンプトをラップするために使用する end-of-audio トークンのインデックスです。
  • 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.config

Gemma3nTextModel

class transformers.Gemma3nTextModel

< >

( config: Gemma3nTextConfig )

パラメータ

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

言語モデリングヘッドを備えないベースのGemma 3n言語モデル。

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

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

forward

< >

( 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.FloatTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPast or tuple(torch.FloatTensor)

パラメータ

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

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

    入力IDとは何ですか?

  • 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].

    ポジションIDとは?

  • past_key_values (~cache_utils.Cache, 省略可) — 逐次デコードを高速化するために使用できる、事前計算された隠れ状態(自己アテンションブロックおよびクロスアテンションブロックのキーとバリュー)。通常、これはデコードの以前の段階でモデルが返した past_key_values であり、 use_cache=True または config.use_cache=True.

    入力として許可されるのは Cache インスタンスのみです。kv cache ガイドを参照してください。 past_key_values が渡されない場合、デフォルトで DynamicCache が初期化されます。

    モデルは、入力として与えられたのと同じキャッシュ形式を出力します。

    past_key_values を使用する場合、すべての input_ids(形状 (batch_size, sequence_length))ではなく、このモデルに過去のキー・バリュー状態が与えられていない未処理の input_ids(形状 (batch_size, unprocessed_length))のみを入力することになります。

  • inputs_embeds (torch.FloatTensor、形状 (batch_size, sequence_length, hidden_size)、任意) — input_ids を渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込みルックアップ行列よりも、input_ids のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。
  • use_cache (bool、任意) — True に設定すると、past_key_values のキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_values を参照)。

戻り値

BaseModelOutputWithPast または tuple(torch.FloatTensor)

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

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

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

  • last_hidden_state (torch.FloatTensor、shape (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 cache ガイドを参照してください。

    自己アテンションブロック(および config.is_encoder_decoder=True の場合、クロスカレンションブロック)の事前計算済みヒドゥンステート(キーとバリュー)を保持します。これらは逐次デコーディングを高速化するために使用できます(past_key_values 入力参照)。

  • hidden_states (tuple(torch.FloatTensor)、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返されます)— torch.FloatTensor のタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は (batch_size, sequence_length, hidden_size) です。

    各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。

  • attentions (tuple(torch.FloatTensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます)— torch.FloatTensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

Gemma3nModel

class transformers.Gemma3nModel

< >

( config: Gemma3nConfig )

パラメータ

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

ビジョンバックボーン、オーディオバックボーン、および言語モデリングヘッドを備えない言語モデルから構成される、ベースのGemma 3nモデル。

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: 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 = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = 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() を介して計算される代わりに、これらが直接使用されます。input_ids の代わりに inputs_embeds を指定して forward を呼び出す場合は、それらを事前計算し、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

< >

( pixel_values: FloatTensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.FloatTensor)

パラメータ

戻り値

BaseModelOutputWithPooling または tuple(torch.FloatTensor)

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

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

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

  • pooler_output (torch.FloatTensor、shape (batch_size, hidden_size)) — 補助事前学習タスクに使用される層をさらに通して処理された後、シーケンスの最初のトークン(分類トークン)の最終層の隠れ状態。例えば、BERT 系のモデルでは、線形層と tanh 活性化関数を経て処理された後の分類トークンを返します。この線形層の重みは、事前学習中の次文予測(分類)目的から学習されます。

  • hidden_states (tuple(torch.FloatTensor)、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返されます)— torch.FloatTensor のタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は (batch_size, sequence_length, hidden_size) です。

    各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。

  • attentions (tuple(torch.FloatTensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます)— torch.FloatTensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

get_audio_features

< >

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

パラメータ

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

戻り値

Gemma3nAudioEncoderModelOutput または tuple(torch.FloatTensor)

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

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

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

  • pooler_output (torch.FloatTensor、shape (batch_size, hidden_size)) — 補助事前学習タスクに使用される層をさらに通して処理された後、シーケンスの最初のトークン(分類トークン)の最終層の隠れ状態。例えば、BERT 系のモデルでは、線形層と tanh 活性化関数を経て処理された後の分類トークンを返します。この線形層の重みは、事前学習中の次文予測(分類)目的から学習されます。

  • hidden_states (tuple(torch.FloatTensor)、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返されます)— torch.FloatTensor のタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は (batch_size, sequence_length, hidden_size) です。

    各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。

  • attentions (tuple(torch.FloatTensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます)— torch.FloatTensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

  • audio_mel_mask (torch.BoolTensor、任意) — 形状が (batch_size, num_frames) の torch.BoolTensor

Gemma3nForCausalLM

クラス transformers.Gemma3nForCausalLM

< >

( config: Gemma3nTextConfig )

パラメータ

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

言語モデリングヘッドを備えたベースのGemma 3n言語モデル。

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = 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] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CausalLMOutputWithPast or tuple(torch.FloatTensor)

パラメータ

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

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

    入力IDとは何ですか?

  • attention_mask (torch.Tensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

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

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

    ポジションIDとは?

  • past_key_values (~cache_utils.Cache, 省略可) — 逐次デコードを高速化するために使用できる、事前計算された隠れ状態(自己アテンションブロックおよびクロスアテンションブロックのキーとバリュー)。通常、これはデコードの以前の段階でモデルが返した past_key_values であり、 use_cache=True または config.use_cache=True.

    入力として許可されるのは Cache インスタンスのみです。kv cache ガイドを参照してください。 past_key_values が渡されない場合、デフォルトで DynamicCache が初期化されます。

    モデルは、入力として与えられたのと同じキャッシュ形式を出力します。

    past_key_values を使用する場合、すべての input_ids(形状 (batch_size, sequence_length))ではなく、このモデルに過去のキー・バリュー状態が与えられていない未処理の input_ids(形状 (batch_size, unprocessed_length))のみを入力することになります。

  • inputs_embeds (torch.FloatTensor、形状 (batch_size, sequence_length, hidden_size)、任意) — input_ids を渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込みルックアップ行列よりも、input_ids のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。
  • labels (torch.LongTensor、shape (batch_size, sequence_length)、任意) — マスク言語モデリング損失を計算するためのラベルです。インデックスは [0, ..., config.vocab_size] の範囲内であるか、-100 である必要があります(input_ids の docstring を参照)。インデックスが -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_to_keep トークンについて logits を計算します。0 の場合、すべての input_ids について logits を計算します(特殊ケース)。生成には最後のトークンの logits だけで十分であり、そのトークンのみについて計算することでメモリを節約できます。これは、長いシーケンスや大規模な語彙サイズの場合に特に顕著な効果があります。 torch.Tensor の場合、シーケンス長次元で保持するインデックスに対応する 1 次元テンソルである必要があります。これは、パックされたテンソル形式(バッチとシーケンス長を単一の次元にまとめた形式)を使用する場合に有用です。

戻り値

CausalLMOutputWithPast または tuple(torch.FloatTensor)

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

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

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

  • loss (torch.FloatTensor、shape (1,)、optional、labels が指定された場合に返されます) — 言語モデリングの損失(次のトークン予測用)。

  • logits (torch.FloatTensor、shape (batch_size, sequence_length, config.vocab_size)) — 言語モデリングヘッドの予測スコア(SoftMax 適用前の各語彙トークンのスコア)。

  • past_key_values (Cache、任意、use_cache=True が渡された場合または config.use_cache=True の場合に返されます) — Cache のインスタンスです。詳細については、kv cache ガイドを参照してください。

    逐次デコーディングを高速化するために使用できる(past_key_values 入力参照)、事前計算済みの隠れ状態(自己注意ブロックのキーとバリュー)が含まれます。

  • hidden_states (tuple(torch.FloatTensor)、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返されます)— torch.FloatTensor のタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は (batch_size, sequence_length, hidden_size) です。

    各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。

  • attentions (tuple(torch.FloatTensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます)— torch.FloatTensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

例:

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

< >

( config: Gemma3nConfig )

パラメータ

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

ビジョンバックボーン、オーディオバックボーン、言語モデル、および言語モデリングヘッドから構成されるベースのGemma 3nモデル。

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: 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 = Nonetoken_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'> ) → Gemma3nCausalLMOutputWithPast or tuple(torch.FloatTensor)

パラメータ

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

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

    入力IDとは何ですか?

  • pixel_values (torch.FloatTensor、形状 (batch_size, num_channels, image_size, image_size)、任意) — 入力画像に対応するテンソルです。ピクセル値は SiglipImageProcessor を使用して取得できます。詳細については SiglipImageProcessor.call() を参照してください(Gemma3nProcessor は画像の処理に SiglipImageProcessor を使用しています)。
  • input_features (torch.FloatTensor、形状 (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].

    ポジションIDとは?

  • past_key_values (~cache_utils.Cache, 省略可) — 逐次デコードを高速化するために使用できる、事前計算された隠れ状態(自己アテンションブロックおよびクロスアテンションブロックのキーとバリュー)。通常、これはデコードの以前の段階でモデルが返した past_key_values であり、 use_cache=True または config.use_cache=True.

    入力として許可されるのは Cache インスタンスのみです。kv cache ガイドを参照してください。 past_key_values が渡されない場合、デフォルトで DynamicCache が初期化されます。

    モデルは、入力として与えられたのと同じキャッシュ形式を出力します。

    past_key_values を使用する場合、すべての input_ids(形状 (batch_size, sequence_length))ではなく、このモデルに過去のキー・バリュー状態が与えられていない未処理の input_ids(形状 (batch_size, unprocessed_length))のみを入力することになります。

  • token_type_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — 入力テキストの第1部分と第2部分を区別するためのセグメントトークンインデックス。インデックスは [0, 1]:
    • 0 は sentence A トークンに対応します。
    • 1 は sentence B トークンに対応します。

    トークンタイプIDとは?

  • inputs_embeds (torch.FloatTensor、形状 (batch_size, sequence_length, hidden_size)、任意) — input_ids を渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込みルックアップ行列よりも、input_ids のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。
  • labels (torch.LongTensor、shape (batch_size, sequence_length)、任意) — マスクド言語モデリング損失を計算するためのラベルです。インデックスは [0, ..., config.text_config.vocab_size] の範囲内であるか、-100 である必要があります(input_ids の docstring を参照)。インデックスが -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_to_keep トークンについて logits を計算します。0 の場合、すべての input_ids について logits を計算します(特殊ケース)。生成には最後のトークンの logits だけで十分であり、そのトークンのみについて計算することでメモリを節約できます。これは、長いシーケンスや大規模な語彙サイズの場合に特に顕著な効果があります。 torch.Tensor の場合、シーケンス長次元で保持するインデックスに対応する 1 次元テンソルである必要があります。これは、パックされたテンソル形式(バッチとシーケンス長を単一の次元にまとめた形式)を使用する場合に有用です。
  • per_layer_inputs (torch.Tensor, 任意) — (batch_size, sequence_length, num_hidden_layers, hidden_size_per_layer_input) の形状を持つ、事前計算済みのレイヤーごとの入力テキスト埋め込みです。指定された場合、テキストモデル内で input_ids から get_per_layer_inputs() を介して計算される代わりに、これらが直接使用されます。input_ids の代わりに inputs_embeds を使用して forward を呼び出す場合は、それらを事前計算し、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), 省略可) からなるタプルです。pooler_output は、エンコーダーのマルチモーダル特徴量をテキスト埋め込みにマージしたシーケンスです。

戻り値

Gemma3nCausalLMOutputWithPast または tuple(torch.FloatTensor)

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

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

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

  • loss (torch.FloatTensor、shape (1,)、optional、labels が指定された場合に返されます) — 言語モデリングの損失(次のトークン予測用)。

  • logits (torch.FloatTensor、shape (batch_size, sequence_length, config.text_config.vocab_size)) — 言語モデリングヘッドの予測スコア(SoftMax 適用前の各語彙トークンのスコア)。

  • past_key_values (Cache、任意、use_cache=True が渡された場合または config.use_cache=True の場合に返されます) — Cache のインスタンスです。詳細については、kv cache ガイドを参照してください。

    逐次デコーディングを高速化するために使用できる(past_key_values 入力参照)、事前計算済みの隠れ状態(自己注意ブロックのキーとバリュー)が含まれます。

  • hidden_states (tuple[torch.FloatTensor]、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返される) — torch.FloatTensor のタプル(埋め込み層を持つモデルの場合、埋め込みの出力用が 1 つ、各層の出力用が 1 つずつ)で、形状は (batch_size, sequence_length, hidden_size) です。

    各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。

  • attentions (tuple[torch.FloatTensor]、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます) — torch.FloatTensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

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

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

例:

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

< >

( pixel_values: FloatTensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )

パラメータ

例:

>>> 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]
Update on GitHub