1. 数据预处理
在您可以在数据集上训练模型之前,数据需要被预处理为期望的模型输入格式。无论您的数据是文本、图像还是音频,它们都需要被转换并组合成批量的张量。Transformers 提供了一组预处理类来帮助准备数据以供模型使用。在本教程中,您将了解以下内容:
1)对于文本,使用分词器(Tokenizer)将文本转换为一系列标记(tokens),并创建tokens的数字表示,将它们组合成张量。
2)对于语音和音频,使用特征提取器(Feature extractor)从音频波形中提取顺序特征并将其转换为张量。
3)图像输入使用图像处理器(ImageProcessor)将图像转换为张量。
4)多模态输入,使用处理器(Processor)结合了Tokenizer和ImageProcessor或Processor。
AutoProcessor 始终有效的自动选择适用于您使用的模型的正确class,无论您使用的是Tokenizer、ImageProcessor、Feature extractor还是Processor。
2. 微调预训练模型
使用预训练模型有许多显著的好处。它降低了计算成本,减少了碳排放,同时允许您使用最先进的模型,而无需从头开始训练一个。🤗 Transformers 提供了涉及各种任务的成千上万的预训练模型。当您使用预训练模型时,您需要在与任务相关的数据集上训练该模型。这种操作被称为微调,是一种非常强大的训练技术。在本教程中,您将使用您选择的深度学习框架来微调一个预训练模型:
1)使用 🤗 Transformers 的 Trainer 来微调预训练模型。
2)在 TensorFlow 中使用 Keras 来微调预训练模型。
3)在原生 PyTorch 中微调预训练模型
3. AutoModel.from_pretrained实例化后的模型输出数据格式
BaseModelOutputWithPastAndCrossAttentions 是 Hugging Face Transformers 库中定义的一个类,用于表示模型的输出。这个类通常用作预训练模型的前向传播函数的输出。
这个类包含了模型的各种输出,其中包括前向传播的结果、过去的注意力权重以及交叉注意力权重。具体来说,它可能包含以下几个属性:
last_hidden_state:最后一层的隐藏状态,通常用作下游任务的输入或者用于特征提取。
past_key_values:过去的注意力键值对,用于实现自回归生成任务时的缓存。
cross_attentions:交叉注意力权重,用于实现多头注意力机制中的跨层注意力。
这个类的实例通常作为模型前向传播函数的返回值,并且可以用于进一步的后处理、解码或者获取感兴趣的信息。要使用这个类,您可以像使用其他 Python 类一样操作它。例如,您可以访问它的属性或者调用它的方法来获取模型的输出。
4. CLS token
CLS(Classification)token 是 Transformer 模型中用于分类任务的特殊 token。它是输入序列的第一个 token,并被设计用于表示整个序列的语义信息。在预训练过程中,模型学习到了将整个序列的语义信息编码为 CLS token 的向量表示。
在BERT模型中,CLS token的向量表示经过最后一层的全连接层和softmax激活函数进行分类预测。在训练过程中,模型的目标是使用 CLS token 的向量表示来对输入序列进行正确的分类。在预测阶段,我们可以使用 CLS token 的向量表示来获取整个序列的语义信息,并基于此进行分类或其他下游任务的预测。
总之,CLS token 在 Transformer 模型中是一个重要的特殊 token,用于表示整个序列的语义信息,并在分类任务中发挥关键作用。