Transformers documentation

Mimi

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

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

FlashAttention SDPA

Mimi

Mimi는 사전 학습 및 양자화 변형이 포함된 신경 오디오 코덱 모델로, 효율적인 음성 표현 및 압축을 위해 설계되었습니다. 이 모델은 1.1 kbps의 비트레이트와 12 Hz의 프레임 레이트로 동작하며, 16개의 코드북을 가진 잔차 벡터 양자화기(RVQ)와 결합된 합성곱 인코더-디코더 아키텍처를 사용합니다. Mimi는 언어적 풍부함과 높은 충실도의 재현을 균형 있게 맞추기 위해 의미론적(semantic) 및 음향(acoustic)의 이중 토크 스트림을 출력합니다. 주요 기능에는 저지연 사용에 적합한 인과 스트리밍 인코더, 유연한 다운스트림 생성을 위한 이중 경로 토큰화, 그리고 Moshi와 같은 대규모 음성 모델과의 통합 준비가 포함됩니다.

원본 Mimi 체크포인트는 Kyutai 조직에서 찾을 수 있습니다.

이 모델은 ylacombe에 의해 기여되었습니다.

Mimi 적용에 대한 추가 예제는 오른쪽 사이드바의 Mimi 모델에서 확인하세요.

아래 예제는 AutoModel 클래스를 사용하여 오디오를 인코딩하고 디코딩하는 방법을 보여줍니다.

AutoModel
from datasets import Audio, load_dataset

from transformers import AutoFeatureExtractor, MimiModel


librispeech_dummy = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")

# load model and feature extractor
model = MimiModel.from_pretrained("kyutai/mimi", device_map="auto")
feature_extractor = AutoFeatureExtractor.from_pretrained("kyutai/mimi")

# load audio sample
librispeech_dummy = librispeech_dummy.cast_column("audio", Audio(sampling_rate=feature_extractor.sampling_rate))
audio_sample = librispeech_dummy[-1]["audio"]["array"]
inputs = feature_extractor(raw_audio=audio_sample, sampling_rate=feature_extractor.sampling_rate, return_tensors="pt").to(model.device)

encoder_outputs = model.encode(inputs["input_values"], inputs["padding_mask"])
audio_values = model.decode(encoder_outputs.audio_codes, inputs["padding_mask"])[0]
# or the equivalent with a forward pass
audio_values = model(inputs["input_values"], inputs["padding_mask"]).audio_values

MimiConfig

클래스 transformers.MimiConfig

< >

( 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 = Nonesampling_rate: int = 24000audio_channels: int = 1hidden_size: int = 512num_filters: int = 64num_residual_layers: int = 1upsampling_ratios: list[int] | None = Nonekernel_size: int = 7last_kernel_size: int = 3residual_kernel_size: int = 3dilation_growth_rate: int = 2use_causal_conv: bool = Truepad_mode: str = 'constant'compress: int = 2trim_right_ratio: float = 1.0codebook_size: int = 2048codebook_dim: int = 256num_quantizers: int = 32use_conv_shortcut: bool = Falsevector_quantization_hidden_dimension: int = 256num_semantic_quantizers: int = 1upsample_groups: int = 512num_hidden_layers: int = 8intermediate_size: int = 2048num_attention_heads: int = 8num_key_value_heads: int = 8head_dim: int | None = Nonehidden_act: str = 'gelu'max_position_embeddings: int = 8000initializer_range: float = 0.02norm_eps: float = 1e-05use_cache: bool = Falseuse_streaming: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonesliding_window: int = 250attention_dropout: float | int = 0.0layer_scale_initial_scale: float = 0.01attention_bias: bool = Falsetie_word_embeddings: bool = True )

매개변수

  • sampling_rate (int, 선택 사항, 기본값 24000) — 오디오 파일을 디지털화할 때 사용할 샘플링 레이트를 헤르츠(Hz) 단위로 나타낸 값입니다.
  • audio_channels (int, 선택 사항, 기본값 1) — 오디오 데이터의 채널 수입니다. 모노는 1, 스테레오는 2입니다.
  • hidden_size (int, 선택 사항, 기본값 512) — 숨겨진 표현의 차원입니다.
  • num_filters (int, 선택 사항, 기본값 64) — 첫 번째 MimiConv1d 다운샘플링 레이어의 컨볼루션 커널 수.
  • num_residual_layers (int, 선택 사항, 기본값 1) — 잔차 레이어의 개수입니다.
  • upsampling_ratios (Sequence[int], 선택 사항) — 커널 크기 및 스트라이드 비율입니다. 인코더는 업샘플링 비율 대신 다운샘플링 비율을 사용하므로, 여기에서 지정된 비율과 일치해야 하는 디코더 순서와 반대 순서로 비율을 사용합니다. 지정하지 않으면 기본값으로 [8, 6, 5, 4]를 사용합니다.
  • kernel_size (int, 선택 사항, 기본값 7) — 합성곱 커널의 크기입니다.
  • last_kernel_size (int, 선택 사항, 기본값 3) — 마지막 컨볼루션 레이어의 커널 크기.
  • residual_kernel_size (int, 선택 사항, 기본값 3) — 잔차 레이어의 커널 크기입니다.
  • dilation_growth_rate (int, 선택 사항, 기본값 2) — 각 레이어마다 dilation을 얼마나 증가시킬지 지정합니다.
  • use_causal_conv (bool, 선택 사항, 기본값 True) — 완전 인과적 컨볼루션을 사용할지 여부입니다.
  • pad_mode (str, 선택 사항, 기본값 "constant") — 합성곱에 사용할 패딩 모드입니다.
  • compress (int, 선택 사항, 기본값 2) — 잔차 분기(residual branch)의 축소된 차원.
  • trim_right_ratio (float, 선택 사항, 기본값 1.0) — use_causal_conv = True 설정에서 전치 합성곱의 오른쪽을 잘라낼 때 사용할 비율입니다. 1.0과 같으면 모든 잘라내기가 오른쪽에서 수행됨을 의미합니다.
  • codebook_size (int, 선택 사항, 기본값 2048) — 모델이 사용하는 병렬 코드북의 수입니다.
  • codebook_dim (int, 선택 사항, 기본값 256) — 각 codebook 임베딩 벡터의 차원입니다.
  • num_quantizers (int, 선택 사항, 기본값 32) — Quantizer의 quantizer 채널, 즉 codebook의 개수입니다.
  • use_conv_shortcut (bool, 선택 사항, 기본값 False) — MimiResnetBlock 블록에서 'skip' 연결로 합성곱 계층을 사용할지 여부입니다. False인 경우, 일반 잔차 연결을 위해 항등 함수가 사용됩니다.
  • vector_quantization_hidden_dimension (int, 선택 사항, 기본값 256) — 잔차 벡터 양자화 공간의 중간 표현 차원입니다.
  • num_semantic_quantizers (int, 선택 사항, 기본값 1) — semantic quantizer의 semantic quantizer 채널, 즉 codebook의 수입니다. num_quantizers보다 작아야 합니다.
  • upsample_groups (int, 선택 사항, 기본값 512) — frame_rate!=encodec_frame_rate인 경우, 한 프레임 레이트에서 다른 프레임 레이트로 업샘플링하는 데 사용되는 그룹 수를 나타냅니다.
  • num_hidden_layers (int, 선택 사항, 기본값 8) — Transformer decoder의 숨겨진 레이어 수입니다.
  • intermediate_size (int, 선택 사항, 기본값 2048) — MLP 표현의 차원입니다.
  • num_attention_heads (int, 선택 사항, 기본값 8) — Transformer decoder의 각 attention layer에 사용할 attention head의 수입니다.
  • num_key_value_heads (int, 선택 사항, 기본값 8) — 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, 선택 사항) — Attention head의 차원입니다. None인 경우 hidden_size // num_attention_heads 값이 기본값으로 사용됩니다.
  • hidden_act (str, 선택 사항, 기본값 gelu) — 디코더에서 사용되는 비선형 활성화 함수(함수 또는 문자열)입니다. 예를 들어, "gelu", "relu", "silu" 등이 있습니다.
  • max_position_embeddings (int, 선택 사항, 기본값 8000) — 이 모델이 사용될 수 있는 최대 시퀀스 길이입니다.
  • initializer_range (float, 선택 사항, 기본값 0.02) — 모든 가중치 행렬을 초기화하는 truncated_normal_initializer의 표준 편차입니다.
  • norm_eps (float, 선택 사항, 기본값 1e-05) — 레이어 정규화 레이어에서 사용되는 epsilon 값입니다.
  • use_cache (bool, 선택 사항, 기본값 False) — 모델이 마지막 key/values attention을 반환할지 여부입니다(모든 모델에서 사용되지 않음). config.is_decoder=True인 경우 또는 모델이 decoder-only 생성 모델인 경우에만 관련이 있습니다.
  • use_streaming (bool, 선택 사항, 기본값 False) — 스트리밍 모드를 사용할지 여부입니다. True인 경우, 모델의 encode 메서드는 이후 encode 메서드 호출에서 사용할 수 있는 패딩 캐시를 반환합니다.
  • rope_parameters (Union[~modeling_rope_utils.RopeParameters, dict], 선택) — RoPE 임베딩의 구성 매개변수를 포함하는 사전입니다. 사전에는 rope_theta 값이 포함되어야 하며, 더 긴 max_position_embeddings로 RoPE를 사용하려는 경우 스케일링에 사용되는 매개변수를 선택적으로 포함할 수 있습니다.
  • sliding_window (int, 선택 사항, 기본값 250) — 슬라이딩 윈도우 어텐션의 윈도우 크기입니다. None인 경우 슬라이딩 윈도우가 적용되지 않습니다.
  • attention_dropout (Union[float, int], 선택 사항, 기본값 0.0) — Attention 확률에 적용할 dropout 비율입니다.
  • layer_scale_initial_scale (float, 선택 사항, 기본값 0.01) — self-attention 레이어에서 사용할 스케일입니다. base 모델은 0.1, large 모델은 1e-6을 사용합니다. layer scale을 비활성화하려면 0으로 설정하세요.
  • attention_bias (bool, 선택 사항, 기본값 False) — 자기 주의(self-attention) 시 query, key, value 및 출력 투영 계층에 bias를 사용할지 여부입니다.
  • tie_word_embeddings (bool, 선택, 기본값 True) — 모델의 tied_weights_keys 매핑에 따라 가중치 임베딩을 묶을지 여부.

이것은 MimiModel의 구성을 저장하기 위한 구성 클래스입니다. 지정된 인자에 따라 Mimi 모델을 인스턴스화하여 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 구성을 인스턴스화하면 kyutai/mimi와 유사한 구성이 생성됩니다.

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

예:

>>> from transformers import MimiModel, MimiConfig

>>> # Initializing a "kyutai/mimi" style configuration
>>> configuration = MimiConfig()

>>> # Initializing a model (with random weights) from the "kyutai/mimi" style configuration
>>> model = MimiModel(configuration)

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

MimiEncoderConfig

클래스 transformers.MimiEncoderConfig

< >

( 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 = Nonesampling_rate: int = 24000audio_channels: int = 1hidden_size: int = 512num_filters: int = 64num_residual_layers: int = 1upsampling_ratios: list[int] | None = Nonekernel_size: int = 7last_kernel_size: int = 3residual_kernel_size: int = 3dilation_growth_rate: int = 2use_causal_conv: bool = Truepad_mode: str = 'constant'compress: int = 2trim_right_ratio: float = 1.0codebook_size: int = 2048codebook_dim: int = 256num_quantizers: int = 32use_conv_shortcut: bool = Falsevector_quantization_hidden_dimension: int = 256num_semantic_quantizers: int = 1upsample_groups: int = 512num_hidden_layers: int = 8intermediate_size: int = 2048num_attention_heads: int = 8num_key_value_heads: int = 8head_dim: int | None = Nonehidden_act: str = 'gelu'max_position_embeddings: int = 8000initializer_range: float = 0.02norm_eps: float = 1e-05use_cache: bool = Falseuse_streaming: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonesliding_window: int = 250attention_dropout: float | int = 0.0layer_scale_initial_scale: float = 0.01attention_bias: bool = Falsetie_word_embeddings: bool = True )

Mimi의 인코더 부분(SEANet 인코더, 인코더 트랜스포머 및 다운샘플링)의 구성입니다. MimiConfig의 모든 필드를 공유하며(인수에 대한 자세한 내용은 해당 문서 참조), 따라서 전체 Mimi 체크포인트에서 직접 로드할 수 있습니다.

MimiDecoderConfig

클래스 transformers.MimiDecoderConfig

< >

( 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 = Nonesampling_rate: int = 24000audio_channels: int = 1hidden_size: int = 512num_filters: int = 64num_residual_layers: int = 1upsampling_ratios: list[int] | None = Nonekernel_size: int = 7last_kernel_size: int = 3residual_kernel_size: int = 3dilation_growth_rate: int = 2use_causal_conv: bool = Truepad_mode: str = 'constant'compress: int = 2trim_right_ratio: float = 1.0codebook_size: int = 2048codebook_dim: int = 256num_quantizers: int = 32use_conv_shortcut: bool = Falsevector_quantization_hidden_dimension: int = 256num_semantic_quantizers: int = 1upsample_groups: int = 512num_hidden_layers: int = 8intermediate_size: int = 2048num_attention_heads: int = 8num_key_value_heads: int = 8head_dim: int | None = Nonehidden_act: str = 'gelu'max_position_embeddings: int = 8000initializer_range: float = 0.02norm_eps: float = 1e-05use_cache: bool = Falseuse_streaming: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonesliding_window: int = 250attention_dropout: float | int = 0.0layer_scale_initial_scale: float = 0.01attention_bias: bool = Falsetie_word_embeddings: bool = True )

Mimi의 디코더 부분(업샘플링, 디코더 트랜스포머 및 SEANet 디코더)의 구성입니다. MimiConfig의 모든 필드를 공유하며(인수에 대한 자세한 내용은 해당 문서 참조), 따라서 전체 Mimi 체크포인트에서 직접 로드할 수 있습니다.

MimiModel

클래스 transformers.MimiModel

< >

( config: MimiConfig )

매개변수

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

Mimi 신경 오디오 코덱 모델입니다.

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

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

decode

< >

( audio_codes: Tensorpadding_mask: typing.Optional[torch.Tensor] = Nonedecoder_past_key_values: transformers.cache_utils.Cache | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )

주어진 프레임을 출력 오디오 웨이브폼으로 디코딩합니다. 코드는 MimiDecoderModel.forward()의 latents로 역양자화됩니다.

encode

< >

( input_values: Tensorpadding_mask: typing.Optional[torch.Tensor] = Nonenum_quantizers: float | None = Noneencoder_past_key_values: transformers.cache_utils.Cache | None = Nonepadding_cache: transformers.models.mimi.modeling_mimi.MimiConv1dPaddingCache | None = Noneuse_streaming: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )

입력 오디오 웨이브폼을 (batch_size, num_quantizers, frames) 형태의 이산 코드로 인코딩합니다: MimiEncoderModel.forward()의 잠재 변수를 양자화한 것입니다.

forward

< >

( input_values: Tensorpadding_mask: typing.Optional[torch.Tensor] = Nonenum_quantizers: int | None = Noneaudio_codes: typing.Optional[torch.Tensor] = Noneencoder_past_key_values: transformers.cache_utils.Cache | None = Nonedecoder_past_key_values: transformers.cache_utils.Cache | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MimiOutput or tuple(torch.Tensor)

매개변수

  • input_values (torch.Tensor, shape (batch_size, channels, sequence_length), 선택 사항) — Float로 변환된 원시 오디오 입력.
  • padding_mask (torch.Tensor, shape (batch_size, sequence_length), 선택 사항) — 패딩으로 인해 무시할 입력을 나타내며, 요소 값은 마스크되지 않음인 경우 1, 마스크됨인 경우 0입니다.
  • num_quantizers (int, 선택 사항) — 사용할 quantizer(즉, codebook)의 수입니다. 기본적으로 모든 quantizer가 사용됩니다.
  • audio_codes (torch.LongTensor, shape (batch_size, num_quantizers, codes_length), 선택) — model.encode를 사용하여 계산된 이산 코드 임베딩입니다.
  • encoder_past_key_values (Cache, 선택 사항) — 인코더 transformer의 순차적 디코딩을 가속화할 수 있는 사전 계산된 hidden-states(self-attention 블록의 key와 value). 일반적으로 이는 past_key_values 이전 디코딩 단계에서 모델이 반환한 use_cache=True 또는 config.use_cache=True.

    모델은 입력으로 제공된 것과 동일한 캐시 형식을 출력합니다.

    past_key_values를 사용하는 경우, 사용자는 선택적으로 마지막 audio_values 또는 `audio_codes`만 입력할 수 있습니다(이 모델에 과거 키 값 상태가 제공되지 않은 것들).

  • decoder_past_key_values (Cache, 선택 사항) — 시퀀셜 디코딩을 가속화하는 데 사용할 수 있는 사전 계산된 hidden-states(셀프 어텐션 블록의 key와 value)입니다. 일반적으로 이는 past_key_values 모델이 디코딩의 이전 단계에서 반환하는 use_cache=True 또는 config.use_cache=True.

    모델은 입력으로 제공된 것과 동일한 캐시 형식을 출력합니다.

    past_key_values를 사용하는 경우, 사용자는 선택적으로 마지막 audio_values 또는 `audio_codes`만 입력할 수 있습니다(이 모델에 과거 키 값 상태가 제공되지 않은 것들).

반환값

MimiOutput 또는 tuple(torch.Tensor)

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

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

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

  • audio_codes (torch.LongTensor, shape (batch_size, num_quantizers, codes_length), 선택 사항) — model.encode를 사용하여 계산된 이산 코드 임베딩.

  • audio_values (torch.Tensor, shape (batch_size, sequence_length), 선택 사항) — Mimi의 decoder 부분을 사용하여 얻은 디코딩된 오디오 값입니다.

  • encoder_past_key_values (Cache, 선택) — 인코더 transformer의 순차적 디코딩을 가속화하는 데 사용할 수 있는 사전 계산된 hidden-states(셀프 어텐션 블록의 key와 value)입니다. 이는 일반적으로 use_cache=True 또는 config.use_cache=True일 때, 이전 디코딩 단계에서 모델이 반환한 past_key_values로 구성됩니다.

    모델은 입력으로 제공된 것과 동일한 캐시 형식을 출력합니다.

    past_key_values를 사용하는 경우, 사용자는 선택적으로 마지막 audio_values 또는 `audio_codes`만 입력할 수 있습니다(이 모델에 과거 키 값 상태가 제공되지 않은 것들).

  • decoder_past_key_values (Cache, 선택) — 시퀀스 디코딩을 가속화하기 위해 사용할 수 있는 사전 계산된 hidden-states(셀프 어텐션 블록의 key와 value)입니다. 일반적으로 use_cache=True 또는 config.use_cache=True일 때, 이전 디코딩 단계에서 모델이 반환한 past_key_values로 구성됩니다.

    모델은 입력으로 제공된 것과 동일한 캐시 형식을 출력합니다.

    past_key_values를 사용하는 경우, 사용자는 선택적으로 마지막 audio_values 또는 `audio_codes`만 입력할 수 있습니다(이 모델에 과거 키 값 상태가 제공되지 않은 것들).

예:

>>> from datasets import load_dataset
>>> from transformers import AutoFeatureExtractor, MimiModel

>>> dataset = load_dataset("hf-internal-testing/ashraq-esc50-1-dog-example")
>>> audio_sample = dataset["train"]["audio"][0]["array"]

>>> model_id = "kyutai/mimi"
>>> model = MimiModel.from_pretrained(model_id)
>>> feature_extractor = AutoFeatureExtractor.from_pretrained(model_id)

>>> inputs = feature_extractor(raw_audio=audio_sample, return_tensors="pt")

>>> outputs = model(**inputs)
>>> audio_codes = outputs.audio_codes
>>> audio_values = outputs.audio_values

MimiEncoderModel

클래스 transformers.MimiEncoderModel

< >

( config: MimiEncoderConfig )

매개변수

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

Mimi의 인코더 부분: 오디오에서 연속적인 잠재 변수(continuous latents)로 변환하는 SEANet 인코더, 인코더 트랜스포머 및 다운샘플링.

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

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

forward

< >

( input_values: Tensorpadding_mask: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Nonepadding_cache: transformers.models.mimi.modeling_mimi.MimiConv1dPaddingCache | None = Noneuse_streaming: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MimiEncoderModelOutput or tuple(torch.Tensor)

매개변수

  • input_values (torch.Tensor, shape (batch_size, channels, sequence_length)) — 입력 오디오 웨이브폼의 부동소수점 값.
  • padding_mask (torch.Tensor, shape (batch_size, channels, sequence_length), 선택 사항) — 패딩으로 인해 무시할 입력을 나타내며, 요소 값은 마스크되지 않음인 경우 1, 마스크됨인 경우 0입니다.
  • past_key_values (Cache, 선택 사항) — 스트리밍 인코딩을 가속화하기 위해 사용되는 인코더 transformer의 사전 계산된 hidden-states(셀프 어텐션 블록의 key와 value).
  • padding_cache (MimiConv1dPaddingCache, 선택 사항) — 스트리밍 인코딩에 사용되는 인과적 합성곱의 패딩 캐시입니다.
  • use_streaming (bool, 선택 사항) — 스트리밍 모드로 인코딩할지 여부입니다. 다음 호출에 전달할 캐시를 반환합니다.
  • 입력 오디오 웨이브폼을 (batch_size, latent_dim, frames) 모양의 연속 잠재 변수로 Encodes합니다. —

반환값

MimiEncoderModelOutput 또는 tuple(torch.Tensor)

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

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

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

  • latents (torch.Tensor, shape (batch_size, latent_dim, frames)) — 오디오의 연속적 latents로, 오디오 샘플 config.frame_size개마다 프레임 하나가 됩니다.
  • past_key_values (Cache, 선택 사항) — 스트리밍 시 반환되는 인코더 transformer의 사전 계산된 hidden-states(셀프 어텐션 블록의 key와 value).
  • padding_cache (MimiConv1dPaddingCache, 선택) — 캐시 패딩을 통한 스트리밍을 지원하기 위해 MimiConv1d 인과적 합성곱에 사용되는 패딩 캐시입니다.
  • hidden_states (tuple(torch.Tensor), 선택 사항, output_hidden_states=True일 때 반환됨) — 인코더 transformer의 각 레이어 출력과 그 입력의 hidden states입니다.
  • attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True일 때 반환됨) — 각 인코더 transformer 레이어의 attention 가중치.

MimiDecoderModel

클래스 transformers.MimiDecoderModel

< >

( config: MimiDecoderConfig )

매개변수

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

Mimi의 디코더 부분: 연속된 잠재 변수(latents)를 오디오로 변환하기 위한 업샘플링, 디코더 트랜스포머, SEANet 디코더

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

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

forward

< >

( latents: Tensorpadding_mask: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MimiDecoderOutput or tuple(torch.Tensor)

매개변수

  • latents (torch.Tensor, shape (batch_size, hidden_size, frames)) — MimiModel.decode()로 계산된 디코딩할 연속 latents입니다.
  • padding_mask (torch.Tensor, shape (batch_size, channels, sequence_length), 선택 사항) — 패딩으로 인해 무시할 입력을 나타내며, 요소 값은 마스크되지 않음인 경우 1, 마스크됨인 경우 0입니다.
  • past_key_values (Cache, 선택 사항) — 스트리밍 디코딩을 가속화하기 위해 사용되는 디코더 transformer의 사전 계산된 hidden-states(셀프 어텐션 블록의 key와 value).
  • Decodes는 주어진 프레임을 출력 오디오 웨이브폼으로 디코딩합니다. 참고로 출력은 —
  • input. 이 경우, 끝에 있는 불필요한 단계는 제거할 수 있습니다. —

반환값

MimiDecoderOutput 또는 tuple(torch.Tensor)

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

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

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

  • audio_values (torch.Tensor, shape (batch_size, audio_channels, num_samples), 선택 사항) — Mimi의 decoder 부분을 사용하여 얻은 디코딩된 오디오 값입니다.

  • decoder_past_key_values (Cache, 선택) — 시퀀스 디코딩을 가속화하기 위해 사용할 수 있는 사전 계산된 hidden-states(셀프 어텐션 블록의 key와 value)입니다. 일반적으로 use_cache=True 또는 config.use_cache=True일 때, 이전 디코딩 단계에서 모델이 반환한 past_key_values로 구성됩니다.

    모델은 입력으로 제공된 것과 동일한 캐시 형식을 출력합니다.

    past_key_values를 사용하는 경우, 사용자는 선택적으로 마지막 audio_values 또는 `audio_codes`만 입력할 수 있습니다(이 모델에 과거 키 값 상태가 제공되지 않은 것들).

  • hidden_states (tuple(torch.Tensor), 선택 사항, output_hidden_states=True일 때 반환됨) — 각 레이어의 출력과 그 입력을 포함한 decoder transformer의 hidden states입니다.

  • attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True일 때 반환됨) — 각 decoder transformer 레이어의 Attention 가중치.

Update on GitHub