问题标签 [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.
pre-trained-model - 了解拥抱脸变形金刚
我是变形金刚概念的新手,我正在阅读一些教程并编写自己的代码来理解使用变形金刚模型的 Squad 2.0 数据集问答。在拥抱脸网站上,我遇到了 2 个不同的链接
我想知道这两个网站的区别。一个链接是否只有一个预训练的模型,而另一个链接有一个预训练和微调的模型?
现在,如果我想使用,假设一个 Albert 问答模型,并在上面使用我的 Squad 2.0 训练数据集进行训练并评估该模型,我应该进一步连接到哪个链接?
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 列表不仅包含单个项目,而且有时包含列表中的列表。
任何人都知道如何解决这个问题?我应该只使用只有一个跨度构成上下文中答案的示例吗?
如果我解决了火炬错误,那么损失的反向传播/评估/计算仍然有效吗?
谢谢你!/乙
python - 如何在这个 Python 脚本中处理 CSV 文件
再次使用flowers的CSV文件,填充contents_of_file函数的空白来处理数据,而不是把它变成字典。如何跳过带有字段名称的标题记录?
提交我的答案后,将显示以下消息:
我该如何纠正这个问题?
web - 如何在我的网站上添加自定义问题调查
我想为我正在使用 Wix 的调查添加我的网站的自定义问卷,你能建议任何特定的方式吗,我的要求是我想添加以添加 20 个问题,用户只需完成调查并单击正确的答案并提交它,然后应该有一个屏幕用于添加电子邮件的答案。答案应该像错误答案的数量除以 22 并乘以 100 一样工作。就像错误的答案是 4=> 4/22=ans => Ans*100=Answer 最后一个答案是用户的分数我如何添加这个在我的 wix 或任何其他表单生成器中添加此自定义评分。
python - 无法从“transformers.modeling_distilbert”导入名称“DISTILBERT_PRETRAINED_MODEL_ARCHIVE_MAP”
我正在尝试为问答目的训练 distil BERT 模型。我已经安装了简单的变压器和所有东西,但是当我尝试运行以下命令时:
我收到错误消息->
请帮忙!
python - 微调 BERT 以进行问答时的准确性低
我正在尝试微调 CamemBERT(罗伯塔的法语版本)以进行问答。
首先,我使用CamemBERT模型来生成问题和文本的输入嵌入,并使用输出线性层来输出与答案的开始和结束相对应的开始和结束 logits。
在论文的官方结果中,问答的表现是(88 %, 77%) of (F1 score, EM)但我得到的结果是(71%, 46%)。
我的问题是为什么结果不够接近?
这是我用来在 FQuAD 数据集上训练和评估模型的脚本的一部分,其超参数与官方模型相同:
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 代码片段。
nlp - NLP:从 QuestionAnsweringPipeline 中获得 5 个最佳候选人
我正在使用 huggingface 转换器库开发法语问答模型。我正在使用与 RoBERTa 非常相似但适用于法语的预训练 CamemBERT 模型。
目前,我可以使用变形金刚库中的 QuestionAnsweringPipeline 为我自己的文本中的问题找到最佳答案候选者。
这是我的代码的摘录。
我目前得到这个 : {'score': 0.9630325870663725, 'start': 2421, 'end': 2424, 'answer': '{21'}
,这是错误的。
因此,我想获得 5 个最佳候选人作为答案。有谁知道如何做到这一点?
python - 无法从“变压器”导入名称“TFBertForQuestionAnswering”
目前我正在使用遇到以下错误的变压器(3.0.2)和python(3.7.3):
无法从“变压器”导入名称“TFBertForQuestionAnswering”
如何解决这个问题?
nlp - 用于问答的 BERT 中长文本的滑动窗口
我已经阅读了解释滑动窗口如何工作的帖子,但我找不到任何关于它是如何实际实现的信息。
据我了解,如果输入太长,可以使用滑动窗口来处理文本。
如果我错了,请纠正我。假设我有一个文本“2017 年 6 月,Kaggle 宣布注册用户超过 100 万”。
给定一些stride
and max_len
,输入可以被分割成具有重叠词的块(不考虑填充)。
如果我的问题是“Kaggle 何时发布公告”和“有多少注册用户”,我可以在模型中使用和根本chunk 1
不chunk 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_features
与s
in一起使用example
。
我得到了错误。
该错误表明没有,tokenizers
但它不允许我们传递一个tokenizer
. 虽然如果我在调试模式下在函数内部添加标记器,它确实有效。那么我究竟该如何使用这个squad_convert_example_to_features
功能呢?