论文翻译 I Know What You Want: Semantic Learning for Text Comprehension

I Know What You Want: Semantic Learning for Text Comprehension

ABSTRACT 摘要

Who did what to whom is a major focus in natural language understanding, which is right the aim of semantic role labeling (SRL). Although SRL is naturally essential to text comprehension tasks, it is surprisingly ignored in previous work. This paper thus makes the first attempt to let SRL enhance text comprehension and inference through specifying verbal arguments and their corresponding semantic roles. In terms of deep learning models, our embeddings are enhanced by semantic role labels for more fine-grained semantics. We show that the salient labels can be conveniently added to existing models and significantly improve deep learning models in challenging text comprehension tasks. Extensive experiments on benchmark machine reading comprehension and inference datasets verify that the proposed semantic learning helps our system reach new state-of-the-art.

谁对谁做了什么是自然语言理解的主要重点,这正是语义角色标记(SRL)的目标。 尽管SRL自然是文本理解任务所必需的,但是在以前的工作中却意外地忽略了它。 因此,本文首次尝试通过指定语言参数及其相应的语义角色来使SRL增强文本的理解和推断能力。 在深度学习模型方面,我们的嵌入通过语义角色标签得到了增强,以实现更细粒度的语义。 我们证明了可以将显着标签方便地添加到现有模型中,并在挑战性的文本理解任务中显着改善深度学习模型。 在基准机器阅读理解和推理数据集上进行的大量实验证明,所提出的语义学习有助于我们的系统达到最新的水平。

查看更多

论文翻译 ALBERT:A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS

A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS 小型BERT (自监督学习语言表征)

原文链接: https://openreview.net/pdf?id=H1eA7AEtvS

译注: 本人英语水平有限, 如有优化建议, 请随时提交issue.

ABSTRACT 摘要

Increasing model size when pretraining natural language representations often results in improved performance on downstream tasks. However, at some point further model increases become harder due to GPU/TPU memory limitations, longer training times, and unexpected model degradation. To address these problems, we present two parameter-reduction techniques to lower memory consumption and increase the training speed of BERT (Devlin et al., 2019). Comprehensive empirical evidence shows that our proposed methods lead to models that scale much better compared to the original BERT. We also use a self-supervised loss that focuses on modeling inter-sentence coherence, and show it consistently helps downstream tasks with multi-sentence inputs. As a result, our best model establishes new state-of-the-art results on the GLUE, RACE, and SQuAD benchmarks while having fewer parameters compared to BERT-large.

查看更多

vue基础入门

.

安装相关软件

1
2
# 安装vue脚手架
sudo npm install -g @vue/cli

vue-cli官方文档

初始化一个vue项目文件夹

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
vue create hello   # 创建的文件夹叫hello  (注意: 该博客下把这个文件夹叫做"root" 便于记录)

首先,会提示你选择一个preset(预设):

① 除最后两个,其他选项都是你此前保存的预设配置(如下图第一个“ preset-config”是我之前保存的预设配置,如今便可以直接用了):

如果没有配置保存过,则只有以下两个选项:

② default(babel,eslint):

默认设置(直接enter)非常适合快速创建一个新项目的原型,没有带任何辅助功能的 npm包

③ Manually select features:

? Check the features needed for your project: (Press <space> to select, <a> to toggle all, <i> to invert selection)
>( ) Babel //转码器,可以将ES6代码转为ES5代码,从而在现有环境执行。
( ) TypeScript// TypeScript是一个JavaScript(后缀.js)的超集(后缀.ts)包含并扩展了 JavaScript 的语法,需要被编译输出为 JavaScript在浏览器运行,目前较少人再用
( ) Progressive Web App (PWA) Support// 渐进式Web应用程序
( ) Router // vue-router(vue路由)
( ) Vuex // vuex(vue的状态管理模式)
( ) CSS Pre-processors // CSS 预处理器(如:less、sass)
( ) Linter / Formatter // 代码风格检查和格式化(如:ESlint)
( ) Unit Testing // 单元测试(unit tests)
( ) E2E Testing // e2e(end to end) 测试

cd hello
npm run serve # 启动静态服务器 可以进行测试
npm run build # 打包静态文件

项目配置文件: package.json

查看更多

torch中的几种乘法。torch.mm, torch.mul, torch.matmul

.

一、点乘

点乘都是broadcast的,可以用torch.mul(a, b)实现,也可以直接用*实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>> a = torch.ones(3,4)
>>> a
tensor([[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]])
>>> b = torch.Tensor([1,2,3]).reshape((3,1))
>>> b
tensor([[1.],
[2.],
[3.]])
>>> torch.mul(a, b)
tensor([[1., 1., 1., 1.],
[2., 2., 2., 2.],
[3., 3., 3., 3.]])

当a, b维度不一致时,会自动填充到相同维度相点乘。

二、矩阵乘

矩阵相乘有torch.mm和torch.matmul两个函数。其中前一个是针对二维矩阵,后一个是高维。当torch.mm用于大于二维时将报错。

查看更多

PyTorch

原文: Debugging CUDA device-side assert in PyTorch

PyTorch的立即执行模型的美丽之处在于您实际上可以调试程序。 但是,有时CUDA执行的异步特性使其变得很难。 这是调试程序的一个小技巧。

当您使用CUDA操作运行PyTorch程序时,该程序通常不等到计算完成,而是继续向GPU抛出指令,直到它实际需要结果为止(例如,使用.item()或.cpu()进行评估或打印)。

尽管这是PyTorch程序出色性能的关键,但有一个弊端:当cuda操作失败时,您的程序可能正在执行其他操作(因为异步)。 通常的症状是,在触发错误的指令之后的某个地方,或多或少地出现随机性错误。 通常看起来像这样:

1
2
3
4
5
6
7
8
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
<ipython-input-4-3d8a992c81ab> in <module>()
1 loss = torch.nn.functional.cross_entropy(activations, labels)
2 average = loss/4
----> 3 print(average.item())

RuntimeError: cuda runtime error (59) : device-side assert triggered at /home/tv/pytorch/pytorch/aten/src/THC/generic/THCStorage.cpp:36

好吧,这很难理解,我敢肯定,报错位置是合法的代码。 因此,设备端断言意味着系统只是发现某个地方出了点问题。

查看更多