3.4 Transformers 代码实操

2024年7月12日修改
看到这里,我们已经知道了transformer的结构,理论上我们已经可以自己搭建一个transformer 模型,并自己动手写一个训练脚本,拉起训练任务,最终获得我们想要的模型。但是世界上其实有很多nlper,每天都在写模型训练、推理、评估脚本,俗称“造轮子”,因此就有人想,能不能造一个通用的轮子呢?答案是有的,它就是transformers库,有了这个“轮子”,我们编写代码的效率也会大幅提高,这也是为什么在这一章我们要介绍transformers库。
1.
什么是 Transformers 库
要了解transformer库,首先我们要介绍 Huggingface(抱抱脸)社区 ,在这个网站上,用户可以下载预训练模型、数据集和代码,同时也可以上传自己的预训练模型、数据和代码,你可以将它理解为深度学习的github。同时,Huggingface 给用户提供了调用预训练模型的一系列的api,其中transformers库就是一个很好用的库,它不仅包含了许多预训练的模型,比如BERT、GPT-2、GPT-3、RoBERTa等,而且可以将这些模型便捷地用于各种NLP任务,如文本分类、情感分析、翻译、问答系统等。
2.
如何使用 Transformers 库
安装 transformers 库
让我们来看看如何安装transformers库,假设你已经有一个python环境,直接pip install 即可
代码块
pip install transformers
当然你也可以通过github下载,这种方式方便你查看和修改 transformers库的源代码
代码块
git clone git@github.com:huggingface/transformers.git
cd transformers
pip install -e.
以一个简单的例子快速开始
我们先来看一个官方的 Demo, 该 Demo 可以实现文本的情感分析任务。
使用pipeline完成文本句子的情感分析
我们直接使用transformers库的pipeline类,该类创建的实例可以用于我们这个任务上
首先我们导入 transformers库 和pipeline类,在实例化的时候输入参数"sentiment-analysis"即可
代码块
from transformers import pipeline
classifier = pipeline("sentiment-analysis")
pipeline() 会下载并缓存一个用于情感分析的默认的预训练模型和分词器(tokenizer),由于我们没有指定模型,所以是transformers库默认的模型和分词器
代码块
classifier("We are very happy to show you the 🤗 Transformers library.")