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.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

تمت مساهمة هذا النموذج في Hugging Face Transformers في 2024-09-18.

FlashAttention SDPA

Mimi

Mimi هو نموذج ترميز صوتي عصبي يتوفر بنسخ مُسبقة التدريب ومكمّمة، مصمَّم لتمثيل الكلام بكفاءة وضغطه. يعمل النموذج بمعدل 1.1 كيلوبت في الثانية مع معدل إطار 12 هرتز، ويعتمد على معمارية مُرمِّز-مُفكِّك تجميعي (Convolutional Encoder-Decoder) مقترنة بمكمِّم متجهي متبقي (Residual Vector Quantizer) يتألف من 16 دفتر رموز. يُخرج Mimi تدفّقي رموز مزدوجين، أي دلالي وصوتي، لتحقيق التوازن بين الغنى اللغوي وإعادة البناء عالية الدقة. تشمل الميزات الرئيسية مُرمِّز تدفقي سببي (Causal Streaming Encoder) للاستخدام منخفض الكمون، وتوكنيز مزدوج المسار (Dual-path Tokenization) لتوليد مرن في المراحل اللاحقة، وجاهزية التكامل مع نماذج الكلام الكبيرة مثل 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) — تقليل الأبعاد في الفروع المتبقية.
  • trim_right_ratio (float، اختياري، القيمة الافتراضية 1.0) — النسبة المستخدمة لقص الجزء الأيمن من الالتفاف المحوّر في إطار الإعداد use_causal_conv = True. إذا كانت تساوي 1.0، فهذا يعني أن كل عملية القص تتم على الجانب الأيمن.
  • codebook_size (int، اختياري، القيمة الافتراضية 2048) — عدد كتيّبات الرموز المتوازية التي يستخدمها النموذج.
  • codebook_dim (int، اختياري، القيمة الافتراضية 256) — أبعاد متجه التضمين لكل كتاب رموز.
  • num_quantizers (int، اختياري، القيمة الافتراضية 32) — عدد قنوات المُكمِّم، أو كُتُب الرموز، في المُكمِّم.
  • use_conv_shortcut (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استخدام طبقة تلافيفية كاتصال «تخطٍّ» داخل كتلة MimiResnetBlock. إذا كانت القيمة False، فسيتم استخدام دالة الهوية، مما يوفر اتصالاً متبقيًا عامًا.
  • vector_quantization_hidden_dimension (int، اختياري، القيمة الافتراضية 256) — أبعاد التمثيل الوسيط في فضاء التكميم المتجهي المتبقي.
  • num_semantic_quantizers (int، اختياري، القيمة الافتراضية 1) — عدد قنوات مُكمِّم الدلالات، أو كُتُب الرموز، في مُكمِّم الدلالات. يجب أن يكون أقل من num_quantizers.
  • upsample_groups (int، اختياري، القيمة الافتراضية 512) — إذا كان frame_rate!=encodec_frame_rate، فيحدد عدد المجموعات المستخدمة في عملية التوسيع للانتقال من معدل إلى آخر.
  • num_hidden_layers (int، اختياري، القيمة الافتراضية 8) — عدد الطبقات المخفية في مُفكِّك Transformer.
  • intermediate_size (int، اختياري، القيمة الافتراضية 2048) — بعد تمثيلات MLP.
  • num_attention_heads (int، اختياري، القيمة الافتراضية 8) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer.
  • num_key_value_heads (int، اختياري، القيمة الافتراضية 8) — هذا هو عدد رؤوس key_value التي يجب استخدامها لتنفيذ Grouped Query Attention. إذا كان num_key_value_heads=num_attention_heads، فسيستخدم النموذج Multi Head Attention (MHA)، وإذا كان num_key_value_heads=1 فسيستخدم النموذج Multi Query Attention (MQA)، وإلا فسيتم استخدام GQA. عند تحويل نقطة تفتيش متعددة الرؤوس إلى نقطة تفتيش GQA، يجب بناء كل مجموعة من رؤوس key و value عن طريق تجميع المتوسط لجميع الرؤوس الأصلية داخل تلك المجموعة. لمزيد من التفاصيل، راجع هذا الورقة. إذا لم يتم تحديد القيمة، فستكون القيمة الافتراضية هي num_attention_heads.
  • head_dim (int، اختياري) — بعد بُعد رأس الانتباه. إذا كان 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) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة.
  • use_cache (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب على النموذج إرجاع قيم المفاتيح/القيم الأخيرة للانتباه (لا تستخدمها جميع النماذج). لا ينطبق إلا إذا كان config.is_decoder=True أو عندما يكون النموذج نموذجًا توليديًا يعتمد على المُفكِّك فقط.
  • use_streaming (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استخدام وضع البث. إذا كانت القيمة True، فسيُرجع أسلوب ترميز النموذج (encode) ذاكرة التخزين المؤقت للملء (padding cache) التي يمكن استخدامها في استدعاء لاحق لأسلوب الترميز.
  • rope_parameters (Union[~modeling_rope_utils.RopeParameters, dict], اختياري) — قائمة تحتوي على معاملات التهيئة الخاصة بتضمينات RoPE. يجب أن تحتوي القائمة على قيمة لـ rope_theta، ومعاملات اختيارية تُستخدم للتوسيع في حال رغبتَ في استخدام RoPE مع max_position_embeddings أطول.
  • sliding_window (int، اختياري، القيمة الافتراضية 250) — حجم نافذة الانتباه المنزلقة. إذا كانت None، فلا تُطبَّق نافذة منزلقة.
  • attention_dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.0) — نسبة إسقاط (dropout) لاحتمالات الانتباه.
  • layer_scale_initial_scale (float, اختياري، القيمة الافتراضية 0.01) — المقياس المستخدم في طبقات الانتباه الذاتي. 0.1 للنموذج الأساسي، و1e-6 للنماذج الكبيرة. اضبط القيمة على 0 لتعطيل مقياس الطبقة.
  • attention_bias (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استخدام انحياز في طبقات الإسقاط للاستعلام والمفتاح والقيمة والمخرجات أثناء الانتباه الذاتي.
  • tie_word_embeddings (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب ربط ترميزات الأوزان (weight embeddings) وفقاً لخريطة tied_weights_keys الخاصة بالنموذج.

هذه فئة الإعدادات المخزنة لإعدادات نموذج MimiModel. تُستخدم لاستحداث نموذج Mimi وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ kyutai/mimi

ترث كائنات التهيئة من 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. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق 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().

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 من الشكل (batch_size, channels, sequence_length)، اختياري) — مدخلات صوت خام تم تحويلها إلى Float.
  • padding_mask (torch.Tensor من الشكل (batch_size, sequence_length)، اختياري) — يُبيّن المدخلات التي يجب تجاهلها بسبب الحشو، حيث تكون العناصر إما 1 لـ غير مقنّعة أو 0 لـ مقنّعة.
  • num_quantizers (int, اختياري) — عدد مُكمّسات (أي كُتُب الرموز) المراد استخدامها. افتراضيًا، تُستخدم جميع المُكمّسات.
  • audio_codes (torch.LongTensor من الشكل (batch_size, num_quantizers, codes_length)، اختياري) — تضمينات رموز منفصلة محسوبة باستخدام model.encode.
  • encoder_past_key_values (Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي) يمكن استخدامها لتسريع فك الترميز التسلسلي لمحوّل المُشفّر. يتكوّن هذا عادةً من past_key_values التي يعيدها النموذج في مرحلة سابقة من فك الترميز، عندما يكون use_cache=True أو config.use_cache=True.

    سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.

    عند استخدام past_key_values، يمكن للمستخدم اختيارياً إدخال audio_values الأخيرة فقط أو `audio_codes (تلك التي لم تُقدَّم حالات مفاتيحها السابقة إلى هذا النموذج).

  • decoder_past_key_values (Cache, اختياري) — حالات مخفية محسوبة مسبقًا (مفاتيح وقيم في كتل الانتباه الذاتي) يمكن استخدامها لتسريع فك الترميز التسلسلي لمحوّل المُفكِّك. يتكوّن هذا عادةً من 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__.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن Module بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

  • audio_codes (torch.LongTensor من الشكل (batch_size, num_quantizers, codes_length)، اختياري) — ترميزات رمزية منفصلة محسوبة باستخدام model.encode.

  • audio_values (torch.Tensor من الشكل (batch_size, sequence_length)، اختياري) — قيم الصوت المُفكّكة، المُستخرجة باستخدام جزء المُفكّك في Mimi.

  • encoder_past_key_values (Cache، اختياري) — حالات مخفية محسوبة مسبقاً (المفاتيح والقيم في كتل الانتباه الذاتي) يمكن استخدامها لتسريع فك الترميز التسلسلي لمحوّل المُشفِّر. يتكوّن هذا عادةً من past_key_values التي يعيدها النموذج في مرحلة سابقة من فك الترميز، عندما يكون use_cache=True أو config.use_cache=True.

    سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.

    عند استخدام past_key_values، يمكن للمستخدم اختيارياً إدخال audio_values الأخيرة فقط أو `audio_codes (تلك التي لم تُقدَّم حالات مفاتيحها السابقة إلى هذا النموذج).

  • decoder_past_key_values (Cache، اختياري) — حالات مخفية محسوبة مسبقاً (المفاتيح والقيم في كتل الانتباه الذاتي) يمكن استخدامها لتسريع فك الترميز التسلسلي لمحوّل المُفكِّك. يتكوّن هذا عادةً من past_key_values التي يعيدها النموذج في مرحلة سابقة من فك الترميز، عندما يكون use_cache=True أو config.use_cache=True.

    سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.

    عند استخدام 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: مُشفِّر SEANet، ومحوّل المُشفِّر، والخفض، من الصوت إلى الكمّات المستمرة.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق 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 من الشكل (batch_size, channels, sequence_length)) — قيمات عشرية لموجة الصوت المدخلة.
  • padding_mask (torch.Tensor من الشكل (batch_size, channels, sequence_length)، اختياري) — يُحدد المدخلات التي يجب تجاهلها بسبب الحشو، حيث تكون العناصر إما 1 لـ غير مقنّعة أو 0 لـ مقنّعة.
  • past_key_values (Cache، اختياري) — حالات مخفية محسوبة مسبقاً (المفاتيح والقيم في كتل الانتباه الذاتي) لمحوّل المُشفِّر، وتُستخدم لتسريع التشفير المتدفق.
  • padding_cache (MimiConv1dPaddingCache، اختياري) — ذاكرة مؤقتة للتبطين الخاصة باللافلاتات السببية، تُستخدم للتشفير البثي.
  • use_streaming (bool, اختياري) — ما إذا كان سيتم الترميز في وضع البث، مع إرجاع الكاشات لتمريرها إلى الاستدعاء التالي.
  • Encodes موجة الصوت المدخلة إلى كامنات مستمرة من الشكل (batch_size, latent_dim, frames). —

يعيد

MimiEncoderModelOutput أو tuple(torch.Tensor)

نموذج MimiEncoderModelOutput أو مجموعة مرتبة من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة تعتمد على التهيئة (MimiConfig) والمدخلات.

تُعيد طريقة MimiEncoderModel الخاصة بالتقديم (forward) تعريف الطريقة الخاصة __call__.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن Module بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

  • latents (torch.Tensor من الشكل (batch_size, latent_dim, frames)) — كامنات مستمرة للصوت، إطار واحد لكل config.frame_size من عينات الصوت.
  • past_key_values (Cache، اختياري) — حالات مخفية محسوبة مسبقاً (المفاتيح والقيم في كتل الانتباه الذاتي) لمحوّل المُشفِّر، تُعاد عند البث.
  • padding_cache (MimiConv1dPaddingCache، اختياري) — ذاكرة مؤقتة للتبطين (Padding) للعمليات التجميعية السببية (causal convolutions) في MimiConv1d، لدعم البث (streaming) عبر تبطين الذاكرة المؤقتة.
  • hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند output_hidden_states=True) — حالات المخفية لمحوّل المُشفِّر عند مخرج كل طبقة بالإضافة إلى مدخلها.
  • attentions (tuple(torch.Tensor)، اختياري، يُعاد عند output_attentions=True) — أوزان الانتباه لكل طبقة محوّل المُشفِّر.

MimiDecoderModel

فئة transformers.MimiDecoderModel

< >

( config: MimiDecoderConfig )

المعاملات

  • config (MimiDecoderConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نصف المُفكِّك في Mimi: رفع العينة، مُحوِّل المُفكِّك، ومُفكِّك SEANet، من الكمّانات المستمرة إلى الصوت.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق 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 من الشكل (batch_size, hidden_size, frames)) — متغيرات مستمرة (latents) لفك الترميز، كما تم حسابها بواسطة MimiModel.decode().
  • padding_mask (torch.Tensor من الشكل (batch_size, channels, sequence_length)، اختياري) — يُحدد المدخلات التي يجب تجاهلها بسبب الحشو، حيث تكون العناصر إما 1 لـ غير مقنّعة أو 0 لـ مقنّعة.
  • past_key_values (Cache، اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي) لمحوّل المُفكِّك، وتُستخدم لتسريع فك الترميز المتدفق.
  • Decodes الإطارات المعطاة إلى موجة صوتية ناتجة. لاحظ أن الناتج قد يكون أكبر قليلاً من —
  • input. في هذه الحالة، يمكن حذف أي خطوات إضافية في النهاية. —

يعيد

MimiDecoderOutput أو tuple(torch.Tensor)

إخراج MimiDecoderOutput أو مجموعة (tuple) من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة تعتمد على الإعداد (MimiConfig) والمدخلات.

تُعيد طريقة MimiDecoderModel الخاصة بالتقديم (forward) تعريف الطريقة الخاصة __call__.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن Module بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

  • audio_values (torch.Tensor من الشكل (batch_size, audio_channels, num_samples)، اختياري) — قيم الصوت المُفكّكة، المُستخرجة باستخدام جزء فكّ الترميز في Mimi.

  • decoder_past_key_values (Cache، اختياري) — حالات مخفية محسوبة مسبقاً (المفاتيح والقيم في كتل الانتباه الذاتي) يمكن استخدامها لتسريع فك الترميز التسلسلي لمحوّل المُفكِّك. يتكوّن هذا عادةً من past_key_values التي يعيدها النموذج في مرحلة سابقة من فك الترميز، عندما يكون use_cache=True أو config.use_cache=True.

    سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.

    عند استخدام past_key_values، يمكن للمستخدم اختيارياً إدخال audio_values الأخيرة فقط أو `audio_codes (تلك التي لم تُقدَّم حالات مفاتيحها السابقة إلى هذا النموذج).

  • hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند output_hidden_states=True) — حالات المخفية لمحوّل المُفكِّك عند مخرج كل طبقة بالإضافة إلى مدخلها.

  • attentions (tuple(torch.Tensor)، اختياري، يُعاد عند output_attentions=True) — أوزان الانتباه لكل طبقة محوّل المُفكِّك.

Update on GitHub