将新颖的机器学习架构应用于新任务可能是一项复杂的任务,通常涉及以下步骤:
1.将模型架构付诸代码实现(通常基于PyTorch或TensorFlow)。
2.从服务器加载预训练权重(如果有的话)。
3.预处理输入并传给模型,然后应用一些针对具体任务的后处理。
4.实现数据加载器并定义损失函数和优化器来训练模型。
其中每个步骤都需要自定义每个模型和任务的逻辑。传统上(但并非总是如此!),当研究小组发表一篇新文章时,他们也会发布代码以及模型权重。但是这类代码很少是规范化的,并且通常需要数天的改造才能适用于新的用例。
这就是Hugging Face Transformers库拯救NLP从业者的地方!它为各种Transformer模型提供了规范化接口,从而令这些模型可以适用于新用例的代码和工具。该库目前支持三种主要的深度学习框架(PyTorch、TensorFlow和JAX),并能够在它们之间轻松切换。此外,它还提供针对任务的头,因此你可以轻松地微调下游任务(如文本分类、命名实体识别和问答)的Transformer模型。这点令训练和测试模型所需的时间从一周减少到一个下午!
你将在1.5节亲眼见证这一点,那里我们将展示通过Hugging Face Transformers库只需几行代码就可以实现一些最常见的NLP应用程序。