问题标签 [spacy-transformers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
239 浏览

spacy - Spacy [E047] 无法为未注册的扩展属性“trf_data”赋值

我正在尝试使用 Spacy 的 en_core_web_trf 进行句子分离。出于某种原因,我收到“[E047] 无法为未注册的扩展属性 'trf_data' 赋值。你忘记调用该set_extension方法了吗?” 当我将模型切换到 en_core_web_lg 时,它起作用了。知道如何使用 trf 模型吗?谢谢

0 投票
1 回答
455 浏览

importerror - 在 spaCy 3.0 中加载管道时出错

更新到 spaCy 3.0.6 后,我无法加载任何一个经过训练的管道,尽管两者似乎都已正确安装:

使用 spacy.load() 并将管道作为模块导入时会发生这种情况(以下所有行的错误都是相同的):

我得到的错误如下:

从当前稳定版本 1.8.1 恢复到 torch 1.4.0 可以解决问题,但我不想这样做。

有替代解决方案吗?

0 投票
0 回答
1087 浏览

python - 如何在 spaCy v3 中正确使用变压器模型进行自定义 NER?

我正在尝试使用 spaCy 版本 3 为自定义标签训练命名实体识别 (NER) 模型。我浏览了他们网站上的所有文档,但我不明白创建管道模型的正确方法是什么。显然,如果我尝试使用en_core_web_trf,我无法添加自己的标签,因为最终的输出分数都是零。但它适用于en_core_web_sm.

但是,如果我尝试通过创建一个空白的英语模型然后手动添加变压器模型en_core_web_trf和 ner 模型来做一些临时方法en_core_web_sm,它可以工作。

我的问题是 - 除了这个临时方法之外,还有更好的方法来初始化我的模型和管道方法吗?我不关心 LOCATION 等预训练实体。我只想根据我在数据集中定义的自定义实体来训练我的模型(使用基于转换器的方法)。

编辑:我使用的确切训练方法已在python 脚本中fit()定义类的函数中进行了描述NerModel

脚本中的(第load_spacy()16 行)使用小模型,但我正在试验变压器模型并使用load_spacy()我在本问题开头定义的定义。

PS:我一直在 Google Colab(又名笔记本)上进行实验,以便将 GPU 用于 Transformer,但源代码和方法几乎相同。

0 投票
0 回答
84 浏览

nlp - 将 IOB 转换为 spacy JSON 需要很长时间(IOB 有 100 万行)

我只需要很少的指导,即有 3 个 IOB 文件开发、测试和训练。 Dev有100万行。测试有 400 万行。火车有3000万。 我目前只是在转换开发文件,因为我不确定其中是否有任何错误。(IOB 格式是正确的)到目前为止已经3 个多小时了,可以知道这个文件是否可以工作,或者我应该使用其他东西。

我在google colab中使用 spacy微调 bert 模型,选择的运行时硬件是GPU和 ,作为参考,我遵循了这篇文章:

https://towardsdatascience.com/how-to-fine-tune-bert-transformer-with-spacy-3-6a90bfe57647

我已按照文章的确切步骤进行操作。

我不熟悉 NLP 领域,对流水线也没有深入的了解。有人可以帮忙解决这个问题,这真的很重要。

下面我将附上有关时间和执行转换语句的图像。 显示经过时间和执行命令的图像

0 投票
0 回答
29 浏览

dataset - 如何在 colab 中加载巨大的数据集以转换为 spacy JSON?

我有一个包含 6500 万个 IOB 格式条目的数据集。因此,在使用以下命令将其转换为 spacy 二进制格式时:

!python -m spacy convert /content/train.tsv /content/ -s -c ner

colab 将显示: tcmalloc: large alloc ..... ^C

你能给我一些规避​​这个问题的方法吗?我没有太多的 colab 经验或对数据科学概念的深入了解。任何参考也可以。

是否可以获取每个文件,然后制作其二进制文件并合并这样的文件?

谢谢!

0 投票
2 回答
427 浏览

machine-learning - 使用 spacy v3 我应该在配置文件中更改哪个参数来解决 CUDA 内存不足问题?batch_size vs max_length vs batcher.size

使用 spacy v3,我尝试使用 camemBert 训练分类器并遇到CUDA out of memory问题。为了解决这个问题,我读到我应该减少批量大小,但我很困惑我应该改变哪个参数:

  • [nlp] 批处理大小
  • [components.transformer] max_batch_items
  • [corpora.train 或 dev] max_length
  • [trainning.batcher] 大小
  • [trainning.batcher] 缓冲区

我试图了解每个参数之间的区别:

  1. [nlp] 批处理大小

管道和评估的默认批量大小。默认为 1000。

培训/评估过程中是否使用了这些功能?
在快速启动小部件 ( https://spacy.io/usage/training#quickstart ) 中,为什么值根据硬件不同?CPU 为 1000,GPU 为 128。
在训练过程中,如果这个值低,评估会变慢吗?

  1. [components.transformer] max_batch_items

填充批次的最大大小。默认为 4096。

根据警告消息:Token indices sequence length is longer than the specified maximum sequence length for this model (556 > 512). Running this sequence through the model will result in indexing errors此处解释(https://github.com/explosion/spaCy/issues/6939),卡门培尔模型的指定最大序列长度为512。

参数 max_batch_item 是否重载到该值?我应该将值更改为 512 吗?

  1. [corpora.train 或 dev] max_length

在我的理解中,这个值应该等于或小于最大序列长度。在快速入门小部件中,此值设置为 500 用于训练集和 0 用于开发集。如果设置为0,是否会过载到transformer模型的最大序列长度?

  1. spacy.batch_by_padded.v1 的 [trainning.batcher] 大小

将序列批处理到的最大填充大小。也可以是引用时间表的块,例如复利。

如果我不使用复利,这个参数与 max_lentgh 有什么不同?

这是我的配置文件的一些部分

0 投票
1 回答
153 浏览

pytorch - 在使用 pytorch 转换时得到这个--->TypeError: integer argument expected, got float

我克隆了迁移学习库repo 并致力于最大分类器差异。我正在尝试更改增强但收到以下错误

之前的代码是

我刚刚添加 T.RandomPerspective(distortion_scale = 0.8, p=0.5, fill=0.6)了 val_transform。在此之前,我还为 train_transform 添加了一些其他转换,但仍然遇到相同的错误。可能是什么问题呢?

0 投票
2 回答
436 浏览

python-3.x - 无法在 Google TPU 中导入 python 包 jax

我正在使用 linux 控制台,输入 python 会将我带入 python 控制台。当我在 TPU 机器中使用以下命令时

然后它会生成以下 mss 并退出 python 提示符。

这个问题导致我的代码出现问题,所以我想弄清楚这个问题是什么以及如何解决这个问题?

0 投票
0 回答
372 浏览

python - 有没有办法从磁盘使用 spacy-transformers(离线)

我想在互联网访问受限的企业环境中使用 spacy-transformers,所以我必须手动从 huggingfaces 中心下载变压器模型,并让它们在 spacy 中工作。

在此示例中,我尝试使用 en_core_web_trf 预训练模型中的转换器管道组件:

我收到以下错误消息:

如错误消息所述,在缓存路径中找不到请求的文件。有人可以向我解释我必须将哪些文件放在 chache 路径中吗?或者另一种方式来预下载模型并在 spacy 中使用它们。

版本:

空间 3.0.5

spacy-transformers 1.0.2

变压器 4.5.1

0 投票
0 回答
144 浏览

python - 射线错误:缺少 1 个必需的位置参数:“循环”

我正在执行 https://github.com/kingoflolz/mesh-transformer-jax 中给出的 train.py 使用 Jax、Ray、TPU 来训练这个 mdoel。但是我它在两者之间停止并产生以下错误: