Transformers documentation
LASR
このモデルは2020年5月16日にHF papersで公開され、2025年12月5日にHugging Face Transformersに貢献されました。
LASR
概要
LASRは、Google Health AIが医療用音声入力の事前学習のために開発した音声認識モデルであるMedASRの基盤となるアーキテクチャです。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です。 - unk_token (
str、任意、デフォルトは"<unk>") — 不明トークンです。語彙に存在しないトークンは ID に変換できず、代わりにこのトークンが設定されます。 - pad_token (
str、任意、デフォルトは"<pad>") — パディングに使用されるトークンです。例えば、長さが異なるシーケンスをバッチ処理する際に使用します。 - extra_ids (
int, 任意、デフォルト値は 100) — セパレータとして使用するために語彙に追加する追加 ID の数を指定します。これらのトークンは、”{%d}” が 0 から extra_ids-1 までの数値である “id{%d}>” の形式でアクセスできます。これらのトークンは get_sentinel_tokens メソッドを呼び出すことで取得でき、トークン ID は get_sentinel_token_ids メソッドを呼び出すことで取得できます - additional_special_tokens (
list[str]、省略可) — トークナイザーで使用される追加の特殊トークン。 - vocab (
str、dictまたはlist、省略可) — カスタム語彙辞書。指定しない場合、特殊トークンを使用して最小限の語彙が作成されます。
HuggingFaceのtokenizersライブラリをベースにしたLASRトークナイザーを構築します。Unigramに基づいています。
このトークナイザーは、主要なメソッドの大部分を含む TokenizersBackend を継承しています。これらのメソッドに関する詳細については、このスーパークラスを参照してください。
センチネルトークンのトークンIDを取得します。
additional_special_tokens から、sentinel トークン(extra_id トークン)のリストを取得します。
LasrFeatureExtractor
class 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) — Mel 周波数係数を取得するために使用される STFT の、重複ウィンドウの長さ。 - n_fft (
int、任意、デフォルトは 512) — フーリエ変換のサイズ。 - win_length (
int, 任意、デフォルトは 400) — STFT 計算に使用するウィンドウ長です。 - padding_value (
float、任意、デフォルトは 0.0) — オーディオをパディングするために使用される値です。無音に対応する値である必要があります。
LASRのフィーチャーエクストラクターを構築します。
このフィーチャーエクストラクターは、主要なメソッドの大部分を含む SequenceFeatureExtractor を継承しています。これらのメソッドに関する詳細については、このスーパークラスを参照してください。
このクラスは、Short Time Fourier Transformのカスタムなnumpy実装を使用して、生の音声からメルフィルタバンク特徴量を抽出します。この実装は、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 配列、浮動小数点数の値のリスト、NumPy 配列のリスト、または浮動小数点数の値のリストのリストであることができます。モノラル音声(ステレオではなく、タイムステップごとに単一の浮動小数点数)である必要があります。 - truncation (
bool、任意、デフォルトはTrue) — 入力シーケンスが max_length を超える場合、max_length まで切り詰めるための切り詰め処理を有効にします。 - pad_to_multiple_of (
int, 省略可能, デフォルトは None) — 設定すると、シーケンスを指定された値の倍数にパディングします。これは、計算能力が
>= 7.5(Volta)のNVIDIAハードウェアでTensor Coresの利用を有効にするために、また、シーケンス長が128の倍数であることで恩恵を受けるTPUにおいて、特に有用です。 - return_attention_mask (
bool, 省略可) — attention mask を返すかどうか。デフォルトのままにすると、特定の feature_extractor のデフォルトに従って attention mask を返します。Parakeetモデルでは、バッチ推論を行う際は、微妙なバグを避けるために、
attention_maskを常に渡す必要があります。 - return_tensors (
strまたは TensorType, 省略可) — 設定すると、Python の整数のリストではなくテンソルを返します。指定可能な値は以下の通りです:'tf': TensorFlow のtf.constantオブジェクトを返します。'pt': PyTorchのtorch.Tensorオブジェクトを返します。'np': Numpy のnp.ndarrayオブジェクトを返します。
- sampling_rate (
int, 任意) —raw_speech入力がサンプリングされたレートです。サイレントエラーを防ぎ、自動音声認識パイプラインを有効にするため、forward 呼び出し時にsampling_rateを渡すことを強く推奨します。 - padding_value (
float、任意、デフォルトは 0.0) — パディングの値やベクトルを埋めるために使用される値です。 - do_normalize (
bool、任意、デフォルトはFalse) — 入力を平均0・分散1に正規化するかどうかを指定します。正規化を行うことで、モデルの性能を大幅に向上させることができます。 - device (
str、任意、デフォルトは'cpu') —_torch_extract_fbank_featuresメソッドにおいて、音声信号の log-mel スペクトログラムの計算に使用するデバイスを指定します。(例: “cpu”、“cuda”) - return_token_timestamps (
bool, 省略可, デフォルトはNone) — 非推奨です。代わりにreturn_attention_maskを使用してください。これによりフレーム数を推定できます。入力raw_speechのフレーム数を返すかどうかを指定します。 これらのnum_framesは、モデルが単語レベルのタイムスタンプを計算するために使用できます。
PyTorch が利用可能な場合は PyTorch を、利用できない場合はより低速な NumPy ベースの処理を用いて、1 つ以上のシーケンスを特徴量化し、モデルへの入力として準備するための主要なメソッドです。
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, 任意) — 入力オーディオのサンプリングレート (Hz) です。これは、feature extractor が想定するサンプリングレート (デフォルトは 16000 Hz) と一致する必要があります。指定された場合、processor が想定するサンプリングレートと照合され、一致しない場合はエラーが発生します。指定されなかった場合、警告が表示され、デフォルトのサンプリングレートが使用されます。 - return_tensors (
strまたは TensorType, 省略可) — 設定すると、特定のフレームワークのテンソルを返します。使用可能な値は以下の通りです:'pt': PyTorchのtorch.Tensorオブジェクトを返します。'np': NumPyのnp.ndarrayオブジェクトを返します。
- **kwargs (ProcessingKwargs、任意) — 各モダリティ(テキスト、画像、動画、音声)の追加処理オプション。モデル固有のパラメータは上記にリストされています。サポートされている引数の完全なリストについては、TypedDictクラスを参照してください。
このメソッドは、すべての引数を PreTrainedTokenizer の batch_decode() に転送します。詳細については、このメソッドのドキュメント文字列を参照してください。
このメソッドは、すべての引数を PreTrainedTokenizer の decode() に転送します。詳細については、このメソッドのドキュメント文字列を参照してください。
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) — アテンション確率のドロップアウト率です。 - 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) — バッチ正規化レイヤーのモーメンタム - rope_parameters (
dict, 任意) — RoPE 埋め込みの設定パラメータを含む辞書です。辞書にはrope_thetaの値が含まれており、より長いmax_position_embeddingsで RoPE を使用する場合、スケーリングに使用されるパラメータが任意で含まれます。
これは 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この設定クラスは、Google Health AI の LasrEncoder アーキテクチャに基づいています。詳細および事前学習済みモデルは 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") —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) — 語彙内でパディングに使用されるトークン ID。
これは 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
class transformers.LasrEncoder
< source >( config: LasrEncoderConfig )
パラメータ
- config (LasrEncoderConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
Conformerアーキテクチャに基づいたLasrEncoderモデル](https://arxiv.org/abs/2005.08100)。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、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.FloatTensor)
パラメータ
- 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.FloatTensor)
LasrEncoderModelOutput、またはtorch.FloatTensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。設定(None)と入力に応じて、さまざまな要素で構成されます。
LasrEncoderのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
last_hidden_state (
torch.FloatTensor、shape(batch_size, sequence_length, hidden_size)) — モデルの最終層の出力における隠れ状態のシーケンス。pooler_output (
torch.FloatTensor、shape(batch_size, hidden_size)) — 補助事前学習タスクに使用される層をさらに通して処理された後、シーケンスの最初のトークン(分類トークン)の最終層の隠れ状態。例えば、BERT 系のモデルでは、線形層と tanh 活性化関数を経て処理された後の分類トークンを返します。この線形層の重みは、事前学習中の次文予測(分類)目的から学習されます。hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返されます)—torch.FloatTensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます)—torch.FloatTensorのタプル(各レイヤーごとに1つ)、形状は(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
class transformers.LasrForCTC
< source >( config: LasrCTCConfig )
パラメータ
- config (LasrCTCConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
Connectionist Temporal Classification (CTC) ヘッドを備えた Lasr Encoder。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、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.FloatTensor)
パラメータ
- 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、shape(batch_size, sequence_length)、任意) — マスク言語モデリング損失を計算するためのラベルです。インデックスは[0, ..., config.vocab_size]の範囲内であるか、-100 である必要があります(input_idsのドキュメント文字列を参照)。インデックスが-100に設定されたトークンは無視(マスク)され、損失は[0, ..., config.vocab_size]の範囲内のラベルを持つトークンに対してのみ計算されます。
戻り値
CausalLMOutput または tuple(torch.FloatTensor)
None や入力に応じて、さまざまな要素で構成される CausalLMOutput または torch.FloatTensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)。
LasrForCTCのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
loss (
torch.FloatTensor、shape(1,)、optional、labelsが指定された場合に返されます) — 言語モデリングの損失(次のトークン予測用)。logits (
torch.FloatTensor、shape(batch_size, sequence_length, config.vocab_size)) — 言語モデリングヘッドの予測スコア(SoftMax 適用前の各語彙トークンのスコア)。hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返されます)—torch.FloatTensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます)—torch.FloatTensorのタプル(各レイヤーごとに1つ)、形状は(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)