Hugging Face 是机器学习领域中最火热的开源 AI 社区, 旗下 Transformers 仓库的 Star 数达 12.4 万。
为 Jax、PyTorch 和 TensorFlow 打造的先进的自然语言处理
🤗 Transformers 提供了数以千计的预训练模型,支持 100 多种语言的文本分类、信息抽取、问答、摘要、翻译、文本生成。它的宗旨是让最先进的 NLP 技术人人易用。
🤗 Transformers 提供了便于快速下载和使用的API,让你可以把预训练模型用在给定文本、在你的数据集上微调然后通过 model hub 与社区共享。同时,每个定义的 Python 模块均完全独立,方便修改和快速研究实验。
🤗 Transformers 支持三个最热门的深度学习库: Jax、PyTorch 以及 TensorFlow — 并与之无缝整合。 你可以直接使用一个框架训练你的模型然后用另一个加载和推理。
你可以直接在模型页面上测试大多数 model hub 上的模型。 Hugging Face 也提供了私有模型托管、模型版本管理以及推理API。
这里是一些例子:
Write With Transformer ,由 Hugging Face 团队打造,是一个文本生成的官方 demo。
Hugging Face 为快速使用模型提供了 pipeline
(流水线)API。 流水线聚合了预训练模型和对应的文本预处理。下面是一个快速使用流水线去判断正负面情绪的例子:
>>> from transformers import pipeline
# 使用情绪分析流水线
>>> classifier = pipeline('sentiment-analysis')
>>> classifier('We are very happy to introduce pipeline to the transformers repository.')
[{'label': 'POSITIVE', 'score': 0.9996980428695679}]
第二行代码下载并缓存了流水线使用的预训练模型,而第三行代码则在给定的文本上进行了评估。这里的答案“正面” (positive) 具有 99 的置信度。
许多的 NLP 任务都有开箱即用的预训练流水线。比如说,Hugging Face 可以轻松的从给定文本中抽取问题答案:
>>> from transformers import pipeline
# 使用问答流水线
>>> question_answerer = pipeline('question-answering')
>>> question_answerer({
... 'question': 'What is the name of the repository ?',
... 'context': 'Pipeline has been included in the huggingface/transformers repository'
... })
{'score': 0.30970096588134766, 'start': 34, 'end': 58, 'answer': 'huggingface/transformers'}
除了给出答案,预训练模型还给出了对应的置信度分数、答案在词符化 (tokenized) 后的文本中开始和结束的位置。 你可以从这个教程了解更多流水线API支持的任务。
要在你的任务上下载和使用任意预训练模型也很简单,只需三行代码。这里是 PyTorch 版的示例:
>>> from transformers import AutoTokenizer, AutoModel
>>> tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-uncased")
>>> model = AutoModel.from_pretrained("google-bert/bert-base-uncased")
>>> inputs = tokenizer("Hello world!", return_tensors="pt")
>>> outputs = model(**inputs)
这里是等效的 TensorFlow 代码:
>>> from transformers import AutoTokenizer, TFAutoModel
>>> tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-uncased")
>>> model = TFAutoModel.from_pretrained("google-bert/bert-base-uncased")
>>> inputs = tokenizer("Hello world!", return_tensors="tf")
>>> outputs = model(**inputs)
词符化器 (tokenizer) 为所有的预训练模型提供了预处理,并可以直接对单个字符串进行调用(比如上面的例子)或对列表 (list) 调用。 它会输出一个你可以在下游代码里使用或直接通过 **
解包表达式传给模型的词典 (dict)。
模型本身是一个常规的 Pytorch nn.Module
或 TensorFlow tf.keras.Model
(取决于你的后端), 可以常规方式使用。这个教程解释了如何将这样的模型整合到经典的 PyTorch 或 TensorFlow 训练循环中,或是如何使用 Hugging Face 的 Trainer
训练器)API 来在一个新的数据集上快速微调。
便于使用的先进模型:
更低计算开销,更少的碳排放:
对于模型生命周期的每一个部分都面面俱到:
为你的需求轻松定制专属模型和用例:
Trainer
API 并非兼容任何模型,只为本库之模型优化。若是在寻找适用于通用机器学习的训练循环实现,请另觅他库。这个仓库已在 Python 3.8+、Flax 0.4.1+、PyTorch 1.11+ 和 TensorFlow 2.6+ 下经过测试。
你可以在虚拟环境中安装 🤗 Transformers。如果你还不熟悉 Python 的虚拟环境, 请阅此用户说明。
首先,用你打算使用的版本的 Python 创建一个虚拟环境并激活。
然后,你需要安装 Flax、PyTorch 或 TensorFlow 其中之一。关于在你使用的平台上安装这些框架,请参阅 TensorFlow 安装页, PyTorch 安装页 或 Flax 安装页。
当这些后端之一安装成功后, 🤗 Transformers 可依此安装:
如果你想要试试用例或者想在正式发布前使用最新的开发中代码, 你得从源代码安装。
🤗 Transformers 可以通过 conda 依此安装:
shell script conda install conda-forge::transformers
笔记
从 huggingface
渠道安装 transformers
已被废弃。
要通过 conda 安装 Flax、PyTorch 或 TensorFlow 其中之一,请参阅它们各自安装页的说明。
🤗 Transformers 支持的所有的模型检查点由用户和 Hugging Face 组织上传, 均与 huggingface.co model hub 无缝整合。
目前的模型数量: