Transformers documentation
VoxtralRealtime
Эта модель была добавлена в Hugging Face Transformers 16.02.2026.
VoxtralRealtime
VoxtralRealtime — это потоковая модель преобразования речи в текст от Mistral AI, предназначенная для автоматического распознавания речи (ASR) в реальном времени. В отличие от офлайн-модели Voxtral, которая обрабатывает полные аудиофайлы, VoxtralRealtime спроектирована для инкрементальной транскрипции с низкой задержкой: она обрабатывает аудио по мере поступления фрагментов.
Модель объединяет аудиоконкодер с декодером языковой модели на базе Mistral, используя эмбеддинги временного условия и каузальные свёртки с кэшами отступов для обеспечения эффективного потокового вывода.
Использование
Офлайн-распознавание
Для транскрибации целых аудиофайлов используйте процессор и модель напрямую. Длина генерации определяется автоматически на основе длительности аудио.
from datasets import load_dataset
from transformers import AutoProcessor, VoxtralRealtimeForConditionalGeneration
repo_id = "mistralai/Voxtral-Mini-4B-Realtime-2602"
processor = AutoProcessor.from_pretrained(repo_id)
model = VoxtralRealtimeForConditionalGeneration.from_pretrained(repo_id, device_map="auto")
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
audio = ds[0]["audio"]["array"]
inputs = processor(audio, return_tensors="pt").to(model.device)
inputs = inputs.to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs)
decoded_outputs = processor.batch_decode(outputs, skip_special_tokens=True)
print(decoded_outputs[0])Пакетная офлайн-транскрипция
Несколько аудиозаписей можно распознать за один проход:
from datasets import load_dataset
from transformers import AutoProcessor, VoxtralRealtimeForConditionalGeneration
repo_id = "mistralai/Voxtral-Mini-4B-Realtime-2602"
processor = AutoProcessor.from_pretrained(repo_id)
model = VoxtralRealtimeForConditionalGeneration.from_pretrained(repo_id, device_map="auto")
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
audio = [ds[i]["audio"]["array"] for i in range(2)]
inputs = processor(audio, return_tensors="pt").to(model.device)
inputs = inputs.to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs)
decoded_outputs = processor.batch_decode(outputs, skip_special_tokens=True)
for decoded_output in decoded_outputs:
print(decoded_output)Потоковая транскрипция
Это экспериментальная функция, и API может измениться.
Для транскрибации в реальном времени аудио разбивается на фрагменты в соответствии со следующим:
from threading import Thread
import numpy as np
import torch
from datasets import load_dataset
from transformers import (
TextIteratorStreamer,
VoxtralRealtimeForConditionalGeneration,
VoxtralRealtimeProcessor,
)
model_id = "mistralai/Voxtral-Mini-4B-Realtime-2602"
processor = VoxtralRealtimeProcessor.from_pretrained(model_id)
model = VoxtralRealtimeForConditionalGeneration.from_pretrained(model_id, device_map=torch.accelerator.current_accelerator())
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
audio = ds[0]["audio"]["array"]
# Manually pad the audio to account for right padding tokens required by the model
xaudio = np.pad(audio, (0, processor.num_right_pad_tokens * processor.raw_audio_length_per_tok))
first_chunk_inputs = processor(
audio[:processor.num_samples_first_audio_chunk],
is_streaming=True,
is_first_audio_chunk=True,
return_tensors="pt"
)
first_chunk_inputs.to(model.device, dtype=model.dtype)
def input_features_generator():
yield first_chunk_inputs.input_features
mel_frame_idx = processor.num_mel_frames_first_audio_chunk
hop_length = processor.feature_extractor.hop_length
win_length = processor.feature_extractor.win_length
start_idx = mel_frame_idx * hop_length - win_length // 2
end_idx = start_idx + processor.num_samples_per_audio_chunk
while (end_idx:=start_idx + processor.num_samples_per_audio_chunk) < audio.shape[0]:
inputs = processor(
audio[start_idx:end_idx],
is_streaming=True,
is_first_audio_chunk=False,
return_tensors="pt"
)
inputs.to(model.device, dtype=model.dtype)
yield inputs.input_features
mel_frame_idx += processor.audio_length_per_tok
start_idx = mel_frame_idx * hop_length - win_length // 2
streamer = TextIteratorStreamer(processor.tokenizer, skip_special_tokens=True, clean_up_tokenization_spaces=True)
generate_kwargs = {
"input_ids": first_chunk_inputs.input_ids,
"input_features": input_features_generator(),
"num_delay_tokens": first_chunk_inputs.num_delay_tokens,
"streamer": streamer,
}
thread = Thread(target=model.generate, kwargs=generate_kwargs)
thread.start()
# Iterate over the streamer to get text chunks as they are generated
print("Model output (streaming):", end=" ", flush=True)
for text_chunk in streamer:
print(text_chunk, end="", flush=True)Эта модель была предоставлена Eustache Le Bihan.
VoxtralRealtimeConfig
класс transformers.VoxtralRealtimeConfig
< 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 = Noneprojector_hidden_act: str = 'gelu'audio_length_per_tok: int = 8default_num_delay_tokens: int = 6downsample_factor: int = 4tie_word_embeddings: bool = Trueuse_cache: bool = True )
Параметры
- audio_config (
Union[dict, ~configuration_utils.PreTrainedConfig], необязательный) — Объект конфигурации или словарь конфигурации аудио-бэкбона. - text_config (
Union[dict, ~configuration_utils.PreTrainedConfig], необязательный) — Объект конфигурации или словарь конфигурации текстового бэкбона. - projector_hidden_act (
str, необязательный, по умолчаниюgelu) — Функция активации, используемая мультимодальным проектором. - audio_length_per_tok (
int, необязательный, по умолчанию 8) — Количество кадров аудио, соответствующих каждому токену текста. - default_num_delay_tokens (
int, необязательный, по умолчанию 6) — Количество токенов задержки, используемых для потоковой передачи по умолчанию. - downsample_factor (
int, необязательный, по умолчанию 4) — Коэффициент понижающей дискретизации, применяемый к аудиопризнакам перед проекцией. - tie_word_embeddings (
bool, необязательный, по умолчаниюTrue) — Определяет, следует ли связывать веса эмбеддингов согласно маппингуtied_weights_keysмодели. - use_cache (
bool, необязательный, по умолчаниюTrue) — Указывает, должен ли модель возвращать последние ключи/значения внимания (не используется во всех моделях). Актуально только еслиconfig.is_decoder=Trueили если модель является генеративной моделью только с декодером.
Это класс конфигурации для хранения настроек модели VoxtralRealtimeModel. Он используется для создания модели Voxtral Realtime в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации mistralai/Voxtral-Mini-4B-Realtime-2602
Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.
>>> from transformers import VoxtralRealtimeForConditionalGeneration, VoxtralRealtimeConfig
>>> # Initializing a VoxtralRealtime configuration
>>> configuration = VoxtralRealtimeConfig()
>>> # Initializing a model with random weights
>>> model = VoxtralRealtimeForConditionalGeneration(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configVoxtralRealtimeEncoderConfig
класс transformers.VoxtralRealtimeEncoderConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 131072hidden_size: int = 1280intermediate_size: int = 5120num_hidden_layers: int = 32num_attention_heads: int = 32activation_function: str = 'gelu'num_mel_bins: int = 128initializer_range: float = 0.02attention_dropout: float | int = 0.0hidden_act: str = 'silu'max_position_embeddings: int = 1500rms_norm_eps: float = 1e-05rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonesliding_window: int = 750head_dim: int = 64use_cache: bool = True )
Параметры
- vocab_size (
int, необязательный, по умолчанию131072) — Размер словаря модели. Определяет количество различных токенов, которые могут быть представлены вinput_ids. - hidden_size (
int, необязательный, по умолчанию1280) — Размерность скрытых представлений. - intermediate_size (
int, необязательный, по умолчанию5120) — Размерность представлений MLP. - num_hidden_layers (
int, необязательный, по умолчанию32) — Количество скрытых слоев в декодере Transformer. - num_attention_heads (
int, необязательный, по умолчанию32) — Количество головок внимания в каждом слое внимания декодера Transformer. - activation_function (
str, необязательный, по умолчаниюgelu) — Нелинейная функция активации (функция или строка) в декодере. Например,"gelu","relu","silu"и т. д. - num_mel_bins (
int, необязательный, по умолчанию128) — Количество mel-признаков, используемых на входной кадр. Должно соответствовать значению, используемому в классеAutoFeatureExtractor. - initializer_range (
float, необязательный, по умолчанию0.02) — Стандартное отклонение truncated_normal_initializer, используемое для инициализации всех матриц весов. - attention_dropout (
Union[float, int], необязательный, по умолчанию0.0) — Коэффициент dropout для вероятностей внимания. - hidden_act (
str, необязательный, по умолчаниюsilu) — Нелинейная функция активации (функция или строка) в декодере. Например,"gelu","relu","silu"и т. д. - max_position_embeddings (
int, необязательный, по умолчанию1500) — Максимальная длина последовательности, с которой может использоваться эта модель. - rms_norm_eps (
float, необязательный, по умолчанию1e-05) — Значение epsilon, используемое слоями нормализации rms. - rope_parameters (
Union[~modeling_rope_utils.RopeParameters, dict], необязательный) — Словарь, содержащий параметры конфигурации для эмбеддингов RoPE. Словарь должен содержать значение дляrope_thetaи, при необходимости, параметры, используемые для масштабирования, если вы хотите использовать RoPE с более длиннымиmax_position_embeddings. - sliding_window (
int, необязательный, по умолчанию750) — Размер окна скользящего внимания. ЕслиNone, скользящее окно не применяется. - head_dim (
int, необязательный, по умолчанию64) — Размерность головы внимания. Если значение равно None, по умолчанию используется hidden_size // num_attention_heads - use_cache (
bool, необязательный, по умолчаниюTrue) — Указывает, должен ли модель возвращать последние ключи/значения внимания (не используется во всех моделях). Актуально только еслиconfig.is_decoder=Trueили если модель является генеративной моделью только с декодером.
Это класс конфигурации для хранения настроек модели VoxtralRealtimeModel. Он используется для создания модели Voxtral Realtime в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации mistralai/Voxtral-Mini-4B-Realtime-2602
Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.
Пример:
>>> from transformers import VoxtralRealtimeEncoderConfig, VoxtralRealtimeEncoder
>>> # Initializing a VoxtralRealtimeEncoderConfig
>>> configuration = VoxtralRealtimeEncoderConfig()
>>> # Initializing a VoxtralRealtimeEncoder (with random weights)
>>> model = VoxtralRealtimeEncoder(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configVoxtralRealtimeTextConfig
класс transformers.VoxtralRealtimeTextConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 32000hidden_size: int = 4096intermediate_size: int = 14336num_hidden_layers: int = 32num_attention_heads: int = 32num_key_value_heads: int = 8head_dim: int | None = Nonehidden_act: str = 'silu'max_position_embeddings: int = 131072initializer_range: float = 0.02rms_norm_eps: float = 1e-06use_cache: bool = Truepad_token_id: int | None = Nonebos_token_id: int | None = 1eos_token_id: int | list[int] | None = 2rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonesliding_window: int | None = 4096attention_dropout: float | int = 0.0 )
Параметры
- vocab_size (
int, необязательный, по умолчанию32000) — Размер словаря модели. Определяет количество различных токенов, которые могут быть представлены вinput_ids. - hidden_size (
int, необязательный, по умолчанию4096) — Размерность скрытых представлений. - intermediate_size (
int, необязательный, по умолчанию14336) — Размерность представлений MLP. - num_hidden_layers (
int, необязательный, по умолчанию32) — Количество скрытых слоев в декодере Transformer. - num_attention_heads (
int, необязательный, по умолчанию32) — Количество головок внимания в каждом слое внимания декодера Transformer. - num_key_value_heads (
int, необязательный, по умолчанию8) — Это количество ключевых и value-голов, используемых для реализации Grouped Query Attention. Еслиnum_key_value_heads=num_attention_heads, модель использует Multi Head Attention (MHA); еслиnum_key_value_heads=1— Multi Query Attention (MQA); в остальных случаях применяется GQA. При конвертации мультиголовного чекпоинта в GQA-чекпоинт каждая групповая ключевая и value-голова должна конструироваться путем усреднения (meanpooling) всех исходных голов в этой группе. Дополнительные подробности — в этой статье. Если значение не указано, по умолчанию используетсяnum_attention_heads. - head_dim (
int, необязательный) — Размер измерения головы внимания. Если значение равно None, по умолчанию используется hidden_size // num_attention_heads - hidden_act (
str, необязательный, по умолчаниюsilu) — Нелинейная функция активации (функция или строка) в декодере. Например,"gelu","relu","silu"и т. д. - max_position_embeddings (
int, необязательный, по умолчанию131072) — Максимальная длина последовательности, с которой может использоваться эта модель. - initializer_range (
float, необязательный, по умолчанию0.02) — Стандартное отклонение truncated_normal_initializer, используемое для инициализации всех матриц весов. - rms_norm_eps (
float, необязательный, по умолчанию1e-06) — Значение epsilon, используемое слоями нормализации rms. - use_cache (
bool, необязательный, по умолчаниюTrue) — Указывает, должен ли модель возвращать последние ключи/значения внимания (не используется во всех моделях). Актуально только еслиconfig.is_decoder=Trueили если модель является генеративной моделью только с декодером. - pad_token_id (
int, необязательный) — Идентификатор токена, используемого для выравнивания в словаре. - bos_token_id (
int, необязательный, по умолчанию1) — Идентификатор токена, используемого для обозначения начала потока в словаре. - eos_token_id (
Union[int, list[int]], необязательный, по умолчанию2) — Идентификатор токена, используемого для обозначения конца потока в словаре. - rope_parameters (
Union[~modeling_rope_utils.RopeParameters, dict], необязательный) — Словарь, содержащий параметры конфигурации для эмбеддингов RoPE. Словарь должен содержать значение дляrope_thetaи, при необходимости, параметры, используемые для масштабирования, если вы хотите использовать RoPE с более длиннымиmax_position_embeddings. - sliding_window (
int, необязательный, по умолчанию4096) — Размер окна скользящего внимания. ЕслиNone, скользящее окно не применяется. - attention_dropout (
Union[float, int], необязательный, по умолчанию0.0) — Коэффициент dropout для вероятностей внимания.
Это класс конфигурации для хранения настроек модели VoxtralRealtimeModel. Он используется для создания модели Voxtral Realtime в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации mistralai/Voxtral-Mini-4B-Realtime-2602
Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.
VoxtralRealtimeFeatureExtractor
класс transformers.VoxtralRealtimeFeatureExtractor
< source >( feature_size = 128sampling_rate = 16000hop_length = 160n_fft = 400win_length = 400padding_value = 0.0global_log_mel_max = 1.5**kwargs )
Параметры
- feature_size (
int, необязательный, по умолчанию 128) — Размерность признаков извлечённых признаков. - sampling_rate (
int, необязательный, по умолчанию 16000) — Частота дискретизации, с которой аудиофайлы должны быть оцифрованы, выраженная в герцах (Гц). - hop_length (
int, необязательный, по умолчанию 160) — Длина перекрывающихся окон для БПФ, используемой для получения коэффициентов Мель-частот. - n_fft (
int, необязательный, по умолчанию 512) — Размер преобразования Фурье. - win_length (
int, необязательный, по умолчанию 400) — Длина окна для вычисления КБФ. - padding_value (
float, необязательный, по умолчанию 0.0) — Значение, используемое для дополнения аудио. Должно соответствовать тишине.
Создаёт экстрактор признаков VOXTRAL_REALTIME.
Этот экстрактор признаков наследуется от SequenceFeatureExtractor, который содержит большинство основных методов. За дополнительной информацией о них следует обращаться к этому суперклассу.
Этот класс извлекает характеристики мел-фильтрового банка из сырых речевых данных с помощью собственной реализации Short Time Fourier Transform на numpy, которая должна совпадать с эквивалентом torch.stft в pytorch.
VoxtralRealtimeProcessor
класс transformers.VoxtralRealtimeProcessor
< source >( feature_extractortokenizer )
Создаёт VoxtralRealtimeProcessor, который объединяет экстрактор признаков и токенизатор в единый процессор.
VoxtralRealtimeProcessor предоставляет все возможности VoxtralRealtimeFeatureExtractor и MistralCommonBackend. Подробнее см. в ~VoxtralRealtimeFeatureExtractor и ~MistralCommonBackend.
__call__
< source >( audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = Noneis_streaming: bool = Falseis_first_audio_chunk: bool | None = True**kwargs: *<class 'transformers.models.voxtral_realtime.processing_voxtral_realtime.VoxtralRealtimeProcessorKwargs'> ) → BatchFeature
Параметры
- audio (
AudioInput, необязательный) — Входной аудио или батч аудио в виде массивов NumPy или тензоров PyTorch. - is_streaming (
bool, необязательный, по умолчаниюFalse) — Обработка аудио в режиме потоковой передачи. ЕслиTrue, аудио может передаваться частями, при этомis_first_audio_chunkиспользуется для различения первой части и последующих. - is_first_audio_chunk (
bool, необязательный, по умолчаниюTrue) — Указывает, является ли текущий аудиоданные первым фрагментом в потоковой сессии. ЕслиTrue, аудио кодируется в полный запрос на транскрипцию с токенизированным текстом. ЕслиFalse, извлекаются только аудио-признаки (кодирование текста пропускается). Должно бытьTrue, еслиis_streaming=False.
Возвращает
Объект BatchFeature со следующими полями:
- input_ids — список идентификаторов токенов, которые подаются в модель. Возвращается, когда
is_first_audio_chunk=True. - attention_mask — список индексов, указывающих, на какие токены модель должна обращать внимание.
Возвращается, когда
is_first_audio_chunk=True. - input_features — признаки мел-спектрограммы, извлечённые из аудиовхода.
- num_delay_tokens — количество токенов задержки, используемых для потоковой передачи.
Основной метод подготовки аудиовхода для модели Voxtral Realtime. Этот метод кодирует аудио в запрос на транскрипцию с помощью mistral_common, токенизирует полученный текст и извлекает характеристики мел-спектрограммы с помощью feature extractor. Поддерживает как стриминговый, так и нестриминговый режимы.
VoxtralRealtimeEncoder
класс transformers.VoxtralRealtimeEncoder
< source >( config: VoxtralRealtimeEncoderConfig )
Параметры
- config (VoxtralRealtimeEncoderConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().
Кодер VoxtralRealtime, который является кодером Whisper.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( input_features: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Nonepadding_cache: transformers.models.voxtral_realtime.modeling_voxtral_realtime.VoxtralRealtimeConv1dPaddingCache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = Noneuse_padding_cache: bool | None = Noneattention_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
Параметры
- input_features (
torch.Tensorформы(batch_size, sequence_length, feature_dim), необязательный) — Тензоры, соответствующие входным аудиособытиям. Аудиособытия можно получить с помощью VoxtralRealtimeFeatureExtractor. Подробности см. вVoxtralRealtimeFeatureExtractor.__call__()(VoxtralRealtimeProcessor использует VoxtralRealtimeFeatureExtractor для обработки аудио). - 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). - padding_cache (
VoxtralRealtimeConv1dPaddingCache, optional) — Кэш для дополнения (padding) в свёрточных слоях, позволяющий сохранять состояние между потоковыми фрагментами. - inputs_embeds (
torch.Tensorформы(batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачиinput_idsможно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексыinput_idsпреобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели. - use_cache (
bool, необязательный) — Если установлено вTrue, возвращаются состояния ключей и значенийpast_key_values, которые можно использовать для ускорения декодирования (см.past_key_values). - use_padding_cache (
bool, необязательный) — Использовать ли кэш отступов. - attention_mask (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона[0, 1]:- 1 для токенов, которые не замаскированы,
- 0 для токенов, которые замаскированы.
Возвращает
BaseModelOutputWithPooling или tuple(torch.Tensor)
Объект BaseModelOutputWithPooling или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (VoxtralRealtimeConfig) и входных данных.
Метод forward класса VoxtralRealtimeEncoder переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
last_hidden_state (
torch.Tensorформы(batch_size, sequence_length, hidden_size)) — Последовательность скрытых состояний на выходе последнего слоя модели.pooler_output (
torch.Tensorформы(batch_size, hidden_size)) — Скрытое состояние последнего слоя для первого токена последовательности (токен классификации) после дополнительной обработки слоями, используемыми для вспомогательной задачи предварительного обучения. Например, для моделей семейства BERT это возвращает токен классификации после обработки линейным слоем и функцией активации tanh. Веса линейного слоя обучаются по задаче предсказания следующего предложения (классификации) во время предварительного обучения.hidden_states (
tuple(torch.Tensor), optional, возвращается, если переданоoutput_hidden_states=Trueили еслиconfig.output_hidden_states=True) — кортеж изtorch.Tensor(один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
attentions (
tuple(torch.Tensor), необязательный, возвращается при передачеoutput_attentions=Trueили приconfig.output_attentions=True) — Кортежtorch.Tensor(по одному на каждый слой) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
VoxtralRealtimeModel
класс transformers.VoxtralRealtimeModel
< source >( config: VoxtralRealtimeConfig )
Параметры
- config (VoxtralRealtimeConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Модель VoxtralRealtime, состоящая из потокового энкодера в стиле Whisper, мультимодального проектора, языковой модели на базе Mistral и временного эмбеддинга, без головы для моделирования языка.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneencoder_past_key_values: transformers.cache_utils.Cache | None = Nonepadding_cache: transformers.models.voxtral_realtime.modeling_voxtral_realtime.VoxtralRealtimeConv1dPaddingCache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneencoder_inputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = Nonenum_delay_tokens: typing.Union[int, torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → VoxtralRealtimeModelOutputWithPast 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), необязательный) — Тензоры, соответствующие входным аудиособытиям. Аудиособытия можно получить с помощью VoxtralRealtimeFeatureExtractor. Подробности см. вVoxtralRealtimeFeatureExtractor.__call__()(VoxtralRealtimeProcessor использует VoxtralRealtimeFeatureExtractor для обработки аудио). - 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). - encoder_past_key_values (
Cache, необязательный) — Предвычисленные скрытые состояния (ключи и значения в блоках само-внимания) для кодировщика. - padding_cache (
VoxtralRealtimeConv1dPaddingCache, optional) — Кэш для дополнения (padding) в свёрточных слоях, позволяющий сохранять состояние между потоковыми фрагментами. - inputs_embeds (
torch.Tensorформы(batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачиinput_idsможно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексыinput_idsпреобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели. - encoder_inputs_embeds (
torch.Tensor, необязательный) — По желанию, вместо передачиinput_featuresможно напрямую передать встроенное представление для энкодера. - use_cache (
bool, необязательный) — Если установлено вTrue, возвращаются состояния ключей и значенийpast_key_values, которые можно использовать для ускорения декодирования (см.past_key_values). - num_delay_tokens (
intилиtorch.Tensor, необязательный) — Количество задерживающих токенов, используемых при подготовке входных данных.
Возвращает
VoxtralRealtimeModelOutputWithPast или tuple(torch.Tensor)
VoxtralRealtimeModelOutputWithPast или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (VoxtralRealtimeConfig) и входных данных.
Метод forward модели VoxtralRealtimeModel переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
- encoder_past_key_values (
Cache, необязательный) — предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания) для аудио-кодера, которые можно использовать для ускорения последовательного декодирования. - padding_cache (
VoxtralRealtimeConv1dPaddingCache, optional) — Кэш для отступов в свёрточных слоях, позволяющий сохранять состояние между потоковыми фрагментами. - audio_hidden_states (
torch.Tensor, необязательный) — Спроецированные скрытые состояния аудио до их добавления к текстовым эмбеддингам.
VoxtralRealtimeForConditionalGeneration
класс transformers.VoxtralRealtimeForConditionalGeneration
< source >( config: VoxtralRealtimeConfig )
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneencoder_past_key_values: transformers.cache_utils.Cache | None = Nonepadding_cache: transformers.models.voxtral_realtime.modeling_voxtral_realtime.VoxtralRealtimeConv1dPaddingCache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneencoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0num_delay_tokens: typing.Union[int, torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → VoxtralRealtimeCausalLMOutputWithPast 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), необязательный) — Тензоры, соответствующие входным аудиособытиям. Аудиособытия можно получить с помощью VoxtralRealtimeFeatureExtractor. Подробности см. вVoxtralRealtimeFeatureExtractor.__call__()(VoxtralRealtimeProcessor использует VoxtralRealtimeFeatureExtractor для обработки аудио). - 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). - encoder_past_key_values (
Cache, необязательный) — Предвычисленные скрытые состояния (ключи и значения в блоках само-внимания) для энкодера, которые можно использовать для ускорения последовательного декодирования. - padding_cache (
VoxtralRealtimeConv1dPaddingCache, optional) — Кэш для дополнения (padding) в свёрточных слоях, позволяющий сохранять состояние между потоковыми фрагментами. - inputs_embeds (
torch.Tensorформы(batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачиinput_idsможно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексыinput_idsпреобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели. - encoder_inputs_embeds (
torch.Tensor, необязательный) — По желанию, вместо передачиinput_featuresможно напрямую передать встроенное представление для энкодера. - labels (
torch.LongTensorформы(batch_size, sequence_length), необязательный) — Метки для вычисления потерь маскированного языкового моделирования. Индексы должны находиться в диапазоне[0, ..., config.vocab_size]или быть равны -100 (см. docstringinput_ids). Токены с индексами, установленными в-100, игнорируются (маскируются); потери вычисляются только для токенов с метками в диапазоне[0, ..., config.vocab_size]. - 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 и длины последовательности). - num_delay_tokens (
intилиtorch.Tensor, необязательный) — Количество задерживающих токенов, используемых при подготовке входных данных; подробности см. в ~VoxtralRealtimeProcessor.
Возвращает
VoxtralRealtimeCausalLMOutputWithPast или tuple(torch.Tensor)
VoxtralRealtimeCausalLMOutputWithPast или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (VoxtralRealtimeConfig) и входных данных.
Метод forward класса VoxtralRealtimeForConditionalGeneration переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
- encoder_past_key_values (
Cache, необязательный) — предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания) для аудио-кодера, которые можно использовать для ускорения последовательного декодирования. - padding_cache (
VoxtralRealtimeConv1dPaddingCache, optional) — Кэш для отступов в свёрточных слоях, позволяющий сохранять состояние между потоковыми фрагментами.
Пример:
>>> import torch
>>> from transformers import VoxtralRealtimeForConditionalGeneration, AutoProcessor
>>> from datasets import load_dataset
>>> repo_id = "mistralai/Voxtral-Mini-4B-Realtime-2602"
>>> processor = AutoProcessor.from_pretrained(repo_id)
>>> model = VoxtralRealtimeForConditionalGeneration.from_pretrained(repo_id, dtype=torch.bfloat16, device_map="auto")
>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> audio = ds[0]["audio"]["array"]
>>> inputs = processor(audio, return_tensors="pt")
>>> inputs = inputs.to(model.device, dtype=model.dtype)
>>> outputs = model.generate(**inputs)
>>> processor.batch_decode(outputs, skip_special_tokens=True)