问题标签 [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.
spacy - Spacy [E047] 无法为未注册的扩展属性“trf_data”赋值
我正在尝试使用 Spacy 的 en_core_web_trf 进行句子分离。出于某种原因,我收到“[E047] 无法为未注册的扩展属性 'trf_data' 赋值。你忘记调用该set_extension
方法了吗?” 当我将模型切换到 en_core_web_lg 时,它起作用了。知道如何使用 trf 模型吗?谢谢
importerror - 在 spaCy 3.0 中加载管道时出错
更新到 spaCy 3.0.6 后,我无法加载任何一个经过训练的管道,尽管两者似乎都已正确安装:
使用 spacy.load() 并将管道作为模块导入时会发生这种情况(以下所有行的错误都是相同的):
我得到的错误如下:
从当前稳定版本 1.8.1 恢复到 torch 1.4.0 可以解决问题,但我不想这样做。
有替代解决方案吗?
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,但源代码和方法几乎相同。
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 领域,对流水线也没有深入的了解。有人可以帮忙解决这个问题,这真的很重要。
下面我将附上有关时间和执行转换语句的图像。 显示经过时间和执行命令的图像
dataset - 如何在 colab 中加载巨大的数据集以转换为 spacy JSON?
我有一个包含 6500 万个 IOB 格式条目的数据集。因此,在使用以下命令将其转换为 spacy 二进制格式时:
!python -m spacy convert /content/train.tsv /content/ -s -c ner
colab 将显示: tcmalloc: large alloc ..... ^C
你能给我一些规避这个问题的方法吗?我没有太多的 colab 经验或对数据科学概念的深入了解。任何参考也可以。
是否可以获取每个文件,然后制作其二进制文件并合并这样的文件?
谢谢!
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] 缓冲区
我试图了解每个参数之间的区别:
- [nlp] 批处理大小
管道和评估的默认批量大小。默认为 1000。
培训/评估过程中是否使用了这些功能?
在快速启动小部件 ( https://spacy.io/usage/training#quickstart ) 中,为什么值根据硬件不同?CPU 为 1000,GPU 为 128。
在训练过程中,如果这个值低,评估会变慢吗?
- [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 吗?
- [corpora.train 或 dev] max_length
在我的理解中,这个值应该等于或小于最大序列长度。在快速入门小部件中,此值设置为 500 用于训练集和 0 用于开发集。如果设置为0,是否会过载到transformer模型的最大序列长度?
- spacy.batch_by_padded.v1 的 [trainning.batcher] 大小
将序列批处理到的最大填充大小。也可以是引用时间表的块,例如复利。
如果我不使用复利,这个参数与 max_lentgh 有什么不同?
这是我的配置文件的一些部分
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 添加了一些其他转换,但仍然遇到相同的错误。可能是什么问题呢?
python-3.x - 无法在 Google TPU 中导入 python 包 jax
我正在使用 linux 控制台,输入 python 会将我带入 python 控制台。当我在 TPU 机器中使用以下命令时
然后它会生成以下 mss 并退出 python 提示符。
这个问题导致我的代码出现问题,所以我想弄清楚这个问题是什么以及如何解决这个问题?
python - 有没有办法从磁盘使用 spacy-transformers(离线)
我想在互联网访问受限的企业环境中使用 spacy-transformers,所以我必须手动从 huggingfaces 中心下载变压器模型,并让它们在 spacy 中工作。
在此示例中,我尝试使用 en_core_web_trf 预训练模型中的转换器管道组件:
我收到以下错误消息:
如错误消息所述,在缓存路径中找不到请求的文件。有人可以向我解释我必须将哪些文件放在 chache 路径中吗?或者另一种方式来预下载模型并在 spacy 中使用它们。
版本:
空间 3.0.5
spacy-transformers 1.0.2
变压器 4.5.1
python - 射线错误:缺少 1 个必需的位置参数:“循环”
我正在执行 https://github.com/kingoflolz/mesh-transformer-jax 中给出的 train.py这 使用 Jax、Ray、TPU 来训练这个 mdoel。但是我它在两者之间停止并产生以下错误: