问题标签 [question-answering]

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 投票
1 回答
364 浏览

pre-trained-model - 了解拥抱脸变形金刚

我是变形金刚概念的新手,我正在阅读一些教程并编写自己的代码来理解使用变形金刚模型的 Squad 2.0 数据集问答。在拥抱脸网站上,我遇到了 2 个不同的链接

我想知道这两个网站的区别。一个链接是否只有一个预训练的模型,而另一个链接有一个预训练和微调的模型?

现在,如果我想使用,假设一个 Albert 问答模型,并在上面使用我的 Squad 2.0 训练数据集进行训练并评估该模型,我应该进一步连接到哪个链接?

0 投票
1 回答
721 浏览

python - 上下文中的多个答案跨度,BERT 问答

BERT我正在编写一个使用线性层和softmax顶部层进行预训练的问答系统。当遵循网上可用的模板时,一个示例的标签通常只包含一个answer_start_index和一个answer_end_index。例如,从Huggingface实例化SQUADFeatures对象时开始:

但是,在我自己的数据集中,我有一些示例,其中在上下文中的多个位置找到了答案词,即可能有几个正确的跨度构成了答案。

我的问题是我不知道如何管理这样的例子?在网络上可用的模板中,标签通常位于列表中,例如:

  • [start_example1,start_example2,start_example3]
  • [end_example1,end_example2,end_example3]

就我而言,这可能看起来像:

  • [start_example1, [start_example2_1, start_example2_2], start_example3]
  • 当然也一样

换句话说,我没有每个示例包含一个标签的列表,而是包含单个标签或示例“标签”列表的列表,即由列表组成的列表。

遵循其他模板时,该过程的下一步是:

但是,这当然(?)会引发错误,因为我的 span_start 列表和 span_end 列表不仅包含单个项目,而且有时包含列表中的列表。

任何人都知道如何解决这个问题?我应该只使用只有一个跨度构成上下文中答案的示例吗?

如果我解决了火炬错误,那么损失的反向传播/评估/计算仍然有效吗?

谢谢你!/乙

0 投票
12 回答
6443 浏览

python - 如何在这个 Python 脚本中处理 CSV 文件

再次使用flowers的CSV文件,填充contents_of_file函数的空白来处理数据,而不是把它变成字典。如何跳过带有字段名称的标题记录?

提交我的答案后,将显示以下消息:

我该如何纠正这个问题?

0 投票
2 回答
29 浏览

web - 如何在我的网站上添加自定义问题调查

我想为我正在使用 Wix 的调查添加我的网站的自定义问卷,你能建议任何特定的方式吗,我的要求是我想添加以添加 20 个问题,用户只需完成调查并单击正确的答案并提交它,然后应该有一个屏幕用于添加电子邮件的答案。答案应该像错误答案的数量除以 22 并乘以 100 一样工作。就像错误的答案是 4=> 4/22=ans => Ans*100=Answer 最后一个答案是用户的分数我如何添加这个在我的 wix 或任何其他表单生成器中添加此自定义评分。

0 投票
1 回答
843 浏览

python - 无法从“transformers.modeling_distilbert”导入名称“DISTILBERT_PRETRAINED_MODEL_ARCHIVE_MAP”

我正在尝试为问答目的训练 distil BERT 模型。我已经安装了简单的变压器和所有东西,但是当我尝试运行以下命令时:

我收到错误消息->

请帮忙!

0 投票
1 回答
530 浏览

python - 微调 BERT 以进行问答时的准确性低

我正在尝试微调 CamemBERT(罗伯塔的法语版本)以进行问答。

首先,我使用CamemBERT模型来生成问题和文本的输入嵌入,并使用输出线性层来输出与答案的开始和结束相对应的开始和结束 logits。

在论文的官方结果中,问答的表现是(88 %, 77%) of (F1 score, EM)但我得到的结果是(71%, 46%)

我的问题是为什么结果不够接近?

这是我用来在 FQuAD 数据集上训练和评估模型的脚本的一部分,其超参数与官方模型相同:

0 投票
1 回答
184 浏览

deep-learning - 使用可训练的权重组合两个相同维度的张量以获得最终输出张量

在处理与问答(MRC)相关的问题时,我实现了两种不同的架构,它们独立地给出两个张量(令牌上的概率分布)。两个张量都是维度 (batch_size,512)。我希望获得表单的最终输出 (batch_size,512)。如何使用可训练的权重组合两个张量,然后根据最终预测训练模型?

编辑(附加信息):

所以在我的 NN 模型的前向函数中,我使用了 BERT 模型对 512 个令牌进行编码。这些编码是 768 维的。然后将它们传递给线性层 nn.Linear(768,1) 以输出形状为 (batch_size,512,1) 的张量。除此之外,我还有另一个基于 BERT 编码的模型,它也产生一个形状张量 (batch_size, 512, 1)。我希望将这两个张量结合起来,最终得到一个形状为 (batch_size, 512, 1) 的张量,可以使用 CrossEntropyLoss 针对相同形状的输出 logits 进行训练。

如果可能,请分享 PyTorch 代码片段。

0 投票
1 回答
300 浏览

nlp - NLP:从 QuestionAnsweringPipeline 中获得 5 个最佳候选人

我正在使用 huggingface 转换器库开发法语问答模型。我正在使用与 RoBERTa 非常相似但适用于法语的预训练 CamemBERT 模型。

目前,我可以使用变形金刚库中的 QuestionAnsweringPipeline 为我自己的文本中的问题找到最佳答案候选者。

这是我的代码的摘录。

我目前得到这个 : {'score': 0.9630325870663725, 'start': 2421, 'end': 2424, 'answer': '{21'} ,这是错误的。

因此,我想获得 5 个最佳候选人作为答案。有谁知道如何做到这一点?

0 投票
2 回答
1588 浏览

python - 无法从“变压器”导入名称“TFBertForQuestionAnswering”

目前我正在使用遇到以下错误的变压器(3.0.2)和python(3.7.3):

无法从“变压器”导入名称“TFBertForQuestionAnswering”

如何解决这个问题?

0 投票
1 回答
3279 浏览

nlp - 用于问答的 BERT 中长文本的滑动窗口

我已经阅读了解释滑动窗口如何工作的帖子,但我找不到任何关于它是如何实际实现的信息。

据我了解,如果输入太长,可以使用滑动窗口来处理文本。

如果我错了,请纠正我。假设我有一个文本“2017 年 6 月,Kaggle 宣布注册用户超过 100 万”

给定一些strideand max_len,输入可以被分割成具有重叠词的块(不考虑填充)。

如果我的问题是“Kaggle 何时发布公告”“有多少注册用户”,我可以在模型中使用根本chunk 1chunk 3使用 不确定我是否还应该用来训练模型chunk 2 chunk 2

所以输入将是: [CLS]when did Kaggle make the announcement[SEP]In June 2017 Kaggle announced that[SEP][CLS]how many registered users[SEP]1 million registered users[SEP]


然后,如果我有一个没有答案的问题,我是否将其与所有块一起输入到模型中,并将开始和结束索引指示为-1?例如“猪会飞吗?”

[CLS]can pigs fly[SEP]In June 2017 Kaggle announced that[SEP]

[CLS]can pigs fly[SEP]announced that it passed 1 million[SEP]

[CLS]can pigs fly[SEP]1 million registered users[SEP]


正如评论中所建议的,我尝试运行squad_convert_example_to_features源代码)来调查我上面遇到的问题,但它似乎不起作用,也没有任何文档。run_squad.py从 huggingface看来,它squad_convert_example_to_featuressin一起使用example

我得到了错误。

该错误表明没有,tokenizers但它不允许我们传递一个tokenizer. 虽然如果我在调试模式下在函数内部添加标记器,它确实有效。那么我究竟该如何使用这个squad_convert_example_to_features功能呢?