Transformers documentation
Audio Flamingo 3
이 모델은 2025-07-10에 HF papers에 게시되었으며, 2025-11-12에 Hugging Face Transformers에 기여되었습니다.
Audio Flamingo 3
개요
Audio Flamingo 3(AF3)는 음성, 환경음, 음악에 대한 견고한 이해와 추론을 위해 설계된 완전히 오픈된 대규모 오디오-언어 모델입니다. AF3는 Whisper 스타일의 오디오 인코더와 인과 언어 모델을 결합하며, 자리 대체 방식의 오디오-텍스트 융합을 수행합니다. 프로세서가 풀링된 오디오 프레임을 전용 플레이스홀더 토큰에 정렬하고, 모델이 포워드 패스 중에 해당 토큰 슬롯을 투영된 오디오 임베딩으로 대체합니다.
모델 체크포인트는 nvidia/audio-flamingo-3-hf에서 사용할 수 있습니다.
주요 내용:
- 음성, 소리, 음악 전반에 걸친 통합 오디오 인코더
- 윈도 처리 및 풀링 후 정렬을 통한 긴 오디오 지원(최대 10분). 모델은 오디오를 30초 단위의 윈도로 처리하며, 최대 20개 윈도(총 10분)로 제한됩니다. 10분을 초과하는 오디오는 잘립니다.
- 오디오 플레이스홀더 토큰을 오디오 임베딩으로 대체하여 시퀀스 길이를 유지하는 결정론적 융합입니다.
이 모델은 Lasha Koroshinadze와 Eric Bezzam이 기여했습니다.
논문
Audio Flamingo 3: 완전 오픈 소스 대형 오디오 언어 모델로 오디오 지능을 한 단계 더 발전시키다
A. Goel, S. Ghosh, J. Kim, S. Kumar, Z. Kong, S. Lee, C.-H. H. Yang, R. Duraiswami, D. Manocha, R. Valle, B. Catanzaro
NVIDIA and University of Maryland
프로젝트: https://research.nvidia.com/labs/adlr/AF3/
사용
오디오 Instruct 모드
모델은 오디오-텍스트 지시를 지원하며, 다중 턴 상호작용을 포함하여 모두 배치로 처리됩니다.
➡️ 오디오 + 텍스트 지시
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor
model_id = "nvidia/audio-flamingo-3-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(model_id, device_map="auto")
conversation = [
{
"role": "user",
"content": [
{"type": "text", "text": "Transcribe the input speech."},
{"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/WhDJDIviAOg_120_10.mp3"},
],
}
]
inputs = processor.apply_chat_template(
conversation,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
).to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, max_new_tokens=500)
decoded_outputs = processor.decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(decoded_outputs)➡️ 다중 턴:
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor
model_id = "nvidia/audio-flamingo-3-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(model_id, device_map="auto")
conversation = [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Instruction: How does the tone of female speech change throughout the audio? Choose the correct option among the options below: (A) Sad to happy (B) Happy to sad (C) Neutral to happy (D) Happy to neutral.",
},
{"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/000000786159.31.wav"},
],
},
{
"role": "assistant",
"content": [{"type": "text", "text": "(A) Sad to happy"}],
},
{
"role": "user",
"content": [
{"type": "text", "text": "Why do you think so?"},
],
},
]
inputs = processor.apply_chat_template(
conversation,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
).to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, max_new_tokens=500)
decoded_outputs = processor.decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(decoded_outputs)➡️ 텍스트만:
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor
model_id = "nvidia/audio-flamingo-3-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(model_id, device_map="auto")
conversation = [
{
"role": "user",
"content": [
{"type": "text", "text": "What is the capital of France?"},
],
}
]
inputs = processor.apply_chat_template(
conversation,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
).to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, max_new_tokens=500)
decoded_outputs = processor.decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(decoded_outputs)➡️ 오디오만:
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor
model_id = "nvidia/audio-flamingo-3-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(model_id, device_map="auto")
conversation = [
{
"role": "user",
"content": [
{"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/WhDJDIviAOg_120_10.mp3"},
],
}
]
inputs = processor.apply_chat_template(
conversation,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
).to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, max_new_tokens=500)
decoded_outputs = processor.decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(decoded_outputs)➡️ 배치 추론!
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor
model_id = "nvidia/audio-flamingo-3-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(model_id, device_map="auto")
conversations = [
[
{
"role": "user",
"content": [
{"type": "text", "text": "Transcribe the input speech."},
{
"type": "audio",
"path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/t_837b89f2-26aa-4ee2-bdf6-f73f0dd59b26.wav",
},
],
}
],
[
{
"role": "user",
"content": [
{
"type": "text",
"text": "This track feels really peaceful and introspective. What elements make it feel so calming and meditative?",
},
{"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/FPSbCAANfbJLVSwD.mp3"},
],
}
],
]
inputs = processor.apply_chat_template(
conversations,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
).to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, max_new_tokens=500)
decoded_outputs = processor.decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(decoded_outputs)➡️ 학습:
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor
model_id = "nvidia/audio-flamingo-3-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(model_id, device_map="auto")
model.train()
conversation = [
[
{
"role": "user",
"content": [
{"type": "text", "text": "Transcribe the input speech."},
{"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/WhDJDIviAOg_120_10.mp3"},
],
},
{
"role": "assistant",
"content": [{"type": "text", "text": "The transcription of the audio is 'summer follows spring the days grow longer and the nights are warm'."}],
}
],
[
{
"role": "user",
"content": [
{
"type": "text",
"text": "This track feels really peaceful and introspective. What elements make it feel so calming and meditative?",
},
{"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/FPSbCAANfbJLVSwD.mp3"},
],
},
{
"role": "assistant",
"content": [{"type": "text", "text": "The transcription of the audio is 'some transcription of the audio'."}],
}
]
]
inputs = processor.apply_chat_template(
conversation,
tokenize=True,
return_dict=True,
processor_kwargs={"output_labels": True},
).to(model.device, dtype=model.dtype)
loss = model(**inputs).loss
loss.backward()➡️ 전사 바로 가기
from transformers import AudioFlamingo3ForConditionalGeneration, AutoProcessor
model_id = "nvidia/audio-flamingo-3-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AudioFlamingo3ForConditionalGeneration.from_pretrained(model_id, device_map="auto")
inputs = processor.apply_transcription_request(audio="https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/t_837b89f2-26aa-4ee2-bdf6-f73f0dd59b26.wav").to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, max_new_tokens=500)
decoded_outputs = processor.decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True, strip_prefix=True)
print(decoded_outputs)모델은 The spoken content of the audio is "<text>".과 같은 어시스턴트 프레이밍으로 시작하는 전사 결과를 출력하도록 학습됩니다. strip_prefix=True(위와 같이)를 사용하면 고정된 어시스턴트 문장과 surrounding quotes를 제거하여 전사 결과만 남게 됩니다.
모델 작동 방식
아키텍처
AudioFlamingo3Encoder Whisper 스타일 feature extractor + encoder → 시간 차원 평균 풀링(stride 2) → LayerNorm. 풀링 후 비율(post-pool rate)로 프레임별 hidden states를 생성합니다.
AudioFlamingo3MultiModalProjector 인코더 특징을 언어 모델의 hidden size로 매핑하는 작은 MLP입니다.
AudioFlamingo3ForConditionalGeneration 각 오디오 플레이스홀더 토큰 슬롯이 오디오 프레임 임베딩으로 제자리에서 대체되는 텍스트 임베딩을 입력으로 받는 인과 언어 모델입니다. 융합 과정에서 시퀀스 길이가 변경되지 않습니다.
프로세서 수준 정렬
- 각 원시 웨이브폼은 피처 추출기의
chunk_length(초)와sampling_rate(Hz)를 기준으로 고정 길이의 윈도우로 분할됩니다. - 각 윈도우에 대해 프로세서가 인코더가 출력할 풀링 후 프레임 수
post_pool_len을 계산합니다(컨볼루션/풀링 스케줄과 일치). - processor는 모든 윈도우에 걸친 풀링 후 프레임의 총 개수에 따라 오디오 플레이스홀더 토큰을 확장합니다.
- 모델은 나중에 해당 토큰 위치를 대응하는 투영된 오디오 임베딩으로 대체합니다.
사용 패턴
전사 바로 가기
자동 음성 인식의 경우, 매번 기본 지시를 작성할 필요 없이 apply_transcription_request()를 호출할 수 있습니다:
inputs = processor.apply_transcription_request(audio=audio_array)
오디오 플레이스홀더 처리를 유지하면서 지시를 사용자 정의하려면 prompt="Transcribe the input speech." (또는 배치 오디오를 위한 프롬프트 목록)을 전달하세요.
audio는 메모리 내 배열, 로컬 파일 경로 또는 URL을 입력으로 받습니다. 모든 프로세서 kwargs(text_kwargs, audio_kwargs 등)가 전달되므로, processor(...)를 호출할 때와 마찬가지로 패딩이나 텐서 형식을 조정할 수 있습니다.
긴 오디오와 윈도우링
중요: 최대 오디오 길이는 10분입니다. 이보다 긴 오디오는 잘립니다.
기본 설정은 16 kHz 모노로 30초 창을 처리합니다.
프로세서가 샘플당 최대 20개 윈도우라는 하드 리밋을 적용하므로, 최대 10분(20개 윈도우 × 30초)의 오디오만 처리할 수 있습니다.
각 윈도우에 대해:
mel_len은 패딩된 멜 스펙트로그램의 길이를 나타냅니다.- Conv 스택은
conv_output_len = (mel_len - 1) // 2 + 1이므로 시간을 줄입니다. - 윈도우당 풀링 후 프레임 수:
post_pool_len = (conv_output_len - 2) // 2 + 1. - 오디오 플레이스홀더 토큰은 모든 윈도우의
post_pool_len합으로 확장됩니다.
패딩, 어텐션, 캐싱
- 왼쪽 패딩과 오른쪽 패딩 배치 내에서 프롬프트 길이가 혼합된 생성 작업에는 일반적으로 왼쪽 패딩이 더 적합합니다. 학습에는 오른쪽 패딩이 일반적이며, AF3의 퓨전 메커니즘 자체는 제자리로 치환하기 때문에 패딩 방식에 무관합니다.
- Attention masks 프로세서가
attention_mask(텍스트)와input_features_mask(오디오)를 반환합니다. 모델은 인코더의 pre-pool 축에서 패드 위치를 음의 무한대로 설정한 내부 4차원 마스크를 구성합니다. - 캐싱 생성 과정에서
input_features와input_features_mask는 첫 번째 단계에서만 전달됩니다. 이후 단계에서는 언어 모델의 캐시된 키/값을 사용합니다.
문제 해결
- 배치 처리 시 빈 출력 또는 잘린 출력 빠른 시작에서 보여준 것처럼, 배치 생성에는 왼쪽 패딩을 사용하고 프롬프트 길이 이후의 새 토큰만 디코딩하세요.
AudioFlamingo3Config
class transformers.AudioFlamingo3Config
< 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 = Noneaudio_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneaudio_token_id: int = 151669projector_hidden_act: str = 'gelu'projector_bias: bool = True )
매개변수
- audio_config (
Union[dict, ~configuration_utils.PreTrainedConfig], 선택) — 오디오 백본의 config 객체 또는 사전입니다. - text_config (
Union[dict, ~configuration_utils.PreTrainedConfig], 선택) — 텍스트 백본의 config 객체 또는 사전입니다. - audio_token_id (
int, 선택 사항, 기본값151669) — 입력 오디오를 위한 플레이스홀더로 사용되는 오디오 토큰 인덱스입니다. - projector_hidden_act (
str, 선택 사항, 기본값gelu) — 멀티모달 projector에 사용되는 활성화 함수입니다. - projector_bias (
bool, 선택 사항, 기본값True) — 멀티모달 projector에 bias를 사용할지 여부입니다.
이것은 AudioFlamingo3Model의 설정을 저장하기 위한 설정 클래스입니다. 지정된 인자에 따라 Audioflamingo3 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 설정을 인스턴스화하면 nvidia/audio-flamingo-3-hf와 유사한 설정이 생성됩니다.
Configuration 객체는 PreTrainedConfig를 상속하며 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 PreTrainedConfig의 문서를 참고하세요.
예:
>>> from transformers import AudioFlamingo3ForConditionalGeneration, AudioFlamingo3Config, AudioFlamingo3EncoderConfig, Qwen2Config
>>> # Initializing an AudioFlamingo3Encoder config
>>> audio_config = AudioFlamingo3EncoderConfig()
>>> # Initializing a Qwen2 config
>>> text_config = Qwen2Config()
>>> # Initializing an AudioFlamingo3 configuration
>>> configuration = AudioFlamingo3Config(audio_config, text_config)
>>> # Initializing a model from the audioflamingo3 style configuration
>>> model = AudioFlamingo3ForConditionalGeneration(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configAudioFlamingo3EncoderConfig
class transformers.AudioFlamingo3EncoderConfig
< 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 = Nonenum_mel_bins: int = 128num_hidden_layers: int = 32num_attention_heads: int = 20intermediate_size: int = 5120layerdrop: float | int = 0.0activation_function: str = 'gelu'hidden_size: int = 1280dropout: float | int = 0.0attention_dropout: float | int = 0.0activation_dropout: float | int = 0.0initializer_range: float = 0.02scale_embedding: bool = Falsemax_source_positions: int = 1500 )
매개변수
- num_mel_bins (
int, 선택 사항, 기본값128) — 입력 프레임당 사용되는 mel 특징의 수입니다.AutoFeatureExtractor클래스에서 사용된 값과 일치해야 합니다. - num_hidden_layers (
int, 선택 사항, 기본값32) — Transformer decoder의 숨겨진 레이어 수. - num_attention_heads (
int, 선택 사항, 기본값20) — Transformer decoder의 각 attention layer에 사용할 attention head의 수입니다. - intermediate_size (
int, 선택 사항, 기본값5120) — MLP 표현의 차원입니다. - layerdrop (
Union[float, int], 선택 사항, 기본값0.0) — LayerDrop 확률입니다. 자세한 내용은 [LayerDrop 논문](https://huggingface.co/papers/1909.11556 참조)을 참고하세요. - activation_function (
str, 선택 사항, 기본값gelu) — 디코더에서 사용되는 비선형 활성화 함수(함수 또는 문자열)입니다. 예를 들어,"gelu","relu","silu"등이 있습니다. - hidden_size (
int, 선택 사항, 기본값1280) — 숨겨진 표현의 차원입니다. - dropout (
Union[float, int], 선택 사항, 기본값0.0) — 모든 dropout 레이어에 적용할 비율입니다. - attention_dropout (
Union[float, int], 선택 사항, 기본값0.0) — Attention 확률에 적용할 dropout 비율입니다. - activation_dropout (
Union[float, int], 선택 사항, 기본값0.0) — 완전 연결 레이어 내부 활성화에 적용할 dropout 비율입니다. - initializer_range (
float, 선택 사항, 기본값0.02) — 모든 가중치 행렬을 초기화하는 truncated_normal_initializer의 표준 편차입니다. - scale_embedding (
bool, 선택 사항, 기본값False) — 임베딩을 sqrt(d_model)로 나누어 스케일링할지 여부. - max_source_positions (
int, 선택 사항, 기본값 1500) — 이 모델이 사용될 수 있는 log-mel filter-bank feature의 최대 시퀀스 길이입니다.
이것은 AudioFlamingo3Model의 설정을 저장하기 위한 설정 클래스입니다. 지정된 인자에 따라 Audioflamingo3 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 설정을 인스턴스화하면 nvidia/audio-flamingo-3-hf와 유사한 설정이 생성됩니다.
Configuration 객체는 PreTrainedConfig를 상속하며 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 PreTrainedConfig의 문서를 참고하세요.
예:
>>> from transformers import AudioFlamingo3EncoderConfig, AudioFlamingo3Encoder
>>> # Initializing an AudioFlamingo3EncoderConfig
>>> configuration = AudioFlamingo3EncoderConfig()
>>> # Initializing an AudioFlamingo3Encoder (with random weights)
>>> model = AudioFlamingo3Encoder(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configAudioFlamingo3Processor
class transformers.AudioFlamingo3Processor
< source >( feature_extractortokenizerchat_template = Noneaudio_token = '<sound>'default_transcription_prompt = 'Transcribe the input speech.'max_audio_len = 600 )
매개변수
- feature_extractor (
WhisperFeatureExtractor) — 피처 추출기는 필수 입력입니다. - tokenizer (
Qwen2Tokenizer) — 토크나이저는 필수 입력값입니다. - chat_template (
str) — 채팅의 메시지 목록을 토큰화 가능한 문자열로 변환하는 Jinja 템플릿입니다. - audio_token (
Optional[str], 선택, 기본값"<sound>") — 채팅 템플릿에서 오디오 입력을 나타내는 데 사용되는 특수 토큰입니다. - default_transcription_prompt (
str, 선택 사항, 기본값"Transcribe the input speech.") — 전사 요청을 적용할 때 전사 작업에 사용할 기본 프롬프트입니다. - max_audio_len (
int, 선택 사항, 기본값 600) — 초 단위 오디오 시퀀스의 최대 길이입니다. 이 길이를 초과하는 오디오는 잘립니다.
AudioFlamingo3Processor를 생성하며, feature extractor와 tokenizer를 단일 processor로 래핑합니다.
AudioFlamingo3Processor는 WhisperFeatureExtractor와 Qwen2Tokenizer의 모든 기능을 제공합니다. 자세한 내용은 ~WhisperFeatureExtractor와 ~Qwen2Tokenizer를 참고하세요.
__call__
< source >( text: str | list[str]audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = Noneoutput_labels: bool | None = False**kwargs: *<class 'transformers.models.audioflamingo3.processing_audioflamingo3.AudioFlamingo3ProcessorKwargs'> ) → BatchFeature
매개변수
- text (
Union[str, list[str]]) — 인코딩할 시퀀스 또는 시퀀스 배치입니다. 각 시퀀스는 문자열 또는 문자열 목록(사전 토큰화된 문자열)일 수 있습니다. 사전 토큰화된 입력을 전달하는 경우, 배치 입력과의 모호성을 피하기 위해is_split_into_words=True를 설정하세요. - audio (
Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]], 선택 사항) — 준비할 오디오 또는 오디오 배치입니다. 각 오디오는 NumPy 배열 또는 PyTorch 텐서일 수 있습니다. NumPy 배열/PyTorch 텐서의 경우, 각 오디오의 shape은 (C, T)여야 하며, 여기서 C는 채널 수, T는 오디오의 샘플 길이입니다. - output_labels (
bool, 선택, 기본값=False) — 학습용 라벨을 반환할지 여부. - return_tensors (
str또는 TensorType, 선택 사항) — 설정된 경우, 특정 프레임워크의 텐서를 반환합니다. 허용되는 값은 다음과 같습니다:'pt': PyTorchtorch.Tensor객체를 반환합니다.'np': NumPynp.ndarray객체를 반환합니다.
- **kwargs (ProcessingKwargs, 선택) — 각 모달리티(텍스트, 이미지, 비디오, 오디오)에 대한 추가 처리 옵션입니다. 모델별 매개변수는 위에 나열되어 있으며, 지원되는 인수의 전체 목록은 TypedDict 클래스를 참조하세요.
반환값
토큰화된 텍스트(input_ids, attention_mask)와 오디오 특징(input_features, input_features_mask)을 포함하는 사전입니다.
AudioFlamingo3Encoder
class transformers.AudioFlamingo3Encoder
< source >( config: AudioFlamingo3EncoderConfig )
매개변수
- config (AudioFlamingo3EncoderConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하면 모델에 연결된 가중치는 로드되지 않으며 구성만 로드됩니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
AudioFlamingo3의 오디오 모델로, 상단에 헤드나 투영이 없는 상태입니다.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.
forward
< source >( input_features: Tensorinput_features_mask: typing.Optional[torch.Tensor] = None**kwargs )
매개변수
- input_features (
torch.FloatTensor, shape(batch_size, feature_size, sequence_length)) — 원시 오디오에서 추출한 Log-Mel 특징입니다. 프로세서/feature extractor를 사용하여 waveform 입력에서 이 특징을 계산하고 패딩하세요. - input_features_mask (
torch.FloatTensorshape(batch_size, sequence_length), 선택 사항) — 패딩 feature 인덱스에 대해 attention을 수행하지 않도록 하는 마스크. 선택 가능한 마스크 값은[0, 1]:- 마스크되지 않은 토큰에 대해 1
- 마스크된 토큰에 대해 0
AudioFlamingo3Model
class transformers.AudioFlamingo3Model
< source >( config: AudioFlamingo3Config )
매개변수
- config (AudioFlamingo3Config) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
AudioFlamingo3 모델(파인튜닝된 Whisper 인코더, 멀티모달 프로젝터, Qwen2 언어 모델), 언어 모델링 헤드 없이.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.FloatTensor] = Noneinput_features_mask: 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'> ) → AudioFlamingo3ModelOutputWithPast or tuple(torch.FloatTensor)
매개변수
- input_ids (
torch.LongTensor형상이(batch_size, sequence_length), 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 패딩은 무시됩니다.AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.
- input_features (
torch.FloatTensor, shape(batch_size, sequence_length, feature_dim), 선택 사항) — 입력 오디오 특징에 해당하는 텐서입니다. 오디오 특징은 WhisperFeatureExtractor를 사용하여 얻을 수 있습니다. 자세한 내용은 WhisperFeatureExtractor.call()를 참조하세요 (AudioFlamingo3Processor는 오디오 처리에 WhisperFeatureExtractor를 사용합니다). - input_features_mask (
torch.Tensor, shape(batch_size, feature_sequence_length)) — 패딩된 feature 인덱스에 attention을 수행하지 않도록 하는 마스크입니다. - 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.FloatTensor, shape(batch_size, sequence_length, hidden_size), 선택) —input_ids를 전달하는 대신 임베딩 표현을 직접 전달할 수 있습니다. 이는 모델의 내부 임베딩 조회 행렬보다input_ids인덱스를 관련 벡터로 변환하는 방식에 대한 더 세밀한 제어가 필요한 경우 유용합니다. - use_cache (
bool, 선택 사항) —True로 설정하면past_key_values키 값 상태가 반환되며, 디코딩 속도를 높이는 데 사용할 수 있습니다(past_key_values참조).
반환값
AudioFlamingo3ModelOutputWithPast 또는 tuple(torch.FloatTensor)
AudioFlamingo3ModelOutputWithPast 또는 torch.FloatTensor의 튜플(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(AudioFlamingo3Config)과 입력에 따라 다양한 요소를 포함합니다.
AudioFlamingo3Model의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
- audio_hidden_states (
torch.FloatTensor, 선택 사항) — 투영된 오디오 hidden states입니다.
AudioFlamingo3ForConditionalGeneration
클래스 transformers.AudioFlamingo3ForConditionalGeneration
< source >( config: AudioFlamingo3Config )
매개변수
- config (AudioFlamingo3Config) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
Whisper 인코더의 fine-tuned 버전, 멀티모달 프로젝터, Qwen2 언어 모델로 구성된 AudioFlamingo3 모델입니다.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.FloatTensor] = Noneinput_features_mask: 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] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → AudioFlamingo3CausalLMOutputWithPast or tuple(torch.FloatTensor)
매개변수
- input_ids (
torch.LongTensor형상이(batch_size, sequence_length), 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 패딩은 무시됩니다.AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.
- input_features (
torch.FloatTensor, shape(batch_size, sequence_length, feature_dim), 선택 사항) — 입력 오디오 특징에 해당하는 텐서입니다. 오디오 특징은 WhisperFeatureExtractor를 사용하여 얻을 수 있습니다. 자세한 내용은 WhisperFeatureExtractor.call()를 참조하세요 (AudioFlamingo3Processor는 오디오 처리에 WhisperFeatureExtractor를 사용합니다). - input_features_mask (
torch.Tensor, shape(batch_size, feature_sequence_length)) — 패딩된 feature 인덱스에 attention을 수행하지 않도록 하는 마스크입니다. - 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.FloatTensor, shape(batch_size, sequence_length, hidden_size), 선택) —input_ids를 전달하는 대신 임베딩 표현을 직접 전달할 수 있습니다. 이는 모델의 내부 임베딩 조회 행렬보다input_ids인덱스를 관련 벡터로 변환하는 방식에 대한 더 세밀한 제어가 필요한 경우 유용합니다. - labels (
torch.LongTensor, shape(batch_size, sequence_length), 선택 사항) — 마스크 언어 모델링 손실을 계산하는 데 사용되는 라벨입니다. - 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차원 텐서여야 합니다. 이는 패킹된 텐서 형식(배치와 시퀀스 길이를 단일 차원으로 사용하는 경우)을 사용할 때 유용합니다.
반환값
AudioFlamingo3CausalLMOutputWithPast 또는 tuple(torch.FloatTensor)
AudioFlamingo3CausalLMOutputWithPast 또는 torch.FloatTensor의 튜플(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(AudioFlamingo3Config)과 입력에 따라 다양한 요소를 포함합니다.
AudioFlamingo3ForConditionalGeneration의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
loss (
torch.FloatTensor, shape(1,), 선택,labels이 제공될 때 반환됨) — 언어 모델링 손실(다음 토큰 예측용).logits (
torch.FloatTensor, shape(batch_size, sequence_length, config.vocab_size)) — 언어 모델링 헤드의 예측 점수.past_key_values (
Cache, 선택,use_cache=True가 전달되거나config.use_cache=True인 경우 반환됨) — Cache 인스턴스입니다.hidden_states (
tuple[torch.FloatTensor], 선택 사항,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], 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.FloatTensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
audio_hidden_states (
torch.FloatTensor, 선택 사항) — 투영 이후 오디오 인코더의 숨겨진 상태(hidden states).