在这篇博客中,我们将深入探索 🤗 Transformers —— 一个为 PyTorch、TensorFlow 和 JAX 设计的先进机器学习库。🤗 Transformers 提供了易于使用的 API 和工具,使得下载和训练前沿的预训练模型变得轻而易举。利用预训练模型不仅能减少计算成本和碳足迹,还能节省从头训练模型所需的时间和资源。这些模型支持多种不同模态的常见任务,如:
- 自然语言处理(NLP):文本分类、命名实体识别、问答、语言建模、摘要生成、翻译、多项选择和文本生成等。
- 计算机视觉(CV):图像分类、对象检测和分割等。
- 音频处理:自动语音识别和音频分类。
- 多模态处理:表格问答、光学字符识别、从扫描文档中提取信息、视频分类和视觉问答等。
🤗 Transformers 支持 PyTorch、TensorFlow 和 JAX 之间的框架互操作性。这提供了在模型生命周期的不同阶段使用不同框架的灵活性;你可以在一个框架中用三行代码训练模型,并在另一个框架中加载它进行推理。模型还可以导出到 ONNX 和 TorchScript 等格式,以便在生产环境中部署。
🤗 Transformers 文档一览
文档分为五个部分:
- 入门指南:提供库的快速导览和安装指南,助你快速上手。
- 教程:如果你是初学者,这是一个很好的起点。本节将帮助你获得使用库所需的基本技能。
- 操作指南:展示如何实现特定目标,如微调预训练模型进行语言建模,或如何编写和分享自定义模型。
- 概念指南:更多地讨论和解释背后的概念和思想,包括模型、任务和 🤗 Transformers 的设计哲学。
- API文档:描述所有类和函数,包括主要类(如配置、模型、分词器和管道)和与库中实现的每个模型相关的类和函数。
支持的模型和框架
下表展示了库对每种模型的当前支持情况,包括它们是否有 Python 分词器(称为“慢”分词器)、由 🤗 Tokenizers 库支持的“快”分词器、以及它们在 Jax(通过 Flax)、PyTorch 和/或 TensorFlow 中的支持情况。