问题标签 [roberta-language-model]

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

nlp - 微调 Huggingface 的输入/输出格式 RobertaForQuestionAnswering

我正在尝试在我的自定义数据集上微调“RobertaForQuestionAnswering”,但我对它需要的输入参数感到困惑。这是示例代码。

我无法理解模型中作为输入给出的变量start_positionsend_positions以及正在生成的变量start_scoresend_scores 。

0 投票
0 回答
35 浏览

text - 想根据我自己的数据微调来自 Huggingface 的预训练 RoBERTa 以进行文本摘要

我是这方面的初学者。请帮助我找到解决方案。我已经使用RobertaTokenizerFast对文本和摘要进行标记(max_token_length分别为 200 和 50)。计划是使用RoBERTa作为第一层。然后使用 conv2d、maxpool2d 和dense 压缩其输出以匹配目标摘要。最后一个密集层的输出是一个浮点向量。因此,我已将包含long input_ids 的目标向量标准化为浮点值(0 到 1)。最后,我使用了 CrossEntropy函数来获得损失。

使用pl.Trainer返回的培训ValueError: Expected input batch_size (20) to match target batch_size (50). 我无法得到错误。

0 投票
0 回答
155 浏览

nlp - 如何在自定义数据上微调 Allennlp 的 RoBERTa 文本蕴涵模型?

我正在做一个项目,我需要微调AllenNLP 提供的pair-classification-roberta-snli模型。我已经准备好 snli 格式的自定义数据集,但无法找到重新训练模型的方法。目前,我正在遵循这种方法来训练基于 bert 的文本蕴涵模型。但是如何微调 AllenNLP 的 pair-classification-roberta-snli 模型呢?

0 投票
2 回答
148 浏览

python - 是否有必要重新训练 BERT 模型,特别是 RoBERTa 模型?

我正在寻找准确率至少为 80% 以上的情绪分析代码。我尝试了 Vader,发现它简单易用,但它的准确率仅为 64%。

现在,我正在查看一些 BERT 模型,我注意到它需要重新训练?那是对的吗?不是预习的吗?是否需要重新培训?

0 投票
0 回答
27 浏览

pytorch - 如何使用 XLM-Roberta 模型进行重新排序微调任务?

我正在尝试使用 XLM-Roberta 模型对任务进行重新排序。然而,对于英语单语任务,BERT 在评估过程中收敛并返回最佳分数。然而,用 XLM-Roberta 模型替换它甚至没有收敛。我还发现 bert tokenizer 返回一个带有 3 个键(input_ids、token_type_ids 和 attention_masks)的字典。但是,XLM-Roberta 仅返回带有 2 个键(input_ids 和 attention_masks)的 dict。有没有办法将输入文本对分离到 XLM-Roberta 模型。这可能是模型不收敛的原因吗?

0 投票
0 回答
12 浏览

speech-synthesis - 如何以相当简单的方式呈现 RoBERTa 如何获取有关下游任务的新知识

我的论文答辩将于下周进行,我想请您对我目前面临的一个问题发表看法。我的论文贡献之一是“让 RoBERTa 适应 Twitter 上的谣言检测任务”

我想向陪审团解释 RoBERTa 如何根据我对其进行微调的数据集来调整其权重。

简单来说,我为 RoBERTa 提供了各种数据集,这些数据集描述了“Twitter 上的谣言检测”任务,同时改变了数据集中的类分布,以了解它如何影响 RoBERTa 产生的嵌入。我通过将嵌入的质量提供给一组分类器(随机森林、决策树、SVM)来评估它们的性能。我使用了标准指标(Precision-Recall 和 F1-score),重点关注模型在识别类谣言方面的表现。我正在考虑这样解释:RoBERTa 接收带有标签(谣言/非谣言)的推文,然后权衡这些词及其对相关课程的影响。一个类中经常出现的词是可能与之相关的词。但我有这样的感觉' 这是对 RoBERTa 内部运作的复杂性的一种侮辱,甚至是一种侮辱。因此,对于比我拥有更多知识和专业知识的您,请您满足我的要求并启发我如何解释在下游任务中微调预训练语言模型的细节。

0 投票
1 回答
346 浏览

huggingface-transformers - 向 BERT/RoBERTa 添加新令牌,同时保留相邻令牌的令牌化

我正在尝试向 BERT 和 RoBERTa 标记器添加一些新标记,以便我可以根据新词微调模型。这个想法是用新词在有限的一组句子上微调模型,然后看看它在其他不同的上下文中对这个词的预测,以检查模型对某些语言属性的知识状态。

为了做到这一点,我想添加新的标记,基本上把它们当作新的普通词(模型还没有碰巧遇到)。一旦添加它们,它们的行为应该与普通单词完全一样,除了它们的嵌入矩阵将被随机初始化,然后在微调期间被学习。

但是,我在这样做时遇到了一些问题。特别是,在使用 BERT 初始化标记器时,围绕新添加标记的标记的行为与预期do_basic_tokenize=False不同(在 RoBERTa 的情况下,更改此设置似乎不会影响此处示例中的输出)。在以下示例中可以观察到该问题;在 BERT 的情况下,新添加的标记之后的句点不被标记为子词(即,它被标记为.而不是预期的##.),而在 RoBERTa 的情况下,新添加的子词之后的词被视为尽管它没有前面的空格(即,它被标记为 asa而不是 as Ġa.

有没有办法让我添加新的令牌,同时让周围的令牌的行为与没有添加的令牌相匹配?我觉得这很重要,因为模型最终可能会学习到(例如),新令牌可以出现在之前.,而大多数其他令牌只能出现在之前,##.这似乎会影响它的泛化方式。此外,我可以在这里打开基本标记化来解决 BERT 问题,但这并不能真正反映模型知识的完整状态,因为它破坏了不同标记之间的区别。这对解决 RoBERTa 问题没有帮助,无论如何,该问题仍然存在。

此外,理想情况下,我可以将 RoBERTa 标记添加为Ġmynewword,但我假设只要它永远不会作为句子中的第一个单词出现,这无关紧要。

0 投票
1 回答
305 浏览

python - 加载基于 Roberta 的模型时出现问题

我正在尝试使用基于 Roberta 的模型,AutoTokenizer.from_pretrained('roberta-base')但出现以下错误:

我试图安装 tensorflow 但仍然是同样的错误。知道发生了什么吗?

0 投票
0 回答
14 浏览

twitter - 当输入相对较长时,BERTweet 会抛出错误

我正在使用拥抱脸的 BERTweet 实现(https://huggingface.co/docs/transformers/model_doc/bertweet),我想对一些推文进行编码并转发它们以进行进一步处理(预测)。问题是当我尝试编码一个相对较长的句子时,模型会引发错误。

例子:

控制台输出:

但是,如果您将其更改line为:

,然后模型成功地对句子进行编码。这是预期的行为吗?我知道 BERT 一个句子最多有 512 个单词,而 BERTweet 基本上是一个微调过的 BERT。剪掉较长的句子是个好主意吗,这对我的问题来说是一个可以接受的解决方案吗?提前致谢。

0 投票
0 回答
38 浏览

python - 长序列分类:RoBERTa vs. Longformer

我想使用 RoBERTa 或 Longformer 通过将文档分成 512 (RoBERTa) 或 4096 (Longformer) 令牌的块并对输出进行平均来对具有约 30,000 个令牌的文档进行分类。就预期的准确性和所需的训练时间/计算资源而言,应该首选哪种方法?我的想法是:

  • 罗伯塔:
    • 512 个令牌块内的完全自注意力
    • 每个块的训练时间较短,但块更多
  • 长款:
    • 4096 个令牌块内的滑动窗口注意力
    • 每个块的训练时间更多,但块更少