项目介绍:spacy-transformers
spacy-transformers
是一个可以在 spaCy 中使用预训练的变压器模型的软件包,比如 BERT、XLNet 和 GPT-2。这一项目让用户在 spaCy 中便捷地使用最前沿的变压器架构,方便地对自然语言处理任务应用这些强大的工具。
主要特性
- 支持多种预训练模型:用户可以使用如 BERT、RoBERTa 和 XLNet 等预训练的变压器模型来增强 spaCy 的处理流水线。
- 多任务学习:可以从多个流水线组件向同一个变压器模型进行反向传播,支持高效的多任务学习。
- 高级配置和训练:该项目支持 spaCy v3 强大且可扩展的配置系统进行训练和自定义。
- 自动对齐:自动将变压器输出与 spaCy 的分词结果对齐,确保模型与文本处理的一致性。
- 自定义数据和处理:用户可以轻松自定义在
Doc
对象中保存的变压器数据,并调整长文档的处理方式。 - 模型序列化及包装:提供开箱即用的序列化和模型封装功能,便于保存和分发模型。
安装指南
要安装 spacy-transformers
,可以通过 pip 自动安装所有依赖项,包括 PyTorch 和 spaCy。需要在安装模型之前先安装这个包,确保您使用的是 Python 3.6+、PyTorch v1.5+ 和 spaCy v3.0+。
pip install 'spacy[transformers]'
对于 GPU 安装,需要根据您的 CUDA 版本进行相应的配置。例如,对于 CUDA 9.2,您可以使用 spacy[transformers,cuda92]
,对于 CUDA 10.0,则使用 spacy[transformers,cuda100]
。
如果在安装 PyTorch 时遇到问题,可以参考 官方指南获取适用于您操作系统的安装步骤。
文档资源
项目文档提供了丰富的学习资源和使用指南:
- 嵌入、变压器和迁移学习:介绍如何在 spaCy 中使用变压器。
- 训练流水线和模型:学习如何在自己的数据上训练和更新组件,并整合自定义模型。
- 层和模型架构:使用自定义神经网络增强 spaCy 组件。
- 变压器组件 API 参考:提供变压器管道组件的 API 参考。
- 变压器架构和注册功能:介绍变压器的架构以及注册功能。
应用预训练文本和分词分类模型
需要注意的是,spacy-transformers
中的 transformer
组件不支持特定任务头部如分词或文本分类。然而,可以利用特定任务的变压器模型为 spaCy 组件如 ner
或 textcat
提供特征。如需直接使用来自现有 Hugging Face 文本或分词分类模型的预测,可以通过 spacy-huggingface-pipelines
包装器将这些模型集成到您的 spaCy 流水线中。
问题反馈
如需报告错误或其他问题,可以使用 spaCy 的问题跟踪器,或者在 讨论板 上发起新话题。