Transformers documentation
Gemma3n
이 모델은 2024-11-12에 HF papers에 게시되었으며, 2025-06-26에 Hugging Face Transformers에 기여되었습니다.
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 캐시 공유 등 많은 새로운 기능이 추가되었습니다. 언어 모델은 최대 컨텍스트 길이가 32k 토큰인 Gemma 3와 유사한 어텐션 패턴을 사용하며, 전역 자기 어텐션 레이어마다 4개의 로컬 슬라이딩 윈도우 자기 어텐션 레이어가 교차 배치됩니다. Gemma 3n은 비전 인코더로 MobileNet v5를 도입하고 기본 해상도를 768x768픽셀로 설정했으며, Universal Speech Model(USM) 아키텍처를 기반으로 새로 학습된 오디오 인코더를 추가했습니다.
지시 튜닝 변형은 지식 증류와 강화 학습을 통해 후학습되었습니다.
모든 원본 Gemma 3n 체크포인트는 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))The input is a single word "Notes". 참고
이미지-오디오-텍스트, 이미지-텍스트, 이미지-오디오, 오디오-텍스트, 이미지 전용 및 오디오 전용 입력에 Gemma3nForConditionalGeneration를 사용합니다.
Gemma 3n은 입력당 여러 이미지를 지원하지만, 프로세서에 전달하기 전에 이미지가 올바르게 배치(batch)되었는지 확인하세요. 각 배치에는 하나 이상의 이미지가 포함된 리스트여야 합니다.
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개의 대상 오디오 클립만 허용하지만, 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) — 오디오 파일을 디지털화할 때 사용할 샘플링 주파수(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 Frequency 계수를 얻기 위해 사용되는 STFT의 겹치는 윈도우 길이입니다. - min_frequency (
float, 선택 사항, 기본값 125.0) — Mel 필터 뱅크의 최소 주파수(Hz). - max_frequency (
float, 선택 사항, 기본값 7600.0) — Mel filterbank의 최대 주파수(Hz). - 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인 정규 분포의 디더링을 추가합니다( 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 spectrogram의 최소값. - per_bin_mean (
Optional[Sequence[float]], 선택) — bin별 정규화를 위한 평균 값입니다. - per_bin_stddev (
Optional[Sequence[float]], 선택 사항) — 바이너별 정규화에 사용할 표준 편차 값입니다.
음성 특징 추출기 Universal Speech Models https://huggingface.co/papers/2303.01037.
Gemma3nProcessor
class transformers.Gemma3nProcessor
< source >( feature_extractorimage_processortokenizerchat_template = Noneaudio_seq_length: int = 188image_seq_length: int = 256**kwargs )
매개변수
- feature_extractor (
Gemma3nAudioFeatureExtractor) — feature extractor는 필수 입력입니다. - image_processor (
SiglipImageProcessor) — 이미지 프로세서는 필수 입력값입니다. - tokenizer (
GemmaTokenizer) — 토크나이저는 필수 입력값입니다. - chat_template (
str) — 채팅의 메시지 목록을 토큰화 가능한 문자열로 변환하는 Jinja 템플릿입니다. - audio_seq_length (
int, 선택 사항, 기본값 188) — 텍스트 프롬프트에 추가될 오디오 소프트 토큰의 개수 - image_seq_length (
int, 선택, 기본값 256) — 추가해야 할 이미지 소프트 토큰의 개수
feature extractor, image processor, tokenizer를 단일 processor로 감싸는 Gemma3nProcessor를 생성합니다.
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 텐서의 경우, 각 오디오의 shape은 (C, T)여야 하며, 여기서 C는 채널 수, T는 오디오의 샘플 길이입니다. - return_tensors (
str또는 TensorType, 선택 사항) — 설정된 경우, 특정 프레임워크의 텐서를 반환합니다. 허용되는 값은 다음과 같습니다:'pt': PyTorchtorch.Tensor객체를 반환합니다.'np': NumPynp.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_type를 지정할 수 있습니다. - skip_tensor_conversion (
list[str]또는set[str], 선택 사항) —tensor_type가 지정된 경우에도 텐서로 변환하지 않아야 하는 키의 목록 또는 집합.
Gemma3nTextConfig
class 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 decoder의 hidden layer 수입니다. - num_attention_heads (
int, 선택 사항, 기본값8) — Transformer decoder의 각 attention layer에 사용할 attention head의 수입니다. - 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 헤드는 해당 그룹 내 모든 원래 헤드를 meanpooling하여 구성해야 합니다. 자세한 내용은 이 논문을 참고하세요. 지정되지 않으면num_attention_heads가 기본값으로 사용됩니다. - head_dim (
int, 선택 사항, 기본값256) — Attention head의 차원입니다. 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) — 모델이 마지막 key/values attention을 반환할지 여부입니다(모든 모델에서 사용되지 않음).config.is_decoder=True인 경우 또는 모델이 decoder-only 생성 모델인 경우에만 관련이 있습니다. - 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) — 자기 주의(self-attention) 시 query, key, value 및 출력 투영 계층에 bias를 사용할지 여부입니다. - attention_dropout (
Union[int, float], 선택 사항, 기본값0.0) — Attention 확률에 적용할 dropout 비율입니다. - 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 캐시 값을 공유하는 레이어의 수입니다. forward pass 동안 모델의 마지막num_kv_shared_layers레이어는 “공유”된 KV 값을 사용합니다. 즉, 이 범위의 각 local 레이어와 global 레이어는 각각 해당 범위에 들어가기 직전의 마지막 local 레이어 또는 global 레이어에서 계산된 KV 캐시 값을 사용합니다. 이 값은 attention pattern size의 배수여야 합니다(layer_types파라미터 참조). - laurel_rank (
int, 선택 사항, 기본값 64) — Learned Augmented Residual Layer의 선형 투사(linear projection)에 사용되는 중간 크기입니다. - activation_sparsity_pattern (
Sequence[float], 선택 사항) — 주어진 레이어에서 top-k activation을 추출하는 데 사용되는 sparsity factor입니다. 제공된 Sequence에는 모델의 각 레이어에 대한 sparsity 값을 명시적으로 제공해야 합니다. 기본적으로 처음 10개 레이어는 sparsity factor 0.95로 sparse하며, 나머지 레이어는 dense입니다.
이것은 Gemma3nModel의 설정을 저장하기 위한 설정 클래스입니다. 지정된 인자에 따라 Gemma3N 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 설정을 인스턴스화하면 google/gemma-3n-E4B와 유사한 설정이 생성됩니다.
Configuration 객체는 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) —TimmWrapperModel의 last_hidden_state에 대해 풀링을 수행할지 여부. - model_args (
dict[str, Any], 선택) —timm.create_model함수에 전달할 추가 키워드 인자입니다. 예를 들어timm/vit_base_patch32_clip_448.laion2b_ft_in12k_in1k의 경우model_args={"depth": 3}를 사용하여 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와 유사한 설정이 생성됩니다.
Configuration 객체는 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
class 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가 임베딩하는 토큰 ID에 대한 토크나이저 어휘 인덱스와 0-인덱스Gemma3nMultimodalEmbedder.embedding테이블 사이의 오프셋입니다. - input_feat_size (
int, 선택 사항, 기본값 128) — 각 mel-spectrogram 프레임의 채널 수입니다. - hidden_size (
int, 선택 사항, 기본값1536) — 숨겨진 표현의 차원입니다. - rms_norm_eps (
float, 선택 사항, 기본값1e-06) — rms 정규화 레이어에서 사용되는 epsilon 값입니다. - gradient_clipping (
float, 선택 사항, 기본값 10000000000.0) — 극도로 큰 gradient 값을 안정화하기 위해 사용되는 clipping 값입니다. - 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”) 섹션에서 첫 번째 및 두 번째 컨볼루션 레이어의 채널 크기입니다. - 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”) 섹션에 있는 하위 샘플링 컨볼루션 투영의 두 컨볼루션 레이어의 커널 크기입니다. 각 레이어의 커널 크기는 높이가 시간 차원을, 폭이 주파수 차원을 나타내는 높이와 폭의 튜플로 지정됩니다. - sscp_conv_stride_size (
tuple(tuple(int, int), tuple(int, int)), 선택 사항, 기본값((2, 2), (2, 2))) — Universal Speech Model의 Sub-sample Convolution Projection(“sscp”) 섹션에 있는 subsample convolution projection의 두 컨볼루션 레이어의 스트라이드 크기입니다. 각 레이어의 스트라이드 크기는 높이가 시간 차원을, 폭이 주파수 차원을 나타내는 높이와 폭의 튜플로 지정됩니다.
이것은 Gemma3nModel의 설정을 저장하기 위한 설정 클래스입니다. 지정된 인자에 따라 Gemma3N 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 설정을 인스턴스화하면 google/gemma-3n-E4B와 유사한 설정이 생성됩니다.
Configuration 객체는 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
class 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]], 선택) — 텍스트 백본의 config 객체 또는 사전입니다. - vision_config (
Union[~models.gemma3n.configuration_gemma3n.Gemma3nVisionConfig, dict[str, Any]], 선택) — 비전 백본의 config 객체 또는 사전입니다. - audio_config (
Union[~models.gemma3n.configuration_gemma3n.Gemma3nAudioConfig, dict[str, Any]], 선택) — 오디오 백본의 config 객체 또는 사전입니다. - audio_soft_tokens_per_image (
int, 선택 사항, 기본값 188) — 오디오 클립당 소프트 토큰 수입니다. - vision_soft_tokens_per_image (
int, 선택 사항, 기본값 256) — 이미지당 소프트 토큰 수입니다. - 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) — 모델이 마지막 key/values attention을 반환할지 여부입니다(모든 모델에서 사용되지 않음).config.is_decoder=True인 경우 또는 모델이 decoder-only 생성 모델인 경우에만 관련이 있습니다.
이것은 Gemma3nModel의 설정을 저장하기 위한 설정 클래스입니다. 지정된 인자에 따라 Gemma3N 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 설정을 인스턴스화하면 google/gemma-3n-E4B와 유사한 설정이 생성됩니다.
Configuration 객체는 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
class transformers.Gemma3nTextModel
< source >( config: Gemma3nTextConfig )
매개변수
- config (Gemma3nTextConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 관련된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
language modeling head가 없는 기본 Gemma 3n 언어 모델입니다.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 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), 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 패딩은 무시됩니다.AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.
- per_layer_inputs (
torch.Tensor, 선택 사항, 기본값 None) — 사전 계산된 레이어별 임베딩입니다. None인 경우, input_ids가 제공된 경우를 제외하고는 input_ids에서 파생됩니다. - attention_mask (
torch.Tensor형상이(batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요?[0, 1]:- 마스크되지 않은 토큰에 대해 1
- 마스크된 토큰에 대해 0
- position_ids (
torch.LongTensor의 shape(batch_size, sequence_length), , 선택 사항) — 위치 임베딩에서 각 입력 시퀀스 토큰의 위치 인덱스. 범위[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, 선택 사항) — 순차적 디코딩을 가속화할 수 있는 사전 계산된 hidden-states(self-attention 블록과 cross-attention 블록의 key 및 value). 일반적으로 이는past_key_values디코딩의 이전 단계에서 모델이 반환한use_cache=True또는config.use_cache=True.입력으로 Cache 인스턴스만 허용되며, kv cache 가이드를 참고하세요.
past_key_values가 전달되지 않으면 기본적으로 DynamicCache가 초기화됩니다.모델은 입력으로 제공된 것과 동일한 캐시 형식을 출력합니다.
past_key_values를 사용하는 경우, 이 모델에 과거 키 값 상태가 제공되지 않은input_ids만 입력해야 하며, 이때의 shape은(batch_size, unprocessed_length)입니다. shape이(batch_size, sequence_length)인 전체input_ids를 입력하지 않습니다. - inputs_embeds (
torch.Tensor, shape(batch_size, sequence_length, hidden_size), 선택) —input_ids를 전달하는 대신 임베딩 표현을 직접 전달할 수 있습니다. 이는 모델 내부의 임베딩 조회 행렬보다input_ids인덱스를 관련 벡터로 변환하는 방식에 대해 더 세밀한 제어가 필요한 경우에 유용합니다. - use_cache (
bool, 선택 사항) —True로 설정하면past_key_values키 값 상태가 반환되며, 디코딩 속도를 높이는 데 사용할 수 있습니다(past_key_values참조).
반환값
BaseModelOutputWithPast 또는 tuple(torch.Tensor)
torch.Tensor의 튜플 또는 BaseModelOutputWithPast (return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(Gemma3nConfig)과 입력에 따라 다양한 요소를 포함합니다.
Gemma3nTextModel의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
last_hidden_state (
torch.Tensor, shape(batch_size, sequence_length, hidden_size)) — 모델의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.past_key_values가 사용되면,(batch_size, 1, hidden_size)형태의 시퀀스의 마지막 hidden-state만 출력됩니다.past_key_values (
Cache, 선택 사항,use_cache=True가 전달되었거나config.use_cache=True인 경우 반환됨) — Cache 인스턴스입니다. 자세한 내용은 kv cache 가이드를 참고하세요.순차적 디코딩을 가속화하는 데 사용할 수 있는 사전 계산된 hidden-states(셀프 어텐션 블록의 key와 value, 그리고
config.is_encoder_decoder=True인 경우 크로스 어텐션 블록의 key와 value)를 포함합니다(입력past_key_values참조).hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.
attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
Gemma3nModel
class transformers.Gemma3nModel
< source >( config: Gemma3nConfig )
매개변수
- config (Gemma3nConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
언어 모델링 헤드가 없는 언어 모델, 비전 백본, 오디오 백본으로 구성된 기본 Gemma 3n 모델
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 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, shape (batch_size, sequence_length), 선택 사항):
input_features에 대한 어텐션 마스크입니다. 0이 아닌 값이 유효한 오디오 프레임을 나타냅니다.
per_layer_inputs (torch.Tensor, 선택 사항):
shape가 (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
< source >( pixel_values: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
매개변수
- pixel_values (
torch.Tensor, shape(batch_size, num_channels, image_size, image_size)) — 입력 이미지에 해당하는 텐서입니다. 픽셀 값은 SiglipImageProcessor를 사용하여 얻을 수 있습니다. 자세한 내용은 SiglipImageProcessor.call()를 참조하세요 (Gemma3nProcessor는 이미지 처리에 SiglipImageProcessor를 사용합니다).
반환값
BaseModelOutputWithPooling 또는 tuple(torch.Tensor)
torch.Tensor의 튜플 또는 BaseModelOutputWithPooling (return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(Gemma3nConfig)과 입력에 따라 다양한 요소를 포함합니다.
비전 모델의 마지막 hidden state를 언어 모델 공간으로 투영합니다.
last_hidden_state (
torch.Tensor, shape(batch_size, sequence_length, hidden_size)) — 모델의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.pooler_output (
torch.Tensor, shape(batch_size, hidden_size)) — 보조 사전 학습 작업을 위해 사용되는 레이어들을 통해 추가 처리된 시퀀스의 첫 번째 토큰(분류 토큰)의 마지막 레이어 hidden-state입니다. 예를 들어 BERT 계열 모델의 경우, 선형 레이어와 tanh 활성화 함수를 통해 처리된 후의 분류 토큰을 반환합니다. 선형 레이어의 가중치는 사전 학습 동안 다음 문장 예측(분류) 목적 함수를 통해 학습됩니다.hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.
attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
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, shape(num_images, seq_length, num_features)) — 입력 오디오에 해당하는 텐서입니다. - input_features_mask (
torch.Tensor, shape(num_images, seq_length)) — 입력 오디오의 어텐션 마스크입니다.
반환값
Gemma3nAudioEncoderModelOutput 또는 tuple(torch.Tensor)
Gemma3nAudioEncoderModelOutput 또는 torch.Tensor의 튜플(return_dict=False가 전달되거나 config.return_dict=False인 경우)로, 구성(Gemma3nConfig)과 입력에 따라 다양한 요소를 포함합니다.
오디오 인코더의 마지막 hidden state를 language model 공간으로 투영합니다.
last_hidden_state (
torch.Tensor, shape(batch_size, sequence_length, hidden_size)) — 모델의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.pooler_output (
torch.Tensor, shape(batch_size, hidden_size)) — 보조 사전 학습 작업을 위해 사용되는 레이어들을 통해 추가 처리된 시퀀스의 첫 번째 토큰(분류 토큰)의 마지막 레이어 hidden-state입니다. 예를 들어 BERT 계열 모델의 경우, 선형 레이어와 tanh 활성화 함수를 통해 처리된 후의 분류 토큰을 반환합니다. 선형 레이어의 가중치는 사전 학습 동안 다음 문장 예측(분류) 목적 함수를 통해 학습됩니다.hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.
attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
audio_mel_mask (
torch.BoolTensor, 선택) —(batch_size, num_frames)형상의 torch.BoolTensor
Gemma3nForCausalLM
클래스 transformers.Gemma3nForCausalLM
< source >( config: Gemma3nTextConfig )
매개변수
- config (Gemma3nTextConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 관련된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
language modeling head를 갖춘 기본 Gemma 3n 언어 모델입니다.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 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), 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 패딩은 무시됩니다.AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.
- attention_mask (
torch.Tensor형상이(batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요?[0, 1]:- 마스크되지 않은 토큰에 대해 1
- 마스크된 토큰에 대해 0
- position_ids (
torch.LongTensor의 shape(batch_size, sequence_length), , 선택 사항) — 위치 임베딩에서 각 입력 시퀀스 토큰의 위치 인덱스. 범위[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, 선택 사항) — 순차적 디코딩을 가속화할 수 있는 사전 계산된 hidden-states(self-attention 블록과 cross-attention 블록의 key 및 value). 일반적으로 이는past_key_values디코딩의 이전 단계에서 모델이 반환한use_cache=True또는config.use_cache=True.입력으로 Cache 인스턴스만 허용되며, kv cache 가이드를 참고하세요.
past_key_values가 전달되지 않으면 기본적으로 DynamicCache가 초기화됩니다.모델은 입력으로 제공된 것과 동일한 캐시 형식을 출력합니다.
past_key_values를 사용하는 경우, 이 모델에 과거 키 값 상태가 제공되지 않은input_ids만 입력해야 하며, 이때의 shape은(batch_size, unprocessed_length)입니다. shape이(batch_size, sequence_length)인 전체input_ids를 입력하지 않습니다. - inputs_embeds (
torch.Tensor, shape(batch_size, sequence_length, hidden_size), 선택) —input_ids를 전달하는 대신 임베딩 표현을 직접 전달할 수 있습니다. 이는 모델 내부의 임베딩 조회 행렬보다input_ids인덱스를 관련 벡터로 변환하는 방식에 대해 더 세밀한 제어가 필요한 경우에 유용합니다. - labels (
torch.LongTensor, shape(batch_size, sequence_length), 선택 사항) — 마스크 언어 모델링 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는[0, ..., config.vocab_size]범위 내의 값이거나 -100이어야 합니다(input_idsdocstring 참조). 인덱스가-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.Tensor)
torch.Tensor의 튜플 또는 CausalLMOutputWithPast (return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(Gemma3nConfig)과 입력에 따라 다양한 요소를 포함합니다.
Gemma3nForCausalLM의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
loss (
torch.Tensor, shape(1,), 선택 사항,labels이 제공될 때 반환됨) — 언어 모델링 손실(다음 토큰 예측용).logits (
torch.Tensor, shape(batch_size, sequence_length, config.vocab_size)) — 언어 모델링 헤드에서 생성된 예측 점수(SoftMax 적용 전 각 어휘 토큰에 대한 점수).past_key_values (
Cache, 선택 사항,use_cache=True가 전달되었거나config.use_cache=True인 경우 반환됨) — Cache 인스턴스입니다. 자세한 내용은 kv cache 가이드를 참고하세요.순차적 디코딩을 가속화하는 데 사용할 수 있는 사전 계산된 hidden-states(셀프 어텐션 블록의 key와 value)를 포함합니다(입력
past_key_values참조).hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.
attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
예:
>>> 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에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 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), 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 패딩은 무시됩니다.AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.
- pixel_values (
torch.Tensor, shape(batch_size, num_channels, image_size, image_size), 선택 사항) — 입력 이미지에 해당하는 텐서입니다. 픽셀 값은 SiglipImageProcessor를 사용하여 얻을 수 있습니다. 자세한 내용은 SiglipImageProcessor.call()를 참조하세요 (Gemma3nProcessor는 이미지 처리에 SiglipImageProcessor를 사용합니다). - input_features (
torch.Tensor, shape(batch_size, sequence_length, feature_dim), 선택 사항) — 입력 오디오 특징에 해당하는 텐서입니다. 오디오 특징은 Gemma3nAudioFeatureExtractor를 사용하여 얻을 수 있습니다. 자세한 내용은Gemma3nAudioFeatureExtractor.__call__()를 참조하세요 (Gemma3nProcessor는 오디오 처리에 Gemma3nAudioFeatureExtractor를 사용합니다). - attention_mask (
torch.Tensor형상이(batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요?[0, 1]:- 마스크되지 않은 토큰에 대해 1
- 마스크된 토큰에 대해 0
- input_features_mask (
torch.Tensor, 선택 사항, 기본값 None) — 입력 오디오에 대한 attention mask입니다. - position_ids (
torch.LongTensor의 shape(batch_size, sequence_length), , 선택 사항) — 위치 임베딩에서 각 입력 시퀀스 토큰의 위치 인덱스. 범위[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, 선택 사항) — 순차적 디코딩을 가속화할 수 있는 사전 계산된 hidden-states(self-attention 블록과 cross-attention 블록의 key 및 value). 일반적으로 이는past_key_values디코딩의 이전 단계에서 모델이 반환한use_cache=True또는config.use_cache=True.입력으로 Cache 인스턴스만 허용되며, kv cache 가이드를 참고하세요.
past_key_values가 전달되지 않으면 기본적으로 DynamicCache가 초기화됩니다.모델은 입력으로 제공된 것과 동일한 캐시 형식을 출력합니다.
past_key_values를 사용하는 경우, 이 모델에 과거 키 값 상태가 제공되지 않은input_ids만 입력해야 하며, 이때의 shape은(batch_size, unprocessed_length)입니다. shape이(batch_size, sequence_length)인 전체input_ids를 입력하지 않습니다. - token_type_ids (
torch.LongTensor형상이(batch_size, sequence_length), 선택 사항) — 입력의 첫 번째 및 두 번째 부분을 나타내는 세그먼트 토큰 인덱스. 인덱스는[0, 1]:- 0은 sentence A 토큰에 해당합니다.
- 1은 sentence B 토큰에 해당합니다.
- inputs_embeds (
torch.Tensor, shape(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_idsdocstring 참조). 인덱스가-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)인 선택 사항)으로 구성된 튜플이며, 인코더의 멀티모달 특징을 텍스트 임베딩에 병합한 시퀀스입니다.
반환값
Gemma3nCausalLMOutputWithPast 또는 tuple(torch.Tensor)
Gemma3nCausalLMOutputWithPast 또는 torch.Tensor의 튜플(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(Gemma3nConfig)과 입력에 따라 다양한 요소를 포함합니다.
Gemma3nForConditionalGeneration의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
loss (
torch.Tensor, shape(1,), 선택 사항,labels이 제공될 때 반환됨) — 언어 모델링 손실(다음 토큰 예측용).logits (
torch.Tensor, 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 가이드를 참고하세요.순차적 디코딩을 가속화하는 데 사용할 수 있는 사전 계산된 hidden-states(셀프 어텐션 블록의 key와 value)를 포함합니다(입력
past_key_values참조).hidden_states (
tuple[torch.Tensor], 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.
attentions (
tuple[torch.Tensor], 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
image_hidden_states (
torch.Tensor, 선택 사항) — 크기가(batch_size, num_images, sequence_length, hidden_size)인torch.Tensor입니다. 비전 인코더가 마지막 hidden state를 투사한 후 모델이 생성한 image_hidden_states입니다.audio_hidden_states (
torch.Tensor, 선택 사항) — 크기가(batch_size, num_images, sequence_length, hidden_size)인torch.Tensor입니다. 오디오 인코더가 생성한 모델의 audio_hidden_states이며, 마지막 hidden state를 투영한 후의 값입니다.
예:
>>> 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, shape(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]