Transformers documentation

Parakeet

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

and get access to the augmented documentation experience

to get started

이 모델은 2025-09-25에 Hugging Face Transformers에 기여되었습니다.

SDPA

Parakeet

개요

NVIDIA NeMo에서 도입한 Parakeet 모델은 Fast Conformer 인코더와 CTC(Connectionist Temporal Classification), RNNT(Recurrent Neural Network Transducer) 또는 TDT(Token and Duration Transducer) 디코더를 결합하여 자동 음성 인식(ASR)을 수행하는 모델입니다.

모델 아키텍처

  • Fast Conformer Encoder: mel-spectrogram 특징을 처리하고 서브샘플링을 통해 시퀀스 길이를 줄이는 선형 확장 가능한 Conformer 아키텍처입니다. 이는 FastSpeech2Conformer에 포함된 Conformer Encoder의 더 효율적인 버전입니다(인코더 구현 및 세부 사항은 ParakeetEncoder를 참조하세요).
  • ParakeetForCTC: Fast Conformer Encoder + CTC decoder
    • CTC Decoder: 다음으로 구성된 단순하지만 효과적인 디코더입니다:
      • 1D convolution은 인코더의 숨겨진 크기(hidden size)를 어휘 크기(vocabulary size)로 투영합니다(최적의 NeMo 호환성을 위해).
      • 학습을 위한 CTC 손실 계산.
      • 추론을 위한 Greedy CTC 디코딩.
  • ParakeetForRNNT: Fast Conformer Encoder + RNN-T (RNN Transducer) decoder
    • RNN-T Decoder: 표준 신경 트랜스듀서:
      • LSTM 예측 네트워크는 토큰 예측에 걸쳐 언어 컨텍스트를 유지합니다.
      • Joint network은 인코더와 디코더의 출력을 결합합니다.
      • 추론을 위한 Greedy transducer decoding: blank emission은 인코더 프레임을 한 단계 앞당기고, non-blank emission은 동일한 프레임에 머무릅니다.
  • ParakeetForTDT: Fast Conformer Encoder + TDT(Token Duration Transducer) decoder
    • TDT Decoder: 토큰과 그 지속 시간을 동시에 예측하여 효율적인 디코딩을 가능하게 합니다:
      • LSTM 예측 네트워크는 토큰 예측에 걸쳐 언어 컨텍스트를 유지합니다.
      • Joint network은 인코더와 디코더의 출력을 결합합니다.
      • Duration head는 프레임 건너뛰기 횟수를 예측하여 빠른 추론을 가능하게 합니다.

원래 구현은 NVIDIA NeMo에서 찾을 수 있습니다. 모델 체크포인트는 NVIDIA 조직 아래에서 찾을 수 있습니다.

이 모델은 Nithin Rao Koluguri, Eustache Le Bihan, Eric Bezzam, Maksym Lypivskyi, Hainan Xu에 의해 기여되었습니다.

사용

ParakeetForCTC 사용

Pipeline
AutoModel
from transformers import pipeline


pipe = pipeline("automatic-speech-recognition", model="nvidia/parakeet-ctc-1.1b")
out = pipe("https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/bcn_weather.mp3")
print(out)
# {'text': 'yesterday it was thirty five degrees in barcelona but today the temperature will go down to minus twenty degrees'}

ParakeetForRNNT 사용

Pipeline
AutoModel
타임스탬핑

Parakeet RNN-T는 대소문자 구분이나 구두점 없이 전사(CTC와 유사)하며, 모델은 토큰 타임스탬핑도 수행할 수 있습니다.

from transformers import pipeline

pipe = pipeline("automatic-speech-recognition", model="nvidia/parakeet-rnnt-0.6b", revision="refs/pr/4")
out = pipe("https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/bcn_weather.mp3")
print(out)
# {'text': 'yesterday it was thirty five degrees in barcelona but today the temperature will go down to minus twenty degrees'}

ParakeetForTDT 사용

Pipeline
AutoModel
타임스탬핑

Parakeet TDT 전사본에는 대소문자가 포함되며, 모델은 토큰 타임스탬핑도 수행할 수 있습니다.

from transformers import pipeline

pipe = pipeline("automatic-speech-recognition", model="nvidia/parakeet-tdt-0.6b-v3")
out = pipe("https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/bcn_weather.mp3")
print(out)
# {'text': 'Yesterday it was 35 degrees in Barcelona, but today the temperature will go down to minus 20 degrees.'}

모델을 빠르게 실행하기

Parakeet은 그래프 캡처(그래프 캡처)를 통한 전체 그래프 컴파일을 지원합니다(NVIDIA GPU의 경우 CUDA graphs, 기타 가속기의 경우 동등한 메커니즘)! 이 최적화는 전사하려는 최대 오디오 길이를 알고 있을 때 가장 효과적입니다. 핵심 아이디어는 재컴파일을 피하기 위해 정적 입력 형태를 사용하는 것입니다. 예를 들어, 오디오가 30초 미만일 것이라고 알면, 프로세서로 모든 입력을 30초까지 패딩하여 일관된 입력 특징과 어텐션 마스크를 준비할 수 있습니다. 아래 예시를 참고하세요!

import torch
from datasets import Audio, load_dataset

from transformers import AutoModelForCTC, AutoProcessor


processor = AutoProcessor.from_pretrained("nvidia/parakeet-ctc-1.1b")
model = AutoModelForCTC.from_pretrained("nvidia/parakeet-ctc-1.1b", device_map="auto")

ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
speech_samples = [el['array'] for el in ds["audio"][:5]]

# Compile the generate method with fullgraph and graph capture
model.generate = torch.compile(model.generate, fullgraph=True, mode="reduce-overhead")

# let's define processor kwargs to pad to 30 seconds
processor_kwargs = {
    "padding": "max_length",
    "max_length": 30 * processor.feature_extractor.sampling_rate,
}

# Define a timing context using accelerator events
class TimerContext:
    def __init__(self, name="Execution"):
        self.name = name
        self.start_event = None
        self.end_event = None

    def __enter__(self):
        # Use accelerator events for more accurate device timing
        self.start_event = torch.Event(enable_timing=True)
        self.end_event = torch.Event(enable_timing=True)
        self.start_event.record()
        return self

    def __exit__(self, *args):
        self.end_event.record()
        torch.accelerator.synchronize()
        elapsed_time = self.start_event.elapsed_time(self.end_event) / 1000.0
        print(f"{self.name} time: {elapsed_time:.4f} seconds")


inputs = processor(speech_samples[0], **processor_kwargs)
inputs.to(model.device, dtype=model.dtype)
print("\n" + "="*50)
print("First generation - compiling...")
# Generate with the compiled model
with TimerContext("First generation"):
    outputs = model.generate(**inputs)
print(processor.decode(outputs))

inputs = processor(speech_samples[1], **processor_kwargs)
inputs.to(model.device, dtype=model.dtype)
print("\n" + "="*50)
print("Second generation - recording graphs...")
with TimerContext("Second generation"):
    outputs = model.generate(**inputs)
print(processor.decode(outputs))

inputs = processor(speech_samples[2], **processor_kwargs)
inputs.to(model.device, dtype=model.dtype)
print("\n" + "="*50)
print("Third generation - fast !!!")
with TimerContext("Third generation"):
    outputs = model.generate(**inputs)
print(processor.decode(outputs))

inputs = processor(speech_samples[3], **processor_kwargs)
inputs.to(model.device, dtype=model.dtype)
print("\n" + "="*50)
print("Fourth generation - still fast !!!")
with TimerContext("Fourth generation"):
    outputs = model.generate(**inputs)
print(processor.decode(outputs))

CTC 학습

from datasets import Audio, load_dataset
from transformers import AutoModelForCTC, AutoProcessor

model_id = "nvidia/parakeet-ctc-1.1b"
NUM_SAMPLES = 5

processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForCTC.from_pretrained(model_id, device_map="auto")
model.train()

ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
speech_samples = [el['array'] for el in ds["audio"][:NUM_SAMPLES]]
text_samples = ds["text"][:NUM_SAMPLES]

# passing `text` to the processor will prepare inputs' `labels` key
inputs = processor(audio=speech_samples, text=text_samples, sampling_rate=processor.feature_extractor.sampling_rate)
inputs.to(model.device, dtype=model.dtype)

outputs = model(**inputs)
print("Loss:", outputs.loss.item())
outputs.loss.backward()

RNN-T 학습

RNN-T 손실을 계산하려면 torchaudio가 필요합니다(pip install torchaudio).

from datasets import Audio, load_dataset
import torch
from transformers import AutoModelForRNNT, AutoProcessor

model_id = "nvidia/parakeet-rnnt-0.6b"
revision = "refs/pr/4"
NUM_SAMPLES = 4

processor = AutoProcessor.from_pretrained(model_id, revision=revision)
model = AutoModelForRNNT.from_pretrained(model_id, revision=revision,  device_map="auto")
model.train()

ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
speech_samples = [el['array'] for el in ds["audio"][:NUM_SAMPLES]]
text_samples = ds["text"][:NUM_SAMPLES]

# passing `text` to the processor will prepare inputs' `labels` key
inputs = processor(audio=speech_samples, text=text_samples, sampling_rate=processor.feature_extractor.sampling_rate)
inputs.to(model.device, dtype=model.dtype)

outputs = model(**inputs)
print("Loss:", outputs.loss.item())
outputs.loss.backward()

TDT 학습

from datasets import Audio, load_dataset
import torch
from transformers import AutoModelForTDT, AutoProcessor

model_id = "nvidia/parakeet-tdt-0.6b-v3"
NUM_SAMPLES = 4

processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForTDT.from_pretrained(model_id, device_map="auto")
model.train()

ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
speech_samples = [el['array'] for el in ds["audio"][:NUM_SAMPLES]]
text_samples = ds["text"][:NUM_SAMPLES]

# passing `text` to the processor will prepare inputs' `labels` key
inputs = processor(audio=speech_samples, text=text_samples, sampling_rate=processor.feature_extractor.sampling_rate)
inputs.to(model.device, dtype=model.dtype)

outputs = model(**inputs)
print("Loss:", outputs.loss.item())
outputs.loss.backward()

ParakeetTokenizer

클래스 transformers.ParakeetTokenizer

< >

( *args**kwargs )

PreTrainedTokenizerFast의 모든 메서드를 상속합니다. 해당 메서드에 대한 자세한 내용은 이 상위 클래스를 참고하십시오. 다만 CTC 디코딩에 맞게 오버라이드된 _decode는 예외입니다:

  1. 연속된 토큰 그룹화
  2. 빈 토큰을 필터링

ParakeetFeatureExtractor

클래스 transformers.ParakeetFeatureExtractor

< >

( feature_size = 80sampling_rate = 16000hop_length = 160n_fft = 512win_length = 400preemphasis = 0.97padding_value = 0.0**kwargs )

매개변수

  • feature_size (int, 선택 사항, 기본값 80) — 추출된 특징의 차원입니다.
  • sampling_rate (int, 선택 사항, 기본값 16000) — 오디오 파일을 디지털화할 때 사용할 샘플링 주파수(Hz).
  • hop_length (int, 선택 사항, 기본값 160) — Mel Frequency 계수를 얻기 위해 사용되는 STFT의 겹치는 윈도우 길이.
  • n_fft (int, 선택 사항, 기본값 512) — 푸리에 변환의 크기.
  • win_length (int, 선택 사항, 기본값 400) — STFT 계산에 사용되는 윈도우 길이입니다.
  • preemphasis (float, 선택 사항, 기본값 0.97) — 프리임페이스 필터 계수입니다. 0.0은 프리임페이스 필터를 사용하지 않음을 의미합니다.
  • padding_value (float, 선택 사항, 기본값 0.0) — 오디오를 패딩하는 데 사용되는 값입니다. 무음 구간과 대응해야 합니다.

Parakeet feature extractor를 생성합니다.

이 feature extractor는 SequenceFeatureExtractor를 상속하며, 이 클래스에는 대부분의 주요 메서드가 포함되어 있습니다. 해당 메서드에 대한 자세한 내용은 이 상위 클래스를 참고하세요.

이 클래스는 Short Time Fourier Transform의 커스텀 numpy 구현을 사용하여 원시 음성에서 mel-filter bank 특징을 추출하며, pytorch의 torch.stft와 동일한 결과를 내야 합니다.

__call__

< >

( raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]]truncation: bool = Falsepad_to_multiple_of: int | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_attention_mask: bool | None = Nonepadding: str | None = 'longest'max_length: int | None = Nonesampling_rate: int | None = Nonedo_normalize: bool | None = Nonedevice: str | None = 'cpu'return_token_timestamps: bool | None = None**kwargs )

매개변수

  • raw_speech (np.ndarray, list[float], list[np.ndarray], list[list[float]]) — 패딩할 시퀀스 또는 시퀀스 배치입니다. 각 시퀀스는 numpy 배열, float 값의 리스트, numpy 배열의 리스트, 또는 float 값의 리스트의 리스트일 수 있습니다. 스테레오가 아닌 모노 채널 오디오여야 하며, 즉 각 타임스텝당 float 값이 하나만 있어야 합니다.
  • truncation (bool, 선택 사항, 기본값 True) — max_length보다 긴 입력 시퀀스를 max_length로 잘라내는 truncation을 활성화합니다.
  • pad_to_multiple_of (int, 선택 사항, 기본값은 None) — 설정하면 시퀀스를 제공된 값의 배수로 패딩합니다.

    이 기능은 NVIDIA 하드웨어에서 Tensor Cores 사용을 활성화하는 데 특히 유용하며, 이는 compute capability가 >= 7.5(Volta)인 하드웨어나, 시퀀스 길이가 128의 배수일 때 성능 향상을 얻는 TPU에서 해당됩니다.

  • return_attention_mask (bool, 선택 사항) — attention mask를 반환할지 여부. 기본값을 유지하면 해당 feature_extractor의 기본 설정에 따라 attention mask를 반환합니다.

    어텐션 마스크란 무엇인가요?

    Parakeet 모델의 경우, 미묘한 버그를 방지하기 위해 배치 추론 시 attention_mask를 항상 전달해야 합니다.

  • return_tensors (str 또는 TensorType, 선택 사항) — 설정된 경우, Python 정수 목록 대신 텐서를 반환합니다. 허용되는 값은 다음과 같습니다:
    • 'tf': TensorFlow tf.constant 객체를 반환합니다.
    • 'pt': PyTorch torch.Tensor 객체를 반환합니다.
    • 'np': Numpy np.ndarray 객체를 반환합니다.
  • sampling_rate (int, 선택 사항) — raw_speech 입력이 샘플링된 샘플링 레이트입니다. 조용한 오류를 방지하고 자동 음성 인식 파이프라인을 사용할 수 있도록, forward 호출 시 sampling_rate를 전달하는 것을 강력히 권장합니다.
  • padding_value (float, 선택 사항, 기본값 0.0) — 패딩 값/벡터를 채우는 데 사용되는 값입니다.
  • do_normalize (bool, 선택 사항, 기본값 False) — 입력을 평균 0, 분산 1로 정규화할지 여부입니다. 정규화를 적용하면 모델 성능을 크게 향상시킬 수 있습니다.
  • device (str, 선택 사항, 기본값 'cpu') — _torch_extract_fbank_features 메서드에서 오디오 신호의 log-mel spectrogram을 계산할 때 사용할 장치를 지정합니다. (예: “cpu”, “cuda”)
  • return_token_timestamps (bool, 선택 사항, 기본값은 None) — 비추천됩니다. 대신 return_attention_mask 을(를) 사용하여 프레임 수를 추론할 수 있습니다.

    입력 raw_speech의 프레임 수를 반환할지 여부. 이 num_frames는 모델이 단어 수준 타임스탬프를 계산하는 데 사용할 수 있습니다.

하나 이상의 시퀀스를 특징화(featurize)하고 모델에 맞게 준비하는 주요 메서드입니다. 구현에서는 사용 가능한 경우 PyTorch를 사용하여 STFT 계산을 수행하고, 그렇지 않으면 더 느린 NumPy 기반 방식을 사용합니다.

ParakeetProcessor

클래스 transformers.ParakeetProcessor

< >

( feature_extractortokenizerblank_token = '<blank>'decoder_type = None )

매개변수

  • feature_extractor (feature_extractor_class) — feature extractor는 필수 입력입니다.
  • tokenizer (tokenizer_class) — 토크나이저는 필수 입력값입니다.
  • blank_token (str, 선택 사항, 기본값 "<blank>") — Transducer decoding에 사용되는 blank token입니다.
  • decoder_type (str, 선택 사항) — 디코딩/타임스탬프 출력 모드. 가능한 값:
    • "ctc": 연속된 동일한 토큰은 하나의 발음으로 병합됩니다.
    • "rnnt": 반복된 토큰은 유지되며, 각 토큰은 1프레임 길이의 타임스탬프 범위를 가집니다.
    • "tdt": 반복된 토큰은 유지되며, 각 토큰 스팬은 예측된 지속 시간을 기준으로 합니다. 구두점은 앞선 토큰에 연결됩니다.

    None인 경우(구버전 체크포인트)는 하위 호환성을 위해 디코더 유형이 자동으로 추론됩니다.

feature extractor와 tokenizer를 단일 processor로 감싸는 ParakeetProcessor를 생성합니다.

ParakeetProcessor는 feature_extractor_class와 tokenizer_class의 모든 기능을 제공합니다. 자세한 내용은 ~feature_extractor_class와 ~tokenizer_class를 참고하세요.

__call__

< >

( audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]text: str | list[str] | list[list[str]] | None = Nonesampling_rate: int | None = None**kwargs: *<class 'transformers.models.parakeet.processing_parakeet.ParakeetProcessorKwargs'> )

매개변수

  • 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는 오디오의 샘플 길이입니다.
  • text (Union[str, list[str], list[list[str]]], 선택 사항) — 인코딩할 시퀀스 또는 시퀀스 배치입니다. 각 시퀀스는 문자열 또는 문자열 목록(사전 토큰화된 문자열)일 수 있습니다. 사전 토큰화된 입력을 전달하는 경우, 배치 입력과의 혼동을 피하기 위해 is_split_into_words=True를 설정하세요.
  • sampling_rate (int, 선택 사항) — 입력 오디오의 Hz 단위 샘플링 레이트입니다. 이는 feature extractor가 기대하는 샘플링 레이트와 일치해야 합니다(기본값은 16000 Hz). 값이 제공되면 processor가 기대하는 샘플링 레이트와 검증되며, 일치하지 않으면 오류가 발생합니다. 제공되지 않으면 경고가 표시되고 기본 샘플링 레이트가 가정됩니다.
  • return_tensors (str 또는 TensorType, 선택 사항) — 설정된 경우, 특정 프레임워크의 텐서를 반환합니다. 허용되는 값은 다음과 같습니다:
    • 'pt': PyTorch torch.Tensor 객체를 반환합니다.
    • 'np': NumPy np.ndarray 객체를 반환합니다.
  • **kwargs (ProcessingKwargs, 선택) — 각 모달리티(텍스트, 이미지, 비디오, 오디오)에 대한 추가 처리 옵션입니다. 모델별 매개변수는 위에 나열되어 있으며, 지원되는 인수의 전체 목록은 TypedDict 클래스를 참조하세요.

decode

< >

( *argsdurations = None**kwargs )

decode()로 인수를 전달하고, NeMo 라이브러리에서와 마찬가지로 타임스탬프(제공된 경우)를 후처리합니다.

ParakeetEncoderConfig

class transformers.ParakeetEncoderConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int = 1024num_hidden_layers: int = 24num_attention_heads: int = 8intermediate_size: int = 4096hidden_act: str = 'silu'attention_bias: bool = Trueconvolution_bias: bool = Trueconv_kernel_size: int = 9subsampling_factor: int = 8subsampling_conv_channels: int = 256num_mel_bins: int = 80subsampling_conv_kernel_size: int = 3subsampling_conv_stride: int = 2dropout: float | int = 0.1dropout_positions: float | int = 0.0layerdrop: float | int = 0.1activation_dropout: float | int = 0.1attention_dropout: float | int = 0.1max_position_embeddings: int = 5000scale_input: bool = Trueinitializer_range: float = 0.02 )

매개변수

  • hidden_size (int, 선택 사항, 기본값 1024) — 숨겨진 표현의 차원입니다.
  • num_hidden_layers (int, 선택 사항, 기본값 24) — Transformer decoder의 숨겨진 레이어 수.
  • num_attention_heads (int, 선택 사항, 기본값 8) — Transformer decoder의 각 attention layer에 사용할 attention head의 수입니다.
  • intermediate_size (int, 선택 사항, 기본값 4096) — MLP 표현의 차원입니다.
  • hidden_act (str, 선택 사항, 기본값 silu) — 디코더의 비선형 활성화 함수(함수 또는 문자열)입니다. 예를 들어, "gelu", "relu", "silu" 등이 있습니다.
  • attention_bias (bool, 선택 사항, 기본값 True) — 자기 주의(self-attention) 시 query, key, value 및 출력 투영 계층에 bias를 사용할지 여부입니다.
  • convolution_bias (bool, 선택 사항, 기본값 True) — conformer의 convolution module에서 convolution에 bias를 사용할지 여부입니다.
  • conv_kernel_size (int, 선택 사항, 기본값 9) — Conformer 블록의 컨볼루션 레이어의 커널 크기입니다.
  • subsampling_factor (int, 선택 사항, 기본값 8) — 입력 시퀀스를 서브샘플링하는 배율입니다.
  • subsampling_conv_channels (int, 선택 사항, 기본값 256) — 하위 샘플링 컨볼루션 레이어의 채널 수입니다.
  • num_mel_bins (int, 선택 사항, 기본값 80) — mel 특징의 개수.
  • subsampling_conv_kernel_size (int, 선택 사항, 기본값 3) — 하위 샘플링 컨볼루션 레이어의 커널 크기입니다.
  • subsampling_conv_stride (int, 선택 사항, 기본값 2) — 하위 샘플링 컨볼루션 레이어의 스트라이드입니다.
  • dropout (Union[float, int], 선택 사항, 기본값 0.1) — 모든 dropout 레이어에 적용할 비율입니다.
  • dropout_positions (float, 선택 사항, 기본값 0.0) — 입력 시퀀스의 위치(positions)에 적용할 dropout 비율입니다.
  • layerdrop (Union[float, int], 선택 사항, 기본값 0.1) — LayerDrop 확률입니다. 자세한 내용은 [LayerDrop 논문](https://huggingface.co/papers/1909.11556 참조)을 참고하세요.
  • activation_dropout (Union[float, int], 선택 사항, 기본값 0.1) — 완전 연결 레이어 내부 활성화에 적용할 dropout 비율입니다.
  • attention_dropout (Union[float, int], 선택 사항, 기본값 0.1) — Attention 확률에 적용할 dropout 비율입니다.
  • max_position_embeddings (int, 선택 사항, 기본값 5000) — 이 모델이 사용될 수 있는 최대 시퀀스 길이입니다.
  • scale_input (bool, 선택 사항, 기본값 True) — 입력 임베딩을 스케일링할지 여부입니다.
  • initializer_range (float, 선택 사항, 기본값 0.02) — 모든 가중치 행렬을 초기화하는 truncated_normal_initializer의 표준 편차입니다.

이것은 ParakeetModel의 구성을 저장하기 위한 구성 클래스입니다. 지정된 인자에 따라 Parakeet 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 구성을 인스턴스화하면 nvidia/parakeet-ctc-1.1b와 유사한 구성이 생성됩니다.

Configuration 객체는 PreTrainedConfig를 상속하며 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 PreTrainedConfig의 문서를 참고하세요.

예:

>>> from transformers import ParakeetEncoderModel, ParakeetEncoderConfig

>>> # Initializing a `ParakeetEncoder` configuration
>>> configuration = ParakeetEncoderConfig()

>>> # Initializing a model from the configuration
>>> model = ParakeetEncoderModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

ParakeetCTCConfig

클래스 transformers.ParakeetCTCConfig

< >

( 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 = 1025ctc_loss_reduction: str = 'mean'ctc_zero_infinity: bool = Trueencoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonepad_token_id: int | None = 1024 )

매개변수

  • vocab_size (int, 선택 사항, 기본값 1025) — 모델의 어휘 크기입니다. input_ids로 표현할 수 있는 서로 다른 토큰의 수를 정의합니다.
  • ctc_loss_reduction (str, 선택 사항, 기본값 "mean") — torch.nn.CTCLoss의 출력에 적용할 reduction 방식을 지정합니다. ParakeetForCTC 인스턴스를 학습하는 경우에만 관련이 있습니다.
  • ctc_zero_infinity (bool, 선택 사항, 기본값 True) — torch.nn.CTCLoss의 무한 손실과 관련 그래디언트를 0으로 설정할지 여부입니다. 무한 손실은 주로 입력이 대상과 정렬될 수 없을 정도로 너무 짧을 때 발생합니다. ParakeetForCTC 인스턴스를 학습하는 경우에만 관련이 있습니다.
  • encoder_config (Union[dict, ParakeetEncoderConfig], 선택) — 인코더의 설정 객체 또는 사전입니다.
  • pad_token_id (int, 선택 사항, 기본값 1024) — 어휘에서 패딩에 사용되는 토큰 ID입니다.

이것은 ParakeetModel의 구성을 저장하기 위한 구성 클래스입니다. 지정된 인자에 따라 Parakeet 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 구성을 인스턴스화하면 nvidia/parakeet-ctc-1.1b와 유사한 구성이 생성됩니다.

Configuration 객체는 PreTrainedConfig를 상속하며 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 PreTrainedConfig의 문서를 참고하세요.

예:

>>> from transformers import ParakeetForCTC, ParakeetCTCConfig
>>> # Initializing a Parakeet configuration
>>> configuration = ParakeetCTCConfig()
>>> # Initializing a model from the configuration
>>> model = ParakeetForCTC(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config

ParakeetRNNTConfig

클래스 transformers.ParakeetRNNTConfig

< >

( 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 = 0id2label: 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 = Noneis_encoder_decoder: bool = Truevocab_size: int = 8193decoder_hidden_size: int = 640num_decoder_layers: int = 2hidden_act: str = 'relu'max_symbols_per_step: int = 10encoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonepad_token_id: int = 2blank_token_id: int = 8192 )

매개변수

  • is_encoder_decoder (bool, 선택 사항, 기본값 True) — 모델이 인코더/디코더로 사용되는지 여부를 나타냅니다.
  • vocab_size (int, 선택 사항, 기본값 8193) — 모델의 어휘 크기입니다. input_ids로 표현할 수 있는 서로 다른 토큰의 수를 정의합니다.
  • decoder_hidden_size (int, 선택 사항, 기본값 640) — LSTM 예측 네트워크와 결합 네트워크의 hidden size입니다.
  • num_decoder_layers (int, 선택 사항, 기본값 2) — 예측 네트워크의 LSTM 레이어 수.
  • hidden_act (str, 선택 사항, 기본값 relu) — 디코더의 비선형 활성화 함수(함수 또는 문자열)입니다. 예를 들어, "gelu", "relu", "silu" 등이 있습니다.
  • max_symbols_per_step (int, 선택 사항, 기본값 10) — greedy decoding 과정에서 각 encoder time step마다 출력할 수 있는 최대 심볼 수.
  • encoder_config (Union[dict, ParakeetEncoderConfig], 선택) — 인코더의 설정 객체 또는 사전입니다.
  • pad_token_id (int, 선택 사항, 기본값 2) — 어휘에서 패딩에 사용되는 토큰 ID입니다.
  • blank_token_id (int, 선택 사항, 기본값 8192) — Blank token id입니다. RNN-T의 경우 pad_token_id와 다릅니다.

이것은 ParakeetModel의 구성을 저장하기 위한 구성 클래스입니다. 지정된 인자에 따라 Parakeet 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 구성을 인스턴스화하면 nvidia/parakeet-rnnt-0.6b와 유사한 구성이 생성됩니다.

Configuration 객체는 PreTrainedConfig를 상속하며 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 PreTrainedConfig의 문서를 참고하세요.

예:

>>> from transformers import ParakeetForRNNT, ParakeetRNNTConfig

>>> # Initializing a Parakeet RNN-T configuration
>>> configuration = ParakeetRNNTConfig()

>>> # Initializing a model from the configuration
>>> model = ParakeetForRNNT(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

ParakeetTDTConfig

class transformers.ParakeetTDTConfig

< >

( 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 = 0id2label: 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 = Noneis_encoder_decoder: bool = Truevocab_size: int = 8193decoder_hidden_size: int = 640num_decoder_layers: int = 2hidden_act: str = 'relu'max_symbols_per_step: int = 10encoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonepad_token_id: int = 2blank_token_id: int = 8192durations: list[int] | tuple[int, ...] = (0, 1, 2, 3, 4) )

매개변수

  • is_encoder_decoder (bool, 선택 사항, 기본값 True) — 모델이 인코더/디코더로 사용되는지 여부를 나타냅니다.
  • vocab_size (int, 선택 사항, 기본값 8193) — 모델의 어휘 크기입니다. input_ids로 표현할 수 있는 서로 다른 토큰의 수를 정의합니다.
  • decoder_hidden_size (int, 선택 사항, 기본값 640) — LSTM 예측 네트워크와 결합 네트워크의 hidden size입니다.
  • num_decoder_layers (int, 선택 사항, 기본값 2) — 예측 네트워크의 LSTM 레이어 수.
  • hidden_act (str, 선택 사항, 기본값 relu) — 디코더의 비선형 활성화 함수(함수 또는 문자열)입니다. 예를 들어, "gelu", "relu", "silu" 등이 있습니다.
  • max_symbols_per_step (int, 선택 사항, 기본값 10) — greedy decoding 과정에서 각 encoder time step마다 출력할 수 있는 최대 심볼 수.
  • encoder_config (Union[dict, ParakeetEncoderConfig], 선택) — 인코더의 설정 객체 또는 사전입니다.
  • pad_token_id (int, 선택 사항, 기본값 2) — 어휘에서 패딩에 사용되는 토큰 ID입니다.
  • blank_token_id (int, 선택 사항, 기본값 8192) — Blank token id입니다. TDT의 경우 pad_token_id와 다릅니다.
  • durations (list[int], 선택 사항, 기본값 [0, 1, 2, 3, 4]) — 예측할 수 있는 토큰 지속 시간 값입니다. 각 값은 토큰 또는 blank 발화가 몇 프레임에 걸쳐 지속되는지를 나타냅니다.

이것은 ParakeetModel의 구성을 저장하기 위한 구성 클래스입니다. 지정된 인자에 따라 Parakeet 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 구성을 인스턴스화하면 nvidia/parakeet-tdt-0.6b-v3와 유사한 구성이 생성됩니다.

Configuration 객체는 PreTrainedConfig를 상속하며 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 PreTrainedConfig의 문서를 참고하세요.

예:

>>> from transformers import ParakeetForTDT, ParakeetTDTConfig

>>> # Initializing a Parakeet TDT configuration
>>> configuration = ParakeetTDTConfig()

>>> # Initializing a model from the configuration
>>> model = ParakeetForTDT(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

ParakeetEncoder

class transformers.ParakeetEncoder

< >

( config: ParakeetEncoderConfig )

매개변수

  • config (ParakeetEncoderConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 관련된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.

Fast Conformer 아키텍처를 기반으로 한 Parakeet Encoder 모델입니다.

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

forward

< >

( input_features: Tensorattention_mask: typing.Optional[torch.Tensor] = Noneoutput_attention_mask: bool = True**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutput or tuple(torch.Tensor)

매개변수

  • input_features (torch.Tensor, shape (batch_size, sequence_length, feature_dim)) — 입력 오디오 특징에 해당하는 텐서입니다. 오디오 특징은 feature_extractor_class를 사용하여 얻을 수 있습니다. 자세한 내용은 feature_extractor_class.__call__를 참조하세요 (processor_class는 오디오 처리에 feature_extractor_class를 사용합니다).
  • attention_mask (torch.Tensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • output_attention_mask (bool, 선택 사항, 기본값 True) — 출력 attention mask를 반환할지 여부입니다. attention_mask가 제공된 경우에만 적용됩니다.

반환값

BaseModelOutput 또는 tuple(torch.Tensor)

None 및 입력에 따라 다양한 요소로 구성된 BaseModelOutput 또는 torch.Tensor의 튜플(return_dict=False가 전달되었거나 config.return_dict=False인 경우).

ParakeetEncoder의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • last_hidden_state (torch.Tensor, shape (batch_size, sequence_length, hidden_size)) — 모델의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.

  • 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 AutoProcessor, ParakeetEncoder
>>> from datasets import load_dataset, Audio

>>> model_id = "nvidia/parakeet-ctc-1.1b"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> encoder = ParakeetEncoder.from_pretrained(model_id)

>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))

>>> inputs = processor(ds[0]["audio"]["array"])
>>> encoder_outputs = encoder(**inputs)

>>> print(encoder_outputs.last_hidden_state.shape)

ParakeetForCTC

class transformers.ParakeetForCTC

< >

( config: ParakeetCTCConfig )

매개변수

  • config (ParakeetCTCConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 관련된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.

Connectionist Temporal Classification (CTC) 헤드를 갖춘 Parakeet Encoder.

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

forward

< >

( input_features: Tensorattention_mask: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CausalLMOutput or tuple(torch.Tensor)

매개변수

  • input_features (torch.Tensor, shape (batch_size, sequence_length, feature_dim)) — 입력 오디오 특징에 해당하는 텐서입니다. 오디오 특징은 feature_extractor_class를 사용하여 얻을 수 있습니다. 자세한 내용은 feature_extractor_class.__call__를 참조하세요 (processor_class는 오디오 처리에 feature_extractor_class를 사용합니다).
  • attention_mask (torch.Tensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • labels (torch.Tensor, shape (batch_size, sequence_length), 선택 사항) — 마스크 언어 모델링 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는 [0, ..., config.vocab_size] 범위 내의 값이거나 -100이어야 합니다(input_ids docstring 참조). 인덱스가 -100으로 설정된 토큰은 무시(마스크)되며, 손실은 [0, ..., config.vocab_size] 범위의 라벨을 가진 토큰에 대해서만 계산됩니다.

반환값

CausalLMOutput 또는 tuple(torch.Tensor)

None 및 입력에 따라 다양한 요소를 포함하는 CausalLMOutput 또는 torch.Tensor의 튜플(return_dict=False가 전달되거나 config.return_dict=False인 경우).

ParakeetForCTC의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • loss (torch.Tensor, shape (1,), 선택 사항, labels이 제공될 때 반환됨) — 언어 모델링 손실(다음 토큰 예측용).

  • logits (torch.Tensor, shape (batch_size, sequence_length, config.vocab_size)) — 언어 모델링 헤드에서 생성된 예측 점수(SoftMax 적용 전 각 어휘 토큰에 대한 점수).

  • 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 AutoProcessor, ParakeetForCTC
>>> from datasets import load_dataset, Audio

>>> model_id = "nvidia/parakeet-ctc-1.1b"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = ParakeetForCTC.from_pretrained(model_id)

>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))

>>> inputs = processor(ds[0]["audio"]["array"], text=ds[0]["text"])
>>> outputs = model(**inputs)

>>> print(outputs.loss)

generate

< >

( input_features: Tensorattention_mask: typing.Optional[torch.Tensor] = Nonereturn_dict_in_generate: bool = Falsecompile_config: transformers.generation.configuration_utils.CompileConfig | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )

compile_config (CompileConfig, 선택 사항): 지정된 경우, torch.compile가 디코딩 루프의 forward 호출에 적용됩니다.

예:

>>> from transformers import AutoProcessor, ParakeetForCTC
>>> from datasets import load_dataset, Audio

>>> model_id = "nvidia/parakeet-ctc-1.1b"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = ParakeetForCTC.from_pretrained(model_id)

>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))

>>> inputs = processor(ds[0]["audio"]["array"], text=ds[0]["text"])
>>> predicted_ids = model.generate(**inputs)
>>> transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)

>>> print(transcription)

ParakeetForRNNT

클래스 transformers.ParakeetForRNNT

< >

( config: ParakeetRNNTConfig )

매개변수

  • config (ParakeetRNNTConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.

RNN-T(RNN Transducer) 헤드를 갖춘 Parakeet Encoder.

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

forward

< >

( input_features: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_cache: transformers.models.parakeet.generation_parakeet.ParakeetRNNTDecoderCache | None = Noneuse_decoder_cache: bool | None = Noneencoder_outputs: transformers.models.parakeet.modeling_parakeet.ParakeetEncoderModelOutput | tuple[torch.Tensor] | None = Nonelabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → ParakeetRNNTOutput or tuple(torch.Tensor)

매개변수

  • input_features (torch.Tensor, shape (batch_size, sequence_length, feature_dim), 선택 사항) — 입력 오디오 특징에 해당하는 텐서입니다. 오디오 특징은 feature_extractor_class를 사용하여 얻을 수 있습니다. 자세한 내용은 feature_extractor_class.__call__를 참조하세요 (processor_class는 오디오 처리에 feature_extractor_class를 사용합니다).
  • attention_mask (torch.Tensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • decoder_input_ids (torch.LongTensor, shape (batch_size, 1), 선택 사항) — 단일 단계 추론을 위한 디코더 입력 토큰 ID입니다.
  • decoder_cache (ParakeetRNNTDecoderCache, 선택) — Decoder LSTM 캐시입니다. 값이 제공되고 초기화되어 있으면, decoder를 실행하는 대신 캐시된 decoder_output를 재사용합니다(예: blank-skipping 중). input_ids가 제공되면 decoder가 실행되고 캐시가 in-place로 업데이트됩니다.
  • use_decoder_cache (bool, 선택 사항) — decoder cache를 사용할지 여부입니다. True이고 decoder_cache가 None인 경우, forward pass 과정에서 새로운 cache가 자동으로 생성됩니다.
  • encoder_outputs (tuple(torch.Tensor), 선택) — 사전 계산된 인코더 출력(last_hidden_state, pooler_output, hidden_states, attentions, attention_mask). 튜플 또는 ParakeetEncoderModelOutput일 수 있습니다.
  • labels (torch.Tensor, shape (batch_size, sequence_length), 선택 사항) — 마스크 언어 모델링 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는 [0, ..., config.vocab_size] 범위 내의 값이거나 -100이어야 합니다(input_ids docstring 참조). 인덱스가 -100으로 설정된 토큰은 무시(마스크)되며, 손실은 [0, ..., config.vocab_size] 범위의 라벨을 가진 토큰에 대해서만 계산됩니다.

반환값

ParakeetRNNTOutput 또는 tuple(torch.Tensor)

ParakeetRNNTOutput 또는 torch.Tensor의 튜플(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(None)과 입력에 따라 다양한 요소를 포함합니다.

ParakeetForRNNT의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • loss (torch.Tensor, 선택 사항) — labels가 제공될 때 반환되는 RNN-T 손실입니다.
  • logits (torch.Tensor) — 결합 토큰 logits. 학습 시 shape은 (batch, T, U+1, vocab)이고, 단일 단계 추론 시에는 (batch, 1, 1, vocab)입니다.
  • decoder_cache (ParakeetRNNTDecoderCache, 선택) — hidden state, cell state, 마지막 출력을 포함하는 Decoder LSTM 캐시.

예:

>>> from transformers import AutoProcessor, ParakeetForRNNT
>>> from datasets import load_dataset, Audio

>>> model_id = "nvidia/parakeet-rnnt-0.6b"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = ParakeetForRNNT.from_pretrained(model_id)

>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))

>>> inputs = processor(ds[0]["audio"]["array"])
>>> outputs = model(**inputs)

ParakeetForTDT

class transformers.ParakeetForTDT

< >

( config: ParakeetTDTConfig )

매개변수

  • config (ParakeetTDTConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.

TDT(Token Duration Transducer) 헤드를 갖춘 Parakeet Encoder

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

forward

< >

( input_features: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_cache: transformers.models.parakeet.generation_parakeet.ParakeetRNNTDecoderCache | None = Noneuse_decoder_cache: bool | None = Noneencoder_outputs: transformers.models.parakeet.modeling_parakeet.ParakeetEncoderModelOutput | tuple[torch.Tensor] | None = Nonelabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → ParakeetRNNTOutput or tuple(torch.Tensor)

매개변수

  • input_features (torch.Tensor, shape (batch_size, sequence_length, feature_dim), 선택 사항) — 입력 오디오 특징에 해당하는 텐서입니다. 오디오 특징은 feature_extractor_class를 사용하여 얻을 수 있습니다. 자세한 내용은 feature_extractor_class.__call__를 참조하세요 (processor_class는 오디오 처리에 feature_extractor_class를 사용합니다).
  • attention_mask (torch.Tensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • decoder_input_ids (torch.LongTensor, shape (batch_size, 1), 선택 사항) — 단일 단계 추론을 위한 디코더 입력 토큰 ID입니다.
  • decoder_cache (ParakeetRNNTDecoderCache, 선택) — Decoder LSTM 캐시입니다. 값이 제공되고 초기화되어 있으면, decoder를 실행하는 대신 캐시된 decoder_output를 재사용합니다(예: blank-skipping 중). input_ids가 제공되면 decoder가 실행되고 캐시가 in-place로 업데이트됩니다.
  • use_decoder_cache (bool, 선택 사항) — decoder cache를 사용할지 여부입니다. True이고 decoder_cache가 None인 경우, forward pass 과정에서 새로운 cache가 자동으로 생성됩니다.
  • encoder_outputs (tuple(torch.Tensor), 선택) — 사전 계산된 인코더 출력(last_hidden_state, pooler_output, hidden_states, attentions, attention_mask). 튜플 또는 ParakeetEncoderModelOutput일 수 있습니다.
  • labels (torch.Tensor, shape (batch_size, sequence_length), 선택 사항) — 마스크 언어 모델링 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는 [0, ..., config.vocab_size] 범위 내의 값이거나 -100이어야 합니다(input_ids docstring 참조). 인덱스가 -100으로 설정된 토큰은 무시(마스크)되며, 손실은 [0, ..., config.vocab_size] 범위의 라벨을 가진 토큰에 대해서만 계산됩니다.

반환값

ParakeetRNNTOutput 또는 tuple(torch.Tensor)

ParakeetRNNTOutput 또는 torch.Tensor의 튜플(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(None)과 입력에 따라 다양한 요소를 포함합니다.

ParakeetForTDT의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • loss (torch.Tensor, 선택 사항) — labels가 제공될 때 반환되는 RNN-T 손실입니다.
  • logits (torch.Tensor) — 결합 토큰 logits. 학습 시 shape은 (batch, T, U+1, vocab)이고, 단일 단계 추론 시에는 (batch, 1, 1, vocab)입니다.
  • decoder_cache (ParakeetRNNTDecoderCache, 선택) — hidden state, cell state, 마지막 출력을 포함하는 Decoder LSTM 캐시.

예:

>>> from transformers import AutoProcessor, ParakeetForTDT
>>> from datasets import load_dataset, Audio

>>> model_id = "nvidia/parakeet-tdt-0.6b-v3"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = ParakeetForTDT.from_pretrained(model_id)

>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))

>>> inputs = processor(ds[0]["audio"]["array"])
>>> outputs = model(**inputs)
Update on GitHub