Transformers documentation

LASR

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Эта модель была опубликована в HF papers 16.05.2020 и добавлена в Hugging Face Transformers 05.12.2025.

SDPA

LASR

Обзор

LASR — это архитектура, лежащая в основе MedASR, модели преобразования речи в текст от Google Health AI, предварительно обученной для медицинской диктовки. Она основана на архитектуре Conformer и разработана как отправная точка для разработчиков, создающих инструменты диктовки с медицинской терминологией, например для диктовки в радиологии. MedASR хорошо справляется с медицинским аудио, но может испытывать трудности с терминами, выходящими за рамки её обучающих данных, такими как нестандартные названия лекарств или временные ссылки (даты, время или длительность).

Использование

Базовое использование

Пайплайн
AutoModel
from transformers import pipeline


pipe = pipeline("automatic-speech-recognition", model="google/medasr")
out = pipe("path/to/audio.mp3")
print(out)

Обучение

Приведённый ниже пример формирует пакет аудио- и текстовых данных, прогоняет его через модель 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

< >

( 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>") — Токен неизвестного слова. Токен, отсутствующий в словаре, не может быть преобразован в ID, поэтому вместо него используется этот токен.
  • pad_token (str, необязательный, по умолчанию "<pad>") — Токен, используемый для выравнивания, например, при пакетной обработке последовательностей разной длины.
  • extra_ids (int, необязательный, по умолчанию 100) — Добавляет указанное количество дополнительных идентификаторов в словарь для использования в качестве sentinel-токенов. Эти токены доступны как “id{%d}>”, где “{%d}” — число от 0 до extra_ids-1. Эти токены можно получить, вызвав метод get_sentinel_tokens, а их идентификаторы — вызвав метод get_sentinel_token_ids
  • additional_special_tokens (list[str], необязательный) — Дополнительные специальные токены, используемые токенизатором.
  • vocab (str, dict or list, необязательный) — Пользовательский словарь. Если не указан, создается минимальный словарь на основе специальных токенов.

Создайте токенизатор LASR (на базе библиотеки tokenizers от HuggingFace). Основан на Unigram.

Этот токенизатор наследуется от TokenizersBackend, который содержит большинство основных методов. За дополнительной информацией об этих методах следует обращаться к этому суперклассу.

get_sentinel_token_ids

< >

( )

Получите идентификаторы токенов для sentinel-токенов.

get_sentinel_tokens

< >

( )

Получите список sentinel-токенов (токенов extra_id) из additional_special_tokens.

LasrFeatureExtractor

класс transformers.LasrFeatureExtractor

< >

( feature_size = 128sampling_rate = 16000hop_length = 160n_fft = 512win_length = 400padding_value = 0.0**kwargs )

Параметры

  • feature_size (int, необязательный, по умолчанию 128) — Размерность признаков извлечённых признаков.
  • sampling_rate (int, необязательный, по умолчанию 16000) — Частота дискретизации, с которой аудиофайлы должны быть оцифрованы, выраженная в герцах (Гц).
  • hop_length (int, необязательный, по умолчанию 160) — Длина перекрывающихся окон для БПФ, используемой для получения коэффициентов Мель-частот.
  • n_fft (int, необязательный, по умолчанию 512) — Размер преобразования Фурье.
  • win_length (int, необязательный, по умолчанию 400) — Длина окна для вычисления КБФ.
  • padding_value (float, необязательный, по умолчанию 0.0) — Значение, используемое для дополнения аудио. Должно соответствовать тишине.

Создаёт экстрактор признаков LASR.

Этот экстрактор признаков наследуется от SequenceFeatureExtractor, который содержит большинство основных методов. За дополнительной информацией о них следует обращаться к этому суперклассу.

Этот класс извлекает характеристики мел-фильтрового банка из сырых речевых данных с помощью собственной реализации Short Time Fourier Transform на numpy, которая должна совпадать с эквивалентом torch.stft в pytorch.

__call__

< >

( 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, необязательный) — Определяет, следует ли возвращать attention mask. Если значение не задано, attention mask будет возвращена в соответствии со значением по умолчанию конкретного feature_extractor.

    Что такое маски внимания?

    Для моделей Parakeet параметр attention_mask следует всегда передавать при пакетном выводе, чтобы избежать тонких ошибок.

  • return_tensors (str или TensorType, необязательный) — Если задано, возвращает тензоры вместо списка целых чисел Python. Допустимые значения:
    • 'tf': возвращает объекты tf.constant TensorFlow.
    • 'pt': возвращает объекты torch.Tensor PyTorch.
    • 'np': возвращает объекты Numpy np.ndarray.
  • sampling_rate (int, необязательный) — Частота дискретизации, с которой вход raw_speech был оцифрован. Настоятельно рекомендуется передавать sampling_rate при вызове forward, чтобы избежать скрытых ошибок и обеспечить работу конвейера автоматического распознавания речи.
  • padding_value (float, необязательный, по умолчанию 0.0) — Значение, используемое для заполнения позиций, отведённых под padding.
  • do_normalize (bool, необязательный, по умолчанию False) — Указывает, следует ли нормализовать входные данные до нулевого среднего и единичной дисперсии. Нормализация может значительно повысить производительность модели.
  • device (str, необязательный, по умолчанию 'cpu') — Указывает устройство для вычисления лог-мел-спектрограммы аудиосигналов в методе _torch_extract_fbank_features. (например, “cpu”, “cuda”)
  • return_token_timestamps (bool, необязательный, по умолчанию None) — Устарело. Используйте return_attention_mask вместо этого, из которого можно определить количество кадров.

    Возвращать ли количество кадров входного raw_speech. Эти num_frames могут использоваться моделью для вычисления временных меток на уровне слов.

Основной метод для извлечения признаков и подготовки одной или нескольких последовательностей для модели. Реализация использует PyTorch для вычисления STFT, если он доступен, в противном случае используется более медленная реализация на основе NumPy.

LasrProcessor

класс transformers.LasrProcessor

< >

( feature_extractortokenizer )

Параметры

  • feature_extractor (feature_extractor_class) — Обязательный входной параметр: экстрактор признаков.
  • tokenizer (tokenizer_class) — Токенизатор является обязательным входным параметром.

Создаёт LasrProcessor, который объединяет feature extractor и tokenizer в единый процессор.

LasrProcessor предоставляет все возможности feature_extractor_class и tokenizer_class. Подробнее см. в ~feature_extractor_class и ~tokenizer_class.

__call__

< >

( 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': возвращает объекты NumPy np.ndarray.
  • **kwargs (ProcessingKwargs, optional) — Дополнительные параметры обработки для каждой модальности (текст, изображения, видео, аудио). Специфичные для модели параметры перечислены выше; полный список поддерживаемых аргументов см. в классе TypedDict.

batch_decode

< >

( *args**kwargs )

Этот метод передаёт все свои аргументы в batch_decode() класса PreTrainedTokenizer. Подробности см. в docstring этого метода.

decode

< >

( *args**kwargs )

Этот метод передаёт все свои аргументы в decode() класса PreTrainedTokenizer. Подробности см. в docstring этого метода.

LasrEncoderConfig

класс transformers.LasrEncoderConfig

< >

( 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) — Использовать ли смещение (bias) в слоях проекции query, key, value и output при само-внимании.
  • convolution_bias (bool, необязательный, по умолчанию False) — Использовать ли смещение (bias) в свёртках модуля свёртки 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) — Шаг (stride) для свёрточных слоёв подвыборки.
  • 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) — Значение epsilon, используемое слоями нормализации.
  • 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) — Момента для слоёв batch normalization
  • rope_parameters (dict, необязательный) — Словарь, содержащий параметры конфигурации для эмбеддингов RoPE. В словаре должно быть указано значение для rope_theta и, при необходимости, параметры, используемые для масштабирования, если вы хотите использовать 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

< >

( 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) — Идентификатор токена, используемого для дополнения (padding) в словаре.

Это класс конфигурации для хранения настроек модели LasrModel. Он используется для создания модели Lasr в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации google/medasr

Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.

Пример:

>>> from transformers import LasrForCTC, LasrCTCConfig
>>> # Initializing a Lasr configuration
>>> configuration = LasrCTCConfig()
>>> # Initializing a model from the configuration
>>> model = LasrForCTC(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config
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

< >

( config: LasrEncoderConfig )

Параметры

  • config (LasrEncoderConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().

Модель LasrEncoder, основанная на архитектуре Conformer](https://arxiv.org/abs/2005.08100).

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( 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) и входных данных.

Метод forward класса LasrEncoder переопределяет специальный метод __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), optional, возвращается, если передано 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.Tensor формы (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

< >

( config: LasrCTCConfig )

Параметры

  • config (LasrCTCConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().

Lasr Encoder с головой Connectionist Temporal Classification (CTC).

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( 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 (см. docstring input_ids). Токены с индексами, установленными в -100, игнорируются (маскируются); потери вычисляются только для токенов с метками в диапазоне [0, ..., config.vocab_size].

Возвращает

CausalLMOutput или tuple(torch.Tensor)

A CausalLMOutput or a tuple of torch.Tensor (if return_dict=False is passed or when config.return_dict=False) comprising various elements depending on the configuration (None) and inputs.

Метод forward класса LasrForCTC переопределяет специальный метод __call__.

Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.

  • loss (torch.Tensor формы (1,), необязательный, возвращается, если задан labels) — Потери языковой модели (для предсказания следующего токена).

  • logits (torch.Tensor формы (batch_size, sequence_length, config.vocab_size)) — Оценки предсказаний языковой модели (оценки для каждого токена словаря до применения SoftMax).

  • hidden_states (tuple(torch.Tensor), optional, возвращается, если передано 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

< >

( 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)
Update on GitHub