Transformers documentation
Mimi
تمت مساهمة هذا النموذج في Hugging Face Transformers في 2024-09-18.
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.
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_valuesMimiConfig
فئة transformers.MimiConfig
< 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 = 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.configMimiEncoderConfig
فئة transformers.MimiEncoderConfig
< 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 = 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
< 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 = 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
< source >( config: MimiConfig )
المعاملات
- config (MimiConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Mimi، وهو ترميز صوتي عصبي.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
decode
< source >( 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
< source >( 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
< source >( 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_valuesMimiEncoderModel
فئة transformers.MimiEncoderModel
< source >( config: MimiEncoderConfig )
المعاملات
- config (MimiEncoderConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نصف المُشفِّر في Mimi: مُشفِّر SEANet، ومحوّل المُشفِّر، والخفض، من الصوت إلى الكمّات المستمرة.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( 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
< source >( config: MimiDecoderConfig )
المعاملات
- config (MimiDecoderConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نصف المُفكِّك في Mimi: رفع العينة، مُحوِّل المُفكِّك، ومُفكِّك SEANet، من الكمّانات المستمرة إلى الصوت.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( 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) — أوزان الانتباه لكل طبقة محوّل المُفكِّك.