Transformers | 在自己的电脑上开启预训练大模型使用之旅!
本文内容主要包括两部分:
-
Hugging Face 社区介绍
-
如何使用 Transformers 库的模型
1. Hugging Face 社区介绍
Hugging Face (https://huggingface.co/) 是一个 Hub 社区,它和 GitHub 相同的是,他们都是基于 Git 进行版本控制的存储库社区,不同的是,Hugging Face 是专门为存储机器学习、深度学习模型而建立的存储库社区,而 GitHub 是一个多元的存储库社区。
Hugging Face 存放了开源生态系统中的数十个模型库,例如 Transformers 库、Diffusers 库、Scikit-learn 库等,这数十个模型库总共包含了超过 98 万个模型。除此之外,Hugging Face 还包含了超过20万个数据集和 30 万个演示模型功能的交互式应用程序。(截止到 2024 年 9 月 23 日)
Transformers 模型库包含了基于PyTorch、TensorFlow 和 JAX 三个机器学习框架建立起来的模型,关于 Transformers 模型库,有三点需要注意:
-
Transformers 模型库是 Hugging Face 最核心、最重要的库,是数十个模型库中模型数量最多的库,包含了超过 39 万个模型。
-
Hugging Face 同时在 Libraries 中列出了 Transformers 库、PyTorch 库、TensorFlow 库和 JAX 库,后三个库可以看作是 Transformers 库的子库。
- Transformers 模型库不仅包含基于 Transformer 深度学习架构建立起的模型,也包含非 Transformer 架构的模型。
需要注意的是,不要混淆了 Transformers 和 Transformer,Transformers 是 Hugging Face 的一个存放了许多模型的库,而 Transformer 是一个基于注意力机制(attention mechanism)的深度学习架构。
2. 使用 Transformers 库的模型
Hugging Face有很多模型库,不同的库使用方式是不同的,我们先来看看如何使用 Transformers 库的模型。
使用 Transformers 库的模型有两种方式,一种是在模型界面,使用 Hugging Face 提供的 Inference API 接口进行初步使用;另外一种是建立 Python 虚拟环境,安装 Transformers 模型库,在本地使用 pipeline() 加载模型,然后对我们的任务进行 Inference (推理)。
2.1 使用 Inference API
2.2 本地化使用
我们以在 windows 环境中使用 Transformers 库为例介绍使用流程:
-
在桌面创建项目目录 Transformers
-
进入 Transformers 目录,ctrl + shift + 右键,在此目录下进入 Windows power shell 窗口。
-
创建虚拟环境:
python -m venv Transformers_env
-
激活虚拟环境:
Transformers_env\Scripts\activate
-
安装 TensorFlow 或 PyTorch:
pip install tensorflow 或 torch
-
安装 Transformers 库:
pip install transformers
-
在 Transformers 目录下建立一个 Python 脚本,开始使用模型。
from transformers import pipeline
# 使用 pipeline() 加载模型
classifier = pipeline('sentiment-analysis')
sentence = "Friday is the last day of weekdays"
# 使用加载的模型进行 Inference (推理)
print(classifier(sentence))
输出结果:
[{'label': 'POSITIVE', 'score': 0.8798152208328247}]
以上,使用 pipeline() 加载了一个预训练的情绪分析模型 sentiment-analysis,该模型可以分析一句话是积极的或消极的,并给出置信度。
在上面的例子中,我们给出的句子是 “Friday is the last day of weekdays”,模型推理认为这个句子是 POSITIVE,置信度为 0.879。
加载的预训练模型默认的本地缓存地址为:C:\Users\username\.cache\huggingface\hub
有的预训练模型很大,实时加载需要花费很多时间和计算机资源,我们可以先将模型下载下来,使用 classifier = pipeline('sentiment-analysis', model='path/to/your/model/')
加载模型。
接下来,将继续介绍 Transformers 库的使用:
-
Transformers | 详解使用 pipeline() 进行推理;
-
Transformers | 详解预处理数据;
-
Transformers | 详解 Fine-tune 预训练模型;
-
…
本文由mdnice多平台发布