Transformers 文档

M-CTC-T

Hugging Face's logo
加入 Hugging Face 社区

并获取增强的文档体验

开始使用

M-CTC-T

PyTorch

此模型仅处于维护模式,因此我们不会接受任何更改其代码的新 PR。

如果您在运行此模型时遇到任何问题,请重新安装支持此模型的最后一个版本:v4.30.0。您可以通过运行以下命令来执行此操作:pip install -U transformers==4.30.0

概述

M-CTC-T 模型由 Loren Lugosch、Tatiana Likhomanenko、Gabriel Synnaeve 和 Ronan Collobert 在 Pseudo-Labeling For Massively Multilingual Speech Recognition 中提出。该模型是一个 10 亿参数的 Transformer 编码器,带有一个针对 8065 个字符标签的 CTC 头和一个针对 60 个语言 ID 标签的语言识别头。它在 Common Voice(6.1 版本,2020 年 12 月发布)和 VoxPopuli 上进行训练。在 Common Voice 和 VoxPopuli 上训练后,该模型仅在 Common Voice 上进行训练。标签是未规范化的字符级转录(标点符号和大小写未删除)。该模型将来自 16Khz 音频信号的 Mel 滤波器组特征作为输入。

该论文的摘要如下

通过伪标签的半监督学习已成为最先进的单语语音识别系统的主要组成部分。在这项工作中,我们将伪标签扩展到包含 60 种语言的大规模多语语音识别。我们提出了一个简单的伪标签方案,即使对于低资源语言也效果良好:训练一个监督式多语模型,在目标语言上使用半监督学习对其进行微调,为该语言生成伪标签,并使用所有语言的伪标签(从头开始或通过微调)训练最终模型。在标记的 Common Voice 和未标记的 VoxPopuli 数据集上的实验表明,我们的方案可以产生一个在许多语言上具有更好性能的模型,并且可以很好地迁移到 LibriSpeech。

此模型由 cwkeam 贡献。原始代码可以在 此处找到。

使用技巧

此模型的 PyTorch 版本仅在 torch 1.9 及更高版本中可用。

资源

MCTCTConfig

class transformers.MCTCTConfig

< >

( vocab_size = 8065 hidden_size = 1536 num_hidden_layers = 36 intermediate_size = 6144 num_attention_heads = 4 attention_head_dim = 384 max_position_embeddings = 920 layer_norm_eps = 1e-05 layerdrop = 0.3 hidden_act = 'relu' initializer_range = 0.02 hidden_dropout_prob = 0.3 attention_probs_dropout_prob = 0.3 pad_token_id = 1 bos_token_id = 0 eos_token_id = 2 conv_glu_dim = 1 conv_dropout = 0.3 num_conv_layers = 1 conv_kernel = (7,) conv_stride = (3,) input_feat_per_channel = 80 input_channels = 1 conv_channels = None ctc_loss_reduction = 'sum' ctc_zero_infinity = False **kwargs )

参数

  • vocab_size (int, 可选, 默认为 8065) — M-CTC-T 模型的词汇表大小。定义了调用 MCTCTModel 时传递的 inputs_ids 可以表示的不同 token 的数量。
  • hidden_size (int, 可选, 默认为 1536) — 编码器层和池化器层的维度。
  • num_hidden_layers (int, 可选, 默认为 36) — Transformer 编码器中隐藏层的数量。
  • intermediate_size (int, 可选, 默认为 6144) — Transformer 编码器中“中间”(即,前馈)层的维度。
  • num_attention_heads (int, 可选, 默认为 4) — Transformer 编码器中每个注意力层中的注意力头数。
  • attention_head_dim (int, 可选, 默认为 384) — Transformer 编码器中每个注意力层中每个注意力头的维度。
  • max_position_embeddings (int, 可选, 默认为 920) — 此模型可能使用的最大序列长度(在 log-mel 频谱图提取之后)。
  • layer_norm_eps (float, 可选, 默认为 1e-05) — 层归一化层使用的 epsilon 值。
  • layerdrop (float, 可选, 默认为 0.3) — 在训练期间丢弃编码器层的概率。原始实现中使用了默认值 0.3。
  • hidden_act (strfunction, 可选, 默认为 "relu") — 编码器和池化器中的非线性激活函数(函数或字符串)。如果为字符串,则支持 "gelu""relu""selu""gelu_new"
  • initializer_range (float, 可选, 默认为 0.02) — 用于初始化所有权重矩阵的 truncated_normal_initializer 的标准差。
  • hidden_dropout_prob (float, 可选, 默认为 0.3) — 嵌入、编码器和池化器中所有全连接层的 dropout 概率。
  • attention_probs_dropout_prob (float, 可选, 默认为 0.3) — 注意力概率的 dropout 比率。
  • pad_token_id (int, 可选, 默认为 1) — pad token 的 tokenizer 索引。
  • bos_token_id (int, 可选, 默认为 0) — bos token 的分词器索引。
  • eos_token_id (int, 可选, 默认为 2) — eos token 的分词器索引。
  • conv_glu_dim (int, 可选, 默认为 1) — 应用 GLU 的 Conv1dSubsampler 层输出的维度。虽然原始 Flashlight 代码使用值 2,但由于转置差异,这里调整为 1。
  • conv_dropout (int, 可选, 默认为 0.3) — 在训练期间随机丢弃 Conv1dSubsampler 层的概率。
  • num_conv_layers (int, 可选, 默认为 1) — 应用 transformer 编码器层之前的卷积层数。
  • conv_kernel (Sequence[int], 可选, 默认为 (7,)) — 应用 transformer 层之前的 1D 卷积的卷积核大小。 len(conv_kernel) 必须等于 num_conv_layers
  • conv_stride (Sequence[int], 可选, 默认为 (3,)) — 应用 transformer 层之前的 1D 卷积的步长。 len(conv_stride) 必须等于 num_conv_layers
  • input_feat_per_channel (int, 可选, 默认为 80) — Conv1D 层输入的通道的特征维度。
  • input_channels (int, 可选, 默认为 1) — Conv1D 层输入的输入通道数。
  • conv_channels (List[int], 可选) — 中间 Conv1D 层的通道大小。
  • ctc_loss_reduction (str, 可选, 默认为 "sum") — 指定应用于 torch.nn.CTCLoss 输出的缩减方式。仅在训练 MCTCTForCTC 实例时相关。
  • ctc_zero_infinity (bool, 可选, 默认为 False) — 是否将 torch.nn.CTCLoss 的无限损失和相关的梯度置零。当输入太短而无法与目标对齐时,主要会发生无限损失。仅在训练 MCTCTForCTC 实例时相关。

这是用于存储 MCTCTModel 配置的配置类。它用于根据指定的参数实例化 M-CTC-T 模型,定义模型架构。使用默认值实例化配置将产生与 M-CTC-T speechbrain/m-ctc-t-large 架构类似的配置。

配置对象继承自 PretrainedConfig,可用于控制模型输出。有关更多信息,请阅读 PretrainedConfig 的文档。

示例

>>> from transformers import MCTCTConfig, MCTCTModel

>>> # Initializing a M-CTC-T mctct-large style configuration
>>> configuration = MCTCTConfig()

>>> # Initializing a model (with random weights) from the mctct-large style configuration
>>> model = MCTCTModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

MCTCTFeatureExtractor

class transformers.MCTCTFeatureExtractor

< >

( feature_size = 80 sampling_rate = 16000 padding_value = 0.0 hop_length = 10 win_length = 25 win_function = 'hamming_window' frame_signal_scale = 32768.0 preemphasis_coeff = 0.97 mel_floor = 1.0 normalize_means = True normalize_vars = True return_attention_mask = False **kwargs )

参数

  • feature_size (int, 默认为 80) — 提取特征的特征维度。这是 mel_frequency 的数量
  • sampling_rate (int, 默认为 16000) — 音频文件应数字化的采样率,以赫兹 (Hz) 表示。
  • padding_value (float, 默认为 0.0) — 用于填充填充值的值。
  • hop_length (int, 默认为 10) — 窗口之间的音频样本数。在许多论文中也称为 “shift”。
  • win_length (int, 默认为 25) — 每个窗口的毫秒数
  • win_function (str, 默认为 "hamming_window") — 用于窗口化的窗口函数名称,必须可通过 torch.{win_function} 访问
  • frame_signal_scale (float, 默认为 32768.0) — 在创建帧时乘以的常数,在应用 DFT 之前。
  • preemphasis_coeff (float, 默认为 0.97) — 在应用 DFT 之前的预加重中乘以的常数。
  • mel_floor (float 默认为 1.0) — mel 频率组的最小值。
  • normalize_means (bool, 可选, 默认为 True) — 是否对提取的特征进行零均值归一化。
  • normalize_vars (bool, 可选, 默认为 True) — 是否对提取的特征进行单位方差归一化。

构建 M-CTC-T 特征提取器。

此特征提取器继承自 SequenceFeatureExtractor,其中包含大多数主要方法。用户应参考此超类以获取有关这些方法的更多信息。此代码已从 Flashlight 的 C++ 代码改编而来。有关实现的更多信息,可以参考这个 notebook,它引导用户逐步了解实现过程。

__call__

< >

( raw_speech: typing.Union[numpy.ndarray, typing.List[float], typing.List[numpy.ndarray], typing.List[typing.List[float]]] padding: typing.Union[bool, str, transformers.utils.generic.PaddingStrategy] = False max_length: typing.Optional[int] = None truncation: bool = False pad_to_multiple_of: typing.Optional[int] = None return_attention_mask: typing.Optional[bool] = None return_tensors: typing.Union[str, transformers.utils.generic.TensorType, NoneType] = None sampling_rate: typing.Optional[int] = None **kwargs )

参数

  • raw_speech (torch.Tensor, np.ndarray, List[float], List[torch.Tensor], List[np.ndarray], List[List[float]]) — 要填充的序列或批量序列。每个序列可以是张量、numpy 数组、浮点值列表、张量列表、numpy 数组列表或浮点值列表的列表。必须是单声道音频,而非立体声,即每个时间步单个浮点值。
  • padding (bool, strPaddingStrategy, 可选, 默认为 False) — 选择一种策略来填充返回的序列(根据模型的填充侧和填充索引),选项包括:

    • True'longest':填充到批次中最长的序列(如果仅提供单个序列,则不填充)。
    • 'max_length':填充到由参数 max_length 指定的最大长度,如果未提供该参数,则填充到模型可接受的最大输入长度。
    • False'do_not_pad' (默认):不填充(即,可以输出具有不同长度序列的批次)。
  • max_length (int, 可选) — 返回列表的最大长度,以及可选的填充长度(见上文)。
  • truncation (bool) — 激活截断,以将长于 max_length 的输入序列裁剪为 max_length
  • pad_to_multiple_of (int, 可选) — 如果设置,则将序列填充为所提供值的倍数。

    这对于在计算能力 >= 7.5 (Volta) 的 NVIDIA 硬件或受益于序列长度为 128 的倍数的 TPU 上启用 Tensor Cores 的使用尤其有用。

  • return_attention_mask (bool, 可选) — 是否返回 attention mask。如果保留为默认值,将根据特定 feature_extractor 的默认值返回 attention mask。

    什么是 attention masks?

  • return_tensors (strTensorType, 可选) — 如果设置,将返回张量而不是 python 整数列表。可接受的值为:

    • 'tf':返回 TensorFlow tf.constant 对象。
    • 'pt':返回 PyTorch torch.Tensor 对象。
    • 'np':返回 Numpy np.ndarray 对象。
  • sampling_rate (int, 可选) — raw_speech 输入被采样的采样率。强烈建议在正向调用时传递 sampling_rate 以防止静默错误。
  • padding_value (float, 默认为 0.0) —

用于特征化和准备模型的一个或多个序列的主要方法。它返回输入音频的 log-mel 频谱图,如原始 Flashlight MFSC 特征提取代码中所实现的那样。

MCTCTProcessor

class transformers.MCTCTProcessor

< >

( feature_extractor tokenizer )

参数

  • feature_extractor (MCTCTFeatureExtractor) — MCTCTFeatureExtractor 的实例。feature extractor 是必需的输入。
  • tokenizer (AutoTokenizer) — AutoTokenizer 的实例。tokenizer 是必需的输入。

构建一个 MCTCT processor,它将 MCTCT feature extractor 和 MCTCT tokenizer 封装到一个 processor 中。

MCTCTProcessor 提供 MCTCTFeatureExtractorAutoTokenizer 的所有功能。有关更多信息,请参阅 call()decode()

__call__

< >

( *args **kwargs )

在正常模式下使用时,此方法将其所有参数转发到 MCTCTFeatureExtractor 的 call() 并返回其输出。如果在 as_target_processor() 上下文中使用,此方法将其所有参数转发到 AutoTokenizer 的 __call__()。有关更多信息,请参阅上述两种方法的文档字符串。

from_pretrained

< >

( pretrained_model_name_or_path: typing.Union[str, os.PathLike] cache_dir: typing.Union[str, os.PathLike, NoneType] = None force_download: bool = False local_files_only: bool = False token: typing.Union[str, bool, NoneType] = None revision: str = 'main' **kwargs )

参数

  • pretrained_model_name_or_path (stros.PathLike) — 可以是以下之一:

    • 一个字符串,托管在 huggingface.co 模型仓库中的预训练 feature_extractor 的模型 ID
    • 一个目录的路径,其中包含使用 save_pretrained() 方法保存的 feature extractor 文件,例如,./my_model_directory/
    • 保存的 feature extractor JSON文件的路径或 URL,例如,./my_model_directory/preprocessor_config.json
  • **kwargs — 传递给 from_pretrained()~tokenization_utils_base.PreTrainedTokenizer.from_pretrained 的附加关键字参数。

实例化与预训练模型关联的 processor。

此类方法只是调用 feature extractor from_pretrained()、图像 processor ImageProcessingMixin 和 tokenizer ~tokenization_utils_base.PreTrainedTokenizer.from_pretrained 方法。有关更多信息,请参阅上述方法的文档字符串。

save_pretrained

< >

( save_directory push_to_hub: bool = False **kwargs )

参数

  • save_directory (stros.PathLike) — 将在其中保存 feature extractor JSON 文件和 tokenizer 文件的目录(如果目录不存在,则将创建目录)。
  • push_to_hub (bool, 可选, 默认为 False) — 是否在保存后将您的模型推送到 Hugging Face 模型 hub。您可以使用 repo_id 指定要推送到的存储库(默认为命名空间中 save_directory 的名称)。
  • kwargs (Dict[str, Any], 可选) — 传递给 push_to_hub() 方法的附加关键字参数。

将此 processor 的属性(feature extractor、tokenizer...)保存在指定目录中,以便可以使用 from_pretrained() 方法重新加载。

这个类方法只是简单地调用了 save_pretrained()save_pretrained()。请参考上述方法的文档字符串以获取更多信息。

batch_decode

< >

( *args **kwargs )

此方法将其所有参数转发到 AutoTokenizer 的 batch_decode()。请参考此方法的文档字符串以获取更多信息。

decode

< >

( *args **kwargs )

此方法将其所有参数转发到 AutoTokenizer 的 decode()。请参考此方法的文档字符串以获取更多信息。

MCTCTModel

class transformers.MCTCTModel

< >

( config )

参数

  • config (MCTCTConfig) — 带有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,仅加载配置。查看 from_pretrained() 方法以加载模型权重。

裸露的 M-CTC-T 模型 Transformer 输出原始隐藏状态,顶部没有任何特定的头部。此模型是 PyTorch 的 torch.nn.Module 子类。将其用作常规 PyTorch 模块,并参考 PyTorch 文档以了解所有与通用用法和行为相关的事项。

forward

< >

( input_features: Tensor attention_mask: typing.Optional[torch.Tensor] = None head_mask: typing.Optional[torch.Tensor] = None output_attentions: typing.Optional[bool] = None output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None ) transformers.modeling_outputs.BaseModelOutputtuple(torch.FloatTensor)

参数

  • input_features (torch.LongTensor,形状为 (batch_size, sequence_length)) — 词汇表中输入序列标记的索引。

    索引可以使用 Wav2Vec2CTCTokenizer 获得。有关详细信息,请参阅 PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是输入 ID?

  • attention_mask (torch.FloatTensor,形状为 (batch_size, sequence_length)可选) — 用于避免在填充标记索引上执行注意力的掩码。掩码值在 [0, 1] 中选择:

    • 1 表示标记未被掩蔽
    • 0 表示标记被掩蔽

    什么是注意力掩码?

  • head_mask (torch.FloatTensor,形状为 (num_heads,)(num_layers, num_heads)可选) — 用于使自注意力模块的选定头部无效的掩码。掩码值在 [0, 1] 中选择:

    • 1 表示头部未被掩蔽
    • 0 表示头部被掩蔽
  • output_attentions (bool可选) — 是否返回所有注意力层的注意力张量。 有关更多详细信息,请参阅返回张量下的 attentions
  • output_hidden_states (bool可选) — 是否返回所有层的隐藏状态。 有关更多详细信息,请参阅返回张量下的 hidden_states
  • return_dict (bool可选) — 是否返回 ModelOutput 而不是普通元组。

返回值

transformers.modeling_outputs.BaseModelOutputtuple(torch.FloatTensor)

一个 transformers.modeling_outputs.BaseModelOutput 或一个 torch.FloatTensor 元组(如果传递了 return_dict=False 或当 config.return_dict=False 时),包含各种元素,具体取决于配置 (MCTCTConfig) 和输入。

  • last_hidden_state (torch.FloatTensor,形状为 (batch_size, sequence_length, hidden_size)) — 模型最后一层的输出处的隐藏状态序列。

  • hidden_states (tuple(torch.FloatTensor)可选,当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — torch.FloatTensor 元组(对于嵌入的输出,如果模型具有嵌入层,则为一个;对于每一层的输出,则为一个),形状为 (batch_size, sequence_length, hidden_size)

    模型在每一层输出处的隐藏状态,加上可选的初始嵌入输出。

  • attentions (tuple(torch.FloatTensor)可选,当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — torch.FloatTensor 元组(每一层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

MCTCTModel 前向传播方法,覆盖了 __call__ 特殊方法。

尽管前向传播的配方需要在该函数中定义,但应该在之后调用 Module 实例而不是此函数,因为前者负责运行预处理和后处理步骤,而后者会默默地忽略它们。

示例

>>> from transformers import AutoProcessor, MCTCTModel
>>> from datasets import load_dataset
>>> import torch

>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation", trust_remote_code=True)
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate

>>> processor = AutoProcessor.from_pretrained("speechbrain/m-ctc-t-large")
>>> model = MCTCTModel.from_pretrained("speechbrain/m-ctc-t-large")

>>> # audio file is decoded on the fly
>>> inputs = processor(dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt")
>>> with torch.no_grad():
...     logits = model(**inputs).logits
>>> predicted_ids = torch.argmax(logits, dim=-1)

>>> # transcribe speech
>>> transcription = processor.batch_decode(predicted_ids)
>>> transcription[0]
[1, 195, 1536]

>>> inputs["labels"] = processor(text=dataset[0]["text"], return_tensors="pt").input_ids

>>> # compute loss
>>> loss = model(**inputs).loss

MCTCTForCTC

class transformers.MCTCTForCTC

< >

( config )

参数

  • config (MCTCTConfig) — 带有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,仅加载配置。查看 from_pretrained() 方法以加载模型权重。

带有 language modeling 头部用于连接时序分类 (CTC) 的 MCTCT 模型。此模型是 PyTorch 的 torch.nn.Module 子类。将其用作常规 PyTorch 模块,并参考 PyTorch 文档以了解所有与通用用法和行为相关的事项。

forward

< >

( input_features: Tensor attention_mask: typing.Optional[torch.Tensor] = None head_mask: typing.Optional[torch.Tensor] = None output_attentions: typing.Optional[bool] = None output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None labels: typing.Optional[torch.LongTensor] = None ) transformers.modeling_outputs.CausalLMOutputtuple(torch.FloatTensor)

参数

  • input_features (torch.LongTensor,形状为 ({0})) — 词汇表中输入序列标记的索引。

    索引可以使用 Wav2Vec2CTCTokenizer 获得。有关详细信息,请参阅 PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是输入 ID?

  • attention_mask (torch.FloatTensor,形状为 ({0})可选) — 用于避免在填充标记索引上执行注意力的掩码。掩码值在 [0, 1] 中选择:

    • 1 表示标记未被掩蔽
    • 0 表示标记被掩蔽

    什么是注意力掩码?

  • head_mask (torch.FloatTensor,形状为 (num_heads,)(num_layers, num_heads)可选) — 用于使自注意力模块的选定头部无效的掩码。掩码值在 [0, 1] 中选择:

    • 1 表示头部未被掩蔽
    • 0 表示头部被掩蔽
  • output_attentions (bool可选) — 是否返回所有注意力层的注意力张量。 有关更多详细信息,请参阅返回张量下的 attentions
  • output_hidden_states (bool可选) — 是否返回所有层的隐藏状态。 有关更多详细信息,请参阅返回张量下的 hidden_states
  • return_dict (bool可选) — 是否返回 ModelOutput 而不是普通元组。
  • labels (torch.LongTensor,形状为 (batch_size, target_length)可选) — 用于连接时序分类的标签。 请注意,target_length 必须小于或等于输出 logits 的序列长度。 索引在 [-100, 0, ..., config.vocab_size - 1] 中选择。 所有设置为 -100 的标签都将被忽略(掩蔽),损失仅针对 [0, ..., config.vocab_size - 1] 中的标签计算。

返回值

transformers.modeling_outputs.CausalLMOutputtuple(torch.FloatTensor)

一个 transformers.modeling_outputs.CausalLMOutput 或一个 torch.FloatTensor 元组(如果传递了 return_dict=False 或当 config.return_dict=False 时),包含各种元素,具体取决于配置 (MCTCTConfig) 和输入。

  • loss (torch.FloatTensor,形状为 (1,)可选,当提供 labels 时返回) — 语言建模损失(用于下一个标记预测)。

  • logits (torch.FloatTensor,形状为 (batch_size, sequence_length, config.vocab_size)) — 语言建模头部的预测分数(SoftMax 之前每个词汇表标记的分数)。

  • hidden_states (tuple(torch.FloatTensor)可选,当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — torch.FloatTensor 元组(对于嵌入的输出,如果模型具有嵌入层,则为一个;对于每一层的输出,则为一个),形状为 (batch_size, sequence_length, hidden_size)

    模型在每一层输出处的隐藏状态,加上可选的初始嵌入输出。

  • attentions (tuple(torch.FloatTensor)可选,当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — torch.FloatTensor 元组(每一层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

MCTCTForCTC 前向传播方法,覆盖了 __call__ 特殊方法。

尽管前向传播的配方需要在该函数中定义,但应该在之后调用 Module 实例而不是此函数,因为前者负责运行预处理和后处理步骤,而后者会默默地忽略它们。

示例

>>> from transformers import AutoProcessor, MCTCTForCTC
>>> from datasets import load_dataset
>>> import torch

>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation", trust_remote_code=True)
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate

>>> processor = AutoProcessor.from_pretrained("speechbrain/m-ctc-t-large")
>>> model = MCTCTForCTC.from_pretrained("speechbrain/m-ctc-t-large")

>>> # audio file is decoded on the fly
>>> inputs = processor(dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt")
>>> with torch.no_grad():
...     logits = model(**inputs).logits
>>> predicted_ids = torch.argmax(logits, dim=-1)

>>> # transcribe speech
>>> transcription = processor.batch_decode(predicted_ids)
>>> transcription[0]
"Mr. Quilter is the apostle of the middle classes, and we're glad to welcome his gospel."

>>> inputs["labels"] = processor(text=dataset[0]["text"], return_tensors="pt").input_ids

>>> # compute loss
>>> loss = model(**inputs).loss
>>> round(loss.item(), 2)
1885.65
< > 在 GitHub 上更新