Transformers documentation
LASR
نُشر هذا النموذج في أوراق HF في 16 مايو 2020، وأُضيف إلى مكتبة Hugging Face Transformers في 5 ديسمبر 2025.
LASR
نظرة عامة
LASR هي البنية المعمارية التي تقف خلف MedASR، وهو نموذج لتحويل الكلام إلى نص من Google Health AI تم تدريبه مسبقًا على الإملاء الطبي. وهو مبني على بنية Conformer ومصمم كنقطة انطلاق للمطورين الذين يبنون أدوات إملاء تتضمن مصطلحات طبية، مثل إملاء الأشعة. يؤدي MedASR أداءً جيدًا على الصوتيات الطبية، لكنه قد يواجه صعوبة مع المصطلحات خارج نطاق بيانات تدريبه، مثل أسماء الأدوية غير القياسية أو المراجع الزمنية (التواريخ، أو الأوقات، أو المدد).
الاستخدام
الاستخدام الأساسي
from transformers import pipeline
pipe = pipeline("automatic-speech-recognition", model="google/medasr")
out = pipe("path/to/audio.mp3")
print(out)from datasets import Audio, load_dataset
from transformers import AutoModelForCTC, AutoProcessor
processor = AutoProcessor.from_pretrained("google/medasr")
model = AutoModelForCTC.from_pretrained("google/medasr", device_map="auto")
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
speech_samples = [el['array'] for el in ds["audio"][:5]]
inputs = processor(speech_samples, sampling_rate=processor.feature_extractor.sampling_rate)
inputs.to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs)
print(processor.batch_decode(outputs))التدريب
يُعدّ المثال التالي دفعة من بيانات الصوت والنص، ويمررها عبر نموذج LASR/MedASR، ثم يحسب خسارة التدريب.
from datasets import Audio, load_dataset
from transformers import AutoModelForCTC, AutoProcessor
# Load processor and model
processor = AutoProcessor.from_pretrained("google/medasr")
model = AutoModelForCTC.from_pretrained("google/medasr", device_map="auto")
# Load a small example dataset and prepare batch
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
speech_samples = [el["array"] for el in ds["audio"][:5]]
text_samples = [el for el in ds["text"][:5]]
# Passing `text` to the processor will prepare the `labels`
inputs = processor(audio=speech_samples, text=text_samples, sampling_rate=processor.feature_extractor.sampling_rate)
inputs.to(device, dtype=model.dtype)
outputs = model(**inputs)
outputs.loss.backward()LasrTokenizer
فئة transformers.LasrTokenizer
< source >( eos_token = '</s>'unk_token = '<unk>'pad_token = '<pad>'_spm_precompiled_charsmap = Noneextra_ids = 100additional_special_tokens = Nonevocab = Nonevocab_file = None**kwargs )
المعاملات
- vocab_file (
str, اختياري) — ملف SentencePiece (يحمل عادةً امتداد .spm) يحتوي على المفردات اللازمة لإنشاء مُجزِّئ. - eos_token (
str, اختياري, الافتراضي هو"</s>") — رمز نهاية التسلسل. عند بناء تسلسل باستخدام الرموز الخاصة، لا يُستخدم هذا الرمز لنهاية التسلسل، بل يُستخدم رمز الفاصل (sep_token) لهذا الغرض.عند بناء تسلسل باستخدام الرموز الخاصة، لا يُستخدم هذا الرمز لنهاية التسلسل. الرمز المستخدم هو
sep_token. - unk_token (
str، اختياري، القيمة الافتراضية"<unk>") — رمز المجهول. لا يمكن تحويل الرمز غير الموجود في المفردات إلى معرّف، لذا يُعيَّن هذا الرمز بدلاً منه. - pad_token (
str، اختياري، القيمة الافتراضية"<pad>") — الرمز المستخدم للتعبئة، على سبيل المثال عند تجميع تسلسلات ذات أطوال مختلفة. - extra_ids (
int، اختياري، القيمة الافتراضية 100) — إضافة عدد من المعرّفات الإضافية إلى المفردات لاستخدامها كرموز حدّية. يمكن الوصول إلى هذه الرموز على شكل “id{%d}>” حيث أن ”{%d}” هو رقم يتراوح بين 0 و extra_ids-1. يمكن استرجاع هذه الرموز عن طريق استدعاء طريقة get_sentinel_tokens ويمكن استرجاع معرّفات الرموز عن طريق استدعاء طريقة get_sentinel_token_ids - additional_special_tokens (
list[str]، اختياري) — رموز خاصة إضافية يستخدمها مُجزّئ النص. - vocab (
strأوdictأوlist، اختياري) — قاموس مفردات مخصص. إذا لم يُقدَّم، يتم إنشاء قاموس مفردات أساسي باستخدام الرموز الخاصة.
أنشئ مُرمِّز LASR (مدعوم بمكتبة tokenizers من HuggingFace). مبني على Unigram.
يرث هذا المُجزِّئ من TokenizersBackend الذي يحتوي على معظم الطرق الرئيسية. ينبغي على المستخدمين الرجوع إلى هذه الفئة الأصلية لمزيد من المعلومات حول تلك الطرق.
احصل على معرّفات الرموز (Token IDs) لرموز الحارس (sentinel tokens).
احصل على قائمة رموز الحارس (رموز extra_id) من additional_special_tokens.
LasrFeatureExtractor
فئة transformers.LasrFeatureExtractor
< source >( feature_size = 128sampling_rate = 16000hop_length = 160n_fft = 512win_length = 400padding_value = 0.0**kwargs )
المعاملات
- feature_size (
int، اختياري، القيمة الافتراضية 128) — أبعاد الميزات للميزات المستخرجة. - sampling_rate (
int, اختياري، القيمة الافتراضية 16000) — معدل أخذ العينات الذي يجب أن تُرقَم به ملفات الصوت، ويُعبَّر عنه بالهرتز (Hz). - hop_length (
int، اختياري، القيمة الافتراضية 160) — طول النوافذ المتداخلة المستخدمة في تحويل فورييه الزمني القصير (STFT) للحصول على معاملات ترددات ميل. - n_fft (
int، اختياري، القيمة الافتراضية 512) — حجم تحويل فورييه. - win_length (
int، اختياري، القيمة الافتراضية 400) — طول النافذة لحساب تحويل فورييه الزمني القصير (STFT). - padding_value (
float، اختياري، القيمة الافتراضية 0.0) — قيمة الحشو المستخدمة لحشو الصوت. يجب أن تتوافق مع الصمت.
ينشئ مستخرج ميزات LASR.
يرث مستخرج الميزات هذا من 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) المعني.فيما يتعلق بنماذج Parakeet، يجب دائماً تمرير
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.
LasrProcessor
فئة transformers.LasrProcessor
< source >( feature_extractortokenizer )
ينشئ LasrProcessor الذي يجمع مستخرج الميزات ومجزئ الرموز في معالج واحد.
يوفر LasrProcessor جميع وظائف feature_extractor_class وtokenizer_class. راجع ~feature_extractor_class و~tokenizer_class لمزيد من المعلومات.
__call__
< source >( audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]text: str | list[str] | list[list[str]] | None = Nonesampling_rate: int | None = None**kwargs: *<class 'transformers.models.lasr.processing_lasr.LasrProcessorKwargs'> )
المعاملات
- audio (
Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]]) — الصوت أو مجموعة الأصوات التي سيتم تجهيزها. يمكن أن يكون كل صوت مصفوفة NumPy أو متجه PyTorch. في حالة استخدام مصفوفة NumPy/متجه PyTorch، يجب أن يكون شكل كل صوت (C, T)، حيث C هو عدد القنوات، وT هو طول العينة للصوت. - text (
Union[str, list[str], list[list[str]]]، اختياري) — التسلسل أو الدفعة من التسلسلات المراد ترميزها. يمكن أن يكون كل تسلسل نصاً أو قائمة من النصوص (نص مُقسَّم مسبقاً إلى رموز). إذا مرّرت مدخلاً مُقسَّماً مسبقاً إلى رموز، فعيّنis_split_into_words=Trueلتجنّب الغموض مع المدخلات المُجمَّعة في دفعات. - sampling_rate (
int, اختياري) — معدل أخذ العينات للصوت المُدخل بالهرتز. يجب أن يتطابق هذا المعدل مع معدل أخذ العينات المتوقع من قِبل مستخرج الميزات (الافتراضي هو 16000 هرتز). إذا تم تقديمه، فسيتم التحقق منه مقابل معدل أخذ العينات المتوقع من المعالج، وسيتم رفع خطأ إذا لم يتطابقا. أما إذا لم يتم تقديمه، فسيتم إصدار تحذير وسيُفترض معدل أخذ العينات الافتراضي. - return_tensors (
strأو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات من إطار عمل محدد. القيم المقبولة هي:'pt': إرجاع كائناتtorch.Tensorمن PyTorch.'np': إرجاع كائناتnp.ndarrayمن NumPy.
- **kwargs (ProcessingKwargs، اختياري) — خيارات معالجة إضافية لكل نمط (نص، صور، مقاطع فيديو، صوت). تُدرج المعلمات الخاصة بالنموذج أعلاه؛ راجع فئة TypedDict للحصول على القائمة الكاملة للحجج المدعومة.
تُمرّر هذه الطريقة جميع معاملاتها إلى batch_decode() الخاصة بـ PreTrainedTokenizer. يُرجى الرجوع إلى سلسلة التوثيق (docstring) لهذه الطريقة لمزيد من المعلومات.
تُمرّر هذه الطريقة جميع معاملاتها إلى decode() الخاصة بـ PreTrainedTokenizer. يُرجى الرجوع إلى سلسلة التوثيق (docstring) لهذه الطريقة لمزيد من المعلومات.
LasrEncoderConfig
فئة transformers.LasrEncoderConfig
< 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 = Nonehidden_size: int = 512num_hidden_layers: int = 17num_attention_heads: int = 8intermediate_size: int = 2048hidden_act: str = 'silu'attention_bias: bool = Falseconvolution_bias: bool = Falseconv_kernel_size: int = 32subsampling_conv_channels: int = 256num_mel_bins: int = 128subsampling_conv_kernel_size: int = 5subsampling_conv_stride: int = 2dropout: float | int = 0.1dropout_positions: float | int = 0.0layerdrop: float | int = 0.1activation_dropout: float | int = 0.1attention_dropout: float | int = 0.1max_position_embeddings: int = 10000initializer_range: float = 0.02layer_norm_eps: float = 1e-06feed_forward_residual_weights: list[float] | tuple[float, ...] = (1.5, 0.5)conv_residual_weights: list[float] | tuple[float, ...] = (2.0, 1.0)batch_norm_momentum: float = 0.01rope_parameters: dict | None = None )
المعاملات
- hidden_size (
int، اختياري، القيمة الافتراضية512) — أبعاد التمثيلات المخفية. - num_hidden_layers (
int, اختياري، القيمة الافتراضية17) — عدد الطبقات المخفية في مُفكِّك Transformer. - num_attention_heads (
int، اختياري، القيمة الافتراضية8) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer. - intermediate_size (
int، اختياري، القيمة الافتراضية2048) — بعد تمثيلات MLP. - hidden_act (
str، اختياري، القيمة الافتراضيةsilu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال،"gelu"،"relu"،"silu"، وغيرها. - attention_bias (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم استخدام انحياز في طبقات الإسقاط للاستعلام والمفتاح والقيمة والمخرجات أثناء الانتباه الذاتي. - convolution_bias (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم استخدام الانحياز في عمليات الالتفاف داخل وحدة الالتفاف الخاصة بـ conformer. - conv_kernel_size (
int، اختياري، القيمة الافتراضية 32) — حجم النواة لطبقات الالتفاف في كتلة Conformer. - subsampling_conv_channels (
int، اختياري، القيمة الافتراضية 256) — عدد القنوات في طبقات الالتفاف الفرعية. - num_mel_bins (
int، اختياري، القيمة الافتراضية128) — عدد ميزات mel المستخدمة لكل إطار إدخال. يجب أن يتوافق مع القيمة المستخدمة في فئةAutoFeatureExtractor. - subsampling_conv_kernel_size (
int, اختياري، القيمة الافتراضية 5) — حجم النواة لطبقات الالتفاف الفرعية. - subsampling_conv_stride (
int، اختياري، القيمة الافتراضية 2) — خطوة طبقات التمرير الفرعي. - dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.1) — النسبة لجميع طبقات dropout. - dropout_positions (
float, اختياري، القيمة الافتراضية 0.0) — نسبة dropout للمواقع في تسلسل الإدخال. - layerdrop (
Union[float, int]، اختياري، القيمة الافتراضية0.1) — احتمالية LayerDrop. راجع [ورقة LayerDrop](انظر https://huggingface.co/papers/1909.11556) لمزيد من التفاصيل. - activation_dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.1) — نسبة dropout للتفعيلات داخل الطبقة المتصلة بالكامل. - attention_dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.1) — نسبة الإسقاط (dropout) لاحتمالات الانتباه. - max_position_embeddings (
int، اختياري، القيمة الافتراضية10000) — أقصى طول تسلسل قد يُستخدم معه هذا النموذج. - initializer_range (
float، اختياري، القيمة الافتراضية0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان. - layer_norm_eps (
float, اختياري، القيمة الافتراضية1e-06) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة. - feed_forward_residual_weights (
tuple[float, float]، اختياري، القيمة الافتراضية[1.5, 0.5]) — أوزان المتبقي لطبقات التقدّم الأمامي. - conv_residual_weights (
tuple[float, float]، اختياري، القيمة الافتراضية[2.0, 1.0]) — أوزان المتبقي لطبقات الالتفاف. - batch_norm_momentum (
float, اختياري، القيمة الافتراضية 0.01) — زخم طبقات تطبيع الدفعة - rope_parameters (
dict, اختياري) — قاموس يحتوي على معاملات التهيئة الخاصة بتضمينات RoPE. يجب أن يحتوي القاموس على قيمة لـrope_theta، ومعاملات اختيارية تُستخدم للتصحيح (scaling) في حال رغبتَ في استخدام RoPE معmax_position_embeddingsأطول.
هذه فئة الإعدادات المخزنة لإعدادات نموذج LasrModel. تُستخدم لاستحداث نموذج Lasr وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ google/medasr
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
مثال:
>>> from transformers import LasrEncoderModel, LasrEncoderConfig
>>> # Initializing a `LasrEncoder` configuration
>>> configuration = LasrEncoderConfig()
>>> # Initializing a model from the configuration
>>> model = LasrEncoderModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configتستند فئة التهيئة هذه إلى بنية LasrEncoder من Google Health AI. يمكنك العثور على مزيد من التفاصيل والنماذج المدربة مسبقًا في google/medasr.
LasrCTCConfig
فئة transformers.LasrCTCConfig
< 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 = Nonevocab_size: int = 512ctc_loss_reduction: str = 'mean'ctc_zero_infinity: bool = Trueencoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonepad_token_id: int = 0 )
المعاملات
- vocab_size (
int، اختياري، القيمة الافتراضية512) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطةinput_ids. - ctc_loss_reduction (
str، اختياري، القيمة الافتراضية"mean") — يحدد طريقة الاختزال (reduction) المطبقة على مخرجاتtorch.nn.CTCLoss. لا ينطبق إلا عند تدريب نسخة من LasrForCTC. - ctc_zero_infinity (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تصفير الخسائر اللانهائية والتدرجات المرتبطة بها فيtorch.nn.CTCLoss. تحدث الخسائر اللانهائية بشكل رئيسي عندما تكون المدخلات قصيرة جداً بحيث لا يمكن مواءمتها مع الأهداف. يكون هذا الخيار ذا صلة فقط عند تدريب مثيل من LasrForCTC. - encoder_config (
Union[dict, ~configuration_utils.PreTrainedConfig]، اختياري) — كائن الإعداد أو قاموس العمود الفقري للترميز. - pad_token_id (
int، اختياري، القيمة الافتراضية0) — معرّف الرمز المستخدم للتعبئة في المفردات.
هذه فئة الإعدادات المخزنة لإعدادات نموذج LasrModel. تُستخدم لاستحداث نموذج Lasr وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ google/medasr
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
This configuration class is based on the Lasr CTC architecture from Google Health AI. You can find more details and pre-trained models at [google/medasr](https://huggingface.co/google/medasr).LasrEncoder
فئة transformers.LasrEncoder
< source >( config: LasrEncoderConfig )
المعاملات
- config (LasrEncoderConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج LasrEncoder، المبني على معمارية Conformer](https://arxiv.org/abs/2005.08100).
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_features: Tensorattention_mask: typing.Optional[torch.Tensor] = Noneoutput_attention_mask: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → LasrEncoderModelOutput or tuple(torch.Tensor)
المعاملات
- input_features (
torch.Tensorمن الشكل(batch_size, sequence_length, feature_dim)) — المصفوفات المقابلة لميزات الصوت المدخلة. يمكن الحصول على ميزات الصوت باستخدامfeature_extractor_class. راجعfeature_extractor_class.__call__للتفاصيل (processor_classيستخدمfeature_extractor_classلمعالجة ملفات الصوت). - attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- output_attention_mask (
bool، اختياري) — ما إذا كان يجب إرجاع قناع الانتباه الناتج.
يعيد
LasrEncoderModelOutput أو tuple(torch.Tensor)
LasrEncoderModelOutput أو مجموعة مرتبة من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعداد (None) والمدخلات.
تتجاوز طريقة LasrEncoder الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.pooler_output (
torch.Tensorمن الشكل(batch_size, hidden_size)) — حالة الطبقة المخفية الأخيرة للرمز الأول من التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُرجع هذه الخاصية رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. تُدرَّب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
attention_mask (
torch.Tensorof shape(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو بعد ضغط التسلسل. يُعاد لأن طول التسلسل قد يختلف عن طول التسلسل المدخل. قيم القناع المختارة في[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
مثال:
>>> from transformers import AutoProcessor, LasrEncoder
>>> from datasets import load_dataset, Audio
>>> model_id = "google/medasr"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> encoder = ParakeetEncoder.from_pretrained(model_id)
>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
>>> inputs = processor(ds[0]["audio"]["array"])
>>> encoder_outputs = encoder(**inputs)
>>> print(encoder_outputs.last_hidden_state.shape)LasrForCTC
فئة transformers.LasrForCTC
< source >( config: LasrCTCConfig )
المعاملات
- config (LasrCTCConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. عند التهيئة باستخدام ملف إعدادات، لا يتم تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
مشفر Lasr مع رأس تصنيف زمني اتصال (CTC).
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_features: Tensorattention_mask: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CausalLMOutput or tuple(torch.Tensor)
المعاملات
- input_features (
torch.Tensorمن الشكل(batch_size, sequence_length, feature_dim)) — المصفوفات المقابلة لميزات الصوت المدخلة. يمكن الحصول على ميزات الصوت باستخدامfeature_extractor_class. راجعfeature_extractor_class.__call__للتفاصيل (processor_classيستخدمfeature_extractor_classلمعالجة ملفات الصوت). - attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- labels (
torch.Tensorمن الشكل(batch_size, sequence_length)، اختياري) — التسميات لحساب خسارة نمذجة اللغة المقنّعة. يجب أن تكون الفهارس إما ضمن[0, ..., config.vocab_size]أو -100 (انظرinput_idsdocstring). يتم تجاهل الرموز التي تكون فهارسها مضبوطة على-100(مقنّعة)، ولا تُحسب الخسارة إلا للرموز التي تسمياتها ضمن[0, ..., config.vocab_size].
يعيد
CausalLMOutput أو tuple(torch.Tensor)
CausalLMOutput أو مجموعة مرتبة من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (None) والمدخلات.
تتجاوز طريقة LasrForCTC الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
loss (
torch.Tensorof shape(1,), اختياري, يُعاد عند توفيرlabels) — خسارة نمذجة اللغة (لتوقع الرمز التالي).logits (
torch.Tensorمن الشكل(batch_size, sequence_length, config.vocab_size)) — درجات التنبؤ لرأس نمذجة اللغة (درجات لكل رمز في المفردات قبل SoftMax).hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
مثال:
>>> from transformers import AutoProcessor, LasrForCTC
>>> from datasets import load_dataset, Audio
>>> model_id = "nvidia/lasr-ctc-1.1b"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = LasrForCTC.from_pretrained(model_id)
>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
>>> inputs = processor(ds[0]["audio"]["array"], text=ds[0]["text"])
>>> outputs = model(**inputs)
>>> print(outputs.loss)generate
< source >( input_features: Tensorattention_mask: typing.Optional[torch.Tensor] = Nonereturn_dict_in_generate: bool = Falsecompile_config: transformers.generation.configuration_utils.CompileConfig | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )
مثال:
>>> from transformers import AutoProcessor, LasrForCTC
>>> from datasets import load_dataset, Audio
>>> model_id = "google/medasr"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = LasrForCTC.from_pretrained(model_id)
>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
>>> inputs = processor(ds[0]["audio"]["array"], text=ds[0]["text"])
>>> predicted_ids = model.generate(**inputs)
>>> transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)
>>> print(transcription)