首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在spaCy 3.0中使用拥抱面孔转换器

如何在spaCy 3.0中使用拥抱面孔转换器
EN

Stack Overflow用户
提问于 2021-09-17 12:34:48
回答 2查看 121关注 0票数 1

假设我想把distilbert https://huggingface.co/distilbert-base-uncased从拥抱脸引入到spaCy 3.0管道中。我认为这是可能的,我找到了一些关于如何将此模型转换为spaCy 2.0的代码,但它在v3.0中不起作用。我真正想要的是使用下面这样的方式加载这个模型

代码语言:javascript
复制
nlp = spacy.load('path_to_distilbert')

有没有可能,你能提供具体的步骤吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-23 11:31:34

为此,您可以使用spacy-transformers。在spaCy v3中,您可以使用config file训练自定义管道,您可以使用components.transformer.model.name中喜欢的任何HF模型来定义transformer组件

代码语言:javascript
复制
[components.transformer]
factory = "transformer"
max_batch_items = 4096

[components.transformer.model]
@architectures = "spacy-transformers.TransformerModel.v1"
name = "bert-base-cased"
tokenizer_config = {"use_fast": true}

[components.transformer.model.get_spans]
@span_getters = "spacy-transformers.doc_spans.v1"

[components.transformer.set_extra_annotations]
@annotation_setters = "spacy-transformers.null_annotation_setter.v1"

然后,您可以训练任何其他组件(NER、textcat等)在这个预先训练的变压器模型之上,变压器权重也将进一步微调。

你可以在这里的文档中阅读更多信息:https://spacy.io/usage/embeddings-transformers#transformers-training

票数 2
EN

Stack Overflow用户

发布于 2021-09-22 04:19:48

似乎唯一可以开箱即用的转换器是他们的roberta-base模型。在docs中,它提到能够连接数以千计的Huggingface模型,但没有提到如何将它们添加到SpaCy管道中。

同时,如果您想使用roberta模型,您可以执行以下操作。

代码语言:javascript
复制
# install using spacy transformers
pip install spacy[transformers]
python -m spacy download en_core_web_trf
代码语言:javascript
复制
import spacy

nlp = spacy.load("en_core_web_trf")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69223520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档