Transformers documentation
Fun-ASR-Nano
Эта модель была опубликована в HF papers 15.09.2025 и добавлена в Hugging Face Transformers 08.09.2026.
Fun-ASR-Nano
Обзор
Fun-ASR-Nano — это модель распознавания речи end-to-end с 800 млн параметров, разработанная командой FunAudioLLM из Alibaba DAMO Academy. Она демонстрирует наилучшие результаты на бенчмарках ASR для китайского, английского и японского языков, при этом значительно уступая по размеру сопоставимым моделям.
Модель была предложена в Fun-ASR: An Industrial-Grade Speech Recognition System.
Архитектура
Fun-ASR-Nano состоит из трёх компонентов:
Аудио-энкодер (SenseVoiceEncoderSmall): 70-слойный SANM-энкодер (Self-Attention with FSMN Memory), сочетающий многоголовное само-внимание с сетями последовательной памяти (Feedforward Sequential Memory Networks) для эффективного извлечения речевых признаков.
Audio Adaptor: трансформер из 2 слоёв, который проецирует выходные данные энкодера (размерность 512) в размерность LLM (1024).
Языковая модель (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])Обучение
Передайте целевые транскрипты в apply_transcription_request с помощью transcription, а возвращаемые labels используются для вычисления функции потерь.
from datasets import Audio, load_dataset
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor
model_id = "FunAudioLLM/Fun-ASR-Nano-2512-hf"
NUM_SAMPLES = 2
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id, device_map="auto")
model.train()
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"][:NUM_SAMPLES]]
text_samples = ds["text"][:NUM_SAMPLES]
inputs = processor.apply_transcription_request(speech_samples, language="en", transcription=text_samples)
inputs.to(model.device, dtype=model.dtype)
loss = model(**inputs).loss
print("Loss:", loss.item())
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
класс 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], необязательный) — Объект конфигурации или словарь конфигурации аудио-бэкбона. - 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
класс 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) — Вероятность dropout для всех полносвязных слоев в блоках эмбеддингов, энкодера и пуллера. - attention_dropout (
float, необязательный, по умолчанию0.1) — Коэффициент dropout для вероятностей внимания. - 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) — Вероятность dropout для всех полносвязных слоёв в блоках эмбеддингов, энкодера и пуллера. - attention_dropout (
float, необязательный, по умолчанию0.0) — Коэффициент dropout для вероятностей внимания. - 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-й кадр в стопке). - window (
str, необязательный, по умолчанию"hamming") — Функция окна для STFT. - padding_value (
float, необязательный, по умолчанию 0.0) — Значение, используемое для дополнения более коротких последовательностей. - return_attention_mask (
bool, необязательный, по умолчаниюTrue) — Возвращать ли маску внимания.
Создаёт экстрактор признаков Fun-ASR-Nano.
Этот экстрактор признаков наследуется от SequenceFeatureExtractor, который содержит большинство основных методов. За дополнительной информацией о них следует обращаться к этому суперклассу.
Он извлекает mel-фильтробанк-признаки, совместимые с Kaldi (через torchaudio.compliance.kaldi.fbank, в соответствии с исходным фронтендом FunASR), а затем применяет обработку с низкой частотой кадров (LFR), складывая num_frames_lfr последовательных кадров и выполняя подвыборку с шагом stride_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 Гц). - return_tensors (
strили TensorType, необязательный) — Если задано, возвращает тензоры указанного фреймворка ("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.
Извлечение признаков Kaldi mel-filterbank + LFR из одной или нескольких сырых аудиоволн.
FunAsrNanoProcessor
класс transformers.FunAsrNanoProcessor
< source >( feature_extractortokenizerchat_template = Noneaudio_token = '<|object_ref_start|>' )
Параметры
- feature_extractor (
FunAsrNanoFeatureExtractor) — Извлечение признаков является обязательным входом. - tokenizer (
Qwen2Tokenizer) — Токенизатор является обязательным входным параметром. - chat_template (
str) — Jinja-шаблон для преобразования списков сообщений в чате в строку, пригодную для токенизации. - audio_token (
str, необязательный, по умолчанию"<|object_ref_start|>") — Токен, используемый в качестве плейсхолдера для аудио в тексте.
Создаёт FunAsrNanoProcessor, который объединяет feature extractor и tokenizer в единый processor.
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': возвращает объектыtorch.TensorPyTorch.'np': возвращает объекты NumPynp.ndarray.
- **kwargs (ProcessingKwargs, optional) — Дополнительные параметры обработки для каждой модальности (текст, изображения, видео, аудио). Специфичные для модели параметры перечислены выше; полный список поддерживаемых аргументов см. в классе 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 = Nonetranscription: str | 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]], необязательный) — Горячие слова для смещения распознавания. Строка или плоский список используются для всей пачки; вложенный список задаёт отдельные горячие слова для каждого аудиоприбора. - transcription (
strилиlist[str], необязательный) — Целевая транскрипция (или список транскрипций) для обучения, по одной на каждый аудиофайл. Если указано, каждая транскрипция записывается как реплика ассистента, и возвращаютсяlabels(см.output_labelsв call()). - tokenize (
bool, необязательный, по умолчаниюTrue) — Определяет, следует ли токенизировать промпты и обрабатывать аудио. ЕслиFalse, аудио не загружается, а промпты возвращаются в виде строк с неразвёрнутыми плейсхолдерами аудио. Передача их вместе с аудио в процессор,processor(text=prompts, audio=audio), даёт те же результаты, что иtokenize=True. - **kwargs —
Дополнительные именованные аргументы, передаваемые в apply_chat_template().
Аргументы процессора (например,
text_kwargs,audio_kwargs, …) следует передавать какprocessor_kwargs={...}.
Возвращает
BatchFeature или list[str]
Один промпт на один аудиофайл, если tokenize=False, иначе процессор выводит данные, готовые для передачи в FunAsrNanoForConditionalGeneration.generate() или в FunAsrNanoForConditionalGeneration.forward() для вычисления потерь, если задано transcription.
Подготовьте входные данные для ASR с использованием структурированного шаблона чата для транскрипции из контрольной точки, для инференса или, если задан transcription, для обучения.
FunAsrNanoEncoder
класс transformers.FunAsrNanoEncoder
< source >( config: FunAsrNanoEncoderConfig )
Параметры
- config (FunAsrNanoEncoderConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Аудио-энкодер Fun-ASR-Nano (архитектура SenseVoice SAN-M) без какого-либо слоя наверху.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( input_features: Tensorinput_features_mask: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutput or tuple(torch.Tensor)
Параметры
- input_features (
torch.Tensorформы(batch_size, sequence_length, feature_dim)) — Тензоры, соответствующие входным аудиособытиям. Аудиособытия можно получить с помощью FunAsrNanoFeatureExtractor. Подробности см. в FunAsrNanoFeatureExtractor.call() (FunAsrNanoProcessor использует FunAsrNanoFeatureExtractor для обработки аудио). - input_features_mask (
torch.LongTensorформы(batch_size, padded_feature_length)) — 1 для валидных мел-кадров и 0 для дополнения.
Возвращает
BaseModelOutput или tuple(torch.Tensor)
Объект BaseModelOutput или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (FunAsrNanoConfig) и входных данных.
Метод forward класса FunAsrNanoEncoder переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
last_hidden_state (
torch.Tensorформы(batch_size, sequence_length, hidden_size)) — Последовательность скрытых состояний на выходе последнего слоя модели.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 в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
FunAsrNanoModel
класс transformers.FunAsrNanoModel
< source >( config: FunAsrNanoConfig )
Параметры
- config (FunAsrNanoConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().
Модель Fun-ASR-Nano (аудио-энкодер SenseVoice SAN-M, адаптер Transformer и языковая модель Qwen3), без головы моделирования языка.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.Tensor] = 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.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → FunAsrNanoModelOutputWithPast or tuple(torch.Tensor)
Параметры
- input_ids (
torch.LongTensorформы(batch_size, sequence_length), , необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию токены отсечки (padding) игнорируются.Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().
- input_features (
torch.Tensorформы(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. Если
past_key_valuesне переданы, по умолчанию будет инициализирован DynamicCache.Модель будет выводить тот же формат кэша, который был передан на вход.
Если используются
past_key_values, ожидается, что пользователь передаст только необработанныеinput_ids(те, для которых в этой модели ещё не заданы состояния прошлых ключей и значений) формы(batch_size, unprocessed_length), а не всеinput_idsформы(batch_size, sequence_length). - inputs_embeds (
torch.Tensorформы(batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачиinput_idsможно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексыinput_idsпреобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели. - use_cache (
bool, необязательный) — Если установлено вTrue, возвращаются состояния ключей и значенийpast_key_values, которые можно использовать для ускорения декодирования (см.past_key_values).
Возвращает
FunAsrNanoModelOutputWithPast или tuple(torch.Tensor)
FunAsrNanoModelOutputWithPast или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (FunAsrNanoConfig) и входных данных.
Метод forward модели FunAsrNanoModel переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
- audio_hidden_states (
torch.Tensor, необязательный) — Спроецированные скрытые состояния аудио.
FunAsrNanoForConditionalGeneration
класс transformers.FunAsrNanoForConditionalGeneration
< source >( config: FunAsrNanoConfig )
Параметры
- config (FunAsrNanoConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().
Модель Fun-ASR-Nano для распознавания речи: аудио-энкодер SenseVoice SAN-M, адаптер Transformer и языковая модель Qwen3 с головой для моделирования языка.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.Tensor] = 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.Tensor] = 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.Tensor)
Параметры
- input_ids (
torch.LongTensorформы(batch_size, sequence_length), , необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию токены отсечки (padding) игнорируются.Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().
- input_features (
torch.Tensorформы(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. Если
past_key_valuesне переданы, по умолчанию будет инициализирован DynamicCache.Модель будет выводить тот же формат кэша, который был передан на вход.
Если используются
past_key_values, ожидается, что пользователь передаст только необработанныеinput_ids(те, для которых в этой модели ещё не заданы состояния прошлых ключей и значений) формы(batch_size, unprocessed_length), а не всеinput_idsформы(batch_size, sequence_length). - inputs_embeds (
torch.Tensorформы(batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачиinput_idsможно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексыinput_idsпреобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели. - labels (
torch.LongTensorформы(batch_size, sequence_length), необязательный) — Метки для вычисления потерь маскированного языкового моделирования. - use_cache (
bool, необязательный) — Если установлено вTrue, возвращаются состояния ключей и значенийpast_key_values, которые можно использовать для ускорения декодирования (см.past_key_values). - logits_to_keep (
Union[int, torch.Tensor], необязательный, по умолчанию0) — Если передано значение типаint, вычисляет logits для последнихlogits_to_keepтокенов. Если указано0, logits вычисляются для всехinput_ids(особый случай). Для генерации нужны logits только последнего токена, и вычисление их только для этого токена позволяет сэкономить память, что становится весьма значимым для длинных последовательностей или большого размера словаря. Если передано значение типаtorch.Tensor, оно должно быть одномерным и соответствовать индексам, которые нужно сохранить в измерении длины последовательности. Это полезно при использовании упакованного формата тензоров (один размер для batch и длины последовательности).
Возвращает
FunAsrNanoCausalLMOutputWithPast или tuple(torch.Tensor)
FunAsrNanoCausalLMOutputWithPast или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (FunAsrNanoConfig) и входных данных.
Метод forward класса FunAsrNanoForConditionalGeneration переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
loss (
torch.Tensorформы(1,), необязательный, возвращается, если заданlabels) — Потери языковой модели (для предсказания следующего токена).logits (
torch.Tensorформы(batch_size, sequence_length, config.vocab_size)) — Оценки предсказаний языковой модели.past_key_values (
Cache, необязательный, возвращается при передачеuse_cache=Trueили когдаconfig.use_cache=True) — это экземпляр Cache.hidden_states (
tuple[torch.Tensor], необязательный, возвращается при передачеoutput_hidden_states=Trueили когдаconfig.output_hidden_states=True) — Кортеж изtorch.Tensor(один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
attentions (
tuple[torch.Tensor], необязательный, возвращается при передачеoutput_attentions=Trueили когдаconfig.output_attentions=True) — Кортежtorch.Tensor(по одному на каждый слой) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
audio_hidden_states (
torch.Tensor, необязательный) — Скрытые состояния аудио-кодера после проекции.