是NLP, CV, audio,speech processing 任务的库。 它包含了超过10000个预训练的模型,涵盖了各种NLP任务,如文本分类,问答,文本生成,情感分析等。Transformers库支持多种深度学习框架,如PyTorch,TensorFlow,JAX和Flax,并且可以轻松地在不同的设备上运行,如CPU,GPU和TPU。
主要包含三部分:Config、Tokenizer、Model。
用于配置模型的名称、最终输出的样式、隐藏层宽度和深度、激活函数的类别等。
AI模型(指代基于各种算法模型,比如预训练模型、深度学习算法、强化学习算法等的实现)的抽象概念。
除了初始的Bert
、GPT
等基本模型,针对下游任务,还定义了诸如BertForQuestionAnswering
等下游任务模型。
将纯文本转换为编码的过程(注意:该过程并不会生成词向量)。由于模型(Model)并不能识别(或很好的识别)文本数据,因此对于输入的文本需要做一层编码。在这个过程中,首先会将输入文本分词而后添加某些特殊标记([MASK]标记、[SEP]、[CLS]标记),比如断句等,最后就是转换为数字类型的ID(也可以理解为是字典索引)。
在Transformers库中最基本的对象就是pipeline()函数。该流水线操作将模型处理的三个步骤组合在一起:预处理、通过模型传递输入以及后处理。
调用pipeline函数指定预训练模型,有三个主要步骤:
现有可用的pipeline()函数功能如下:
高效的数据集加载、预处理库
官网:https://github.com/huggingface/datasets
官网:https://github.com/huggingface/tokenizers
官网:https://github.com/huggingface/optimum
模型参数高效微调,目前支持Prefix Tuning、Prompt Tuning、PTuningV1、PTuningV2、Adapter、LoRA、AdaLoRA,LoRA使用重参数化的思想,目前支持Linear线性层、Conv1D(实际上也是一个线性层),正在开发的版本即将支持3x3和1x1的Conv2d卷积
官网:GitHub - huggingface/peft: PEFT: State-of-the-art Parameter-Efficient Fine-Tuning.
大规模分部署训练,支持DP、DDP、Deep Speed、Zero、Fully Sharded Data Parallel、Gradient Checkpoint、梯度累积等