Transformers documentation
Nemotron 3.5 Transcribe
このモデルは2026年10月28日にHugging Face Transformersに貢献されました。
Nemotron 3.5 Transcribe
概要
Nemotron 3.5 Transcribe は、多言語文字起こし、話者属性付き文字起こし、音声翻訳、および音声質問応答のための音声言語モデルです。音声認識エンコーダーと Nemotron 3 Diarization モデルは同じスペクトログラムを読み取り、それらの出力は Nemotron-H 言語モデルに射影されます。エンコーダー出力上の単語タイムスタンプヘッドにより、単語レベルの時刻が出力されます。
使用方法
文字起こし
from transformers import AutoModelForMultimodalLM, AutoProcessor
model_id = "nvidia/NVIDIA-Nemotron-3.5-Transcribe-30B-A4B"
samples = "https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForMultimodalLM.from_pretrained(model_id, device_map="auto")
inputs = processor.apply_transcription_request(samples + "en-Alice_woman.wav").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=256)
print(processor.decode(outputs[:, inputs.input_ids.shape[1] :], skip_special_tokens=True))バッチ転写
from transformers import AutoModelForMultimodalLM, AutoProcessor
model_id = "nvidia/NVIDIA-Nemotron-3.5-Transcribe-30B-A4B"
samples = "https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForMultimodalLM.from_pretrained(model_id, device_map="auto")
audio = [samples + "en-Alice_woman.wav", samples + "diarization_example.mp3"]
speaker_attributed_prompt = (
"Transcribe this audio with punctuation and capitalization. Include all spoken words and verbal fillers. Write "
"numbers in their standard written form. Put speaker tags <spk:0> <spk:1> <spk:2> <spk:3> on the transcription."
)
prompt = [None, speaker_attributed_prompt]
inputs = processor.apply_transcription_request(audio, prompt=prompt).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=1024)
texts = processor.decode(outputs[:, inputs.input_ids.shape[1] :], skip_special_tokens=False)
print([text.replace(processor.tokenizer.pad_token, "") for text in texts])話者別文字起こし
from transformers import AutoModelForMultimodalLM, AutoProcessor
model_id = "nvidia/NVIDIA-Nemotron-3.5-Transcribe-30B-A4B"
samples = "https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForMultimodalLM.from_pretrained(model_id, device_map="auto")
prompt = (
"Transcribe this audio with punctuation and capitalization. Include all spoken words and verbal fillers. Write "
"numbers in their standard written form. Put speaker tags <spk:0> <spk:1> <spk:2> <spk:3> on the transcription."
)
conversation = [
{
"role": "user",
"content": [
{"type": "text", "text": prompt},
{"type": "audio", "path": samples + "diarization_example.mp3"},
],
}
]
inputs = processor.apply_chat_template(
conversation,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
enable_thinking=False,
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=1024)
text = processor.decode(outputs[0, inputs.input_ids.shape[1] :], skip_special_tokens=False)
print(text)extract_speaker_dict() は、出力を話者ごとのターンごとに1つの辞書に分割します。
for turn in processor.extract_speaker_dict(text):
print(turn){'Speaker': 0, 'Content': "To celebrate the release of Nematron three Dierization, we invited ... from NVIDIA."}
{'Speaker': 1, 'Content': "Hi everybody, thanks for having me. I'm Jane, a pocket voice from QTie."}
{'Speaker': 2, 'Content': "Nice to meet you Chris and Jane. I'm Serena, the Queen three Voice."}
...単語タイムスタンプ
torchaudioとscipyが必要です。
from transformers import AutoModelForMultimodalLM, AutoProcessor
model_id = "nvidia/NVIDIA-Nemotron-3.5-Transcribe-30B-A4B"
samples = "https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForMultimodalLM.from_pretrained(model_id, device_map="auto")
prompt = (
"Transcribe this audio with punctuation and capitalization. Include all spoken words and verbal fillers. Write "
"numbers in their standard written form. Put speaker tags <spk:0> <spk:1> <spk:2> <spk:3> on the transcription."
)
inputs = processor.apply_transcription_request(samples + "diarization_example.mp3", prompt=prompt).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=1024, return_word_timestamp_logits=True)
texts = processor.decode(outputs.sequences[:, inputs.input_ids.shape[1] :], skip_special_tokens=False)
timestamps = processor.align_word_timestamps(
texts,
outputs.word_timestamp_logits,
inputs.input_features_mask,
outputs.speaker_logits,
)
print(timestamps[0]["chunks"][:3])生成されていないトランスクリプトをアラインするには:
input_features_mask = inputs.input_features_mask
audio_outputs = model.get_audio_features(inputs.input_features, input_features_mask)
word_timestamp_logits = model.get_word_timestamp_logits(audio_outputs.asr_last_hidden_state, input_features_mask)
timestamps = processor.align_word_timestamps(
["<spk:0> To celebrate the ..."],
word_timestamp_logits,
input_features_mask,
audio_outputs.speaker_logits,
)Nemotron3_5TranscribeConfig
class transformers.Nemotron3_5TranscribeConfig
< 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 = Noneaudio_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneaudio_token_id: int = 131072word_timestamp_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None )
パラメータ
- audio_config (
Union[dict, ~configuration_utils.PreTrainedConfig]、任意) — オーディオバックボーンの config オブジェクトまたは辞書。 - text_config (
Union[dict, ~configuration_utils.PreTrainedConfig]、省略可) — テキストバックボーンの設定オブジェクトまたは辞書。 - audio_token_id (
int, 任意、デフォルト値は 131072) — 音声埋め込みのプレースホルダーとして使用される音声トークンのインデックスです。元のチェックポイントでは、言語モデルの語彙の後に追加されており、埋め込み行はありません。トークン 0 として埋め込み処理が行われた後、音声に置き換えられます。 - word_timestamp_config (
Union[dict, Nemotron3_5TranscribeWordTimestampConfig]、省略可) — 音声認識エンコーダーの状態からアライメントトークナイザのピースを予測する、ワードタイムスタンプエンコーダーおよびヘッドの設定です。
これは、Nemotron3 5 TranscribeModel の設定を保存するための設定クラスです。指定された引数に基づいて Nemotron3 5 Transcribe モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、nvidia/NVIDIA-Nemotron-3.5-Transcribe-30B-A4B と同様の設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
例:
>>> from transformers import Nemotron3_5TranscribeForConditionalGeneration, Nemotron3_5TranscribeConfig
>>> # Initializing a Nemotron3_5Transcribe configuration
>>> configuration = Nemotron3_5TranscribeConfig()
>>> # Initializing a model (with random weights) from the configuration
>>> model = Nemotron3_5TranscribeForConditionalGeneration(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configNemotron3_5TranscribeAsrAudioConfig
class transformers.Nemotron3_5TranscribeAsrAudioConfig
< 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 = 1280intermediate_size: int = 5120num_hidden_layers: int = 32num_attention_heads: int = 10num_key_value_heads: int | None = Nonehidden_act: str = 'gelu'max_position_embeddings: int = 5000initializer_range: float = 0.02rope_parameters: dict | None = Noneattention_dropout: float | int = 0.0num_mel_bins: int = 128subsampling_factor: int = 8 )
パラメータ
- hidden_size (
int、任意、デフォルトは1280) — 隠れ表現の次元数です。 - intermediate_size (
int、任意、デフォルトは5120) — MLP 表現の次元数。 - num_hidden_layers (
int、任意、デフォルトは32) — Transformer デコーダーの隠れ層の数。 - num_attention_heads (
int、任意、デフォルトは10) — Transformerデコーダーの各アテンション層におけるアテンションヘッドの数。 - num_key_value_heads (
int, 任意) — Grouped Query Attention を実装するために使用する key_value ヘッドの数です。num_key_value_heads=num_attention_headsの場合、モデルは Multi Head Attention (MHA) を使用し、num_key_value_heads=1の場合は Multi Query Attention (MQA) を使用し、それ以外の場合は GQA が使用されます。 マルチヘッドのチェックポイントを GQA チェックポイントに変換する際は、各グループの key ヘッドと value ヘッドは、そのグループ内の元のすべてのヘッドを平均プーリングして構築する必要があります。詳細については、この論文を参照してください。指定されない場合、デフォルトでnum_attention_headsが使用されます。 - hidden_act (
str、任意、デフォルトはgelu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、"relu"、"silu"など。 - max_position_embeddings (
int、任意、デフォルトは5000) — このモデルが使用される可能性のある最大シーケンス長です。 - initializer_range (
float、任意、デフォルトは0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。 - rope_parameters (
dict, 任意) — RoPE 埋め込みの設定パラメータを含む辞書です。辞書にはrope_thetaの値が含まれており、より長いmax_position_embeddingsで RoPE を使用する場合、スケーリングに使用されるパラメータが任意で含まれます。 - attention_dropout (
Union[float, int]、任意、デフォルトは0.0) — アテンション確率のドロップアウト率です。 - num_mel_bins (
int, 任意、デフォルトは128) — 入力フレームごとに使用される mel 特徴の数を指定します。AutoFeatureExtractorクラスで使用された値と一致させる必要があります。 - subsampling_factor (
int、省略可、デフォルトは 8) — 1 つのエンコーダーフレームにスタックされる連続スペクトログラムフレームの数です。
これは、Nemotron3 5 TranscribeModel の設定を保存するための設定クラスです。指定された引数に基づいて Nemotron3 5 Transcribe モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、nvidia/NVIDIA-Nemotron-3.5-Transcribe-30B-A4B と同様の設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
例:
>>> from transformers import Nemotron3_5TranscribeAsrAudioModel, Nemotron3_5TranscribeAsrAudioConfig
>>> # Initializing a Nemotron3_5TranscribeAsrAudioModel configuration
>>> configuration = Nemotron3_5TranscribeAsrAudioConfig()
>>> # Initializing a model (with random weights) from the configuration
>>> model = Nemotron3_5TranscribeAsrAudioModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configNemotron3_5TranscribeAudioConfig
class transformers.Nemotron3_5TranscribeAudioConfig
< 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 = Noneasr_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonediarization_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonespeaker_activity_threshold: float = 0.5 )
パラメータ
- asr_config (
Union[dict, Nemotron3_5TranscribeAsrAudioConfig]、任意) — 音声認識エンコーダーの設定。 - diarization_config (
Union[dict, Nemotron3DiarizationConfig], 任意) — 話者分離モデルの設定です。話者分離モデルの発話活動が、音声認識エンコーダーの出力に追加されます。 - speaker_activity_threshold (
float、任意、デフォルト値は 0.5) — エンコーダーフレームにおいて、話者の確率がこの閾値を超えている場合、その話者はアクティブとみなされます。
これは、Nemotron3 5 TranscribeModel の設定を保存するための設定クラスです。指定された引数に基づいて Nemotron3 5 Transcribe モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、nvidia/NVIDIA-Nemotron-3.5-Transcribe-30B-A4B と同様の設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
例:
>>> from transformers import Nemotron3_5TranscribeAudioModel, Nemotron3_5TranscribeAudioConfig
>>> # Initializing a Nemotron3_5TranscribeAudioModel configuration
>>> configuration = Nemotron3_5TranscribeAudioConfig()
>>> # Initializing a model (with random weights) from the configuration
>>> model = Nemotron3_5TranscribeAudioModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configNemotron3_5TranscribeWordTimestampConfig
class transformers.Nemotron3_5TranscribeWordTimestampConfig
< 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 = 1280intermediate_size: int = 640num_hidden_layers: int = 2num_attention_heads: int = 16num_key_value_heads: int | None = Nonehidden_act: str = 'gelu'max_position_embeddings: int = 5000initializer_range: float = 0.02rope_parameters: dict | None = Noneattention_dropout: float | int = 0.0vocab_size: int = 23863blank_token_id: int = 23862residual_scale: float = 0.1upsampling_factor: int = 2 )
パラメータ
- hidden_size (
int、任意、デフォルトは1280) — 隠れ表現の次元数です。 - intermediate_size (
int、任意、デフォルトは640) — MLP 表現の次元数。 - num_hidden_layers (
int、任意、デフォルトは2) — Transformerデコーダーの隠れ層の数。 - num_attention_heads (
int、任意、デフォルトは16) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。 - num_key_value_heads (
int, 任意) — Grouped Query Attention を実装するために使用する key_value ヘッドの数です。num_key_value_heads=num_attention_headsの場合、モデルは Multi Head Attention (MHA) を使用し、num_key_value_heads=1の場合は Multi Query Attention (MQA) を使用し、それ以外の場合は GQA が使用されます。 マルチヘッドのチェックポイントを GQA チェックポイントに変換する際は、各グループの key ヘッドと value ヘッドは、そのグループ内の元のすべてのヘッドを平均プーリングして構築する必要があります。詳細については、この論文を参照してください。指定されない場合、デフォルトでnum_attention_headsが使用されます。 - hidden_act (
str、任意、デフォルトはgelu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、"relu"、"silu"など。 - max_position_embeddings (
int、任意、デフォルトは5000) — このモデルが使用される可能性のある最大シーケンス長です。 - initializer_range (
float、任意、デフォルトは0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。 - rope_parameters (
dict, 任意) — RoPE 埋め込みの設定パラメータを含む辞書です。辞書にはrope_thetaの値が含まれており、より長いmax_position_embeddingsで RoPE を使用する場合、スケーリングに使用されるパラメータが任意で含まれます。 - attention_dropout (
Union[float, int]、任意、デフォルトは0.0) — アテンション確率のドロップアウト率です。 - vocab_size (
int、任意、デフォルトは 23863) — ワードタイムスタンプヘッドのクラス数です。アライメントトークナイザのピース数に、空白(blank)を 1 つ加えた値です。 - blank_token_id (
int、任意、デフォルト値は 23862)— アライメントトークナイザーの各ピースに続く空白クラスのインデックスです。 - residual_scale (
float、任意、デフォルト値は 0.1) — 分類器の前に音声認識エンコーダーの状態に追加される Transformer 出力のスケール。 - upsampling_factor (
int、任意、デフォルトは 2) — Transformer の前に適用される転置畳み込みによって生成される、エンコーダフレームあたりのヘッドフレーム数です。2 を指定すると、80 ms のエンコーダフレームから 40 ms のフレームが得られます。
これは、Nemotron3 5 TranscribeModel の設定を保存するための設定クラスです。指定された引数に基づいて Nemotron3 5 Transcribe モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、nvidia/NVIDIA-Nemotron-3.5-Transcribe-30B-A4B と同様の設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
例:
>>> from transformers import Nemotron3_5TranscribeConfig, Nemotron3_5TranscribeWordTimestampConfig
>>> # Initializing a Nemotron3_5TranscribeWordTimestamp configuration
>>> configuration = Nemotron3_5TranscribeWordTimestampConfig()
>>> # Using it as the word timestamp head of the model
>>> model_configuration = Nemotron3_5TranscribeConfig(word_timestamp_config=configuration)Nemotron3_5TranscribeProcessor
クラス transformers.Nemotron3_5TranscribeProcessor
< source >( feature_extractortokenizeralignment_tokenizerchat_template = Noneaudio_token = '<|audio|>'default_transcription_prompt = 'Audio transcription. Language: as spoken. Wording: verbatim, including fillers and repetitions. Formatting: punctuation and capitalization. Output: transcript only.'subsampling_factor = 8 )
パラメータ
- feature_extractor (
feature_extractor_class) — フィーチャーエクストラクターは必須の入力です。 - tokenizer (
tokenizer_class) — トークナイザーは必須の入力です。 - alignment_tokenizer (
PreTrainedTokenizerFast) — ワードタイムスタンプヘッドの語彙: 23,862 個の SentencePiece BPE 部品。ヘッドのクラス 23,862 は CTC の空白です。align_word_timestamps()でのみ使用され、alignment_tokenizer/サブフォルダーに保存されます。テキストの元の SentencePiece ID を再現するには、テキストの先頭にスペースを付加します。タグで始まるテキストも含みます:alignment_tokenizer.encode(" " + text, add_special_tokens=False)。 - chat_template (
str) — チャット内のメッセージのリストをトークン化可能な文字列に変換するための Jinja テンプレート。 - audio_token (
str、任意、デフォルトは"<|audio|>") — チャットテンプレート内で音声入力を表すために使用される特別なトークンです。 - default_transcription_prompt (
str、省略可) — apply_transcription_request()で使用されるデフォルトのプロンプト。 - subsampling_factor (
int、任意、デフォルトは 8) —Nemotron3_5TranscribeAsrAudioConfig.subsampling_factorに倣い、1 つのオーディオトークンあたりのスペクトログラムフレーム数を指定します。スペクトログラムは、この値の倍数になるようパディングされます。
Nemotron3_5TranscribeProcessor を構築します。このプロセッサは、フィーチャーエクストラクター、トークナイザー、アライメント用トークナイザーを単一のプロセッサにラップします。
Nemotron3_5TranscribeProcessor は、feature_extractor_class、tokenizer_class、および {alignment_tokenizer_class} のすべての機能を提供します。詳細については、~feature_extractor_class、~tokenizer_class、および ~{alignment_tokenizer_class} を参照してください。
__call__
< source >( text: str | list[str]audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = Noneoutput_labels: bool | None = False**kwargs: *<class 'transformers.models.nemotron3_5_transcribe.processing_nemotron3_5_transcribe.Nemotron3_5TranscribeProcessorKwargs'> ) → BatchFeature
パラメータ
- text (
Union[str, list[str]]) — エンコード対象のシーケンスまたはシーケンスのバッチです。各シーケンスは文字列または文字列のリスト(事前トークン化済み文字列)であることができます。事前トークン化済み入力を渡す場合は、バッチ入力との曖昧さを避けるためにis_split_into_words=Trueを設定してください。 - audio (
Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]], 任意) — 準備対象のオーディオまたはオーディオのバッチです。各オーディオは NumPy 配列または PyTorch テンソルであることができます。 NumPy 配列/PyTorch テンソルの場合、各オーディオの形状は (C, T) である必要があります。ここで C はチャネル数、T はオーディオのサンプル長です。 - output_labels (
bool、省略可、デフォルト: False) — 学習用のラベルを返すかどうか。 - return_tensors (
strまたは TensorType, 省略可) — 設定すると、特定のフレームワークのテンソルを返します。使用可能な値は以下の通りです:'pt': PyTorchのtorch.Tensorオブジェクトを返します。'np': NumPyのnp.ndarrayオブジェクトを返します。
- **kwargs (ProcessingKwargs、任意) — 各モダリティ(テキスト、画像、動画、音声)の追加処理オプション。モデル固有のパラメータは上記にリストされています。サポートされている引数の完全なリストについては、TypedDictクラスを参照してください。
戻り値
トークン化されたテキスト(input_ids、attention_mask)と音声特徴(input_features、input_features_mask)を含む辞書。
apply_transcription_request
< source >( audio: typing.Union[str, list[str], numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]prompt: str | list[str] | None = None**kwargs: *<class 'transformers.models.nemotron3_5_transcribe.processing_nemotron3_5_transcribe.Nemotron3_5TranscribeProcessorKwargs'> ) → BatchFeature
パラメータ
- audio (
str、list[str]、np.ndarray、torch.Tensor、list[np.ndarray]、list[torch.Tensor]) — 文字起こしを行う音声です。文字列はローカルパスまたは URL として解釈され、チャットテンプレートローダーによって自動的に読み込まれます。NumPy 配列と PyTorch テンソルはそのまま転送されます。 - prompt (
strまたはlist[str]、省略可) — ユーザーターンに含めるカスタムプロンプトです。リストの場合、バッチの長さと一致する必要があります。Noneの場合、各サンプルはdefault_transcription_promptを使用します。 - **kwargs —
apply_chat_template() に転送される追加のキーワード引数(例:
text_kwargs、audio_kwargsなど)。enable_thinking=Trueが渡されない限り、Thinking は無効になります(チャットテンプレートではデフォルトで有効になっています)。
戻り値
Nemotron3_5TranscribeForConditionalGeneration.generate() に渡す準備が整った Processor の出力。
デフォルトの文字起こしプロンプトを手動で記述せずに、自動音声認識の入力を準備します。
apply_chat_template
< source >( conversation: list[dict[str, str]] | list[list[dict[str, str]]]chat_template: str | None = Nonetools: list[dict] | None = Nonedocuments: list[dict[str, str]] | None = Noneadd_generation_prompt: bool = Falsecontinue_final_message: bool | str = Falsereturn_assistant_tokens_mask: bool = Falsetokenize: bool = Falsereturn_tensors: str | transformers.utils.generic.TensorType | None = 'auto'return_dict: bool = Falseload_audio_from_video: bool = Falseprocessor_kwargs: dict | None = None**kwargs )
トークナイザーのapply_chat_templateメソッドと同様に、このメソッドは入力された会話にJinjaテンプレートを適用し、それを単一のトークナイズ可能な文字列に変換します。
入力には、各メッセージのコンテンツがテキストと、任意の画像または動画の入力からなるリストである、以下の形式が期待されます。return_dict=True の場合、画像、動画、URL、またはローカルパスを指定することもでき、それらは pixel_values を形成するために使用されます。指定しない場合、フォーマットされたテキストのみ、または任意でトークン化されたテキストのみが返されます。
conversation = [ { “role”: “user”, “content”: [ {“type”: “image”, “url”: “https://www.ilankelman.org/stopsigns/australia.jpg”}, {“type”: “text”, “text”: “Please describe this image in detail.”}, ], }, ]
extract_speaker_dict
< source >( text: str | list[str] ) → list[dict] for a single text, list[list[dict]] for a batch
パラメータ
- text (
strまたはlist[str]) —skip_special_tokens=Falseを指定してデコードされた、単一のテキストまたはテキストのバッチです。<spk:N>のスピーカータグは特殊トークンです。テキスト終了トークン以降のすべての内容は破棄されます。
戻り値
単一のテキストにはlist[dict]、バッチにはlist[list[dict]]
話者ターンごとに1つの辞書で、<spk:N> タグのインデックス N を "Speaker" に、その "Content" を含めます。タグのないテキストは "Speaker": None の単一ターンとして扱われ、最初のタグ(存在する場合)より前のテキストも同様です。
話者帰属付きの文字起こしを、このモデルが予測しないタイムスタンプを除いたVibeVoiceAsrProcessor.extract_speaker_dict()の形式で、話者ごとのターンに分割します。
align_word_timestamps
< source >( transcriptions: str | list[str]word_timestamp_logits: torch.Tensorinput_features_mask: torch.Tensorspeaker_logits: torch.Tensor | None = Nonelanguage: str | list[str | None] | None = Nonespeaker_activity_threshold: float = 0.5max_word_duration: float = 1.0max_word_frames: int = 12 ) → dict or list[dict]
パラメータ
- transcriptions (
strまたはlist[str]) —skip_special_tokens=Falseを指定してデコードされた、各録音の生成テキスト。<spk:N>タグを保持します。 - word_timestamp_logits (
torch.Tensor、shape(batch_size, num_frames * upsampling_factor, vocab_size)) — 単語タイムスタンプヘッドの logits(generate(..., return_word_timestamp_logits=True)またはmodel.get_word_timestamp_logits(...)のword_timestamp_logits)です。最後のクラスは CTC blank です。エンコーダフレームあたりのフレーム数である、このヘッドのupsampling_factorは、その shape から読み取られます。 - input_features_mask (
torch.Tensor、形状(batch_size, feature_sequence_length)) — プロセッサが返す、各録音の有効なスペクトログラムフレームのマスクです。その数によって録音の長さが決まるため、ヘッドのフレームのタイムステップもこれに基づいて設定されます。 - speaker_logits (
torch.Tensor、形状(batch_size, num_frames * subsampling_factor, num_speakers)、任意) — 話者分離モデルの logits(generate(..., return_word_timestamp_logits=True)のspeaker_logits、またはget_audio_featuresのもの)。これがない場合、各文字起こしは単一の話者としてアラインされ、話者分離の結果は返されません。 - language (
strまたはlist[str | None]、省略可) — トランスクリプトの言語です。全トランスクリプト共通で指定するか、トランスクリプトごとに指定します。Noneの場合は、文字体系から検出されます:"zh"と"ja"は文字単位でアラインメントされますが、"th"はサポートされていません。 - speaker_activity_threshold (
float、任意、デフォルト値は 0.5)— 話者がアクティブと判定される確率の閾値。 - max_word_duration (
float、任意、デフォルト値は 1.0) — アラインされた単語の最大持続時間(秒)。 - max_word_frames (
int, 任意、デフォルト値は 12) — 話者分離セグメントにスナップされた単語の最大シフト量と持続時間(エンコーダーフレーム単位、1 フレームは最大 80 ms)。
戻り値
dict または list[dict]
録音(またはトランスクリプトのリストの各録音)に対して、音声認識パイプラインの単語タイムスタンプとして、"chunks"
(単語ごとに {"text", "timestamp", "speaker"}、timestamp = (start, end)(秒単位)、時刻順にソート済み;
speaker は単語のタグの N、最初のタグの前では None、タグのないトランスクリプトでは 0)、
"diarization"(各ディアライゼーション話者の {"speaker", "timestamp"} アクティビティセグメント)、
"speaker_tag_to_diarization_speaker"(一致しないタグは None)、および "failed_speakers"(単語がアラインできなかったタグ、"chunks" に欠落)。
生成された文字起こしの各単語に時刻を付与し、話者に割り当てます。各<spk:N>タグの単語は、タグに対応する話者がアクティブな単語タイムスタンプヘッドのフレーム上で強制アラインメント(torchaudio.functional.forced_align)が行われ、その後、その話者の話者分離セグメントにスナップされます。NeMoのMultiSpeakerSOTWordTimestampAlignerの移植版であり、長い録音に対して近似処理を行う箇所では正確な探索を行います。
例:
>>> inputs = processor.apply_transcription_request(audio, prompt=speaker_attributed_prompt).to(model.device)
>>> outputs = model.generate(**inputs, return_word_timestamp_logits=True, max_new_tokens=500)
>>> transcriptions = processor.decode(
... outputs.sequences[:, inputs.input_ids.shape[1] :], skip_special_tokens=False
... )
>>> timestamps = processor.align_word_timestamps(
... transcriptions, outputs.word_timestamp_logits, inputs.input_features_mask, outputs.speaker_logits
... )
>>> timestamps[0]["chunks"][0] # {'text': ..., 'timestamp': (..., ...), 'speaker': 0}Nemotron3_5TranscribeAsrAudioModel
class transformers.Nemotron3_5TranscribeAsrAudioModel
< source >( config: Nemotron3_5TranscribeAsrAudioConfig )
パラメータ
- config (Nemotron3_5TranscribeAsrAudioConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
Nemotron 3.5 Transcribe 音声認識エンコーダー: Nemotron 3 Diarization 音声エンコーダーに、各アテンションヘッドのクエリとキーの正規化、および各ヘッドの一部に対する回転位置埋め込みを追加したものです。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( input_features: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutput 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 です。
- inputs_embeds (
torch.Tensor、形状(batch_size, sequence_length, hidden_size)、任意) —input_idsを渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込み参照行列よりも、input_idsのインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。 - position_ids (
torch.Tensorの形状(batch_size, sequence_length), 、省略可) — 位置埋め込みにおける各入力シーケンスのトークンの位置のインデックス。範囲[0, config.n_positions - 1].
戻り値
BaseModelOutput または tuple(torch.FloatTensor)
torch.FloatTensor のタプル、または BaseModelOutput(return_dict=False が渡された場合、または config.return_dict=False の場合)。設定(Nemotron3_5TranscribeConfig)や入力に応じて、さまざまな要素で構成されます。
Nemotron3_5TranscribeAsrAudioModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
last_hidden_state (
torch.FloatTensor、shape(batch_size, sequence_length, hidden_size)) — モデルの最終層の出力における隠れ状態のシーケンス。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後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
Nemotron3_5TranscribeAudioModel
class transformers.Nemotron3_5TranscribeAudioModel
< source >( config: Nemotron3_5TranscribeAudioConfig )
パラメータ
- config (Nemotron3_5TranscribeAudioConfig) — モデルのすべてのパラメータを含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連付けられた重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
Nemotron 3.5 Transcribe 音声モデルでは、音声認識エンコーダーと話者分離モデルが同じスペクトログラム上で並列に実行され、話者の活動が音声認識エンコーダーの出力に追加されます。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( input_features: FloatTensorinput_features_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Nemotron3_5TranscribeAudioModelOutput or tuple(torch.FloatTensor)
パラメータ
- input_features (
torch.FloatTensor、shape(batch_size, feature_sequence_length, num_mel_bins)) —config.subsampling_factorの倍数のフレーム数にパディングされたログメルスペクトログラムです。オリジナルと同様に、config.diarization_config.chunk_lengthエンコーダーフレームより長い音声は、コンテキスト付きでチャンクごとにエンコードされます。 - input_features_mask (
torch.Tensor、形状(batch_size, feature_sequence_length)、任意) — 有効なスペクトログラムフレームのマスクです。パディングは右側に行う必要があります。
戻り値
Nemotron3_5TranscribeAudioModelOutput または tuple(torch.FloatTensor)
Nemotron3_5TranscribeAudioModelOutput、またはtorch.FloatTensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。設定(Nemotron3_5TranscribeConfig)や入力に応じて、さまざまな要素で構成されます。
Nemotron3_5TranscribeAudioModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
last_hidden_state (
torch.FloatTensor、shape(batch_size, sequence_length, hidden_size)) — モデルの最終層の出力における隠れ状態のシーケンス。pooler_output (
torch.FloatTensor、shape(num_audio_tokens, text_config.hidden_size)、optional) — 各録音の有効なエンコーダーフレームの投影されたオーディオ埋め込みを、バッチ順で返します。プロンプト内のオーディオトークンを置き換える埋め込みです。get_audio_featuresによって返されます。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後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
asr_last_hidden_state (
torch.FloatTensor、shape(batch_size, num_frames, audio_config.hidden_size)) — 音声認識エンコーダーの出力。正規化とスピーカー埋め込み適用前の値であり、get_word_timestamp_logits() の入力です。speaker_logits (
torch.FloatTensor、shape(batch_size, feature_sequence_length, audio_config.num_speakers)) — 話者分離モデルの logits。スペクトログラムの各フレームに対応する 1 フレーム分です。
Nemotron3_5TranscribeWordTimestampModel
class transformers.Nemotron3_5TranscribeWordTimestampModel
< source >( config: Nemotron3_5TranscribeWordTimestampConfig )
パラメータ
- config (Nemotron3_5TranscribeWordTimestampConfig) — モデルのすべてのパラメータを含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連付けられた重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
Nemotron 3.5 Transcribe の単語タイムスタンプヘッドの transformer。Nemotron3_5TranscribeForConditionalGeneration.word_timestamp_head はその出力を分類します。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( inputs_embeds: FloatTensorattention_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )
Nemotron3_5TranscribeWordTimestampModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
num_frames * upsampling_factor フレームを返します。
Nemotron3_5TranscribeModel
class transformers.Nemotron3_5TranscribeModel
< source >( config: Nemotron3_5TranscribeConfig )
パラメータ
- config (Nemotron3_5TranscribeConfig) — モデルのすべてのパラメータを含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
Nemotron 3.5 Transcribe モデル(音声認識エンコーダーと話者分離モデルを並列に配置し、線形プロジェクターと Nemotron-H 言語モデルを備えた構成)で、言語モデリングヘッドは含まれません。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.FloatTensor] = Noneinput_features_mask: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Nemotron3_5TranscribeModelOutputWithPast or tuple(torch.FloatTensor)
パラメータ
- input_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- input_features (
torch.FloatTensor、形状(batch_size, sequence_length, feature_dim)、任意) — 入力音声特徴に対応するテンソルです。音声特徴はfeature_extractor_classを使用して取得できます。詳細はfeature_extractor_class.__call__を参照してください(processor_classは音声の処理にfeature_extractor_classを使用します)。 - input_features_mask (
torch.Tensor、形状(batch_size, feature_sequence_length)) — パディングされた特徴インデックスに対するアテンションの計算を回避するためのマスク。 - attention_mask (
torch.Tensorの形状(batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。[0, 1]:- マスクされていないトークンに対して1
- マスクされたトークンに対しては 0 です。
- position_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、任意) — 各入力シーケンスのトークンが位置埋め込み内で占める位置のインデックス。範囲[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, 省略可) — 逐次デコードを高速化するために使用できる、事前計算された隠れ状態(自己アテンションブロックおよびクロスアテンションブロックのキーとバリュー)。通常、これはデコードの以前の段階でモデルが返したpast_key_valuesであり、use_cache=Trueまたはconfig.use_cache=True.入力として許可されるのは Cache インスタンスのみです。kv cache ガイドを参照してください。
past_key_valuesが渡されない場合、デフォルトで DynamicCache が初期化されます。モデルは、入力として与えられたのと同じキャッシュ形式を出力します。
past_key_valuesを使用する場合、すべてのinput_ids(形状(batch_size, sequence_length))ではなく、このモデルに過去のキー・バリュー状態が与えられていない未処理のinput_ids(形状(batch_size, unprocessed_length))のみを入力することになります。 - inputs_embeds (
torch.FloatTensor、形状(batch_size, sequence_length, hidden_size)、任意) —input_idsを渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込みルックアップ行列よりも、input_idsのインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。 - use_cache (
bool、任意) —Trueに設定すると、past_key_valuesのキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_valuesを参照)。
戻り値
Nemotron3_5TranscribeModelOutputWithPast または tuple(torch.FloatTensor)
Nemotron3_5TranscribeModelOutputWithPast、またはtorch.FloatTensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。設定(Nemotron3_5TranscribeConfig)や入力に応じて、さまざまな要素で構成されます。
Nemotron3_5TranscribeModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
last_hidden_state (
torch.FloatTensor、shape(batch_size, sequence_length, hidden_size)) — モデルの最終層の出力における隠れ状態のシーケンス。past_key_valuesが使用されている場合、出力されるのは、形状(batch_size, 1, hidden_size)のシーケンスの最後の隠れ状態のみです。past_key_values (
Cache、任意、use_cache=Trueが渡された場合またはconfig.use_cache=Trueの場合に返されます) — Cache のインスタンスです。詳細については、kv cache ガイドを参照してください。自己アテンションブロック(および
config.is_encoder_decoder=Trueの場合、クロスカレンションブロック)の事前計算済みヒドゥンステート(キーとバリュー)を保持します。これらは逐次デコーディングを高速化するために使用できます(past_key_values入力参照)。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後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
audio_hidden_states (
torch.FloatTensor、任意) — 投影されたオーディオの隠れ状態。
get_audio_features
< source >( input_features: FloatTensorinput_features_mask: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.FloatTensor)
パラメータ
- input_features (
torch.FloatTensor) — 生の音声波形から抽出されたメル特徴量の浮動小数点値。 - input_features_mask (
torch.Tensor、shape(batch_size, feature_sequence_length)) — パディングされた特徴インデックスに対してアテンションを実行しないためのマスク。
戻り値
BaseModelOutputWithPooling または tuple(torch.FloatTensor)
torch.FloatTensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)、または BaseModelOutputWithPooling。設定(Nemotron3_5TranscribeConfig)や入力に応じて、さまざまな要素で構成されます。
このメソッドは、入力特徴量(log mel spectrogram)から音声エンベディングを取得するために使用されます。これは、音声エンコーダーとマルチモーダルプロジェクターの推論を実行することを意味します。
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後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
( asr_last_hidden_state: FloatTensorinput_features_mask: Tensor )
パラメータ
- asr_last_hidden_state (
torch.FloatTensor、shape(batch_size, num_frames, audio_config.hidden_size)) —input_features_maskに対して get_audio_features() が返す、正規化およびスピーカー埋め込み適用前の音声認識エンコーダーの出力です。 - input_features_mask (
torch.Tensor、形状(batch_size, feature_sequence_length)) — 有効なスペクトログラムフレームのマスクです。パディングは右側に行う必要があります。
エンコーダーのチャンク単位で、音声認識エンコーダーの状態に対して単語タイムスタンプエンコーダーを実行します。これは、単語タイムスタンプヘッドが分類する状態です。
Nemotron3_5TranscribeForConditionalGeneration
クラス transformers.Nemotron3_5TranscribeForConditionalGeneration
< source >( config: Nemotron3_5TranscribeConfig )
パラメータ
- config (Nemotron3_5TranscribeConfig) — モデルのすべてのパラメータを含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
Nemotron 3.5 Transcribe モデル(音声認識エンコーダーと話者分離モデルを並列に配置し、線形プロジェクターと Nemotron-H 言語モデルを備えたもの)に、言語モデリングヘッドを付加した構成です。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.FloatTensor] = Noneinput_features_mask: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Nemotron3_5TranscribeCausalLMOutputWithPast or tuple(torch.FloatTensor)
パラメータ
- input_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- input_features (
torch.FloatTensor、形状(batch_size, sequence_length, feature_dim)、任意) — 入力音声特徴に対応するテンソルです。音声特徴はfeature_extractor_classを使用して取得できます。詳細はfeature_extractor_class.__call__を参照してください(processor_classは音声の処理にfeature_extractor_classを使用します)。 - input_features_mask (
torch.Tensor、形状(batch_size, feature_sequence_length)) — パディングされた特徴インデックスに対するアテンションの計算を回避するためのマスク。 - attention_mask (
torch.Tensorの形状(batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。[0, 1]:- マスクされていないトークンに対して1
- マスクされたトークンに対しては 0 です。
- position_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、任意) — 各入力シーケンスのトークンが位置埋め込み内で占める位置のインデックス。範囲[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, 省略可) — 逐次デコードを高速化するために使用できる、事前計算された隠れ状態(自己アテンションブロックおよびクロスアテンションブロックのキーとバリュー)。通常、これはデコードの以前の段階でモデルが返したpast_key_valuesであり、use_cache=Trueまたはconfig.use_cache=True.入力として許可されるのは Cache インスタンスのみです。kv cache ガイドを参照してください。
past_key_valuesが渡されない場合、デフォルトで DynamicCache が初期化されます。モデルは、入力として与えられたのと同じキャッシュ形式を出力します。
past_key_valuesを使用する場合、すべてのinput_ids(形状(batch_size, sequence_length))ではなく、このモデルに過去のキー・バリュー状態が与えられていない未処理のinput_ids(形状(batch_size, unprocessed_length))のみを入力することになります。 - inputs_embeds (
torch.FloatTensor、形状(batch_size, sequence_length, hidden_size)、任意) —input_idsを渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込みルックアップ行列よりも、input_idsのインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。 - labels (
torch.LongTensor、shape(batch_size, sequence_length)、任意) — マスク言語モデリング損失を計算するためのラベル。 - use_cache (
bool、任意) —Trueに設定すると、past_key_valuesのキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_valuesを参照)。 - logits_to_keep (
Union[int, torch.Tensor]、省略可、デフォルトは0) —intの場合、最後のlogits_to_keepトークンについて logits を計算します。0の場合、すべてのinput_idsについて logits を計算します(特殊ケース)。生成には最後のトークンの logits だけで十分であり、そのトークンのみについて計算することでメモリを節約できます。これは、長いシーケンスや大規模な語彙サイズの場合に特に顕著な効果があります。torch.Tensorの場合、シーケンス長次元で保持するインデックスに対応する 1 次元テンソルである必要があります。これは、パックされたテンソル形式(バッチとシーケンス長を単一の次元にまとめた形式)を使用する場合に有用です。
戻り値
Nemotron3_5TranscribeCausalLMOutputWithPast または tuple(torch.FloatTensor)
Nemotron3_5TranscribeCausalLMOutputWithPast、またはtorch.FloatTensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。設定(Nemotron3_5TranscribeConfig)や入力に応じて、さまざまな要素で構成されます。
Nemotron3_5TranscribeForConditionalGeneration の forward メソッドは、__call__ という特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
loss (
torch.FloatTensor、shape(1,)、optional、labelsが指定された場合に返されます) — 言語モデリングの損失(次のトークン予測用)。logits (
torch.FloatTensor、shape(batch_size, sequence_length, config.vocab_size)) — 言語モデリングヘッドの予測スコア。past_key_values (
Cache、任意、use_cache=Trueが渡された場合またはconfig.use_cache=Trueの場合に返されます)— Cache のインスタンスです。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後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
audio_hidden_states (
torch.FloatTensor、任意) — 投影後のオーディオエンコーダーの隠れ状態。
get_audio_features
< source >( input_featuresinput_features_mask**kwargs )
パラメータ
- input_features (`
of shape(batch_size, sequence_length, feature_dim)) -- The tensors corresponding to the input audio features. Audio features can be obtained usingfeature_extractor_class. Seefeature_extractor_class.callfor details (processor_classusesfeature_extractor_class` for processing audios). - input_features_mask (
torch.Tensor、形状(batch_size, feature_sequence_length)) — 有効なスペクトログラムフレームのマスクです。パディングは右側に行う必要があります。
get_word_timestamp_logits
< source >( asr_last_hidden_state: FloatTensorinput_features_mask: Tensor )
パラメータ
- asr_last_hidden_state (
torch.FloatTensor、shape(batch_size, num_frames, audio_config.hidden_size)) —input_features_maskに対して get_audio_features() が返す、正規化およびスピーカー埋め込み適用前の音声認識エンコーダーの出力です。 - input_features_mask (
torch.Tensor、形状(batch_size, feature_sequence_length)) — 有効なスペクトログラムフレームのマスクです。パディングは右側に行う必要があります。
音声認識エンコーダーの状態で、align_word_timestamps() が単語の時刻に変換する、timestamp head の logits。