speechbrain.lobes.models.huggingface_transformers.huggingface 模块
这个模块是用于huggingface transformers模型的接口 它允许通过AutoConfig和AutoModel加载配置和模型。
需要安装来自HuggingFace的Transformer: https://huggingface.co/transformers/installation.html
- Authors
Titouan Parcollet 2021, 2022, 2023
Mirco Ravanelli 2021
Boumadane Abdelmoumene 2021
周菊杰 2021
阿尔乔姆·普洛日尼科夫 2021, 2022
阿卜杜勒·赫巴 2021
阿库·柔赫 2022
阿尔谢尼·戈林 2022
阿里·萨法亚 2022
Benoit Wang 2022
阿德尔·穆门 2022, 2023
安德烈亚斯·诺茨 2022, 2023
卢卡·德拉·利贝拉 2022
海托尔·吉马良斯 2022
Ha Nguyen 2023
摘要
类:
该模块提供了一个接口,用于在SpeechBrain中集成任何HuggingFace的transformer模型。 |
函数:
此方法生成填充掩码。 |
参考
- class speechbrain.lobes.models.huggingface_transformers.huggingface.HFTransformersInterface(source, save_path='', for_pretraining=False, with_lm_head=False, with_casual_lm=False, seq2seqlm=False, quantization_config=None, freeze=False, cache_dir='pretrained_models', device=None, **kwargs)[source]
基础:
Module该模块提供了一个接口,用于在SpeechBrain中集成任何HuggingFace变压器模型。
我们使用AutoClasses从中心加载任何模型及其必要的组件。 例如,我们构建了Wav2Vec2类,它继承了HFTransformersInterface,用于处理HuggingFace的wav2vec模型。 虽然Wav2Vec2可以享受一些已经构建的功能,如模型加载、预训练权重加载、所有权重冻结、 feature_extractor加载等。 用户需要重写关键的forward()函数以适应他们的特定需求。 根据所讨论的HuggingFace transformer模型,还可以通过重写_modify_state_dict()方法来修改state_dict, 或通过修改override_config()方法来调整他们的配置等。 参见: https://huggingface.co/docs/transformers/model_doc/auto https://huggingface.co/docs/transformers/autoclass_tutorial
- Parameters:
source (str) – HuggingFace 中心名称:例如 “facebook/wav2vec2-large-lv60”
save_path (str) – 下载模型的保存目录。
for_pretraining (bool (默认值: False)) – 如果为True,则构建用于预训练的模型
with_lm_head (bool (默认值: False)) – 如果为True,则使用lm_head构建模型
with_casual_lm (bool (默认值: False)) – 如果为True,构建因果语言模型
seq2seqlm (bool (默认值: False)) – 如果为True,则构建一个带有lm_head的序列到序列模型
quantization_config (dict (默认值: None)) – 量化配置,对于处理LLM非常有用
freeze (bool (默认值: True)) – 如果为True,模型将被冻结。如果为False,模型将与管道的其余部分一起训练。
cache_dir (str 或 Path (默认值: None)) – HuggingFace缓存的位置,用于存储预训练模型,并创建符号链接。
device (any, optional) – 将模型迁移到的设备。
**kwargs – 传递给
from_pretrained函数的额外关键字参数。
Example
>>> model_hub = "facebook/wav2vec2-base-960h" >>> save_path = "tmp" >>> model = HFTransformersInterface(model_hub, save_path=save_path)
- freeze_model(model)[source]
冻结模型的参数。 这应该根据用户的需求进行重写,例如,适配器的使用。
- Parameters:
model (来自 AutoModel.from_config) – 有效的 HuggingFace transformers 模型对象。
- override_config(config)[source]
用户应根据自己的任务修改此函数。
- Parameters:
config (HuggingFace 配置对象) – 原始配置。
- Returns:
config – 被覆盖的配置。
- Return type:
HuggingFace 配置对象
- speechbrain.lobes.models.huggingface_transformers.huggingface.make_padding_masks(src, wav_len=None, pad_idx=0)[source]
此方法生成填充掩码。
- Parameters:
src (tensor) – 编码器的输入序列(必需)。
wav_len (tensor) – 以SpeechBrain格式给出的wav的相对长度。
pad_idx (int) – <pad> 标记的索引(默认=0)。
- Returns:
src_key_padding_mask – 填充掩码。
- Return type:
张量