该存储库包含一些最重要的论文来解决问题。实施方式是教程的形式,是上述论文的大致注释。该存储库可能对那些了解深度学习和NLP的基础知识的人有帮助,希望开始阅读略带复杂的论文并查看如何实施它们。该存储库也对Pytorch基础知识有所了解,尽管我尽力将所有内容都简单地分解。
问题回答是一项重要的任务,基于哪些NLP系统的智能和AI的智能可以判断。质量保证系统的简短段落或上下文有关某些主题,并根据段落提出一些问题。这些问题的答案是上下文的跨度,即它们在段落中直接可用。为了训练这样的模型,我们使用小队数据集。
名为QA的名为“ NLP预处理管道”的笔记本包含我编写的所有预处理代码。预处理代码不使用任何高级库,我从头开始编写了所有功能。它仅使用Spacy进行令牌化。此处实现的功能对于许多NLP任务都是常见的,因此对于刚刚起步的人可能很有用。例如:事后,创建词汇,用于预读取的嵌入的重量矩阵,数据集/数据集装载机等,使用一些高级库(如TorchText),例如TorchText,这是一个更好的主意,我目前正在从事相同的工作。
所有笔记本都是基于这种方法。最终,建立神经网是与张量一起使用的。了解每个张量的形状和内容是我在学习时发现非常有用的。因此,在每行代码之后,我评论了由于代码转换而发生的张量形状和更改。这使得理解神经网中发生的事情更加直观。
我无法无限制地访问更快的GPU。以下模型已通过在Vast.AI上租用GPU进行培训。我在大多数实验中都使用了GTX 1080 Ti。
在第一个笔记本电脑中,我们实现了一个相对简单的模型,该模型涉及多层LSTM和双线性注意。在跳入代码之前,请说明每个层/组件的详细信息和直觉。该模型与本文讨论的模型非常相似,也有相同的第一作者:Danqi Chen。第二个模型也被称为“专心读者”。笔记本中实现的模型是其中略有高级版本。获得的DEV集的结果是:
| 时代 | Em | F1 |
|---|---|---|
| 5 | 56.4 | 68.2 |
我将对此进行更多的培训以改善结果,并会尽快更新。
接下来,我们移到更复杂的纸上。本文改善了上一篇论文获得的结果。在这里实施的模型与以前的模型是多个阶段的层次结构,该体系结构代表多个粒度层面的上下文和查询。本文还涉及复发,因为它广泛使用了LSTMS和具有双向性质的无记忆注意机制。本笔记本详细讨论了一些重要的NLP技术,例如字符嵌入,高速公路网络等。开发设置的结果:
| 时代 | Em | F1 |
|---|---|---|
| 5 | 60.4 | 70.1 |
最后,我们摆脱了复发,只使用自我注意力和卷积。本文从“关注就是您所需要的”中汲取灵感。该模型设计背后的关键动机是:卷积捕获文本的本地结构,而自我发作则了解每对单词之间的全球相互作用。本教程解释了诸如自我注意力和深度可分离卷积之类的主题。开发设置的结果:
| 时代 | Em | F1 |
|---|---|---|
| 3 | * | 36.6 |
我目前正在培训此模型。我目前的时间很短,无法访问更快的GPU。在GTX 1080 Ti上进行1个时期的训练大约需要1小时。
我不是专家。这个项目背后的主要动机是了解NLP域。如果您发现任何概念上的错误或愚蠢的错误,请创建一个问题,我会尽力纠正它们。也欢迎其他贡献。如果您训练任何模型并获得改进的结果,请进行公关。如果您有兴趣在此域中实施更多论文并希望将它们添加到此存储库中,我很乐意为您提供帮助。尽管我目前的时间很短,但我将积极维护此存储库。