Transformers documentation
CohereAsr
تمت مساهمة هذا النموذج في Hugging Face Transformers في 2026-03-26.
CohereAsr
نظرة عامة
نموذج Coheere ASR، الذي أصدرته شركة Cohere في 26 مارس 2026، هو نموذج لتعرف الكلام مبني على معمارية Conformer، ويعتمد على بنية مشفّر-مفكّك (encoder-decoder) ويضم 2 مليار معامل.
تمت مساهمة هذا النموذج من قِبَل Eustache Le Bihan.
الاستخدام
نسخة قصيرة
from transformers import AutoProcessor, CohereAsrForConditionalGeneration
from transformers.audio_utils import load_audio
revision = "refs/pr/6"
processor = AutoProcessor.from_pretrained("CohereLabs/cohere-transcribe-03-2026", revision=revision)
model = CohereAsrForConditionalGeneration.from_pretrained("CohereLabs/cohere-transcribe-03-2026", device_map="auto", revision=revision)
audio = load_audio(
"https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/bcn_weather.mp3",
sampling_rate=16000,
)
inputs = processor(audio, sampling_rate=16000, return_tensors="pt", language="en").to(model.device)
inputs.to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, max_new_tokens=256)
text = processor.decode(outputs, skip_special_tokens=True)
print(text)التحكم في علامات الترقيم
مرّر punctuation=False للحصول على مخرجات بحروف صغيرة بدون علامات ترقيم.
inputs_pnc = processor(audio, sampling_rate=16000, return_tensors="pt", language="en", punctuation=True).to(model.device)
inputs_nopnc = processor(audio, sampling_rate=16000, return_tensors="pt", language="en", punctuation=False).to(model.device)نسخة نصية طويلة
بالنسبة إلى الصوت الذي يتجاوز max_audio_clip_s الخاص بمستخرج الميزات، يقوم مستخرج الميزات تلقائيًا بتقسيم الموجة الصوتية إلى مقاطع.
يعيد المعالج تجميع نصوص المقاطع الفردية باستخدام audio_chunk_index المُعاد.
audio_long = load_audio(
"https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/obama_first_45_secs.mp3",
sampling_rate=16000,
)
inputs = processor(audio=audio_long, return_tensors="pt", language="en", sampling_rate=16000).to(model.device)
audio_chunk_index = inputs.get("audio_chunk_index")
inputs.to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, max_new_tokens=256)
text = processor.decode(outputs, skip_special_tokens=True, audio_chunk_index=audio_chunk_index, language="en")
print(text)الاستدلال المجمّع
يمكن معالجة ملفات صوتية متعددة في استدعاء واحد. عندما يخلط الدفعة بين الصوت قصير المدة وطويل المدة، يتولى المعالج مهمة التقطيع وإعادة التجميع.
audio_short = load_audio(
"https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/bcn_weather.mp3",
sampling_rate=16000,
)
audio_long = load_audio(
"https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/obama_first_45_secs.mp3",
sampling_rate=16000,
)
inputs = processor([audio_short, audio_long], sampling_rate=16000, return_tensors="pt", language="en").to(model.device)
audio_chunk_index = inputs.get("audio_chunk_index")
inputs.to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, max_new_tokens=256)
text = processor.decode(
outputs, skip_special_tokens=True, audio_chunk_index=audio_chunk_index, language="en"
)
print(text)نسخة غير إنجليزية
حدد رمز اللغة المطلوب تحويلها إلى نص في أي من اللغات المدعومة الأربع عشرة.
audio_es = load_audio(
"https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/fleur_es_sample.wav",
sampling_rate=16000,
)
inputs = processor(audio_es, sampling_rate=16000, return_tensors="pt", language="es", punctuation=True).to(model.device)
inputs.to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, max_new_tokens=256)
text = processor.decode(outputs, skip_special_tokens=True)
print(text)CohereAsrConfig
فئة transformers.CohereAsrConfig
< 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 = 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 = Trueencoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonevocab_size: int = 16384hidden_size: int = 1024num_hidden_layers: int = 8num_attention_heads: int = 8num_key_value_heads: int | None = Noneintermediate_size: int = 4096hidden_act: str = 'relu'max_position_embeddings: int = 1024pad_token_id: int | None = 2eos_token_id: int | None = 3bos_token_id: int | None = 4use_cache: bool = Trueinitializer_range: float = 0.02attention_dropout: float | int = 0.0attention_bias: bool = Truedecoder_start_token_id: int | None = Nonetie_word_embeddings: bool = Falsehead_dim: int | None = None )
المعاملات
- is_encoder_decoder (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان النموذج يُستخدم كمُشفِّر/مُفكِّك أم لا. - encoder_config (
Union[dict, ~configuration_utils.PreTrainedConfig]، اختياري) — كائن الإعداد أو قاموس العمود الفقري للترميز. - vocab_size (
int، اختياري، القيمة الافتراضية16384) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطةinput_ids. - hidden_size (
int، اختياري، القيمة الافتراضية1024) — أبعاد التمثيلات المخفية. - num_hidden_layers (
int، اختياري، القيمة الافتراضية8) — عدد الطبقات المخفية في مُفكِّك Transformer. - num_attention_heads (
int، اختياري، القيمة الافتراضية8) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer. - num_key_value_heads (
int, اختياري) — هذا هو عدد رؤوس 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 عن طريق meanpooling جميع الرؤوس الأصلية داخل تلك المجموعة. لمزيد من التفاصيل، راجع هذا الورقة. إذا لم يتم تحديد القيمة، فسيتم افتراضnum_attention_heads. - intermediate_size (
int، اختياري، القيمة الافتراضية4096) — أبعاد تمثيلات MLP. - hidden_act (
str، اختياري، القيمة الافتراضيةrelu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال،"gelu"،"relu"،"silu"، وغيرها. - max_position_embeddings (
int، اختياري، القيمة الافتراضية1024) — أقصى طول تسلسل قد يُستخدم معه هذا النموذج على الإطلاق. - pad_token_id (
int، اختياري، القيمة الافتراضية2) — معرّف الرمز المستخدم للتعبئة في المفردات. - eos_token_id (
int, اختياري، القيمة الافتراضية3) — معرّف الرمز المستخدم لنهاية التدفق في المفردات. - bos_token_id (
int، اختياري، القيمة الافتراضية4) — معرّف الرمز المستخدم لبدء البث في المفردات. - use_cache (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب على النموذج إرجاع قيم المفاتيح/القيم الأخيرة للانتباه (لا تستخدمها جميع النماذج). لا ينطبق إلا إذا كانconfig.is_decoder=Trueأو إذا كان النموذج نموذجًا توليديًا يعتمد على المُفكِّك فقط. - initializer_range (
float، اختياري، القيمة الافتراضية0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان. - attention_dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.0) — نسبة إسقاط (dropout) لاحتمالات الانتباه. - attention_bias (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم استخدام انحياز في طبقات الإسقاط للاستعلام والمفتاح والقيمة والمخرجات أثناء الانتباه الذاتي. - decoder_start_token_id (
int, اختياري) — إذا بدأ نموذج المُشفِّر-المُفكِّك (encoder-decoder) عملية فك التشفير برمز مختلف عنbos، فإن هذا هو المعرّف الخاص بذلك الرمز. - tie_word_embeddings (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم ربط ترميزات الأوزان وفقاً لخريطةtied_weights_keysالخاصة بالنموذج. - head_dim (
int، اختياري) — بعد بُعد رأس الانتباه. إذا كان None، فسيتم افتراضه على hidden_size // num_attention_heads
هذه فئة الإعدادات المخزنة لإعدادات نموذج CohereAsrModel. تُستخدم لاستحداث نموذج Cohere Asr وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيُنتج إعدادات مشابهة لتلك الخاصة بـ CohereLabs/cohere-transcribe-03-2026
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
CohereAsrFeatureExtractor
فئة transformers.CohereAsrFeatureExtractor
< source >( feature_size = 128sampling_rate = 16000hop_length = 160n_fft = 512win_length = 400preemphasis = 0.97padding_value = 0.0dither = 1e-05max_audio_clip_s = 35.0overlap_chunk_second = 5.0min_energy_window_samples = 1600**kwargs )
المعاملات
- feature_size (
int، اختياري، القيمة الافتراضية 128) — أبعاد الميزات للميزات المستخرجة. - sampling_rate (
int, اختياري، القيمة الافتراضية 16000) — معدل أخذ العينات الذي يجب أن تُرقَم به ملفات الصوت، ويُعبَّر عنه بالهرتز (Hz). - hop_length (
int، اختياري، القيمة الافتراضية 160) — طول النوافذ المتداخلة المستخدمة في تحويل فورييه الزمني القصير (STFT) للحصول على معاملات ترددات ميل. - n_fft (
int، اختياري، القيمة الافتراضية 512) — حجم تحويل فورييه. - win_length (
int، اختياري، القيمة الافتراضية 400) — طول النافذة لحساب تحويل فورييه الزمني القصير (STFT). - preemphasis (
float، اختياري، القيمة الافتراضية 0.97) — معامل مرشح التمهيد. القيمة 0.0 تعني عدم استخدام مرشح التمهيد. - padding_value (
float، اختياري، القيمة الافتراضية 0.0) — قيمة الحشو المستخدمة لحشو الصوت. يجب أن تتوافق مع الصمت. - dither (
float، اختياري، القيمة الافتراضية 1e-05) — كمية ضجيج التذبذب الحتمي (dither) الذي يُضاف قبل استخراج الميزات. يُزرع كل عينة بناءً على طول الموجة الصالحة لها، بحيث يكون التذبذب غير متغير بغض النظر عن تكوين الدفعة (batch). اضبطه على 0.0 لتعطيله. - max_audio_clip_s (
float، اختياري، القيمة الافتراضية 35.0) — الحد الأقصى للمدة بالثواني لكل مقطع صوتي فردي. يتم تقسيم الصوت الذي تتجاوز مدتهmax_audio_clip_s - overlap_chunk_secondعند حدود مبنية على الطاقة. - overlap_chunk_second (
float، اختياري، القيمة الافتراضية 5.0) — الحجم بالثواني لنافذة البحث عن الحدود المستخدمة عند تقسيم الصوت الطويل. هذا ليس تداخلاً فعلياً بين المقاطع — بل يحدد مدى الرجوع إلى الوراء من حد المقطع للبحث عن نقطة تقسيم هادئة. - min_energy_window_samples (
int، اختياري، القيمة الافتراضية 1600) — الحجم بالعينات للنافذة المنزلقة المستخدمة لإيجاد أهدأ نقطة عند تقسيم مقاطع الصوت.
ينشئ مستخرج ميزات CohereAsr.
يرث مستخرج الميزات هذا من SequenceFeatureExtractor الذي يحتوي على معظم الطرق الرئيسية. ينبغي للمستخدمين الرجوع إلى هذه الفئة الأصلية لمزيد من المعلومات حول تلك الطرق.
تستخرج هذه الفئة ميزات بنك مرشحات ميل من الكلام الخام باستخدام تنفيذ مخصص عبر numpy لتحويل Short Time Fourier Transform، والذي ينبغي أن يطابق ما يعادله في pytorch وهو torch.stft.
__call__
< source >( 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. - pad_to_multiple_of (
int, اختياري, الافتراضي هو None) — إذا تم ضبطه، سيتم توسيط التسلسل إلى مضاعف للقيمة المُقدَّمة.يُعدّ هذا مفيدًا بشكل خاص لتفعيل استخدام نوى التينسور (Tensor Cores) على أجهزة NVIDIA التي تتمتع بقابلية معالجة
>= 7.5(Volta)، أو على وحدات TPU التي تستفيد من أن تكون أطوال التسلسلات مضاعفات للعدد 128. - return_attention_mask (
bool, اختياري) — ما إذا كان يجب إرجاع قناع الانتباه. إذا تُركت القيمة الافتراضية، فسيتم إرجاع قناع الانتباه وفقًا للقيمة الافتراضية الخاصة بمعالج الميزات (feature_extractor) المعني.فيما يتعلق بنماذج CohereAsr، يجب دائماً تمرير
attention_maskعند الاستدلال الدُفعي (batched inference) لتجنب الأخطاء الدقيقة. - return_tensors (
strأو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات بدلاً من قائمة من الأعداد الصحيحة في بايثون. القيم المقبولة هي:'tf': إرجاع كائناتtf.constantمن TensorFlow.'pt': إرجاع كائناتtorch.Tensorمن PyTorch.'np': إرجاع كائناتnp.ndarrayمن نوع Numpy.
- sampling_rate (
int, اختياري) — معدل أخذ العينات الذي تم به أخذ عينات مدخلraw_speech. يُوصى بشدة بتمريرsampling_rateعند استدعاء الأمامي لمنع الأخطاء الصامتة وتمكين خط أنابيب التعرف التلقائي على الكلام. - padding_value (
float، اختياري، القيمة الافتراضية 0.0) — القيمة المستخدمة لملء قيم الحشو / متجهات الحشو. - do_normalize (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم تطبيع المدخلات إلى متوسط صفري وتباين وحدة. يمكن أن يساعد التطبيع في تحسين أداء النموذج بشكل كبير. - device (
str، اختياري، القيمة الافتراضية'cpu') — يحدد الجهاز المستخدم لحساب طيف اللوغ-ميل (log-mel spectrogram) لإشارات الصوت في طريقة_torch_extract_fbank_features. (على سبيل المثال، “cpu” أو “cuda”) - return_token_timestamps (
bool, اختياري, الافتراضي هوNone) — غير مستخدم. استخدمreturn_attention_maskبدلاً منه، حيث يمكن استنتاج عدد الإطارات منه.ما إذا كان يجب إرجاع عدد الإطارات (frames) لـ raw_speech المُدخل. يمكن استخدام هذه num_frames من قِبَل النموذج لحساب الطوابع الزمنية على مستوى الكلمة.
الطريقة الرئيسية لتحويل البيانات إلى ميزات (Featurization) وتجهيزها للنموذج، سواءً كانت تسلسلاً واحداً أو عدة تسلسلات. يستخدم التنفيذ مكتبة PyTorch لحساب STFT إذا كانت متاحة، وإلا فسيتم استخدام طريقة أبطأ تعتمد على NumPy.
CohereAsrProcessor
فئة transformers.CohereAsrProcessor
< source >( feature_extractortokenizer )
ينشئ CohereAsrProcessor الذي يجمع مستخرج الميزات ومجزئ الرموز في معالج واحد.
يوفر CohereAsrProcessor جميع وظائف CohereAsrFeatureExtractor وTokenizersBackend. راجع ~CohereAsrFeatureExtractor و~TokenizersBackend لمزيد من المعلومات.
__call__
< source >( audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]language: strtext: str | list[str] | list[list[str]] | None = Nonepunctuation: bool = Truesampling_rate: int | None = None**kwargs: *<class 'transformers.models.cohere_asr.processing_cohere_asr.CohereAsrProcessorKwargs'> )
المعاملات
- audio (
Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]]) — الصوت أو مجموعة الأصوات التي سيتم تجهيزها. يمكن أن يكون كل صوت مصفوفة NumPy أو متجه PyTorch. في حالة استخدام مصفوفة NumPy/متجه PyTorch، يجب أن يكون شكل كل صوت (C, T)، حيث C هو عدد القنوات، وT هو طول العينة للصوت. - language (
str) — رمز اللغة (مثل"en"،"es"،"fr") المستخدم لبناء موجه المُفكِّك. يقوم المعالج ببناء موجه المُفكِّك الكامل ويعيدdecoder_input_idsإلى جانب سمات الصوت. - text (
Union[str, list[str], list[list[str]]]، اختياري) — التسلسل أو الدفعة من التسلسلات المراد ترميزها. يمكن أن يكون كل تسلسل نصاً أو قائمة من النصوص (نص مُقسَّم مسبقاً إلى رموز). إذا مرّرت مدخلاً مُقسَّماً مسبقاً إلى رموز، فعيّنis_split_into_words=Trueلتجنّب الغموض مع المدخلات المُجمَّعة في دفعات. - punctuation (
bool، الافتراضيTrue) — ما إذا كان سيتم تفعيل علامات الترقيم في موجه المُفكِّك. - sampling_rate (
int, اختياري) — معدل أخذ العينات للصوت المُدخل بالهرتز. يجب أن يتطابق هذا المعدل مع معدل أخذ العينات المتوقع من قِبل مستخرج الميزات (الافتراضي هو 16000 هرتز). إذا تم تقديمه، فسيتم التحقق منه مقابل معدل أخذ العينات المتوقع من المعالج، وسيتم رفع خطأ إذا لم يتطابقا. أما إذا لم يتم تقديمه، فسيتم إصدار تحذير وسيُفترض معدل أخذ العينات الافتراضي. - return_tensors (
strأو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات من إطار عمل محدد. القيم المقبولة هي:'pt': إرجاع كائناتtorch.Tensorمن PyTorch.'np': إرجاع كائناتnp.ndarrayمن NumPy.
- **kwargs (ProcessingKwargs، اختياري) — خيارات معالجة إضافية لكل نمط (نص، صور، مقاطع فيديو، صوت). تُدرج المعلمات الخاصة بالنموذج أعلاه؛ راجع فئة TypedDict للحصول على القائمة الكاملة للحجج المدعومة.
CohereAsrPreTrainedModel
فئة transformers.CohereAsrPreTrainedModel
< source >( config: PreTrainedConfig*inputs**kwargs )
المعاملات
- config (PreTrainedConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
قيمة وهمية لمسار منقّط (مثل torch.float32): سلاسل الوصول إلى السمات، والاستدعاءات تتصرف كمُزيّنات (decorators) مرّرة، وrepr هو المسار المنقّط، وعند استخدامه كصنف أساسي يُستبدل بصنف أساسي من نوع type عادي (بموجب __mro_entries__ في PEP 560)، بحيث تحتفظ الصنوف الفرعية الحقيقية بفئة ميتا (metaclass) عادية، وتقرأ inspect.signature دالة __init__ الحقيقية الخاصة بها بدلاً من تلك الوهمية.
CohereAsrModel
فئة transformers.CohereAsrModel
< source >( config: CohereAsrConfig )
المعاملات
- config (CohereAsrConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Cohere Asr الأساسي الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_features: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.EncoderDecoderCache | None = Nonedecoder_inputs_embeds: tuple[torch.Tensor] | None = Nonedecoder_position_ids: tuple[torch.LongTensor] | None = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqModelOutput or tuple(torch.Tensor)
المعاملات
- input_features (
torch.Tensorمن الشكل(batch_size, audio_length)) — قيم عشرية لموجة الصوت الخام. يمكن الحصول على موجة الصوت الخام عن طريق تحميل ملف صوتي من نوع.flacأو.wavفي مصفوفة من النوعlist[float]، أوnumpy.ndarrayأوtorch.Tensor، على سبيل المثال عبر مكتبة torchcodec (pip install torchcodec) أو مكتبة soundfile (pip install soundfile). ولتحضير المصفوفة إلىinput_features، يجب استخدام AutoFeatureExtractor لإضافة الحشو والتحويل إلى متجه من النوعtorch.Tensor. - attention_mask (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع في[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- decoder_input_ids (
torch.LongTensorبشكل(batch_size, target_sequence_length), اختياري) — مؤشرات رموز تسلسل مدخلات المُفكِّك في قاموس الكلمات.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- decoder_attention_mask (
torch.LongTensorof shape(batch_size, target_sequence_length), اختياري) — قناع لتجنّب تنفيذ الانتباه على فهارس رموز معينة. افتراضيًا، يُستخدم قناع سببي (causal mask) للتأكد من أن النموذج لا يستطيع النظر إلا إلى المدخلات السابقة من أجل التنبؤ بالمستقبل. - encoder_outputs (
tuple[tuple[torch.Tensor]]، اختياري) — مجموعة (توبل) تتكون من (last_hidden_state، اختياري:hidden_states، اختياري:attentions)last_hidden_stateذو الشكل(batch_size, sequence_length, hidden_size)، اختياري) هو تسلسل من حالات المخفية (hidden-states) عند مخرج الطبقة الأخيرة من المشفر. يُستخدم في الانتباه المتقاطع (cross-attention) داخل المُفكِّك (decoder). - past_key_values (
~cache_utils.EncoderDecoderCache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً منpast_key_valuesالذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندما يكونuse_cache=Trueأوconfig.use_cache=True.يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير
past_key_values، فسيتم تهيئة DynamicCache افتراضياً.سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.
عند استخدام
past_key_values، يُتوقَّع من المستخدم إدخالinput_idsغير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد(batch_size, unprocessed_length)بدلاً من جميعinput_idsبأبعاد(batch_size, sequence_length). - decoder_inputs_embeds (
tuple[torch.Tensor]من الشكل(batch_size, target_sequence_length, hidden_size), اختياري) — اختياريًا، بدلاً من تمريرdecoder_input_idsيمكنك اختيار تمرير تمثيل مضمّن مباشرة. إذاpast_key_valuesمستخدم، فاختياريًا يجب إدخال آخرdecoder_inputs_embedsفقط (انظرpast_key_values). هذا مفيد إذا كنت تريد مزيدًا من التحكم في كيفية تحويلdecoder_input_idsفهارس إلى المتجهات المرتبطة بها أكثر من مصفوفة البحث التضمينية الداخلية للنموذج.إذا لم يتم تعيين كلٍّ من
decoder_input_idsوdecoder_inputs_embeds، فإنdecoder_inputs_embedsيأخذ قيمةinputs_embeds. - decoder_position_ids (
torch.LongTensorمن الشكل(batch_size, target_sequence_length)) — فهارس مواضع رموز كل تسلسل إدخال في تضمينات المواضع. تُستخدم لحساب تضمينات المواضع حتىconfig.decoder_config.max_position_embeddings - use_cache (
bool، اختياري) — إذا تم تعيينه إلىTrue، تُعاد حالات المفاتيح والقيمpast_key_valuesويمكن استخدامها لتسريع فك الترميز (انظرpast_key_values).
يعيد
Seq2SeqModelOutput أو tuple(torch.Tensor)
Seq2SeqModelOutput أو مجموعة مرتبة من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعداد (CohereAsrConfig) والمدخلات.
تُعيد طريقة CohereAsrModel الخاصة بالتقديم (forward) تعريف الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل من حالات الإخفاء عند مخرج الطبقة الأخيرة من فاحم النموذج.إذا تم استخدام
past_key_values، فإن الحالة المخفية الأخيرة فقط من التسلسلات ذات الشكل(batch_size, 1, hidden_size)هي التي تُخرج.past_key_values (
EncoderDecoderCache، اختياري، يُعاد عند تمريرuse_cache=Trueأو عند تعيينconfig.use_cache=True) — إنه كائن من نوع EncoderDecoderCache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها (انظر مدخل
past_key_values) لتسريع فك الترميز التسلسلي.decoder_hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) بأبعاد(batch_size, sequence_length, hidden_size).حالات المخفية (Hidden-states) للوحدة الترميزية (decoder) عند مخرج كل طبقة، بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
decoder_attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
cross_attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه لطبقة الانتباه المتقاطع في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه المتقاطع.
encoder_last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من مُشفِّر النموذج.encoder_hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات المخفية للمشفّر عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
encoder_attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه في المُشفِّر، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
مثال:
>>> import torch
>>> from transformers import AutoFeatureExtractor, CohereAsrModel
>>> from datasets import load_dataset
>>> model = CohereAsrModel.from_pretrained("UsefulSensors/cohere_asr-tiny")
>>> feature_extractor = AutoFeatureExtractor.from_pretrained("UsefulSensors/cohere_asr-tiny")
>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> inputs = feature_extractor(ds[0]["audio"]["array"], return_tensors="pt")
>>> input_features = inputs.input_features
>>> decoder_input_ids = torch.tensor([[1, 1]]) * model.config.decoder_start_token_id
>>> last_hidden_state = model(input_features, decoder_input_ids=decoder_input_ids).last_hidden_state
>>> list(last_hidden_state.shape)
[1, 2, 288]CohereAsrForConditionalGeneration
فئة transformers.CohereAsrForConditionalGeneration
< source >( config: CohereAsrConfig )
المعاملات
- config (CohereAsrConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج CohereAsr مع رأس نمذجة اللغة. يمكن استخدامه للتعرف التلقائي على الكلام.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_features: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.EncoderDecoderCache | None = Nonedecoder_inputs_embeds: tuple[torch.Tensor] | None = Nonedecoder_position_ids: tuple[torch.LongTensor] | None = Noneuse_cache: bool | None = Nonelabels: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqLMOutput or tuple(torch.Tensor)
المعاملات
- input_features (
torch.Tensorمن الشكل(batch_size, audio_length)) — قيم عشرية لموجة الصوت الخام. يمكن الحصول على موجة الصوت الخام عن طريق تحميل ملف صوتي من نوع.flacأو.wavفي مصفوفة من النوعlist[float]، أوnumpy.ndarrayأوtorch.Tensor، على سبيل المثال عبر مكتبة torchcodec (pip install torchcodec) أو مكتبة soundfile (pip install soundfile). ولتحضير المصفوفة إلىinput_features، يجب استخدام AutoFeatureExtractor لإضافة الحشو والتحويل إلى متجه من النوعtorch.Tensor. - attention_mask (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع في[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- decoder_input_ids (
torch.LongTensorبشكل(batch_size, target_sequence_length), اختياري) — مؤشرات رموز تسلسل مدخلات المُفكِّك في قاموس الكلمات.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- decoder_attention_mask (
torch.LongTensorof shape(batch_size, target_sequence_length), اختياري) — قناع لتجنّب تنفيذ الانتباه على فهارس رموز معينة. افتراضيًا، يُستخدم قناع سببي (causal mask) للتأكد من أن النموذج لا يستطيع النظر إلا إلى المدخلات السابقة من أجل التنبؤ بالمستقبل. - encoder_outputs (
tuple[tuple[torch.Tensor]]، اختياري) — مجموعة (توبل) تتكون من (last_hidden_state، اختياري:hidden_states، اختياري:attentions)last_hidden_stateذو الشكل(batch_size, sequence_length, hidden_size)، اختياري) هو تسلسل من حالات المخفية (hidden-states) عند مخرج الطبقة الأخيرة من المشفر. يُستخدم في الانتباه المتقاطع (cross-attention) داخل المُفكِّك (decoder). - past_key_values (
~cache_utils.EncoderDecoderCache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً منpast_key_valuesالذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندما يكونuse_cache=Trueأوconfig.use_cache=True.يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير
past_key_values، فسيتم تهيئة DynamicCache افتراضياً.سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.
عند استخدام
past_key_values، يُتوقَّع من المستخدم إدخالinput_idsغير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد(batch_size, unprocessed_length)بدلاً من جميعinput_idsبأبعاد(batch_size, sequence_length). - decoder_inputs_embeds (
tuple[torch.Tensor]من الشكل(batch_size, target_sequence_length, hidden_size), اختياري) — اختياريًا، بدلاً من تمريرdecoder_input_idsيمكنك اختيار تمرير تمثيل مضمّن مباشرة. إذاpast_key_valuesمستخدم، فاختياريًا يجب إدخال آخرdecoder_inputs_embedsفقط (انظرpast_key_values). هذا مفيد إذا كنت تريد مزيدًا من التحكم في كيفية تحويلdecoder_input_idsفهارس إلى المتجهات المرتبطة بها أكثر من مصفوفة البحث التضمينية الداخلية للنموذج.إذا لم يتم تعيين كلٍّ من
decoder_input_idsوdecoder_inputs_embeds، فإنdecoder_inputs_embedsيأخذ قيمةinputs_embeds. - decoder_position_ids (
torch.LongTensorمن الشكل(batch_size, target_sequence_length)) — فهارس مواضع رموز كل تسلسل إدخال في تضمينات المواضع. تُستخدم لحساب تضمينات المواضع حتىconfig.decoder_config.max_position_embeddings - use_cache (
bool، اختياري) — إذا تم تعيينه إلىTrue، تُعاد حالات المفاتيح والقيمpast_key_valuesويمكن استخدامها لتسريع فك الترميز (انظرpast_key_values). - labels (
torch.LongTensorمن الشكل(batch_size, sequence_length)، اختياري) — التسميات لحساب خسارة نمذجة اللغة المقنّعة. يجب أن تكون الفهارس ضمن[0, ..., config.vocab_size]أو -100 (انظرinput_idsdocstring). يتم تجاهل الرموز التي فهارسها مضبوطة على-100(مقنّعة)، ولا تُحسب الخسارة إلا للرموز التي تسمياتها ضمن[0, ..., config.vocab_size].
يعيد
Seq2SeqLMOutput أو tuple(torch.Tensor)
Seq2SeqLMOutput أو مجموعة (tuple) من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعداد (CohereAsrConfig) والمدخلات.
تتجاوز طريقة CohereAsrForConditionalGeneration الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
loss (
torch.Tensorof shape(1,), اختياري, يُعاد عند توفيرlabels) — خسارة نمذجة اللغة.logits (
torch.Tensorمن الشكل(batch_size, sequence_length, config.vocab_size)) — درجات التنبؤ لرأس نمذجة اللغة (درجات لكل رمز في المفردات قبل SoftMax).past_key_values (
EncoderDecoderCache، اختياري، يُعاد عند تمريرuse_cache=Trueأو عند تعيينconfig.use_cache=True) — إنه كائن من نوع EncoderDecoderCache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها (انظر مدخل
past_key_values) لتسريع فك الترميز التسلسلي.decoder_hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) بأبعاد(batch_size, sequence_length, hidden_size).حالات المخفية (Hidden states) لمفكّك الترميز (decoder) عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي (initial embedding).
decoder_attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
cross_attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه لطبقة الانتباه المتقاطع في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه المتقاطع.
encoder_last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من مُشفِّر النموذج.encoder_hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات المخفية للمشفّر عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي.
encoder_attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه في المُشفِّر، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
مثال:
>>> import torch
>>> from transformers import AutoProcessor, CohereAsrForConditionalGeneration
>>> from datasets import load_dataset
>>> processor = AutoProcessor.from_pretrained("UsefulSensors/cohere_asr-tiny")
>>> model = CohereAsrForConditionalGeneration.from_pretrained("UsefulSensors/cohere_asr-tiny")
>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> inputs = processor(ds[0]["audio"]["array"], return_tensors="pt")
>>> input_features = inputs.input_features
>>> generated_ids = model.generate(input_features, max_new_tokens=100)
>>> transcription = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
>>> transcription
'Mr. Quilter is the apostle of the middle classes, and we are glad to welcome his gospel.'