- 博客(113)
- 资源 (1)
- 收藏
- 关注
原创 在Docker Debian容器中安装ps、top等命令
有些debian镜像默认没有包括进程管理相关工具,在实际使用时可能有些麻烦,如果需要也可以自己安装,使用如下命令。
2023-02-28 12:15:08
2592
1
原创 MS MARCO Passage Ranking Leaderboard —— RocketQAv2
本文对 RocketQA 的第二代版本 RocketQAv2 进行解读,原文地址请点击此处。1. 背景介绍 按照retrieve-then-rerank的方式,段落检索中的密集检索器和段落重排序器共同对最终性能做出贡献。尽管这两个模块在推理阶段作为管道工作,但发现联合训练它们是有用的。例如,具有双编码器的检索器可以通过从具有更强大的交叉编码器架构的重排序器中提取知识来改进,同时重排序器也可以通过检索器生成的训练实例进行改进。因此,越来越多的人关注retrier和re-ranker的联合训练
2022-04-14 13:42:52
921
原创 MS MARCO Passage Ranking Leaderboard —— BM25 + monoBERT + duoBERT + TCP
本文对MS MARCO Passage Ranking 榜单的 BM25 + monoBERT + duoBERT + TCP 进行解读,原文地址请点击此处。1. 背景介绍 这个模型在MS MARCO上的最好成绩是0.38,和目前的SOTA 0.45有一定差距,但由于作者 Rodrigo Nogueira 等人在此前的一篇论文《Passage Re-ranking with BERT》中首次将BERT用于检索中的重排序任务,是将BERT作为重排序器的鼻祖,因此他的 BM25 + monoB
2022-04-13 18:46:17
2453
原创 MS MARCO Passage Ranking Leaderboard —— RocketQA
本文对MS MARCO Passage Ranking 榜单的榜12 (截止至2022/4/12)—— RocketQA 进行解读,原文地址请点击此处。1. 背景介绍 在开放域问答中,密集段落检索已成为检索相关段落以寻找答案的新范式。通常,采用双编码器架构来学习问题和段落的密集表示以进行语义匹配。然而,由于以下三大挑战,仍然难以有效地训练用于密集段落检索的双编码器。 首先,双编码器检索器的训练和推理之间存在差异。在推理过程中,检索器需要从包含数百万候选者的大型集合中识别每个问题的正
2022-04-12 21:15:36
1915
原创 ACL 2021 Question Answering
1. Few-Shot Question Answering by Pretraining Span Selection为了消除预训练与抽取式问答任务微调之间的GAP,设计了一种新的预训练方式:Recurring Span Selection。简单来说,就是利用一段文本中重复出现的span,比如下图中的"Roosevelt",选取其中一个"Roosevelt"作为答案,其他的使用[QUESTION]代替,预训练时使用[QUESTION]的输出来寻找答案"Roosevelt"的位置。微调时采用"文本[SE
2022-04-11 22:56:51
563
原创 MS MARCO Document Ranking Leaderboard —— UniRetriever
本文对MS MARCO Document Ranking 榜单的榜2 (截止至2022/4/11)—— UniRetriever 进行解读,原文地址请点击此处。
2022-04-11 21:21:34
1212
原创 log_softmax与softmax
SoftmaxSoftmax是指数标准化函数,又称为归一化指数函数,将多个神经元的输出,映射到 (0,1) 范围内,并且归一化保证和为1,从而使得多分类的概率之和也刚好为1。其公式如下:Softmax(zi)=exp(zi)∑jexp(zj)\operatorname{Softmax}\left(\boldsymbol{z}_{i}\right)=\frac{\exp \left(z_{i}\right)}{\sum_{j} \exp \left(z_{j}\right)}Softmax(zi..
2022-04-02 23:02:02
6279
1
原创 分布式训练与单卡训练精度存在差异的几个原因
一个主要因素是Batch norm。Batch norm依赖当前batch来计算均值和方差,而主流框架(tf,pytorch)的实现是在当前卡上计算这些统计量。显然单个卡上计算出来的统计量是不能代替整个并行batch的结果。考虑一个极端情形,每张卡batch size=1,这时候单卡的方差为0,而整个并行batch的方差不为0。所以单个sample的前向计算结果不一样,最后计算出来的梯度也不一样。深度学习中多GPU训练是否等价于增大batch size? - 小朱的回答 - 知乎NLP 中经常有一..
2022-04-01 22:12:53
3446
原创 最大熵模型原理小结
最大熵模型可以用于分类问题,是针对条件概率P(y|x)进行建模的判别式模型。其主要思想可以用一句话概括:在现有已知信息的约束以及没有更多已知信息的情况下,使条件概率P(Y|X)的分布更加均匀,这样获得的模型经验风险更小,鲁棒性更强。 使P(Y|X)分布更加均匀,从信息熵的角度来看,就是使条件熵H(Y|X)更大(最大熵),那么根据条件熵公式:H(P)=−∑x,yP(x,y)logP(y∣x)H(P)=-\sum_{x, y} P(x,y) \log P(y \mid x)H(P)=−x,y∑P(
2022-03-07 20:44:43
926
原创 QA中的信息检索技术(IR)整理
从广义上讲,目前的 Retriever 方法可以分为三类,即 Sparse Retriever、Dense Retriever 和 Iterative Retriever,下面将详细介绍。
2021-11-19 00:13:38
4521
原创 论文笔记:Real-Time Open-Domain Question Answering with Dense-Sparse Phrase Index
1. 概要 本文提出Dense-Sparse Phrase Index (DENSPI),一个用于实时开放域 QA 的可索引的查询无关的短语表示模型。短语表示事先离线存储,推理时,输入问题被映射到相同的表示空间,并检索具有最大内积搜索的短语作为答案。短语表示结合了密集向量和稀疏向量。2. 短语和问题嵌入2.1 短语的密集嵌入向量使用表示第个文档中起始位置分别为的短语的密集向量,论文将该向量分解为三个部分:一个对应于短语开始位置的向量,一个对应于结束位置的向量,以及一...
2021-11-18 10:56:26
2095
原创 论文笔记:WARP: Word-level Adversarial ReProgramming
1. 大体框架与以往工作的不同:1)prompt在连续空间内优化,不在要求转换为离散token;2)prompt token 既可插在句子前部、尾部,也可插在句子内部;3)不使用训练好的MLM参数,直接取mask位置输出embedding与各个标签词的embedding做相似度计算,然后softmax:4)只训练prompt embedding以及标签词的embedding,其他参数固定。2. 实验结果...
2021-10-22 17:30:53
962
原创 论文笔记:BERTese: Learning to Speak to BERT
论文链接:BERTese: Learning to Speak to BERT - ACL Anthology代码开源:暂无1. 概要这篇论文和How Can We Know What Language Models Know?研究的问题一样,旨在找到更好的提示,从而提高从预训练模型中提取世界性知识的准确率。主要思想是训练一个模型,对原有的提示进行重写,然后再输入预训练模型中进行预测,大体框架如下:2. 核心算法论文将重构提示的模型称为rewri...
2021-10-21 22:53:12
408
原创 论文笔记:How Can We Know What Language Models Know?
论文链接:https://arxiv.org/abs/1911.12543代码开源:GitHub - jzbjyb/LPAQA: Language model Prompt And Query Archive
2021-10-20 09:38:57
1505
原创 论文笔记:Universal Adversarial Triggers for Attacking and Analyzing NLP
论文链接:https://arxiv.org/abs/1908.07125代码开源:https://github.com/Eric-Wallace/universal-triggers1. 主要内容将输入与一段提示拼接,即可引导模型输出想要的结果,且提示是与输入无关的,任意输入拼接上相同的提示,都大概率会产生特定的结果。如上图所示,对于情感分析任务,拼接trigger(即提示)会导致模型将正确的预测翻转为否定。对于阅读理解任务,拼接trigger会导致...
2021-10-19 17:04:36
1751
原创 论文笔记:PPT: Pre-trained Prompt Tuning for Few-shot Learning
论文链接:https://arxiv.org/abs/2109.04332代码开源:暂无1. 介绍两种主流的微调(FT)方法:面向任务的微调(传统微调)和面向提示的微调,如上图b、c所示。两种方法都需要微调整个模型的参数,但随着模型规模的快速增长,为每个下游任务微调一个完整的大型模型变得越来越昂贵。为此,谷歌提出 prompt tuning (PT) 概念,如上图d所示。具体来说,PT 使用由连续嵌入组成的软提示(soft prompt)而不是...
2021-10-18 21:10:35
4232
1
原创 论文笔记:Prefix-Tuning: Optimizing Continuous Prompts for Generation
1. 介绍在某些情况下,GPT-3可以在没有任何特定任务调整的情况下部署。用户只需预先准备一个自然语言任务指令(例如摘要任务的指示为:TL;DR)和一些例子拼接到输入,然后就可以从LM生成输出。这种方法被称为情境学习(in-context learning)或提示(prompting)。受到提示的启发,这篇论文提出了Prefix-tuning——一个自然语言生成 (NLG) 任务微调的轻量级替代方案。如下图所示,Fine-tuning更新transformer...
2021-10-13 18:12:40
2169
4
原创 论文笔记:Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference
1. 介绍论文提出了Pattern-Exploiting Training (PET),将小样本场景下的监督学习和提供任务描述相结合,把具体任务转换成了完形填空任务。具体框架如下:(1)为输入示例创建多个patterns,以将输入示例转换为完形填空题;对不同pattern的输入,分别使用预训练模型进行微调。(2)将上述得到的所有模型进行融合,对未标注数据进行标注。(3)在得到的软标签数据集上训练分类器。...
2021-10-11 22:23:29
2753
1
原创 论文笔记:Making Pre-trained Language Models Better Few-shot Learners
1.动机GPT-3 仅仅通过 一个自然语言提示(prompt)和 少量的任务示例就可以作出正确的预测,在Zero-shot、One-shot和Few-shot的场景下展现出了优秀的性能。通常情况下BERT这类微调模型总是需要一些样例来更新模型的参数从而让模型更加适应当前的任务,但是GPT-3可以通过不使用一条样例的Zero-shot、仅使用一条样例的One-shot和使用少量样例的Few-shot来完成推理任务。下面是对比微调模型和GPT-3三种不同的样本推理形式图:但是拥有1750亿参数的GPT-.
2021-10-08 22:11:31
2581
4
原创 GBDT与XGBoost
gbdt、xgb、lgb、cat面经整理XGBoost超详细推导XGBoost与GDBT的区别、手推XGB二阶导xgboost是用二阶泰勒展开的优势在哪?
2021-07-05 11:01:05
102
原创 pandas apply函数使用心得
使用apply之后并不能改变原DataFrame的值,需要将返回值赋给所修改的列或行才能对原DataFrame进行修改!
2020-12-16 20:03:17
357
原创 Transformer:Attention Is All You Need
整体框架:编码器译码器结构,编码器部分由6个encoder堆叠而成,译码器部分由6个decoder堆叠而成。每个encoder结构都是相同的(但是它们的参数不共享),由多头自注意力层以及全连接层构成。decoder结构与encoder类似,只是比后者多出了一个encoder-decoder attention层,用于获取编码器部分输出的全局(全句)信息。编码器之前:Input Embedding: 将输入的tokens初始化为维度固定(transformer设置dim=512)的词向量。Posit
2020-12-14 21:08:23
270
原创 2020/12/13-2020/12/20 本周总结(LSA、NNLM、RNN、word2vec、GPT、GELU)
LSA潜在语义分析:https://blog.youkuaiyun.com/roger__wong/article/details/41175967https://blog.youkuaiyun.com/fkyyly/article/details/84665361https://www.jianshu.com/p/9fe0a7004560https://www.cnblogs.com/LittleHann/p/7200618.htmlNNLM(N-gram neural model):https://www.cnbl
2020-12-13 21:13:30
794
原创 2020/12/7-2020/12/12 本周总结(glove、n-gram、elmo、textcnn、stacking)
glove:GloVe-Global Vectors for Word Representation.pdfelmo:https://www.nowcoder.com/discuss/260001?type=2https://blog.youkuaiyun.com/qq_36330643/article/details/80143960n-gram:https://zhuanlan.zhihu.com/p/32829048textcnn:https://www.cnblogs.com/bymo/p/96
2020-12-07 22:55:16
367
原创 使用有限状态自动机将字符串转换为整数
题目背景:请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响。注意:假如该字符串中的第一个非空格字符不
2020-09-19 21:58:13
782
原创 JS中的数据类型
7种数据类型:Undefined、String、Boolean、Number、Null、Object、Symbol<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>JS中的数据类型</title> </head> <body> <script type="text/javascript"> /*
2020-09-09 22:15:33
453
原创 全局变量和局部变量
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>全局变量和局部变量</title> </head> <body> <script type="text/javascript"> // 在函数体外声明:全局变量 // 生命周期从浏览器打开页面开始到页面关闭,占用浏览器内存,尽量少用。 var i
2020-09-09 12:17:23
121
原创 JS中的函数
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>js中的函数</title> </head> <body> <input type="button" value="泡椒崛起" onclick="alert('快船总冠军!')" /> <script type="text/javascript">
2020-09-09 12:15:10
99
原创 HTML中嵌入JS代码的三种方式
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>HTML中嵌入JS代码的三种方式</title> </head> <body> <!--HTML中嵌入JS代码的第一种方式--> <!--οnclick="js代码",执行原理是什么? 页面打开的时候,js代码并不会执行,只是把这段JS代码注册到按钮
2020-09-09 12:13:43
1409
原创 骑士周游回溯算法
主要思想:深度优先遍历+回溯+贪心。从初始位置startPoint开始,获取下一步能到达的所有位置,将它们添加到集合ArrayList< Point >中,根据它们下一步所能到达的位置的个数k对ArrayList< Point >中所有位置进行非递减排序,优先对k较小的位置进行遍历,若此路不通,则回溯。马踏棋盘游戏中马能够走的8个位置如下图所示:本次使用的实例:代码实现:package DataStructure;import java.awt.*;import j
2020-09-08 21:03:27
515
原创 最短路径 | Floyd算法(基本)
主要思想:将图中每个顶点Vk依次作为中转顶点,比较每个顶点Vi直接到达其余各个顶点Vj的距离dis[ij]与通过中转顶点Vk再到达其余各个顶点Vj的距离dis[ik]+dis[kj],若dis[ik]+dis[kj] < dis[ij],则将dis[ij]更新为dis[ik]+dis[kj] 。经过三次嵌套循环,可获得任意两个顶点之间的最短路径(而Dijkstra算法只能获得指定顶点到其余顶点的最短路径)。代码实现:package DataStructure;import java.util.
2020-09-05 16:15:01
218
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人