问题标签 [allennlp]

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 回答
904 浏览

python - 如何在运行 scibert projec 时修复“allennlp.common.checks.ConfigurationError”?

文件“/home/yangzhiwei/workshop/scibert/scibert/models/bert_text_classifier.py”,第15行,in from text_classifier import TextClassifier 文件“/home/yangzhiwei/workshop/scibert/scibert/models/text_classifier.py”,第15行,在类TextClassifier(模型):文件“/home/yangzhiwei/workshop/scibert/src/allennlp/allennlp/common/registrable.py”,第49行,在add_subclass_to_registry中引发configurationError(message)allennlp.common.checks.ConfigurationError: '无法将 text_classifier 注册为模型;名称已用于 TextClassifier'

0 投票
1 回答
917 浏览

python - AllenNLP 共指分辨率的多 GPU 训练

我正在尝试复制(或接近)通过CoNLL-2012 共享任务的端到端神经共指解析论文获得的结果。我打算在此基础上做一些增强,所以我决定使用AllenNLP 的. 这就是我初始化和训练模型的方式:CoreferenceResolver

读取数据后,我训练了模型,但 GPU 内存不足:RuntimeError: CUDA out of memory. Tried to allocate 4.43 GiB (GPU 0; 11.17 GiB total capacity; 3.96 GiB already allocated; 3.40 GiB free; 3.47 GiB cached). 因此,我尝试使用多个 GPU 来训练这个模型。我正在使用 Tesla K80s(具有 12GiB 内存)。

我尝试MultiprocessIterator通过将iteratoras初始化来使用 AllenNLP's MultiprocessIterator(BasicIterator(batch_size=1), num_workers=torch.cuda.device_count())。但是,仅使用了 1 个 GPU(通过nvidia-smi命令监视内存使用情况)并得到以下错误。我还尝试摆弄它的参数(增加num_workers或减少output_queue_size)和ulimit(如本 PyTorch 问题所述)无济于事。

我还尝试通过PyTorch 的 DataParallel实现这一点,方法是使用自定义包装模型的context_layer, (以提供与 AllenNLP 假定的类函数的兼容性)。尽管如此,只使用了 1 个 GPU,它最终还是像以前一样耗尽了内存。mention_feedforwardantecedent_feedforwardDataParallelWrapper

0 投票
1 回答
42 浏览

pytorch - 在演示中复制语义分析模型

美好的一天,我是一名对 NLP 感兴趣的学生。我在 AllenNLP 的主页上看到了演示,其中指出:

该模型是一个使用 GloVe 嵌入的简单 LSTM,它在 Stanford Sentiment Treebank 的二进制分类设置上进行了训练。它在测试集上达到了大约 87% 的准确率。

是否有任何参考示例代码或我可以遵循的任何教程来复制此结果,以便我可以了解有关此主题的更多信息?我正在尝试获得回归输出(而不是分类)。

我希望有人能指出我正确的方向。非常感谢任何帮助。谢谢!

0 投票
0 回答
139 浏览

python - 加载数据集时“没有足够的价值来解压” - Allennlp _read

我正在尝试使用 Allennlp 库来执行 NER。该库与 conll2003 和其他只有实体和令牌的数据库完美配合(我必须更新 _read 函数)。但是,如果我尝试使用自己的数据集,该函数会返回“ValueError:没有足够的值来解包(预期为 2,得到 1)”。我比较了格式、特殊字符、间距甚至文件名,但找不到任何问题。这是来自有效数据集的样本,

这是我的数据集中的样本,它不起作用,

我无法确定问题,请帮助。

更新

根据要求添加 stderr.log。

添加 _read 和 text_to_instance 函数

0 投票
0 回答
239 浏览

python - ValueError:ParentedTree.read():预期的“字符串结尾”但得到了“(:”

这是调试我遇到的错误的分步代码:

这是我收到的回溯错误:

0 投票
1 回答
124 浏览

python - 如何规避 AWS 包和大型包 + 大型模型的临时限制

我们有一个生产场景,用户调用昂贵的 NLP 函数在短时间内运行(比如 30 秒)。由于高负载和间歇性使用,我们正在研究 Lambda 函数部署。但是 - 我们的包裹很大。

我正在尝试将 AllenNLP 放入 lambda 函数中,该函数又取决于 pytorch、scipy、spacy 和 numpy 以及其他一些库。

我试过的

按照此处提出的建议和此处的示例,删除了测试和附加文件。我还使用了 Pytorch 的非 cuda 版本,它减小了它的大小。我可以将 AllenNLP 部署打包到大约 512mb。目前,这对于 AWS Lambda 来说仍然太大。

可能的修复?

我想知道是否有人对以下潜在途径之一有经验:

  1. 从 AllenNLP 中删除 PyTorch。如果没有 Pytorch,我们可以达到 250mb。我们只需要在生产中加载存档模型,但这似乎确实使用了一些 PyTorch 基础设施。也许有替代品?

  2. 在 AllenNLP(的一个分支)中调用 PyTorch 作为第二个 lambda 函数。

  3. 使用 S3 提供一些依赖项:SIM 链接一些较大的.so文件并从 S3 存储桶提供它们可能会有所帮助。这确实产生了一个额外的问题:我们使用 AllenNLP 的语义角色标签还需要一些大约 500mb 的语言模型,可以使用临时存储 - 但也许这些可以直接从 S3 流式传输到 RAM 中?

也许我错过了一个简单的解决方案。任何方向或经验将不胜感激!

0 投票
1 回答
135 浏览

allennlp - Allennlp coref 模型最新版本

我正在搜索 allennlp 的 coref 模型的最新 tar 文件。我在哪里可以找到它。

因为在 allennlp 的演示页面中,输出是不同的,当我尝试使用示例代码时,输​​出是不同的。示例中的版本为 2018-05-02。

0 投票
1 回答
329 浏览

nlp - NLTK 中的 Unigram 标记

使用NLTKUnigram Tagger,我正在训练句子Brown Corpus

我尝试不同categories,我得到的价值大致相同。对于0.9328每个categories诸如fiction,romancehumor

为什么会这样?是因为他们来自同一个地方corpus吗?还是他们的part-of-speech标签是一样的?

0 投票
1 回答
795 浏览

api - 你如何从带有 curl 的 Flask 应用程序中获得响应?

我正在使用 AllenNLP 构建一个 Flask 测试预测器。

我将 .json 文件中的“段落”和“问题”传递给预测器。

但是,当我使用 curl 传递 json 文件时,它不会返回响应。在 Flask 中是否有特殊的回报来获得它?

代码如下:

卷曲命令看起来像: curl http://127.0.0.1:5000 -X POST -H "Content-Type: application/json" -d @sample.json

0 投票
1 回答
243 浏览

python - 使用带有 AllenNLP Interpret 或 Textattack 的 spaCy 模型

AllenNLP Interpret 和 Textattack 应该“攻击”模型以找出它们生成输出的原因。我主要使用 spaCy 来训练我的模型,并且想尝试其中的任何一个框架,看看它们是否能让我更好地理解我的模型。但似乎它们与 spaCy 模型不兼容(或者我做错了什么)。对于 Textattack,我尝试遵循以下示例: https : //textattack.readthedocs.io/en/latest/quickstart/overview.html 但将模型与 spaCy 模型交换。那效果不好,因为在 TokenizedText 类里面有

这会引发错误,因为 spaCy 的 Tokenizer 对象没有名为encode()的方法。我注意到 Textattack 的 Tokenizer 和 SpacyTokenizer 有多个子类。如果那是 Tokenizer 的兼容版本,为什么不自动检测并调用它呢?我尝试交换它们,但我对 SpacyTokenizer 所需的一些参数感到困惑:

word2id是一个 word-id 配对,但是什么样的 id 呢?它是针对词汇中的所有单词还是仅针对这个特定句子的标记? oov_id更令人困惑,因为“oov”代表“o​​ut-of-variable”,而不是 spaCy 中的“out-of-vocabulary”。此外,在 spaCy 中,它是一个布尔值,而不是一个 id。 pad_id根本没有解释,我不知道它是什么。

所以看起来Textattack和spaCy之间有一些联系,但我不知道如何把它放在一个工作示例中。

当谈到 AllenNLP Interpret 时,我尝试使用 hotflip 攻击,但首先发生的是以下错误消息:

所以看起来这个框架也不适合 spaCy,因为它需要_index_to_token,但 spaCy 的 Vocab 没有。

有人可以帮我吗?