Transformers 4.37 中文文档(七十五)(2)

简介: Transformers 4.37 中文文档(七十五)

Transformers 4.37 中文文档(七十五)(1)https://developer.aliyun.com/article/1564207


ClapTextModel

class transformers.ClapTextModel

< source >

( config add_pooling_layer = True )

该模型可以作为编码器(仅具有自注意力)以及解码器的行为,此时在自注意力层之间添加了一层交叉注意力,遵循 Attention is all you need_  中描述的架构,作者为 Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit,  Llion Jones, Aidan N. Gomez, Lukasz Kaiser 和 Illia Polosukhin。

要使模型行为像一个解码器,需要使用配置中的 is_decoder 参数设置为 True 来初始化模型。要在 Seq2Seq 模型中使用,模型需要使用 is_decoder 参数和 add_cross_attention 都设置为 True 来初始化;然后预期在前向传递中输入一个 encoder_hidden_states

… _注意力就是你所需要的: arxiv.org/abs/1706.03762

forward

< source >

( input_ids: Optional = None attention_mask: Optional = None token_type_ids: Optional = None position_ids: Optional = None head_mask: Optional = None inputs_embeds: Optional = None encoder_hidden_states: Optional = None encoder_attention_mask: Optional = None past_key_values: Optional = None use_cache: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None )

encoder_hidden_states(形状为(batch_size, sequence_length, hidden_size)torch.FloatTensor可选):编码器最后一层的隐藏状态序列。如果模型配置为解码器,则用于交叉注意力。encoder_attention_mask(形状为(batch_size, sequence_length)torch.FloatTensor可选):避免在编码器输入的填充标记索引上执行注意力的掩码。如果模型配置为解码器,则在交叉注意力中使用此掩码。掩码值选择在[0, 1]之间:

  • 对于未被masked的标记为 1,
  • 对于被masked的标记为 0。past_key_values(长度为config.n_layerstuple(tuple(torch.FloatTensor)),每个元组包含 4 个形状为(batch_size, num_heads, sequence_length - 1, embed_size_per_head)的张量):包含注意力块的预计算键和值隐藏状态。可用于加速解码。

如果使用past_key_values,用户可以选择仅输入最后一个decoder_input_ids(那些没有将它们的过去键值状态提供给此模型的)的形状为(batch_size, 1)的张量,而不是形状为(batch_size, sequence_length)的所有decoder_input_ids。use_cache(bool可选):如果设置为True,则返回past_key_values键值状态,并可用于加速解码(参见past_key_values)。

ClapTextModelWithProjection

class transformers.ClapTextModelWithProjection

<来源>

( config: ClapTextConfig )

参数

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

带有顶部投影层的 CLAP 文本模型(在汇总输出的顶部有一个线性层)。

这个模型继承自 PreTrainedModel。查看超类文档以获取库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入、修剪头等)。

这个模型也是一个 PyTorch torch.nn.Module子类。将其用作常规的 PyTorch 模块,并参考 PyTorch 文档以获取与一般用法和行为相关的所有内容。

forward

<来源>

( input_ids: Optional = None attention_mask: Optional = None position_ids: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) → export const metadata = 'undefined';transformers.models.clap.modeling_clap.ClapTextModelOutput or tuple(torch.FloatTensor)

参数

  • input_ids(形状为(batch_size, sequence_length)torch.LongTensor)— 词汇表中输入序列标记的索引。默认情况下将忽略填充。
    可以使用 AutoTokenizer 获取索引。查看 PreTrainedTokenizer.encode()和 PreTrainedTokenizer.call()获取详细信息。
    什么是输入 ID?
  • attention_mask(形状为(batch_size, sequence_length)torch.Tensor可选)— 用于避免在填充标记索引上执行注意力的掩码。掩码值选择在[0, 1]之间:
  • 对于未被masked的标记为 1,
  • 对于被masked的标记为 0。
  • 什么是注意力掩码?
  • position_ids(形状为(batch_size, sequence_length)torch.LongTensor可选)— 每个输入序列标记在位置嵌入中的位置索引。选择范围为[0, config.max_position_embeddings - 1]
    什么是位置 ID?
  • output_attentions (bool, optional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions
  • output_hidden_states (bool, optional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states
  • return_dict (bool, optional) — 是否返回 ModelOutput 而不是普通元组。

返回

transformers.models.clap.modeling_clap.ClapTextModelOutputtuple(torch.FloatTensor)

一个transformers.models.clap.modeling_clap.ClapTextModelOutput或一个torch.FloatTensor元组(如果传递return_dict=Falseconfig.return_dict=False)包含根据配置()和输入的各种元素。

  • text_embeds (torch.FloatTensor of shape (batch_size, output_dim) optional 当模型初始化为with_projection=True时返回) — 通过将投影层应用于 pooler_output 获得的文本嵌入。
  • last_hidden_state (torch.FloatTensor of shape (batch_size, sequence_length, hidden_size)) — 模型最后一层的隐藏状态序列。
  • hidden_states (tuple(torch.FloatTensor), optional, 当传递output_hidden_states=Trueconfig.output_hidden_states=True时返回) — 形状为(batch_size, sequence_length, hidden_size)torch.FloatTensor元组(一个用于嵌入的输出,如果模型有嵌入层,+ 一个用于每个层的输出)。
    模型在每一层输出的隐藏状态以及可选的初始嵌入输出。
  • attentions (tuple(torch.FloatTensor), optional, 当传递output_attentions=Trueconfig.output_attentions=True时返回) — 形状为(batch_size, num_heads, sequence_length, sequence_length)torch.FloatTensor元组(每层一个)。
    注意力权重在注意力 softmax 之后,用于计算自注意力头中的加权平均值。

ClapTextModelWithProjection 的前向方法,覆盖了__call__特殊方法。

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

示例:

>>> from transformers import AutoTokenizer, ClapTextModelWithProjection
>>> model = ClapTextModelWithProjection.from_pretrained("laion/clap-htsat-unfused")
>>> tokenizer = AutoTokenizer.from_pretrained("laion/clap-htsat-unfused")
>>> inputs = tokenizer(["a sound of a cat", "a sound of a dog"], padding=True, return_tensors="pt")
>>> outputs = model(**inputs)
>>> text_embeds = outputs.text_embeds

ClapAudioModel

class transformers.ClapAudioModel

< source >

( config: ClapAudioConfig )
forward

< source >

( input_features: Optional = None is_longer: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) → export const metadata = 'undefined';transformers.modeling_outputs.BaseModelOutputWithPooling or tuple(torch.FloatTensor)

参数

  • input_features (torch.FloatTensor of shape (batch_size, num_channels, height, width)) — 输入音频特征。这应该由 ClapFeatureExtractor 类返回,您也可以从 AutoFeatureExtractor 中检索。有关详细信息,请参阅ClapFeatureExtractor.__call__()
  • is_longer (torch.FloatTensor, 形状为(batch_size, 1), optional) — 音频剪辑是否比max_length更长。如果为True,将启用特征融合以增强特征。
  • output_attentions (bool, optional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions
  • output_hidden_states (bool, optional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states
  • return_dictbool可选)- 是否返回 ModelOutput 而不是普通元组。

返回

transformers.modeling_outputs.BaseModelOutputWithPooling 或tuple(torch.FloatTensor)

一个 transformers.modeling_outputs.BaseModelOutputWithPooling 或一个torch.FloatTensor元组(如果传递了return_dict=Falseconfig.return_dict=False时)包括各种元素,取决于配置()和输入。

  • last_hidden_state(形状为(batch_size, sequence_length, hidden_size)torch.FloatTensor)- 模型最后一层的隐藏状态序列输出。
  • pooler_output(形状为(batch_size, hidden_size)torch.FloatTensor)- 经过用于辅助预训练任务的层进一步处理后的序列的第一个标记(分类标记)的最后一层隐藏状态。例如,对于 BERT 系列模型,这返回经过线性层和 tanh 激活函数处理后的分类标记。线性层的权重是在预训练期间从下一个句子预测(分类)目标中训练的。
  • hidden_statestuple(torch.FloatTensor)可选,当传递output_hidden_states=Trueconfig.output_hidden_states=True时返回)- 形状为(batch_size, sequence_length, hidden_size)torch.FloatTensor元组(如果模型有嵌入层,则为嵌入输出的输出+每层的输出)。
    模型在每一层输出的隐藏状态以及可选的初始嵌入输出。
  • attentionstuple(torch.FloatTensor)可选,当传递output_attentions=Trueconfig.output_attentions=True时返回)- 形状为(batch_size, num_heads, sequence_length, sequence_length)torch.FloatTensor元组(每层一个)。
    注意力 softmax 后的注意力权重,用于计算自注意力头中的加权平均值。

ClapAudioModel 的前向方法,覆盖了__call__特殊方法。

虽然前向传递的步骤需要在此函数内定义,但应该在此之后调用Module实例,而不是这个,因为前者负责运行预处理和后处理步骤,而后者会默默地忽略它们。

示例:

>>> from datasets import load_dataset
>>> from transformers import AutoProcessor, ClapAudioModel
>>> dataset = load_dataset("ashraq/esc50")
>>> audio_sample = dataset["train"]["audio"][0]["array"]
>>> model = ClapAudioModel.from_pretrained("laion/clap-htsat-fused")
>>> processor = AutoProcessor.from_pretrained("laion/clap-htsat-fused")
>>> inputs = processor(audios=audio_sample, return_tensors="pt")
>>> outputs = model(**inputs)
>>> last_hidden_state = outputs.last_hidden_state

ClapAudioModelWithProjection

class transformers.ClapAudioModelWithProjection

<来源>

( config: ClapAudioConfig )

参数

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

在顶部具有投影层的 CLAP 音频模型(在池化输出的顶部有一个线性层)。

此模型继承自 PreTrainedModel。查看超类文档以了解库为所有模型实现的通用方法(如下载或保存、调整输入嵌入、修剪头等)。

这个模型也是一个 PyTorch torch.nn.Module子类。将其用作常规的 PyTorch 模块,并参考 PyTorch 文档以获取有关一般用法和行为的所有相关信息。

前进

<来源>

( input_features: Optional = None is_longer: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) → export const metadata = 'undefined';transformers.models.clap.modeling_clap.ClapAudioModelOutput or tuple(torch.FloatTensor)

参数

  • input_features(形状为(batch_size, num_channels, height, width)torch.FloatTensor)—输入音频特征。这应该由您可以从 AutoFeatureExtractor 中检索的 ClapFeatureExtractor 类返回。有关详细信息,请参阅ClapFeatureExtractor.__call__()
  • is_longer(形状为(batch_size, 1)torch.FloatTensor可选)—音频剪辑是否比max_length更长。如果为True,将启用特征融合以增强特征。
  • output_attentionsbool可选)— 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions
  • output_hidden_statesbool可选)— 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states
  • return_dictbool可选)— 是否返回一个 ModelOutput 而不是一个普通元组。

返回

transformers.models.clap.modeling_clap.ClapAudioModelOutputtuple(torch.FloatTensor)

一个transformers.models.clap.modeling_clap.ClapAudioModelOutput或一个torch.FloatTensor元组(如果传递了return_dict=Falseconfig.return_dict=False时)包括根据配置()和输入的不同元素。

  • audio_embeds(形状为(batch_size, hidden_size)torch.FloatTensor)—通过将投影层应用于 pooler_output 获得的音频嵌入。
  • last_hidden_state(形状为(batch_size, sequence_length, hidden_size)torch.FloatTensor)—模型最后一层的隐藏状态序列。
  • attentionstuple(torch.FloatTensor)可选,当传递output_attentions=Trueconfig.output_attentions=True时返回)—形状为(batch_size, num_heads, sequence_length, sequence_length)torch.FloatTensor元组(每层一个)。
    在注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。
  • hidden_statestuple(torch.FloatTensor)可选,当传递output_hidden_states=Trueconfig.output_hidden_states=True时返回)—形状为(batch_size, sequence_length, hidden_size)torch.FloatTensor元组(如果模型有嵌入层,则为嵌入的输出+每层的输出)。
    模型在每一层输出的隐藏状态以及可选的初始嵌入输出。

ClapAudioModelWithProjection 的前向方法,覆盖了__call__特殊方法。

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

示例:

>>> from datasets import load_dataset
>>> from transformers import ClapAudioModelWithProjection, ClapProcessor
>>> model = ClapAudioModelWithProjection.from_pretrained("laion/clap-htsat-fused")
>>> processor = ClapProcessor.from_pretrained("laion/clap-htsat-fused")
>>> dataset = load_dataset("ashraq/esc50")
>>> audio_sample = dataset["train"]["audio"][0]["array"]
>>> inputs = processor(audios=audio_sample, return_tensors="pt")
>>> outputs = model(**inputs)
>>> audio_embeds = outputs.audio_embeds

EnCodec

原文链接:huggingface.co/docs/transformers/v4.37.2/en/model_doc/encodec

概述

EnCodec 神经编解码器模型由 Alexandre Défossez、Jade Copet、Gabriel Synnaeve 和 Yossi Adi 在High Fidelity Neural Audio Compression中提出。

论文摘要如下:

我们引入了一种基于神经网络的最先进的实时、高保真音频编解码器。它由一个流式编码器-解码器架构组成,具有量化的潜在空间,以端到端的方式进行训练。我们通过使用一个多尺度频谱对抗器简化和加速训练,有效减少了伪影并产生高质量样本。我们引入了一种新颖的损失平衡机制来稳定训练:损失的权重现在定义了它应该代表整体梯度的比例,从而将这个超参数的选择与典型损失的规模分离。最后,我们研究了轻量级  Transformer 模型如何进一步压缩获得的表示,最多可减少  40%,同时保持快于实时。我们提供了对所提出模型的关键设计选择的详细描述,包括:训练目标、架构变化以及各种感知损失函数的研究。我们进行了广泛的主观评估(MUSHRA  测试),并对一系列带宽和音频领域进行了消融研究,包括语音、嘈杂混响语音和音乐。我们的方法在所有评估设置中优于基线方法,考虑到 24 kHz  单声道和 48 kHz 立体声音频。

该模型由MatthijsPatrick Von PlatenArthur Zucker贡献。原始代码可在此处找到。

用法示例

以下是使用该模型对音频进行编码和解码的快速示例:

>>> from datasets import load_dataset, Audio
>>> from transformers import EncodecModel, AutoProcessor
>>> librispeech_dummy = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> model = EncodecModel.from_pretrained("facebook/encodec_24khz")
>>> processor = AutoProcessor.from_pretrained("facebook/encodec_24khz")
>>> librispeech_dummy = librispeech_dummy.cast_column("audio", Audio(sampling_rate=processor.sampling_rate))
>>> audio_sample = librispeech_dummy[-1]["audio"]["array"]
>>> inputs = processor(raw_audio=audio_sample, sampling_rate=processor.sampling_rate, return_tensors="pt")
>>> encoder_outputs = model.encode(inputs["input_values"], inputs["padding_mask"])
>>> audio_values = model.decode(encoder_outputs.audio_codes, encoder_outputs.audio_scales, inputs["padding_mask"])[0]
>>> # or the equivalent with a forward pass
>>> audio_values = model(inputs["input_values"], inputs["padding_mask"]).audio_values

EncodecConfig

class transformers.EncodecConfig

< source >

( target_bandwidths = [1.5, 3.0, 6.0, 12.0, 24.0] sampling_rate = 24000 audio_channels = 1 normalize = False chunk_length_s = None overlap = None hidden_size = 128 num_filters = 32 num_residual_layers = 1 upsampling_ratios = [8, 5, 4, 2] norm_type = 'weight_norm' kernel_size = 7 last_kernel_size = 7 residual_kernel_size = 3 dilation_growth_rate = 2 use_causal_conv = True pad_mode = 'reflect' compress = 2 num_lstm_layers = 2 trim_right_ratio = 1.0 codebook_size = 1024 codebook_dim = None use_conv_shortcut = True **kwargs )

参数

  • target_bandwidths (List[float], optional, defaults to [1.5, 3.0, 6.0, 12.0, 24.0]) — 模型可以对音频进行编码的不同带宽范围。
  • sampling_rate (int, optional, defaults to 24000) — 音频波形应数字化的采样率,以赫兹(Hz)表示。
  • audio_channels (int, optional, defaults to 1) — 音频数据中的通道数。单声道为 1,立体声为 2。
  • normalize (bool, optional, defaults to False) — 传递音频时是否应该进行归一化。
  • chunk_length_s (float, optional) — 如果定义了,音频将被预处理成长度为chunk_length_s的块,然后进行编码。
  • overlap (float, optional) — 定义每个块之间的重叠。用于计算chunk_stride的公式为:int((1.0 - self.overlap) * self.chunk_length)
  • hidden_size (int, optional, defaults to 128) — 中间表示维度。
  • num_filters (int, optional, defaults to 32) — 第一个EncodecConv1d下采样层的卷积核数量。
  • num_residual_layers (int, optional, defaults to 1) — 残差层的数量。
  • upsampling_ratios (Sequence[int] , optional, defaults to [8, 5, 4, 2]) — 核大小和步幅比例。编码器使用下采样比率而不是上采样比率,因此将使用与此处指定的相反顺序的比率,这些比率必须与解码器顺序匹配。
  • norm_type (str, optional, defaults to "weight_norm") — 归一化方法。应为["weight_norm", "time_group_norm"]之一。
  • kernel_size (int, optional, defaults to 7) — 初始卷积的核大小。
  • last_kernel_size (int, 可选, 默认为 7) — 最后一个卷积层的核大小。
  • residual_kernel_size (int, 可选, 默认为 3) — 残差层的核大小。
  • dilation_growth_rate (int, 可选, 默认为 2) — 每层增加膨胀的量。
  • use_causal_conv (bool, 可选, 默认为True) — 是否使用完全因果卷积。
  • pad_mode (str, 可选, 默认为"reflect") — 卷积的填充模式。
  • compress (int, 可选, 默认为 2) — 在残差分支中的降维度(来自 Demucs v3)。
  • num_lstm_layers (int, 可选, 默认为 2) — 编码器末端的 LSTM 层数。
  • trim_right_ratio (float, 可选, 默认为 1.0) — 在use_causal_conv = True设置下对转置卷积右侧进行修剪的比例。如果等于 1.0,则表示所有修剪都在右侧完成。
  • codebook_size (int, 可选, 默认为 1024) — 组成 VQVAE 的离散代码的数量。
  • codebook_dim (int, 可选) — 代码书向量的维度。如果未定义,则使用hidden_size
  • use_conv_shortcut (bool, 可选, 默认为True) — 是否在EncodecResnetBlock块中使用卷积层作为“跳过”连接。如果为 False,将使用一个恒等函数,提供一个通用的残差连接。

这是用于存储 EncodecModel 配置的配置类。它用于根据指定的参数实例化一个 Encodec 模型,定义模型架构。使用默认值实例化配置将产生类似于facebook/encodec_24khz架构的配置。

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

示例:

>>> from transformers import EncodecModel, EncodecConfig
>>> # Initializing a "facebook/encodec_24khz" style configuration
>>> configuration = EncodecConfig()
>>> # Initializing a model (with random weights) from the "facebook/encodec_24khz" style configuration
>>> model = EncodecModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config


Transformers 4.37 中文文档(七十五)(3)https://developer.aliyun.com/article/1564209

相关文章
|
编译器 C语言 C++
【C语言】malloc()函数详解(动态内存开辟函数)
【C语言】malloc()函数详解(动态内存开辟函数)
4699 2
|
存储 缓存 算法
内存分配不再神秘:深入剖析malloc函数实现原理与机制
内存分配不再神秘:深入剖析malloc函数实现原理与机制
|
监控 Shell Linux
【Shell 命令集合 网络通讯 】Linux 共享文件和打印机 Samba 命令 使用指南
【Shell 命令集合 网络通讯 】Linux 共享文件和打印机 Samba 命令 使用指南
643 0
|
8月前
|
人工智能 数据可视化 Oracle
从“死文档”到动态指引:2025年智能订单管理工具如何终结重复问题?
电商订单管理工具历经四代技术演进,从基础记录系统发展到AI驱动的全渠道中枢,显著提升处理效率。现代系统融合云端智能、全渠道聚合、需求预测与自适应物流优化,构建安全可信的执行环境。核心技术涵盖智能订单接入、执行中枢与分析中心,支持多模态识别、分布式库存控制及实时数据分析。工具选型需综合评估六维模型,主流方案如Oracle CX Commerce、Shopify Plus、板栗看板等各具特色,适配不同业务场景。实施应遵循四阶段方法论,解决大促崩溃、订单重复处理等常见问题。未来,数字孪生、生成式AI、量子计算等技术将引领订单系统进入智能自主新阶段。
518 0
|
12月前
|
API 开发者 异构计算
实战 | Intel OpenVINO™ Day0 实现 Qwen3 快速部署
实战 | Intel OpenVINO™ Day0 实现 Qwen3 快速部署
1176 10
实战 | Intel OpenVINO™ Day0 实现 Qwen3 快速部署
|
存储 人工智能 并行计算
KTransformers:告别天价显卡!国产框架让单卡24G显存跑DeepSeek-R1 671B大模型:推理速度飙升28倍
KTransformers 是由清华大学和趋境科技联合推出的开源项目,能够优化大语言模型的推理性能,降低硬件门槛。支持在仅24GB显存的单张显卡上运行671B参数的满血版大模型。
3789 8
KTransformers:告别天价显卡!国产框架让单卡24G显存跑DeepSeek-R1 671B大模型:推理速度飙升28倍
|
数据可视化 数据管理 大数据
【开源项目】轻量元数据管理解决方案——Marquez
【开源项目】轻量元数据管理解决方案——Marquez
1203 57
|
存储 PyTorch 算法框架/工具
Transformers 4.37 中文文档(七十五)(1)
Transformers 4.37 中文文档(七十五)
329 0
|
存储 前端开发 JavaScript
Flux 架构模式
Flux 是一种用于构建用户界面的架构模式,主要用于管理应用程序的状态。它通过单向数据流将应用的不同部分(视图、存储和调度器)解耦,确保状态更新的可预测性和数据的一致性。
|
Python
将NC栅格表示时间维度的数据提取出来的方法
【10月更文挑战第20天】本文介绍了如何使用 Python 和 R 语言以及 ArcGIS 软件提取 netCDF 文件中的时间维度数据。首先,通过安装和导入必要的库(如 Python 的 `netCDF4` 和 `numpy`,R 的 `ncdf4`),打开 netCDF 文件并读取时间变量。接着,详细展示了 Python 和 R 的示例代码,说明了如何读取和处理时间数据。最后,介绍了在 ArcGIS 中添加 netCDF 文件、启用时间属性并提取时间维度数据的方法。
814 1