问题标签 [simpletransformers]

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 投票
2 回答
1250 浏览

python - 无法映射 1024 字节 - 无法分配内存 - 即使内存足够多

我目前正在写一篇关于 nlp 的研讨会论文,即源代码函数文档的总结。因此,我使用 ca 创建了自己的数据集。64000 个样本(37453 是训练数据集的大小),我想微调 BART 模型。为此,我使用了基于 huggingface 包的 simpletransformers 包。我的数据集是一个熊猫数据框。我的数据集的一个例子:

在此处输入图像描述

我的代码:

到目前为止一切都很好,但是当我开始训练时出现此错误。

在此处输入图像描述

这是我在 colab 笔记本上运行的错误:

有人会认为我只是没有足够的内存,但这是我的系统监视器 ca。3 秒。错误后:

在此处输入图像描述

这是我在开始训练和出现错误之间的最低可用内存或空闲内存:

在此处输入图像描述

经过大量调整后,我发现由于某种原因,当我仅使用最大大小的数据集训练模型时,一切正常。21000. 如果我训练 BART 模型的“base”版本或“large-cnn”版本,我不会生气。我只取决于我的数据集的大小。该错误始终发生在“在 cache_dir/ 处从数据集文件创建要素”时。

那么我已经尝试过什么:

  • 我添加了很多交换内存(如您在我的系统监视器的屏幕截图中所见)

  • 将工人人数减少到 1

  • 我将系统打开文件限制 (-n) 的 hard- 和 softmax 增加到 86000

在此处输入图像描述

我也尝试在 google colab notebook 中训练模型,但我遇到了同样的问题;如果数据集大小超过 ca。21000 训练失败。即使我将 colab 会话的内存翻了一番,但仍然保持数据集大小略高于 21000 限制。

桌面:

变形金刚 4.6.0

简单变压器 0.61.4

Ubuntu 20.04.2 LTS

在尝试自己解决这个问题几个星期之后,如果你们中的任何人知道我该如何解决这个问题,我会非常高兴:)

(我知道这个帖子mmap 返回无法分配内存,即使有足够的,即使有足够的不幸也无法解决我的问题。我的 vm.max_map_count 为 860000)

0 投票
1 回答
380 浏览

python - 如何使用 BERT 模型获得答案的概率,有没有办法针对上下文提出多个问题

我是 AI 模型的新手,目前正在尝试 QandA 模型。特别是我对以下 2 个模型感兴趣。 1. 从变压器导入 BertForQuestionAnswering
2. 从 simpletransformers.question_answering 导入 QuestionAnsweringModel

使用选项 1 BertForQuestionAnswering我得到了想要的结果。但是,我一次只能问一个问题。我也没有得到答案的概率。

下面是来自转换器的BertForQuestionAnswering代码。

这是输出:蓝色

在使用 simpletransformers 中的选项 2 QuestionAnsweringModel时,我可以一次提出多个问题并获得答案的概率。

下面是来自 simpletransformers的QuestionAnsweringModel的代码

这是输出:

如您所见,对于相同的上下文,我可以一次提出多个问题并获得每个答案的概率。

有没有办法可以在选项#1 中为 BERT 模型获得类似的输出。我需要一种将多个问题设置为上下文的方法,并且还需要响应中每个答案的概率。

任何帮助将不胜感激。

0 投票
1 回答
105 浏览

python - FME问题,删除基于行的单元格值

见鬼,所以让我们试着用最好的方式描述我的问题。我有使用 Python 的经验,但从未使用过 FME。我想根据特定列中的条件删除一整行数据。

我知道如何在 Python 中编写它,但是对于 FME 来说是新手并不确定我从哪里开始转换。例如:列将有 A、B 或 C。如果任何行的列有一个“C”我想删除这一整行。虽然 Python 看起来很简单,但我不太确定从哪里开始使用 FME。任何帮助或有用的提示都可以为我指明正确的方向,这将是很棒的。

0 投票
0 回答
174 浏览

huggingface-transformers - 警告:在输入张量中发现 NaN 或 Inf

我正在使用 simpletransformers 训练一个 T5 模型并收到很多消息:

Warning: NaN or Inf found in input tensor.

我怎样才能找到这个的根本原因?

0 投票
0 回答
310 浏览

nlp - ImportError:无法从“transformers.models.auto.modeling_auto”导入名称“auto_class_factory”

我正在尝试运行layoutxlm代码,https://github.com/microsoft/unilm/tree/master/layoutxlm

最新的多语言 NLP 模型。安装完成并且没有问题,但是在运行代码时我看到了这个错误。

Auto_class_factory模块存在于内部transformers,但无法导入。

路径信息如下。

1)auto-factory存在于layoutlmft虚拟环境中 C:\Users\Dell\anaconda3\envs\layoutlmft\Lib\sitepackages\transformers\models\auto

  1. 我得到的错误:
0 投票
1 回答
35 浏览

question-answering - 使用saimpletransformers时如何在wandb中记录工件?

我正在使用simpletransformers创建一个问答模型。我还想使用 wandb 来跟踪模型工件。据我从wandb docs了解到,simpletransformers有一个集成接触点,但没有提到日志记录工件。

我想记录在训练、验证和测试阶段生成的工件,例如 train.json、eval.json、test.json、output/nbest_predictions_test.json 和最佳性能模型。

0 投票
0 回答
124 浏览

python - 使用 SimpleTransformers 添加“decoder_start_token_id”

使用 SimpleTransformers 在 Seq2Seq 中训练 MBART,但出现我在 BART 中没有看到的错误:

TypeError: shift_tokens_right() missing 1 required positional argument: 'decoder_start_token_id'

到目前为止,我已经尝试了各种组合

这已经预先设置好了。使用 bos_token 以外的东西表示该令牌不是特殊令牌。

留下以下代码:

这会引发以下错误:

0 投票
1 回答
20 浏览

deep-learning - Pytorch 中的水平堆叠

我正在尝试实施变压器并停留在某一点。

假设我有形状 [2,20] 的输入序列,其中 2 是样本数,20 是序列中的单词数(序列长度)。

因此,我创建了一个形状为 [1,20] 的数组,如 [0,1,2, ... 19]。现在我想堆叠它,最终形状应该是 [2,20] 以与输入序列一致。像下面

是否有这样做的火炬功能。我可以循环并创建数据和数组,但想避免它。

0 投票
1 回答
148 浏览

nlp - 使用带有简单变压器 mt5 训练的 gpu

mt5微调不使用gpu(volatile gpu utill 0%)

嗨,我正在尝试使用基于 mt5 的模型对 ko-en 翻译进行微调。我认为 Cuda 设置正确完成(可用的 cuda 为 True)但是在训练期间,训练集不使用 GPU,除了首先获取数据集(非常短的时间)。

我想有效地使用 GPU 资源并获得有关翻译模型微调的建议,这是我的代码和训练环境。

nvcc:NVIDIA (R) Cuda 编译器驱动程序
版权所有 (c) 2005-2021 NVIDIA Corporation
构建于 Mon_May__3_19:15:13_PDT_2021
Cuda 编译工具,版本 11.3,V11.3.109
构建 cuda_11.3.r11.3/compiler.29920130_0

显卡 0 = Quadro RTX 6000

0 投票
1 回答
44 浏览

python - 在训练评估过程中报告其他指标 simpletransformers

我正在对大量数据训练文本分类模型,并且正在使用 simpletransformer 库的 bert 分类器(bert-base-uncased)。Simpletransformer 在默认情况下 retportsmcceval_loss用于在训练和测试(评估)阶段进行评估。我能够为测试阶段设置额外的指标,例如 acc、f1 等(通过向eval_model函数发送额外的指标),但我不知道如何告诉 simpletransformer 在训练阶段也报告这些指标?可以用 train_model 函数做同样的事情吗?
值得一提的是,eval_during_training选项是True.

它打印每个检查点的训练的 mcc 和 eval_loss(eval_results.txt在输出中),我还需要在每个检查点中报告其他指标。

提前致谢

干杯