跳到主要内容

在 Hugging Face 使用 spaCy

spaCy 是一个流行的高级自然语言处理库,在工业界广泛使用。spaCy 使使用和训练管道变得容易,用于命名实体识别、文本分类、词性标注等任务,并让你能够构建强大的应用程序来处理和分析大量文本。

在 Hub 上探索 spaCy 模型

来自 spaCy 3.3 的官方模型位于 spaCy 组织页面。社区中的任何人都可以分享他们的 spaCy 模型,你可以通过在模型页面左侧筛选来找到它们。

Hub 上的所有模型都配备了有用的功能:

  1. 自动生成的模型卡片,包含标签方案、指标、组件等。
  2. 右上角的评估部分,你可以查看指标。
  3. 有助于可发现性的元数据标签,包含许可证和语言等信息。
  4. 一个交互式小部件,你可以直接在浏览器中使用模型。
  5. 允许进行推理请求的推理 API。
在 spaCy 中使用模型在 spaCy 中使用模型

使用现有模型

Hub 上的所有 spaCy 模型都可以使用 pip install 直接安装。

pip install "en_core_web_sm @ https://huggingface.co/spacy/en_core_web_sm/resolve/main/en_core_web_sm-any-py3-none-any.whl"

要找到相关链接,你可以访问包含 spaCy 模型的仓库。当你打开仓库时,可以点击 Use in spaCy,你将获得一个可用的代码片段来安装和加载模型!

在 spaCy 中使用模型在 spaCy 中使用模型
在 spaCy 中使用模型在 spaCy 中使用模型

安装后,你可以像加载任何 spaCy 管道一样加载模型。

# Using spacy.load().
import spacy
nlp = spacy.load("en_core_web_sm")

# Importing as module.
import en_core_web_sm
nlp = en_core_web_sm.load()

分享你的模型

使用 spaCy CLI(推荐)

spacy-huggingface-hub 库扩展了 spaCy 原生 CLI,使人们可以轻松地将打包的模型推送到 Hub。

你可以从 pip 安装 spacy-huggingface-hub:

pip install spacy-huggingface-hub

然后你可以检查命令是否已成功注册

python -m spacy huggingface-hub --help

要使用 CLI 推送,你可以使用如下所示的 huggingface-hub push 命令。

python -m spacy huggingface-hub push [whl_path] [--org] [--msg] [--local-repo] [--verbose]
参数类型描述
whl_pathstr / Path使用 spacy package 打包的 .whl 文件的路径。
--org, -ostr管道应上传到的组织名称(可选)。
--msg, -mstr用于更新的提交消息。默认为 "Update spaCy pipeline"
--local-repo, -lstr / Path模型仓库的本地路径(如果不存在将创建)。默认为当前工作目录中的 hub
--verbose, -Vbool输出额外的调试信息,例如完整生成的 hub 元数据。

然后你可以上传使用 spacy package 打包的任何管道。确保设置 --build wheel 以输出二进制 .whl 文件。上传器将从管道包中读取所有元数据,包括自动生成的漂亮 README.mdmeta.json 中可用的模型详细信息。

hf auth login
python -m spacy package ./en_ner_fashion ./output --build wheel
cd ./output/en_ner_fashion-0.0.0/dist
python -m spacy huggingface-hub push en_ner_fashion-0.0.0-py3-none-any.whl

只需一分钟,你就可以在 Hub 上获得打包的模型,直接在浏览器中试用它,并与社区的其他成员分享。所有必需的元数据都会为你上传,你甚至可以获得一个很酷的模型卡片。

该命令将输出两件事:

从 Python 脚本

你可以从 Python 使用 push 函数。它返回一个字典,包含已发布模型和 wheel 文件的 "url""whl_url",你稍后可以使用 pip install 安装。

from spacy_huggingface_hub import push

result = push("./en_ner_fashion-0.0.0-py3-none-any.whl")
print(result["url"])

其他资源