Transformers documentation
Fun-ASR-Nano
このモデルは2025年9月15日にHF papersで公開され、2026年9月8日にHugging Face Transformersに貢献されました。
Fun-ASR-Nano
概要
Fun-ASR-Nano は、Alibaba DAMO Academy の FunAudioLLM チームが開発した、8億パラメータのエンドツーエンド音声認識モデルです。同等のモデルよりも大幅に小さいながら、中国語、英語、日本語の ASR ベンチマークで最先端の性能を達成しています。
このモデルは、Fun-ASR: An Industrial-Grade Speech Recognition System で提案されました。
アーキテクチャ
Fun-ASR-Nanoは3つのコンポーネントで構成されています:
Audio Encoder(SenseVoiceEncoderSmall): 70層のSANM(Self-Attention with FSMN Memory)エンコーダーです。マルチヘッド自己注意機構とFeedforward Sequential Memory Networksを組み合わせることで、効率的な音声特徴抽出を実現します。
Audio Adaptor: エンコーダーの出力(512次元)をLLMの次元(1024次元)に射影する2層のTransformerです。
Language Model(Qwen3-0.6B):28層の因果言語モデルで、逐次的に文字起こしテキストを生成します。
主な機能
- 中国語、英語、日本語(中国語の7つの方言と26の地域アクセントを含む)
- ホットワードのカスタマイズによるドメイン固有の語彙
- ネイティブな句読点出力(個別の句読点モデルは不要)
使用方法
単一推論
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor
model_id = "FunAudioLLM/Fun-ASR-Nano-2512-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id, device_map="auto")
audio_url = "https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512/resolve/main/example/en.mp3"
inputs = processor.apply_transcription_request(audio=audio_url).to(model.device)
generated_ids = model.generate(**inputs, max_new_tokens=200)
generated_ids = generated_ids[:, inputs.input_ids.shape[1]:]
print(processor.decode(generated_ids, skip_special_tokens=True)[0])バッチ推論
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor
model_id = "FunAudioLLM/Fun-ASR-Nano-2512-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id, device_map="auto")
audio_urls = [
"https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512/resolve/main/example/zh.mp3",
"https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512/resolve/main/example/en.mp3",
]
languages = ["zh", "en"]
inputs = processor.apply_transcription_request(audio=audio_urls, language=languages).to(model.device)
generated_ids = model.generate(**inputs, max_new_tokens=200)
generated_ids = generated_ids[:, inputs.input_ids.shape[1]:]
print(processor.decode(generated_ids, skip_special_tokens=True))カスタムプロンプトとホットワード
prompt にコンテキスト情報、keywords にホットワードを渡します。チェックポイントのチャットテンプレートが完全な文字起こし指示を構築します。language には、中国語、英語、日本語の正式名称または ISO コードを指定できます。
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor
model_id = "FunAudioLLM/Fun-ASR-Nano-2512-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id, device_map="auto")
audio_url = "https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512/resolve/main/example/en.mp3"
inputs = processor.apply_transcription_request(
audio=audio_url,
prompt="A tribal story involving a chieftain and a boy.",
keywords=["tribal chieftain", "fifty pieces of gold"],
).to(model.device)
generated_ids = model.generate(**inputs, max_new_tokens=200)
generated_ids = generated_ids[:, inputs.input_ids.shape[1]:]
print(processor.decode(generated_ids, skip_special_tokens=True)[0])トレーニング
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor
model_id = "FunAudioLLM/Fun-ASR-Nano-2512-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id, device_map="auto")
model.train()
audio_url = "https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512/resolve/main/example/en.mp3"
conversation = [
{
"role": "user",
"content": [
{"type": "audio", "path": audio_url},
],
},
{
"role": "assistant",
"content": [
{
"type": "text",
"text": "The tribal chieftain called for the boy, and presented him with fifty pieces of gold.",
}
],
},
]
inputs = processor.apply_chat_template(
conversation,
tokenize=True,
return_dict=True,
processor_kwargs={"output_labels": True},
).to(model.device)
loss = model(**inputs).loss
loss.backward()torch.compile による推論
import torch
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor, CompileConfig
model_id = "FunAudioLLM/Fun-ASR-Nano-2512-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id, device_map="auto")
audio_url = "https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512/resolve/main/example/en.mp3"
inputs = processor.apply_transcription_request(audio=audio_url).to(model.device)
with torch.inference_mode():
generated_ids = model.generate(
**inputs,
max_new_tokens=200,
compile_config=CompileConfig(),
)
generated_ids = generated_ids[:, inputs.input_ids.shape[1]:]
print(processor.decode(generated_ids, skip_special_tokens=True)[0])FunAsrNanoConfig
class transformers.FunAsrNanoConfig
< 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 = Noneadaptor_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneaudio_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneaudio_token_id: int = 151646initializer_range: float = 0.02tie_word_embeddings: bool = True )
パラメータ
- adaptor_config (
dictまたはFunAsrNanoAdaptorConfig、省略可) — 双方向オーディオアダプタの設定です。 - audio_config (
Union[dict, ~configuration_utils.PreTrainedConfig]、任意) — オーディオバックボーンの config オブジェクトまたは辞書。 - text_config (
Union[dict, ~configuration_utils.PreTrainedConfig]、省略可) — テキストバックボーンの設定オブジェクトまたは辞書。 - audio_token_id (
int、任意、デフォルトは151646) — 入力音声のプレースホルダーとして使用されるオーディオトークンのインデックスです。 - initializer_range (
float、任意、デフォルトは0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。 - tie_word_embeddings (
bool、任意、デフォルトはTrue) — モデルのtied_weights_keysマッピングに従って重み埋め込みを共有するかどうかを指定します。
これは FunAsrNanoModel の設定を保存するための設定クラスです。指定された引数に基づいて Fun Asr Nano モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、FunAudioLLM/Fun-ASR-Nano-2512-hf と同様の設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
FunAsrNanoEncoderConfig
class transformers.FunAsrNanoEncoderConfig
< 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 = Nonenum_mel_bins: int = 80hidden_size: int = 512num_attention_heads: int = 4intermediate_size: int = 2048num_hidden_layers: int = 70hidden_dropout: float = 0.1attention_dropout: float = 0.1layer_norm_eps: float = 1e-05hidden_act: str = 'relu'max_position_embeddings: int = 2049num_stacked_frames: int = 7num_timestamp_prediction_layers: int = 20fsmn_kernel_size: int = 11 )
パラメータ
- num_mel_bins (
int, 任意、デフォルトは80) — 入力フレームごとに使用される mel 特徴の数を指定します。AutoFeatureExtractorクラスで使用された値と一致させる必要があります。 - hidden_size (
int、任意、デフォルトは512) — 隠れ表現の次元数。 - num_attention_heads (
int、任意、デフォルトは4) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。 - intermediate_size (
int、任意、デフォルトは2048) — MLP 表現の次元数。 - num_hidden_layers (
int、任意、デフォルト値は 70) — エンコーダーの層の総数です。転写層と、それに続くタイムスタンプ予測層の両方を含みます。 - hidden_dropout (
float、任意、デフォルトは0.1) — embeddings、encoder、pooler 内のすべての全結合層における dropout 確率です。 - attention_dropout (
float、任意、デフォルトは0.1) — アテンション確率のドロップアウト率です。 - layer_norm_eps (
float、任意、デフォルトは1e-05) — レイヤーノーマル層で使用する epsilon です。 - hidden_act (
str、任意、デフォルトはrelu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、"relu"、"silu"など。 - max_position_embeddings (
int、任意、デフォルトは2049) — このモデルが使用される可能性のある最大シーケンス長です。 - num_stacked_frames (
int, 任意、デフォルトは 7) — 低フレームレート特徴量抽出によってスタックされる連続する mel フレームの数。 - num_timestamp_prediction_layers (
int、任意、デフォルト値は 20)— タイムスタンプ予測に専用に割り当てられるエンコーダー層(最後の層)の数。転写出力は、num_hidden_layers - num_timestamp_prediction_layers - 1層の後に取得されます。 - fsmn_kernel_size (
int, 任意、デフォルト値は 11)— フィードフォワード逐次メモリネットワーク (FSMN) の畳み込みにおけるカーネルサイズです。
これは FunAsrNanoModel の設定を保存するための設定クラスです。指定された引数に基づいて Fun Asr Nano モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、FunAudioLLM/Fun-ASR-Nano-2512-hf と同様の設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
FunAsrNanoAdaptorConfig
クラス transformers.FunAsrNanoAdaptorConfig
< 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 = 1024num_attention_heads: int = 8intermediate_size: int = 256num_hidden_layers: int = 2hidden_dropout: float = 0.0attention_dropout: float = 0.0layer_norm_eps: float = 1e-05hidden_act: str = 'relu'projector_hidden_act: str = 'relu'projector_hidden_size: int = 2048 )
パラメータ
- hidden_size (
int、任意、デフォルトは1024) — 隠れ表現の次元数。 - num_attention_heads (
int、任意、デフォルトは8) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。 - intermediate_size (
int、任意、デフォルトは256) — MLP 表現の次元数。 - num_hidden_layers (
int、任意、デフォルトは2) — Transformerデコーダーの隠れ層の数。 - hidden_dropout (
float、任意、デフォルトは0.0) — embeddings、encoder、pooler 内のすべての全結合層における dropout 確率です。 - attention_dropout (
float、任意、デフォルトは0.0) — アテンション確率のドロップアウト率です。 - layer_norm_eps (
float、任意、デフォルトは1e-05) — レイヤーノーマル層で使用する epsilon です。 - hidden_act (
str、任意、デフォルトはrelu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、"relu"、"silu"など。 - projector_hidden_act (
str、任意、デフォルトはrelu) — マルチモーダルプロジェクターで使用する活性化関数です。 - projector_hidden_size (
int、任意、デフォルトは2048) — テキストおよびビジョンの投影層の次元数。
これは FunAsrNanoModel の設定を保存するための設定クラスです。指定された引数に基づいて Fun Asr Nano モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、FunAudioLLM/Fun-ASR-Nano-2512-hf と同様の設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
FunAsrNanoFeatureExtractor
クラス transformers.FunAsrNanoFeatureExtractor
< source >( feature_size: int = 80sampling_rate: int = 16000frame_length: int = 25frame_shift: int = 10num_frames_lfr: int = 7stride_lfr: int = 6window: str = 'hamming'padding_value: float = 0.0return_attention_mask: bool = True**kwargs )
パラメータ
- feature_size (
int、任意、デフォルトは 80) — メル周波数ビンの数です。 - sampling_rate (
int、任意、デフォルトは 16000) — オーディオのサンプリングレートです。 - frame_length (
int、任意、デフォルトは 25) — STFT におけるフレーム長(ミリ秒)。 - frame_shift (
int、任意、デフォルト値は 10)— STFT におけるフレームシフト(ホップ長)をミリ秒単位で指定します。 - num_frames_lfr (
int、任意、デフォルトは 7)— スタックする連続フレームの数(LFR スタッキング係数)。 - stride_lfr (
int、任意、デフォルトは 6)— LFR のサブサンプリング間隔(スタックされたフレームをstride_lfr個ごとに 1 個取り出します)。 - window (
str、任意、デフォルトは"hamming") — STFT に使用するウィンドウ関数。 - padding_value (
float、任意、デフォルトは 0.0) — 短いシーケンスのパディングに使用される値。 - return_attention_mask (
bool、任意、デフォルトはTrue) — attention mask を返すかどうか。
Fun-ASR-Nano の特徴抽出器を構築します。
このフィーチャーエクストラクターは、主要なメソッドの大部分を含む SequenceFeatureExtractor を継承しています。これらのメソッドに関する詳細については、このスーパークラスを参照してください。
Kaldi互換のメルフィルタバンク特徴量(torchaudio.compliance.kaldi.fbankを介して、元のFunASRフロントエンドに一致する)を抽出し、その後、num_frames_lfr個の連続フレームをスタックして、ストライドstride_lfrでサブサンプリングを行うことで、低フレームレート(LFR)処理を適用します。
例:
>>> import numpy as np
>>> from transformers import FunAsrNanoFeatureExtractor
>>> feature_extractor = FunAsrNanoFeatureExtractor()
>>> audio = np.random.randn(16000) # 1 second of audio at 16kHz
>>> features = feature_extractor(audio, sampling_rate=16000, return_tensors="pt")
>>> features.input_features.shape # (1, num_frames_after_lfr, 560)__call__
< source >( raw_speech: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]sampling_rate: int | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = 'pt'padding: bool | str = Truemax_length: int | None = Nonetruncation: bool = Falsepad_to_multiple_of: int | None = Nonereturn_attention_mask: bool | None = None**kwargs )
パラメータ
- raw_speech (
np.ndarray、list[float]、list[np.ndarray]、list[list[float]]) — 特徴量化の対象となるモノラル波形のシーケンスまたはバッチです。 - sampling_rate (
int, 任意) — 入力オーディオのサンプリングレートです。self.sampling_rate(16000 Hz)と一致する必要があります。 - return_tensors (
strまたは TensorType、optional) — 設定されている場合、指定されたフレームワーク("pt"、"np"など)のテンソルを返します。 - padding (
boolまたはstr、省略可能、デフォルトはTrue) — pad() に転送されるパディング戦略。 - max_length (
int, 任意) — パディングや切り詰め用の LFR シーケンスの最大長。 - truncation (
bool、任意、デフォルトはFalse) —max_lengthより長いシーケンスを切り詰めるかどうか。 - pad_to_multiple_of (
int, 省略可) — 設定した場合、LFR シーケンスの長さをこの値の倍数にパディングします。 - return_attention_mask (
bool、省略可) —input_features_maskを返すかどうか。デフォルトはself.return_attention_maskです。
1つ以上の生オーディオ波形から、Kaldiのメルフィルタバンク特徴量およびLFR特徴量を抽出します。
FunAsrNanoProcessor
class transformers.FunAsrNanoProcessor
< source >( feature_extractortokenizerchat_template = Noneaudio_token = '<|object_ref_start|>' )
FunAsrNanoProcessor を構築します。これは、フィーチャーエクストラクターとトークナイザーを単一のプロセッサーにラップします。
FunAsrNanoProcessor は、FunAsrNanoFeatureExtractor と Qwen2Tokenizer のすべての機能を提供します。詳細については、~FunAsrNanoFeatureExtractor および ~Qwen2Tokenizer を参照してください。
__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.fun_asr_nano.processing_fun_asr_nano.FunAsrNanoProcessorKwargs'> ) → 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[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], list[typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]]]language: str | list[str] | None = Noneprompt: str | list[str] | None = Nonekeywords: str | list[str] | list[list[str]] | None = Nonetokenize: bool = True**kwargs: *<class 'transformers.models.fun_asr_nano.processing_fun_asr_nano.FunAsrNanoProcessorKwargs'> ) → BatchFeature or list[str]
パラメータ
- audio (
AudioInputまたはlist[AudioInput]) — 文字起こし対象の音声。URL、ローカルパス、NumPy 配列、PyTorch テンソル、またはこれらのリストを指定できます。 - language (
strまたはlist[str]、省略可) — 対象言語。中国語、英語、日本語の英語での正式名称、ISO コード("zh"、"en"、"ja")、またはチェックポイントの中国語での言語名称("中文"、"英文"、"日文")を受け取ります。 単一の値はバッチ全体に適用されます。 - prompt (
strまたはlist[str]、省略可) — 文字起こしの精度を向上させる可能性がある文脈情報です。リストを指定する場合は、オーディオのバッチサイズと一致させる必要があります。 - keywords (
str、list[str]、またはlist[list[str]]、省略可) — 認識をバイアスするために使用するホットワードです。文字列またはフラットなリストはバッチ全体で共有されます。ネストされたリストを指定すると、各オーディオサンプルごとに異なるホットワードを指定できます。 - tokenize (
bool、省略可、デフォルトはTrue) — プロンプトをトークナイズし、オーディオを処理するかどうか。Falseの場合、オーディオは読み込まれず、プロンプトは展開されていないオーディオプレースホルダーを含む文字列として返されます。これらをオーディオとともにプロセッサに渡すprocessor(text=prompts, audio=audio)とすると、tokenize=Trueと同じ出力が得られます。 - **kwargs —
apply_chat_template()および基盤となるプロセッサの呼び出しに転送される追加のキーワード引数(例:
text_kwargs、audio_kwargsなど)。
戻り値
BatchFeature または list[str]
tokenize=False の場合は 1 つのオーディオごとに 1 つのプロンプトが出力され、それ以外の場合は FunAsrNanoForConditionalGeneration.generate() にそのまま渡せる形式の出力が返されます。
チェックポイントの構造化トランスクリプションチャットテンプレートを使用して、ASR用の入力を準備します。
FunAsrNanoEncoder
class transformers.FunAsrNanoEncoder
< source >( config: FunAsrNanoEncoderConfig )
パラメータ
- config (FunAsrNanoEncoderConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
ヘッドなしの Fun-ASR-Nano 音声エンコーダー(SenseVoice SAN-M アーキテクチャ)。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( input_features: Tensorinput_features_mask: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutput or tuple(torch.FloatTensor)
パラメータ
- input_features (
torch.Tensor、shape(batch_size, sequence_length, feature_dim)) — 入力音声特徴に対応するテンソルです。音声特徴は FunAsrNanoFeatureExtractor を使用して取得できます。詳細は FunAsrNanoFeatureExtractor.call() を参照してください(FunAsrNanoProcessor は音声の処理に FunAsrNanoFeatureExtractor を使用します)。 - input_features_mask (
torch.LongTensor、shape(batch_size, padded_feature_length)) — 有効な mel フレームには 1、パディングには 0 を設定します。
戻り値
BaseModelOutput または tuple(torch.FloatTensor)
torch.FloatTensor のタプル、または BaseModelOutput (return_dict=False が渡された場合、または config.return_dict=False の場合)。設定 (FunAsrNanoConfig) と入力に応じて、さまざまな要素で構成されます。
FunAsrNanoEncoderの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後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
FunAsrNanoModel
class transformers.FunAsrNanoModel
< source >( config: FunAsrNanoConfig )
パラメータ
- config (FunAsrNanoConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
Fun-ASR-Nanoモデル(SenseVoice SAN-Mオーディオエンコーダー、Transformerアダプター、Qwen3言語モデル)は、言語モデリングヘッドを備えていません。
このモデルは 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'> ) → FunAsrNanoModelOutputWithPast 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)、任意) — 入力音声特徴に対応するテンソルです。音声特徴は FunAsrNanoFeatureExtractor を使用して取得できます。詳細は FunAsrNanoFeatureExtractor.call() を参照してください(FunAsrNanoProcessor は音声の処理に FunAsrNanoFeatureExtractor を使用します)。 - 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を参照)。
戻り値
FunAsrNanoModelOutputWithPast または tuple(torch.FloatTensor)
FunAsrNanoModelOutputWithPast または、torch.FloatTensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)。設定(FunAsrNanoConfig)や入力に応じて、さまざまな要素で構成されます。
FunAsrNanoModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
- audio_hidden_states (
torch.FloatTensor、任意) — 投影されたオーディオの隠れ状態。
FunAsrNanoForConditionalGeneration
クラス transformers.FunAsrNanoForConditionalGeneration
< source >( config: FunAsrNanoConfig )
パラメータ
- config (FunAsrNanoConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
音声認識用のFun-ASR-Nanoモデル: SenseVoice SAN-Mオーディオエンコーダー、Transformerアダプター、および言語モデリングヘッドを備えたQwen3言語モデル。
このモデルは 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'> ) → FunAsrNanoCausalLMOutputWithPast 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)、任意) — 入力音声特徴に対応するテンソルです。音声特徴は FunAsrNanoFeatureExtractor を使用して取得できます。詳細は FunAsrNanoFeatureExtractor.call() を参照してください(FunAsrNanoProcessor は音声の処理に FunAsrNanoFeatureExtractor を使用します)。 - 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 次元テンソルである必要があります。これは、パックされたテンソル形式(バッチとシーケンス長を単一の次元にまとめた形式)を使用する場合に有用です。
戻り値
FunAsrNanoCausalLMOutputWithPast または tuple(torch.FloatTensor)
FunAsrNanoCausalLMOutputWithPast、または torch.FloatTensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)。設定(FunAsrNanoConfig)や入力に応じて、さまざまな要素で構成されます。
FunAsrNanoForConditionalGenerationの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、任意) — 投影後のオーディオエンコーダーの隠れ状態。