自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(309)
  • 收藏
  • 关注

原创 No module named ‘fused_adam‘

deepspeed, Ninja, 一般是用deepspeed的时候报这个错, 原因是Ninja没有安装好。然后pip重装 ninja 和 deepspeed, 安装deepspeed的时候,注意按照文档来。

2023-03-23 14:04:16 928 1

原创 【Ranking】Pre-trained Language Model based Ranking in Baidu Search

总述这篇文章重点在解决以下几个问题:现有的预训练语言模型由于处理长文本对时间和计算资源的高需求使得其无法应用于online ranking system,因为网络文本通常比较长。现有的预训练范式,如随机mask词汇,下一轮句子预测等,都有Rank任务没有关系,因此会忽略文本中的相关性,从而减弱其在ad-hoc 检索中的效果。在真实的信息检索系统中,Ranking 模块通常需要与其他模块结合起来使用,如何使得ranking 模块能够更好的兼容检索系统的其他模块也是一个值得探索的问题。针对以上问题

2022-05-23 01:18:56 961 1

原创 【模型蒸馏】TinyBERT: Distilling BERT for Natural Language Understanding

总述TinyBert主要探究如何使用模型蒸馏来实现BERT模型的压缩。主要包括两个创新点:对Transformer的参数进行蒸馏,需要同时注意embedding,attention_weight, 过完全连接层之后的hidden,以及最后的logits。对于预训练语言模型,要分为pretrain_model 蒸馏以及task-specific蒸馏。分别学习pretrain模型的初始参数以便给压缩模型的参数一个好的初始化,第二步学习pretrain model fine-tuning的logits让

2022-05-22 16:58:39 860

原创 【调参Tricks】WhiteningBERT: An Easy Unsupervised Sentence Embedding Approach

总述该文主要介绍了三种使用BERT做Sentence Embedding的小Trick,分别为:应该使用所有token embedding的average作为句子表示,而非只使用[CLS]对应位置的表示。在BERT中应该使用多层的句向量叠加,而非只使用最后一层。在通过余弦相似度做句子相似度判定的时候,可以使用Whitening操作来统一sentence embedding的向量分布,从而可以获得更好的句子表示。模型文中介绍的前两点均不涉及到模型,只有第三点Whitening操作可以做简要介绍

2022-05-21 23:16:23 410 2

原创 ERNIE1.0 与 ERNIE2.0 论文解读

总述本文主要介绍百度发布的ERNIE1.0模型与ERNIE2.0模型。1. ERNIE1.0 Enhanced Representation through Knowledge IntegrationMotivationBERT那种预测随机mask的方式忽略了句子中的实体信息以及实体与实体之间的关系(即外界的知识)。Model模型的训练分为三个阶段,每个阶段使用不同的mask策略,分别为随机mask, 随机mask句子中的某些短语,以及随机mask句子中的实体。在预训练的过程中,使得模型来预测

2022-05-20 00:45:10 1044

原创 【论文介绍】R-Drop: Regularized Dropout for Neural Networks

总述本文的出发点在于:之前的dropout存在训练与测试时模型不一致的问题。基于这个出发点,本文提出了R-Dropout的方式来解决这个问题。实验证明,R-Dropout在多个数据集上均有效(都略有提升)对Dropout的思考首先我们要理解,为什么之前的dropout存在训练与测试时不一致的问题。在训练的时候,dropout会随机mask模型的一些节点,然后利用剩余的网络去拟合数据(防止过拟合)。在不同batch的数据训练的过程中,由于mask是随机变动的,因此不同的数据可能会经过不同的网络处理。

2022-05-19 23:06:58 601

原创 【信息检索导论】第七章搜索系统中的评分计算

1. 总述本章主要解决以下问题:对于千亿级别的文档,为每一个询问对文档库进行排序是不现实的,如果快速的检索出某个询问最相关的topk个文档呢?除了query与document的相似度之外,对文档进行排序的过程是否还需要其他指标? 如何综合这些指标呢一个完整的信息检索系统需要包括哪些模块?向量空间模型是否支持通配符查询?2. 快速评分与排序本章主要介绍一些启发式的方法,用来快速的找到符合与某个询问较为相关的K个文档,找到的文档中并非完全包含最相关topk,但我们会返回与真实topk分数接近的

2022-03-05 17:08:13 845

原创 parser.parse_args 布尔值类型将False解析为True

记录一个大坑,遇到好多次了,一直没长记性 ==!问题当我在代码中使用parser添加一个参数的时候, 将其设置成bool类型的,然后默认值为True。parser.add_argument("--some_argument", default=True, type=bool)然而,当我在命令行中输入 --some_argument=False的时候, 代码跑出来some_argument这个参数还是True。我怀疑是自己的编码姿势不对, 换了--some_argument=false(

2022-03-03 15:10:57 1606 1

原创 【信息检索导论】第六章 词项权重及向量空间模型

1. 总述本章主要介绍一下几个问题:给定关键词,如何评定包含这些关键词的文档中哪些更重要,即如何给文档进行相关性排序tf-idf算法是什么? 怎样给文档中的词项进行打分?支配了IR界几十年的空间向量模型是什么?他存在什么缺点?2. 参数索引及域索引本节以一个简单的例子介绍如何给文档进行排序。元数据(metadata):一个文档固定有的字段,并且该字段取值范围是有限的,如文档的创建时间,创建者,文档类型等。文本域(zone): 一个文档的某些字段,并且该字段的取值范围是无限的,如文档标题,

2022-02-06 15:13:59 1351

原创 【信息检索导论】第三章 容错式检索

总览本章主要解决以下几个问题:根据用户的询问,如何找到用户询问中的词语对应的倒排表?如果用户不记得某个单词怎么拼写,如何实现模糊查询(通配符查询)?如果用户写错了某个字, 怎么样帮助他纠正,以便返回用户真正想查询的单词?以上问题分别对应下面的三小节。3.1 检索词项字典前言:在前两章中,我们进行布尔查询都是直接默认根据用户查询的词项,就直接获取到了他的倒排表。但实际上,我们需要首先在词项词典中找到对应的词项,才能返回该词项对应的倒排表。对用户的query进行分词后,获取到待查询词项,我们首

2022-01-28 17:01:51 1292

原创 【信息检索导论】第二章 词项词典与倒排记录表

总览本章介绍的较为琐碎,因为书中提及了很多实际应用中的具体困难,而这些困难书中也并未提及解决方案,一般是凭经验去权衡。其内容主要还是围绕倒排表进行讲述的,讲述重点有两个。一是如何从文本中抽取词条,涉及到分词,以及词语的归一化问题(2.2), 二是如何高效的进行检索,即倒排表如何快速合并,考虑连续的二元组该如何查询等(2.3, 2.4)2.1 文档分析与编码转换编码转换:主要介绍文档的解码问题,用UTF-8还是其他编码,以及不同平台间的文档的解码问题。索引粒度(index granularity):

2022-01-27 15:23:22 1140

原创 【信息检索导论】第一章 布尔检索

信息检索导论 第一章内容总结

2022-01-25 16:43:28 2488 2

原创 Conda 创建,复制,分享虚拟环境

创建一个新的虚拟环境:conda create --name env_name python=3.7复制现有的一个环境conda create --name new_env_name --clone old_env_name分享环境即导出某个环境为配置文件,在别的计算机中以该配置文件重新安装此环境,常用于环境的迁移conda activate my_env_name # 首先进去需要分享的环境conda env export > my_env.yml..

2021-09-30 14:06:07 1327

原创 【BERT,GPT+KG调研】Pretrain model融合knowledge的论文集锦

总述: 本文调研近年来bert与knowledge的融合的工作, 对于每一篇工作, 大概的介绍他们融合knowledge的方式, 并且进行自己的点评。文章列表:1.Align, Mask and Select: A Simple Method for Incorporating Commonsense Knowledge into Language Representation Models arxiv 2019主要目标: 把struct knowledge融合到bert的参数当中,...

2021-04-26 10:43:16 2550

原创 【Torch】最简洁logging使用指南

网上的教程大多十分复杂,实际上使用logging非常简单, 三行代码就好了我使用logging是为了方便调试, 因为输出框缓存的数量是有限的,如果把输出打印到文件中观察使用体验会好很多,因为这三行代码的功能就是为了将输出导出到某一个文件中配置代码如下:import logginglogging.basicConfig(level=logging.INFO, filename='./mylog/test.log', filemode='w')这里首先引用了logging的包, 然后配置一

2020-12-08 10:35:08 2034

原创 【Torch】解决tensor参数有梯度,weight不更新的若干思路

问题: 在torch类里面用nn.Parameter声明了一个可学的Tensor参数, 结果每次梯度回传之后,可以看到变量梯度,但是该参数的weight始终不变,一直保持着初始值。思路:遇到某参数的weight一直不更新,解决思路有以下几种:1. 检查该变量的梯度是否为0或者为None, 对于pytorch的中间变量,输出梯度的方式见博客:https://www.jianshu.com/p/ad66f2e38f2f 如果是None或者0,说明梯度没有...

2020-11-24 17:24:07 8854 4

转载 Subword三大算法原理:BPE、WordPiece、ULM

前言Subword算法如今已经成为了一个重要的NLP模型性能提升方法。自从2018年BERT横空出世横扫NLP界各大排行榜之后,各路预训练语言模型如同雨后春笋般涌现,其中Subword算法在其中已经成为标配。所以作为NLP界从业者,有必要了解下Subword算法的原理。目录与传统空格分隔tokenization技术的对比 Byte Pair Encoding WordPiece Unigram Language Model 总结1. 与传统空格分隔tokenization技术的对比

2020-09-18 22:35:34 1011 1

原创 python 如何用变量名字符串获取变量的值

通过字符串的f操作:aa = 5print(f"{aa}")bb = [1,2,3]print(f'{bb}')关于f操作的更多信息,请见https://blog.csdn.net/yizhuanlu9607/article/details/89530982

2020-07-30 17:33:05 7984 7

原创 python list中找Topk的数值和索引

需求:对于一个python list 或者numpy数组,我需要找到这个list中最大的K个数及其对应的下标。解决方式:1. 可以构造字典通过排序解决,不过代码量较多。2. 使用heapq库,可以直接获取最大值的下标和数值。import heapqa = [4,2,6,1,9,9]# 获取下标, 输出为[4, 5, 2]heapq.nlargest(3, range(len(a)), a.__getitem__)# 获取数值, 输出为[9, 9, 6]heapq.nlar

2020-07-21 11:14:57 7675 1

原创 【MEDICAL】Attend to Medical Ontologies: Content Selection for Clinical Abstractive Summarization

任务: 据作者说,英文的医疗影像报告同时具有两个描述,一个是FINDINGS,阐述了整个图像的细节与特点,还有一个是IMPRESSION,只重点描述图像中的关键信息,这些关键信息是包含在FINDINGS里面的。总之,本篇论文做的就是利用这个FINDINGS来生成IMPRESSION,即在文本摘要在医疗领域的应用。模型: Content Selector:这个选择器采用序列标注的形式来实现,整个FINDINGS序列的每个词有0,1两种标注。如...

2020-06-19 10:59:03 349

原创 allennlp 中的TypeError: Object of type Tensor is not JSON serializable错误

错误展示:File "/home/yanshangyao/anaconda3/envs/torch14/bin/allennlp", line 8, in <module> sys.exit(run()) File "/home/yanshangyao/anaconda3/envs/torch14/lib/python3.7/site-packages/allennlp/run.py", line 18, in run main(prog="allennlp") F

2020-06-18 16:22:10 1944

原创 python的正则表达式匹配如何找到所有匹配成功的部分(包括重叠的)

比如: st = “平安夜吃苹果呀小菇凉” , pattern = '((平|苹).*?果)‘我希望匹配的字符串是 "平安夜吃苹果" 以及 “苹果” 很显然后面那个是包含在前面一个字符串中的。解决方式有两种:1. ?= 原理暂时我没有弄清楚,请路过的大佬指点在这个pattern的周围加上一个?=,然后套一个分组括号。详见代码:st = "平安夜吃苹果呀小菇凉"...

2020-04-23 16:11:43 3153

原创 运行bash文件报错 syntax error near unexpected token '$'do\r''

在pycharm上直接写了一个sh文件,到服务器上面运行就报错,错误如标题。then,在服务器上vim把所有的换行,空格删掉重打无效最后,总结了错误原因以及两种解决方式。原因:其实很多博客讲了,因为windows和linux系统换行符的不同,在windows中换行符是'\r\n',而在linux中只有'\n',现在我们就明白报错的意义了, windows格式写的代码放到linux执...

2020-04-09 18:17:07 5858

原创 point-wise element-wise

先占个坑point-wise element-wise实际上是同一个东西,就是两个矩阵的对应位置逐点相乘,也就是说这两个矩阵的大小要是一样的。不同的人有不同的表达,还有一个Hadamard product实际上也是同一个意思。...

2020-04-08 20:28:05 3120 2

原创 RuntimeError: reduce failed to synchronize: device-side assert triggered pytorch训练

总述:本意在于记录一下这个问题产生的种种情况,请注意不是显卡坏了,而是代码出错了。1. nan问题在训练的时候,长久累积某一个tensor,导致他的值过大产生nan。还有可能是,某一个参数没有初始化,使得内存地址随意赋值,常出现于nn.paramter()的时候...

2019-12-10 03:29:41 3645

原创 [NLU] DialogueGCN: A Graph Convolutional Neural Network for Emotion Recognition in Conversation

总述:最大的特色就是将GCN用在了对话情感识别上,这里的coversation可能是不止两个人的。然后故事写得很好,inter-dependency和intra-dependency还有self-dependency唬的我一愣一愣的。主要模型:inter-depencency intra-dependency所谓的inter-dependency其实就是说某一个speak对其他...

2019-11-19 00:20:43 2833 3

原创 [NLG] A Context-aware Natural Language Generator for Dialogue Systems

总述:16年的文章,感觉方法在现在看来已经很easy了,可见NLP领域的发展之迅速。文章主要讨论了如何将context 引入到当前生成的句子中,baseline和seq2seq attention做对比,作者采用了两种方式,一种将context直接简单的接到DA的前面,DA(dialog action就是一些键值对)。第二种就是将context单独encoder成一个向量,然后和DAenc...

2019-11-18 00:49:23 591

原创 [NLU] Enhancing Dialogue Symptom Diagnosis with Global Attention and Symptom Graph

总述:通过构造一种global attention的机制以及构造了symptom的图,提高了在医疗对话中,对于每一句话出现symptom的预测精度。以及提高了symptom inference(对于一种症状,病人是否有)的精度贡献:1.有一个开源的中文医疗对话数据集,大约两千多个对话,标注了BIO,做了symptom normalization。有四种病,大约162中症状2.结合了...

2019-11-16 17:21:31 723 3

原创 [NLU] Extracting Symptoms and their Status from Clinical Conversations

总述:像是陈年玉米,又长又难嚼还没啥营养。大抵就是他收集了3K诊所问诊的录音,然后在每一段录音的基础上识别出问诊过程中涉及到了哪些症状,以及推断这些症状是否出现在病人身上。但是其实模型very simple,就是一个lstm+CRF做tag的任务QAQ,不过实验室做了挺多的,类似于transformer的encoder和lstm的encoder,还有加权和不加权的eval metric, ...

2019-11-14 11:44:57 406

原创 [NLG]A Working Memory Model for Task-oriented Dialog Response Generation

总述:memNN常用于在对话中引入KB的知识,然而之前的工作大多数把dialogue history和KB的memory混在一起,作者借鉴了心理学的研究。有个work memory(类似于电脑内存的感觉)可以和两个记忆做交互,一个知识记忆(semantic memory),一个历史记忆(episodic memory).然后作者就设计了一个模型,将对话历史作为历史记忆,将KB结构化知识作为知识...

2019-11-11 12:41:58 630 1

原创 [NLU] Improving Multi-turn Dialogue Modelling with Utterance ReWriter

总述: 主要是有一个utterance rewriter的机制,将一句话里面的省略和共指关系给找出来,然后形成一句新的话语,这样显示的声明一句话的省略部分和共指词可以提高对话系统的效果。具体来说对于task-oriented对话系统,提高了intention Precision(每一句话的意图检测),对于chitchat,提高了CPS:coversation-turns-persess...

2019-11-09 13:15:54 1963

原创 [NLG] Comparison of Diverse Decoding Methods from Conditional Language

总述:总体上是一篇survey,不过后面在基础模型上加了oversampling的改进,然后还对原来的clustering post decoding做了改进。重点在于介绍在conditional language model (就是通过前文预测下一个单词的模型,如GPT)下如何使句子的生成具有diverse(多样性)主要模型:1.首先介绍了贪心编码(arg-max),每一次根据当前的...

2019-11-04 12:17:49 280

原创 [NLG] Domain Adaptive Dialog Generation via Meta Learning

总述:这篇文章貌似就是把end2end模式的dialogue system套了一层maml的更新方式,然后在few-shot领域上的效果比之前赵天成的ZSDG效果要好。感觉思路很清新也很简单,不知道是不是我没看懂QAQ总之要看懂这篇论文,首先得看下Sequicity和 MaMl模型: 首先介绍一下maml的主要思想:maml就是说有多个domain的数据a1,a2,a3...

2019-10-24 01:54:48 538

原创 [DM]Sequicity: Simplifying Task-oriented Dialogue Systems with Single Sequence-to-Sequence Architect

总述:这篇文章的主要特色在于生成dialogue believes,也就是作者所谓的belief span,在对话管理模块中,一般都需要首先对一句话的belief进行分类(就是一些slot-value对,一般来说分为两种类型,一种informable类型的,要告诉用户某一些具体信息,一种requestable类型的,需要记住用户需要什么。对于某一个informable类型比如说餐馆风味,有很多...

2019-10-20 01:02:04 766

原创 [NLG]Few-Shot Dialogue Generation Without Annotated Data: A Transfer Learning Approach

总述: 我觉得这篇论文的主要亮点就是不要标注数据。之前赵天成的zero-shot虽然很惊艳,但是迫于每一句话都需要标注dialogu action,所以应用性不强。这篇论文就是结合了赵天成之前的两篇工作,第一个zero-shot,第二个laed(用于在大规模数据中学习找到对话潜在的latent action)。然后作者就认为,在大规模无标签对话中用laed学习可以学到隐式的dialog ac...

2019-10-19 16:10:27 480

原创 [NLG] Pretraining for Conditional Generation with Pseudo Self Attention

摘要: 这篇文章的主要idea就是如何用现在已经有的语言模型,稍微引导一下生成基于某些条件的话语。如给个情感,生成一个带情感的句子。作者在GPT2的结构上稍微修改了self-attention机制,命名为Pseudo-Self,在decoder的时候引入外部控制,并且这样做能够尽量小的影响GPT2之前的训练参数,达到的很好的效果。模型:作者主要对比了前面两种工作,关于这两种工作...

2019-10-17 01:19:42 512

原创 [NLG]Unsupervised Discrete Sentence Representation Learning for Interpretable Neural Dialog Generat

看这篇paper看的自闭了。作者用了太多操作了。。。摘要: 作者的意思应该是要在一些无监督的语句中学会一些可解释的离散的laent action,然后用这些laent action指导对话的生成。什么叫可解释呢,我觉得这篇论文的意思就是,这个latent(意图,动作,相当于slot-value对)和这一句对话有直接的关系。然后作者就用了两个新的模型,实际上就是魔改了VAE(看的我脑阔痛)...

2019-10-15 01:51:58 460 1

原创 [NLG] Zero-Shot Dialog Generation with Cross-Domain Latent Actions

摘要: 简单来说,就是实现了对话生成的zero shot(零次学习)。首先在一些source domain当中学习一些domain的基本描述,希望学到的这些基本描述能够用于target domain的对话生成,其中source domain的领域和target domain完全不一样。但是属性是共同的。主要工作: 1.提出来一种新的抽取domain 属性和描述的方法:seed...

2019-10-13 02:00:05 551

原创 [NLG]GECOR: An End-to-End Generative Ellipsis and Co-reference Resolution Model for Task-Oriented Di

摘要: 之前还没有人做过multi-turn dialogue的有关省略和共指词汇的研究,只有短文本恢复省略词汇的研究。本文作者通过构造一个数据集(数据集中将dialogue的省略词和共指词都标记了出来),然后结合attention和copynet提出了一个end2end的multi-task学习框架。学习在结合上文的情况下,如何生成省略词和共指词。并且EM,BLEU,F1的效果不错。主...

2019-10-10 15:26:55 784

原创 [NLG]Do Neural Dialog Systems Use the Conversation History Effectively? An Empirical Study?

摘要: 为了发现对话历史是否真的被有效的利用了,本文介绍了10种干扰来评测对话历史是否真正被利用。发现transformer-seq2seq 和rnn seq2seq并没有很好地利用这些信息主要工作: 首先有一个前提:如果模型对于对话历史的改变不敏感的话,那么他基本上没有利用多少对话历史。 在之前的工作中已经发现:1.lstm的作用范围只被周围的大约150个词所...

2019-10-09 01:21:46 440

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除