Transformers documentation
CohereAsr
Este modelo fue aportado a Hugging Face Transformers el 2026-03-26.
CohereAsr
Resumen
Cohere ASR, publicado por Cohere el 26 de marzo de 2026, es un modelo de reconocimiento de voz con codificador-decodificador basado en Conformer de 2B parámetros.
Este modelo fue aportado por Eustache Le Bihan.
Uso
Transcripción de formato corto
from transformers import AutoProcessor, CohereAsrForConditionalGeneration
from transformers.audio_utils import load_audio
revision = "refs/pr/6"
processor = AutoProcessor.from_pretrained("CohereLabs/cohere-transcribe-03-2026", revision=revision)
model = CohereAsrForConditionalGeneration.from_pretrained("CohereLabs/cohere-transcribe-03-2026", device_map="auto", revision=revision)
audio = load_audio(
"https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/bcn_weather.mp3",
sampling_rate=16000,
)
inputs = processor(audio, sampling_rate=16000, return_tensors="pt", language="en").to(model.device)
inputs.to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, max_new_tokens=256)
text = processor.decode(outputs, skip_special_tokens=True)
print(text)Control de puntuación
Pasa punctuation=False para obtener una salida en minúsculas sin signos de puntuación.
inputs_pnc = processor(audio, sampling_rate=16000, return_tensors="pt", language="en", punctuation=True).to(model.device)
inputs_nopnc = processor(audio, sampling_rate=16000, return_tensors="pt", language="en", punctuation=False).to(model.device)Transcripción de formato largo
Para audio más largo que el max_audio_clip_s del extractor de características, el extractor de características divide automáticamente la forma de onda en fragmentos.
El procesador vuelve a ensamblar las transcripciones por fragmento utilizando el audio_chunk_index devuelto.
audio_long = load_audio(
"https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/obama_first_45_secs.mp3",
sampling_rate=16000,
)
inputs = processor(audio=audio_long, return_tensors="pt", language="en", sampling_rate=16000).to(model.device)
audio_chunk_index = inputs.get("audio_chunk_index")
inputs.to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, max_new_tokens=256)
text = processor.decode(outputs, skip_special_tokens=True, audio_chunk_index=audio_chunk_index, language="en")
print(text)Inferencia por lotes
Se pueden procesar varios archivos de audio en una sola llamada. Cuando el lote combina audio de formato corto y largo, el procesador se encarga de la segmentación y la reensamblaje.
audio_short = load_audio(
"https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/bcn_weather.mp3",
sampling_rate=16000,
)
audio_long = load_audio(
"https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/obama_first_45_secs.mp3",
sampling_rate=16000,
)
inputs = processor([audio_short, audio_long], sampling_rate=16000, return_tensors="pt", language="en").to(model.device)
audio_chunk_index = inputs.get("audio_chunk_index")
inputs.to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, max_new_tokens=256)
text = processor.decode(
outputs, skip_special_tokens=True, audio_chunk_index=audio_chunk_index, language="en"
)
print(text)Transcripción en idiomas distintos del inglés
Especifique el código de idioma para transcribir en cualquiera de los 14 idiomas admitidos.
audio_es = load_audio(
"https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/fleur_es_sample.wav",
sampling_rate=16000,
)
inputs = processor(audio_es, sampling_rate=16000, return_tensors="pt", language="es", punctuation=True).to(model.device)
inputs.to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, max_new_tokens=256)
text = processor.decode(outputs, skip_special_tokens=True)
print(text)CohereAsrConfig
clase transformers.CohereAsrConfig
< 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 = 0id2label: 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 = Noneis_encoder_decoder: bool = Trueencoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonevocab_size: int = 16384hidden_size: int = 1024num_hidden_layers: int = 8num_attention_heads: int = 8num_key_value_heads: int | None = Noneintermediate_size: int = 4096hidden_act: str = 'relu'max_position_embeddings: int = 1024pad_token_id: int | None = 2eos_token_id: int | None = 3bos_token_id: int | None = 4use_cache: bool = Trueinitializer_range: float = 0.02attention_dropout: float | int = 0.0attention_bias: bool = Truedecoder_start_token_id: int | None = Nonetie_word_embeddings: bool = Falsehead_dim: int | None = None )
Parámetros
- is_encoder_decoder (
bool, opcional, valor predeterminadoTrue) — Indica si el modelo se utiliza como codificador/decodificador o no. - encoder_config (
Union[dict, ~configuration_utils.PreTrainedConfig], opcional) — El objeto de configuración o el diccionario del backbone del codificador. - vocab_size (
int, opcional, valor predeterminado16384) — Tamaño del vocabulario del modelo. Define el número de tokens diferentes que pueden representarse medianteinput_ids. - hidden_size (
int, opcional, valor predeterminado1024) — Dimensión de las representaciones ocultas. - num_hidden_layers (
int, opcional, valor predeterminado8) — Número de capas ocultas en el decodificador Transformer. - num_attention_heads (
int, opcional, valor predeterminado8) — Número de cabezas de atención para cada capa de atención en el decodificador Transformer. - num_key_value_heads (
int, opcional) — Este es el número de cabezas de key_value que se deben utilizar para implementar Grouped Query Attention. Sinum_key_value_heads=num_attention_heads, el modelo utilizará Multi Head Attention (MHA); sinum_key_value_heads=1, el modelo utilizará Multi Query Attention (MQA); en caso contrario, se utilizará GQA. Al convertir un checkpoint multi-head en un checkpoint GQA, cada cabeza de key y value del grupo debe construirse mediante el promedio (meanpooling) de todas las cabezas originales dentro de ese grupo. Para más detalles, consulta este artículo. Si no se especifica, el valor predeterminado seránum_attention_heads. - intermediate_size (
int, opcional, valor predeterminado4096) — Dimensión de las representaciones del MLP. - hidden_act (
str, opcional, valor predeterminadorelu) — La función de activación no lineal (función o cadena) en el decodificador. Por ejemplo,"gelu","relu","silu", etc. - max_position_embeddings (
int, opcional, valor predeterminado1024) — La longitud máxima de secuencia con la que se podría utilizar este modelo. - pad_token_id (
int, opcional, valor predeterminado2) — Id del token utilizado para el relleno en el vocabulario. - eos_token_id (
int, opcional, valor predeterminado3) — Id del token utilizado para el fin de secuencia en el vocabulario. - bos_token_id (
int, opcional, valor predeterminado4) — Id del token utilizado para el inicio de la secuencia en el vocabulario. - use_cache (
bool, opcional, valor predeterminadoTrue) — Indica si el modelo debe devolver las últimas claves/valores de atención (no utilizado por todos los modelos). Solo es relevante siconfig.is_decoder=Trueo cuando el modelo es un modelo generativo solo de decodificador. - initializer_range (
float, opcional, valor predeterminado0.02) — La desviación estándar del truncated_normal_initializer para inicializar todas las matrices de pesos. - attention_dropout (
Union[float, int], opcional, valor predeterminado0.0) — La proporción de dropout para las probabilidades de atención. - attention_bias (
bool, opcional, valor predeterminadoTrue) — Si se debe usar un sesgo en las capas de proyección de consulta, clave, valor y salida durante la autoatención. - decoder_start_token_id (
int, opcional) — Si un modelo encoder-decoder inicia la decodificación con un token diferente debos, el id de ese token. - tie_word_embeddings (
bool, opcional, valor predeterminadoFalse) — Si se deben vincular las matrices de pesos de embeddings según el mapeotied_weights_keysdel modelo. - head_dim (
int, opcional) — La dimensión de la cabeza de atención. Si es None, se establecerá en hidden_size // num_attention_heads
Esta es la clase de configuración para almacenar la configuración de un CohereAsrModel. Se utiliza para instanciar un modelo Cohere Asr según los argumentos especificados, definiendo la arquitectura del modelo. Instanciar una configuración con los valores predeterminados producirá una configuración similar a la de CohereLabs/cohere-transcribe-03-2026
Los objetos de configuración heredan de PreTrainedConfig y se pueden usar para controlar las salidas del modelo. Lea la documentación de PreTrainedConfig para obtener más información.
CohereAsrFeatureExtractor
clase transformers.CohereAsrFeatureExtractor
< source >( feature_size = 128sampling_rate = 16000hop_length = 160n_fft = 512win_length = 400preemphasis = 0.97padding_value = 0.0dither = 1e-05max_audio_clip_s = 35.0overlap_chunk_second = 5.0min_energy_window_samples = 1600**kwargs )
Parámetros
- feature_size (
int, opcional, valor predeterminado 128) — La dimensión de las características de las características extraídas. - sampling_rate (
int, opcional, valor predeterminado 16000) — La tasa de muestreo a la que deben digitalizarse los archivos de audio, expresada en hercios (Hz). - hop_length (
int, opcional, valor predeterminado 160) — Longitud de las ventanas superpuestas para la STFT utilizada para obtener los coeficientes de Frecuencia Mel. - n_fft (
int, opcional, valor predeterminado 512) — Tamaño de la transformada de Fourier. - win_length (
int, opcional, valor predeterminado 400) — La longitud de la ventana para el cálculo de la STFT. - preemphasis (
float, opcional, valor predeterminado 0.97) — Coeficiente de un filtro de preénfasis. 0.0 significa que no se aplica ningún filtro de preénfasis. - padding_value (
float, opcional, valor predeterminado 0.0) — Valor de relleno utilizado para rellenar el audio. Debe corresponder a silencios. - dither (
float, opcional, valor predeterminado 1e-05) — Cantidad de ruido de dither determinista que se añade antes de la extracción de características. Cada muestra se inicializa con su longitud de forma de onda válida para que el dither sea invariante a la composición del lote. Establezca 0.0 para desactivarlo. - max_audio_clip_s (
float, opcional, valor predeterminado 35.0) — Duración máxima en segundos para un fragmento de audio individual. El audio que superemax_audio_clip_s - overlap_chunk_secondse divide en límites basados en la energía. - overlap_chunk_second (
float, opcional, valor predeterminado 5.0) — Tamaño en segundos de la ventana de búsqueda de límites utilizada al dividir audio largo. Esto no es una superposición real entre fragmentos: define cuánto se busca hacia atrás desde el límite del fragmento para encontrar un punto de división silencioso. - min_energy_window_samples (
int, opcional, valor predeterminado 1600) — Tamaño en muestras de la ventana deslizante utilizada para encontrar el punto más silencioso al dividir los fragmentos de audio.
Construye un extractor de características CohereAsr.
Este extractor de características hereda de SequenceFeatureExtractor, que contiene la mayoría de los métodos principales. Los usuarios deben consultar esta superclase para obtener más información sobre dichos métodos.
Esta clase extrae características de banco de filtros mel de audio en bruto mediante una implementación personalizada de numpy de la Short Time Fourier Transform que debe coincidir con el equivalente torch.stft de pytorch.
__call__
< source >( raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]]truncation: bool = Falsepad_to_multiple_of: int | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_attention_mask: bool | None = Nonepadding: str | None = 'longest'max_length: int | None = Nonesampling_rate: int | None = Nonedo_normalize: bool | None = Nonedevice: str | None = 'cpu'return_token_timestamps: bool | None = None**kwargs )
Parámetros
- raw_speech (
np.ndarray,list[float],list[np.ndarray],list[list[float]]) — La secuencia o lote de secuencias que se van a rellenar. Cada secuencia puede ser un array de numpy, una lista de valores float, una lista de arrays de numpy o una lista de listas de valores float. Debe ser audio de canal mono, no estéreo, es decir, un solo float por paso de tiempo. - truncation (
bool, opcional, valor predeterminadoTrue) — Activa la truncación para recortar las secuencias de entrada más largas que max_length hasta max_length. - pad_to_multiple_of (
int, opcional, predeterminado a None) — Si se establece, rellenará la secuencia hasta un múltiplo del valor proporcionado.Esto resulta especialmente útil para habilitar el uso de Tensor Cores en hardware de NVIDIA con capacidad de cálculo
>= 7.5(Volta), o en TPUs, que se benefician de que las longitudes de secuencia sean un múltiplo de 128. - return_attention_mask (
bool, opcional) — Si se devuelve la máscara de atención. Si se deja en el valor predeterminado, se devolverá la máscara de atención según el valor predeterminado del feature_extractor específico.¿Qué son las máscaras de atención?
Para los modelos CohereAsr,
attention_masksiempre debe pasarse en la inferencia por lotes para evitar errores sutiles. - return_tensors (
stro TensorType, opcional) — Si se establece, devolverá tensores en lugar de una lista de enteros de Python. Los valores aceptables son:'tf': Devuelve objetostf.constantde TensorFlow.'pt': Devuelve objetostorch.Tensorde PyTorch.'np': Devuelve objetos Numpynp.ndarray.
- sampling_rate (
int, opcional) — La tasa de muestreo a la que se muestreó la entradaraw_speech. Se recomienda encarecidamente pasarsampling_rateen la llamada forward para evitar errores silenciosos y permitir el pipeline de reconocimiento automático de voz. - padding_value (
float, opcional, valor predeterminado 0.0) — El valor que se utiliza para rellenar los valores / vectores de relleno. - do_normalize (
bool, opcional, valor predeterminadoFalse) — Indica si se debe normalizar la entrada con media cero y varianza unitaria. La normalización puede ayudar a mejorar significativamente el rendimiento del modelo. - device (
str, opcional, por defecto'cpu') — Especifica el dispositivo para el cálculo del espectrograma log-mel de las señales de audio en el método_torch_extract_fbank_features. (p. ej., “cpu”, “cuda”) - return_token_timestamps (
bool, opcional, por defectoNone) — Obsoleto. Usareturn_attention_masken su lugar, a partir del cual se puede inferir el número de fotogramas.Si se debe o no devolver el número de fotogramas de la entrada raw_speech. Estos num_frames pueden ser utilizados por el modelo para calcular marcas de tiempo a nivel de palabra.
Método principal para extraer características y preparar una o varias secuencias para el modelo. La implementación utiliza PyTorch para el cálculo de la STFT si está disponible; de lo contrario, utiliza una implementación más lenta basada en NumPy.
CohereAsrProcessor
clase transformers.CohereAsrProcessor
< source >( feature_extractortokenizer )
Construye un CohereAsrProcessor que envuelve un extractor de características y un tokenizador en un único procesador.
CohereAsrProcessor ofrece todas las funcionalidades de CohereAsrFeatureExtractor y TokenizersBackend. Consulte ~CohereAsrFeatureExtractor y ~TokenizersBackend para obtener más información.
__call__
< source >( audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]language: strtext: str | list[str] | list[list[str]] | None = Nonepunctuation: bool = Truesampling_rate: int | None = None**kwargs: *<class 'transformers.models.cohere_asr.processing_cohere_asr.CohereAsrProcessorKwargs'> )
Parámetros
- audio (
Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]]) — El audio o lote de audios que se va a preparar. Cada audio puede ser un array de NumPy o un tensor de PyTorch. En el caso de un array de NumPy/tensor de PyTorch, cada audio debe tener la forma (C, T), donde C es el número de canales y T es la longitud de la muestra del audio. - language (
str) — Código de idioma (p. ej."en","es","fr") utilizado para construir el prompt del decodificador. El procesador construye el prompt completo del decodificador y devuelvedecoder_input_idsjunto con las características de audio. - text (
Union[str, list[str], list[list[str]]], opcional) — La secuencia o lote de secuencias que se codificarán. Cada secuencia puede ser una cadena de caracteres o una lista de cadenas de caracteres (cadenas pre-tokenizadas). Si se pasa una entrada pre-tokenizada, establezcais_split_into_words=Truepara evitar ambigüedad con las entradas por lotes. - punctuation (
bool, por defectoTrue) — Si se habilita la puntuación en el prompt del decodificador. - sampling_rate (
int, opcional) — La tasa de muestreo del audio de entrada en Hz. Debe coincidir con la tasa de muestreo esperada por el extractor de características (por defecto, 16000 Hz). Si se proporciona, se validará contra la tasa de muestreo esperada por el procesador y se generará un error si no coinciden. Si no se proporciona, se emitirá una advertencia y se asumirá la tasa de muestreo predeterminada. - return_tensors (
stro TensorType, opcional) — Si se establece, devolverá tensores de un marco de trabajo específico. Los valores aceptables son:'pt': Devuelve objetostorch.Tensorde PyTorch.'np': Devuelve objetosnp.ndarrayde NumPy.
- **kwargs (ProcessingKwargs, opcional) — Opciones de procesamiento adicionales para cada modalidad (texto, imágenes, videos, audio). Los parámetros específicos del modelo se enumeran arriba; consulte la clase TypedDict para obtener la lista completa de argumentos admitidos.
CohereAsrPreTrainedModel
clase transformers.CohereAsrPreTrainedModel
< source >( config: PreTrainedConfig*inputs**kwargs )
Parámetros
- config (PreTrainedConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.
Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).
Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.
Un valor simulado para una ruta con puntos (p. ej. torch.float32): las cadenas de acceso a atributos y las llamadas se comportan como decoradores de paso, repr es la ruta con puntos, y su uso como clase base sustituye una base de type simple (PEP 560 __mro_entries__), de modo que las subclases reales conservan un metaclass normal y inspect.signature lee su __init__ real en lugar del de un simulado.
CohereAsrModel
clase transformers.CohereAsrModel
< source >( config: CohereAsrConfig )
Parámetros
- config (CohereAsrConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.
El modelo Cohere Asr básico que emite estados ocultos sin ninguna cabeza específica en la parte superior.
Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).
Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.
forward
< source >( input_features: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.EncoderDecoderCache | None = Nonedecoder_inputs_embeds: tuple[torch.Tensor] | None = Nonedecoder_position_ids: tuple[torch.LongTensor] | None = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqModelOutput or tuple(torch.Tensor)
Parámetros
- input_features (
torch.Tensorde forma(batch_size, audio_length)) — Valores flotantes de la forma de onda de voz cruda. La forma de onda de voz cruda se puede obtener cargando un archivo de audio.flaco.waven un array de tipolist[float], unnumpy.ndarrayo untorch.Tensor, por ejemplo mediante la biblioteca torchcodec (pip install torchcodec) o la biblioteca soundfile (pip install soundfile). Para preparar el array comoinput_features, se debe utilizar AutoFeatureExtractor para el relleno y la conversión en un tensor de tipotorch.Tensor. - attention_mask (
torch.LongTensorde forma(batch_size, sequence_length), opcional) — Máscara para evitar realizar atención en los índices de tokens de relleno. Valores de máscara seleccionados en[0, 1]:- 1 para los tokens que no están enmascarados,
- 0 para los tokens que están enmascarados.
- decoder_input_ids (
torch.LongTensorde forma(batch_size, target_sequence_length), opcional) — Índices de los tokens de la secuencia de entrada del decodificador en el vocabulario. Los índices se pueden obtener usando AutoTokenizer. Consulte PreTrainedTokenizer.encode() y PreTrainedTokenizer.call() para más detalles. ¿Qué son los IDs de entrada del decodificador?Los índices se pueden obtener usando AutoTokenizer. Consulte PreTrainedTokenizer.encode() y PreTrainedTokenizer.call() para más detalles.
- decoder_attention_mask (
torch.LongTensorde forma(batch_size, target_sequence_length), opcional) — Máscara para evitar realizar atención en ciertos índices de tokens. De forma predeterminada, se utilizará una máscara causal para asegurarse de que el modelo solo pueda mirar las entradas anteriores para predecir el futuro. - encoder_outputs (
tuple[tuple[torch.Tensor]], opcional) — La tupla consiste en (last_hidden_state, opcional:hidden_states, opcional:attentions)last_hidden_statede forma(batch_size, sequence_length, hidden_size), opcional) es una secuencia de hidden-states en la salida de la última capa del codificador. Se utiliza en la atención cruzada del decodificador. - past_key_values (
~cache_utils.EncoderDecoderCache, opcional) — Estados ocultos precalculados (claves y valores en los bloques de autoatención y en los bloques de atención cruzada) que se pueden usar para acelerar la decodificación secuencial. Esto generalmente consiste en lapast_key_valuesdevuelta por el modelo en una etapa anterior de la decodificación, cuandouse_cache=Trueoconfig.use_cache=True.Solo se permite una instancia de Cache como entrada, consulte nuestra guía de caché kv. Si no se pasan
past_key_values, DynamicCache se inicializará de forma predeterminada.El modelo generará el mismo formato de caché que se proporciona como entrada.
Si se utilizan
past_key_values, se espera que el usuario introduzca únicamente losinput_idsno procesados (aquellos que no tienen sus estados de clave y valor pasados proporcionados a este modelo) con forma(batch_size, unprocessed_length)en lugar de todos losinput_idscon forma(batch_size, sequence_length). - decoder_inputs_embeds (
tuple[torch.Tensor]de forma(batch_size, target_sequence_length, hidden_size), opcional) — Opcionalmente, en lugar de pasardecoder_input_idspuede optar por pasar directamente una representación incrustada. Sipast_key_valuesse usa, opcionalmente solo el últimodecoder_inputs_embedsdebe ser introducido (verpast_key_values). Esto es útil si se desea tener más control sobre cómo convertirdecoder_input_idsíndices en vectores asociados que la matriz de búsqueda de incrustaciones interna del modelo.Si
decoder_input_idsydecoder_inputs_embedsno están configurados,decoder_inputs_embedstoma el valor deinputs_embeds. - decoder_position_ids (
torch.LongTensorde forma(batch_size, target_sequence_length)) — Índices de las posiciones de los tokens de cada secuencia de entrada en los embeddings de posición. Se utiliza para calcular los embeddings de posición hastaconfig.decoder_config.max_position_embeddings - use_cache (
bool, opcional) — Si se establece enTrue, se devuelven los estados de clave-valor depast_key_valuesy pueden usarse para acelerar la decodificación (verpast_key_values).
Devuelve
Seq2SeqModelOutput o tuple(torch.Tensor)
Un Seq2SeqModelOutput o una tupla de
torch.Tensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios
elementos según la configuración (CohereAsrConfig) y las entradas.
El método forward de CohereAsrModel reemplaza el método especial __call__.
Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de
Moduledespués en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.
last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size)) — Secuencia de estados ocultos en la salida de la última capa del decodificador del modelo.Si se utiliza
past_key_values, solo se genera el último hidden-state de las secuencias con forma(batch_size, 1, hidden_size).past_key_values (
EncoderDecoderCache, opcional, se devuelve cuando se pasause_cache=Trueo cuandoconfig.use_cache=True) — Es una instancia de EncoderDecoderCache. Para más detalles, consulte nuestra guía de caché kv.Contiene estados ocultos precalculados (claves y valores en los bloques de autoatención y en los bloques de atención cruzada) que pueden utilizarse (véase la entrada
past_key_values) para acelerar la decodificación secuencial.decoder_hidden_states (
tuple(torch.Tensor), opcional, se devuelve cuando se pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(una para la salida de los embeddings, si el modelo tiene una capa de embedding, + una para la salida de cada capa) de forma(batch_size, sequence_length, hidden_size).Estados ocultos del decodificador en la salida de cada capa más las salidas opcionales de la incrustación inicial.
decoder_attentions (
tuple(torch.Tensor), opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(una por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención del decodificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
cross_attentions (
tuple(torch.Tensor), opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(una por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención de la capa de atención cruzada del decodificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de atención cruzada.
encoder_last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Secuencia de estados ocultos en la salida de la última capa del codificador del modelo.encoder_hidden_states (
tuple(torch.Tensor), opcional, devuelto cuando se pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(una para la salida de las incrustaciones, si el modelo tiene una capa de incrustaciones, + una para la salida de cada capa) de forma(batch_size, sequence_length, hidden_size).Estados ocultos del codificador en la salida de cada capa más las salidas opcionales de la incrustación inicial.
encoder_attentions (
tuple(torch.Tensor), opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(una por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención del codificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
Ejemplo:
>>> import torch
>>> from transformers import AutoFeatureExtractor, CohereAsrModel
>>> from datasets import load_dataset
>>> model = CohereAsrModel.from_pretrained("UsefulSensors/cohere_asr-tiny")
>>> feature_extractor = AutoFeatureExtractor.from_pretrained("UsefulSensors/cohere_asr-tiny")
>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> inputs = feature_extractor(ds[0]["audio"]["array"], return_tensors="pt")
>>> input_features = inputs.input_features
>>> decoder_input_ids = torch.tensor([[1, 1]]) * model.config.decoder_start_token_id
>>> last_hidden_state = model(input_features, decoder_input_ids=decoder_input_ids).last_hidden_state
>>> list(last_hidden_state.shape)
[1, 2, 288]CohereAsrForConditionalGeneration
clase transformers.CohereAsrForConditionalGeneration
< source >( config: CohereAsrConfig )
Parámetros
- config (CohereAsrConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.
El modelo CohereAsr con una cabeza de modelado de lenguaje. Puede usarse para el reconocimiento automático de voz.
Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).
Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.
forward
< source >( input_features: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.EncoderDecoderCache | None = Nonedecoder_inputs_embeds: tuple[torch.Tensor] | None = Nonedecoder_position_ids: tuple[torch.LongTensor] | None = Noneuse_cache: bool | None = Nonelabels: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqLMOutput or tuple(torch.Tensor)
Parámetros
- input_features (
torch.Tensorde forma(batch_size, audio_length)) — Valores flotantes de la forma de onda de voz cruda. La forma de onda de voz cruda se puede obtener cargando un archivo de audio.flaco.waven un array de tipolist[float], unnumpy.ndarrayo untorch.Tensor, por ejemplo mediante la biblioteca torchcodec (pip install torchcodec) o la biblioteca soundfile (pip install soundfile). Para preparar el array comoinput_features, se debe utilizar AutoFeatureExtractor para el relleno y la conversión en un tensor de tipotorch.Tensor. - attention_mask (
torch.LongTensorde forma(batch_size, sequence_length), opcional) — Máscara para evitar realizar atención en los índices de tokens de relleno. Valores de máscara seleccionados en[0, 1]:- 1 para los tokens que no están enmascarados,
- 0 para los tokens que están enmascarados.
- decoder_input_ids (
torch.LongTensorde forma(batch_size, target_sequence_length), opcional) — Índices de los tokens de la secuencia de entrada del decodificador en el vocabulario. Los índices se pueden obtener usando AutoTokenizer. Consulte PreTrainedTokenizer.encode() y PreTrainedTokenizer.call() para más detalles. ¿Qué son los IDs de entrada del decodificador?Los índices se pueden obtener usando AutoTokenizer. Consulte PreTrainedTokenizer.encode() y PreTrainedTokenizer.call() para más detalles.
- decoder_attention_mask (
torch.LongTensorde forma(batch_size, target_sequence_length), opcional) — Máscara para evitar realizar atención en ciertos índices de tokens. De forma predeterminada, se utilizará una máscara causal para asegurarse de que el modelo solo pueda mirar las entradas anteriores para predecir el futuro. - encoder_outputs (
tuple[tuple[torch.Tensor]], opcional) — La tupla consiste en (last_hidden_state, opcional:hidden_states, opcional:attentions)last_hidden_statede forma(batch_size, sequence_length, hidden_size), opcional) es una secuencia de hidden-states en la salida de la última capa del codificador. Se utiliza en la atención cruzada del decodificador. - past_key_values (
~cache_utils.EncoderDecoderCache, opcional) — Estados ocultos precalculados (claves y valores en los bloques de autoatención y en los bloques de atención cruzada) que se pueden usar para acelerar la decodificación secuencial. Esto generalmente consiste en lapast_key_valuesdevuelta por el modelo en una etapa anterior de la decodificación, cuandouse_cache=Trueoconfig.use_cache=True.Solo se permite una instancia de Cache como entrada, consulte nuestra guía de caché kv. Si no se pasan
past_key_values, DynamicCache se inicializará de forma predeterminada.El modelo generará el mismo formato de caché que se proporciona como entrada.
Si se utilizan
past_key_values, se espera que el usuario introduzca únicamente losinput_idsno procesados (aquellos que no tienen sus estados de clave y valor pasados proporcionados a este modelo) con forma(batch_size, unprocessed_length)en lugar de todos losinput_idscon forma(batch_size, sequence_length). - decoder_inputs_embeds (
tuple[torch.Tensor]de forma(batch_size, target_sequence_length, hidden_size), opcional) — Opcionalmente, en lugar de pasardecoder_input_idspuede optar por pasar directamente una representación incrustada. Sipast_key_valuesse usa, opcionalmente solo el últimodecoder_inputs_embedsdebe ser introducido (verpast_key_values). Esto es útil si se desea tener más control sobre cómo convertirdecoder_input_idsíndices en vectores asociados que la matriz de búsqueda de incrustaciones interna del modelo.Si
decoder_input_idsydecoder_inputs_embedsno están configurados,decoder_inputs_embedstoma el valor deinputs_embeds. - decoder_position_ids (
torch.LongTensorde forma(batch_size, target_sequence_length)) — Índices de las posiciones de los tokens de cada secuencia de entrada en los embeddings de posición. Se utiliza para calcular los embeddings de posición hastaconfig.decoder_config.max_position_embeddings - use_cache (
bool, opcional) — Si se establece enTrue, se devuelven los estados de clave-valor depast_key_valuesy pueden usarse para acelerar la decodificación (verpast_key_values). - labels (
torch.LongTensorde forma(batch_size, sequence_length), opcional) — Etiquetas para calcular la pérdida de modelado de lenguaje enmascarado. Los índices deben estar en[0, ..., config.vocab_size]o ser -100 (ver la docstring deinput_ids). Los tokens con índices establecidos en-100se ignoran (enmascarados); la pérdida solo se calcula para los tokens con etiquetas en[0, ..., config.vocab_size].
Devuelve
Seq2SeqLMOutput o tuple(torch.Tensor)
Un Seq2SeqLMOutput o una tupla de
torch.Tensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios
elementos según la configuración (CohereAsrConfig) y las entradas.
El método forward de CohereAsrForConditionalGeneration sobrescribe el método especial __call__.
Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de
Moduledespués en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.
loss (
torch.Tensorde forma(1,), opcional, se devuelve cuando se proporcionalabels) — Pérdida de modelado de lenguaje.logits (
torch.Tensorde forma(batch_size, sequence_length, config.vocab_size)) — Puntuaciones de predicción de la cabeza de modelado de lenguaje (puntuaciones para cada token del vocabulario antes de SoftMax).past_key_values (
EncoderDecoderCache, opcional, se devuelve cuando se pasause_cache=Trueo cuandoconfig.use_cache=True) — Es una instancia de EncoderDecoderCache. Para más detalles, consulte nuestra guía de caché kv.Contiene estados ocultos precalculados (claves y valores en los bloques de autoatención y en los bloques de atención cruzada) que pueden utilizarse (véase la entrada
past_key_values) para acelerar la decodificación secuencial.decoder_hidden_states (
tuple(torch.Tensor), opcional, se devuelve cuando se pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(una para la salida de los embeddings, si el modelo tiene una capa de embedding, + una para la salida de cada capa) de forma(batch_size, sequence_length, hidden_size).Estados ocultos del decodificador en la salida de cada capa más las salidas de la incrustación inicial.
decoder_attentions (
tuple(torch.Tensor), opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(una por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención del decodificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
cross_attentions (
tuple(torch.Tensor), opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(una por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención de la capa de atención cruzada del decodificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de atención cruzada.
encoder_last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Secuencia de estados ocultos en la salida de la última capa del codificador del modelo.encoder_hidden_states (
tuple(torch.Tensor), opcional, devuelto cuando se pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(una para la salida de las incrustaciones, si el modelo tiene una capa de incrustaciones, + una para la salida de cada capa) de forma(batch_size, sequence_length, hidden_size).Estados ocultos del codificador en la salida de cada capa más las salidas de la incrustación inicial.
encoder_attentions (
tuple(torch.Tensor), opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(una por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención del codificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
Ejemplo:
>>> import torch
>>> from transformers import AutoProcessor, CohereAsrForConditionalGeneration
>>> from datasets import load_dataset
>>> processor = AutoProcessor.from_pretrained("UsefulSensors/cohere_asr-tiny")
>>> model = CohereAsrForConditionalGeneration.from_pretrained("UsefulSensors/cohere_asr-tiny")
>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> inputs = processor(ds[0]["audio"]["array"], return_tensors="pt")
>>> input_features = inputs.input_features
>>> generated_ids = model.generate(input_features, max_new_tokens=100)
>>> transcription = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
>>> transcription
'Mr. Quilter is the apostle of the middle classes, and we are glad to welcome his gospel.'