NLP
文章平均质量分 80
NLP
sunghosts
这个作者很懒,什么都没留下…
展开
-
Attention 伪代码实现(pytorch 版)
Attention的原理已经有很多介绍了,实现的伪代码参照transformer,下面写了最简单的版本。原创 2024-03-27 21:31:07 · 109 阅读 · 0 评论 -
pytorch加速-SDPA缩放的点乘注意力
大部分情况下,我们不需要关注背后具体所选择的kernel,因为它背后已经做了最优的选择。V100卡属于sm 7.0,不支持Flash attention,但是我们可以看到默认采用的kernel是sdpd_mem_eff,它相比sdpd_math,速度提升非常明显(6ms vs 16ms)。这里我在batch_size=8下,跑出来运行时间大约是16s(A100下是6.6s),而只采用SDPA的版本运行时间约17s(A100下是7.3s),还是有一定的加速效果的(不过V100相比A100还是太弱了)。转载 2024-03-26 13:00:32 · 82 阅读 · 0 评论 -
梯度检测点和梯度累计
随着模型变得越来越大,GPU 内存不足而获取内存的情况变得越来越普遍。在本文中,我们将讨论一些通过梯度技巧提高训练过程效率并优化使用 GPU 内存的方法。翻译 2023-09-28 15:42:53 · 320 阅读 · 0 评论 -
维特比算法与beam search
(viterbi有最优解是因为HMM每一步是条件独立的!!!独立!!!独立!!!重要的事说三遍!既然后面的概率和前面的没关系,那前面选最大的概率就行了!!!beam search时后面的概率依赖于前面所有的词,相当于n-gram是满的,viterbi的n-gram是2!原创 2023-04-18 10:05:49 · 134 阅读 · 0 评论 -
优化函数中的动量
Momentum是为解决SGD中出现的曲折摆动问题,如图所示,“之”字形的上下摆动,降低了损失函数到达最低点的速度。动量法几乎总是比标准的梯度下降法速度更快,算法的主要思想是计算梯度的指数加权平均,然后使用这个梯度来更新权重(上图中,你希望纵轴可以学习慢一点,不希望出现这些震荡,横轴上,你希望加快学习速度)可以理解为,在到达新的一点时,SGD会直接按照该点的负梯度方向去更新,而Momentum会考虑之前的梯度及方向,即动量。当动量momentum越大时,其转换为势能的能量也就越大,越易摆动,难以停下来。原创 2023-04-23 01:22:25 · 67 阅读 · 0 评论 -
InstructGPT论文解读
上图可以看出InstructGPT(PPO-ptx)及变体(variant trained without pretraining mix)(PPO)显著优于GPT,1.3B的InstructGPT优于175B的GPT,SFT作为RLHF第一阶段的模型效果比GPT好。当然结果是由人来评价的。SFT: 对话数据微调基座语言模型,RM: 评分数据微调RM模型PPO: SFT模型生成答案,RM模型评分,PPO算法对SFT模型强化学习,进一步改进生成效果下图就是3个阶段。原创 2023-06-23 00:06:32 · 788 阅读 · 0 评论 -
深度学习--优化算法
转:https://www.jianshu.com/p/aebcaf8af76e参考:https://zhuanlan.zhihu.com/p/33175839基于随机梯度下降(SGD)的优化算法在科研和工程的很多领域里都是极其核心的。很多理论或工程问题都可以转化为对目标函数进行最小化的数学问题。按吴恩达老师所说的,梯度下降(Gradient Descent)就好比一个人想从高山上奔跑到山谷最低点,用最快的方式(steepest)奔向最低的位置(minimum)。SGD基本公式θ=θ−η▽θJ(转载 2021-06-09 13:45:07 · 420 阅读 · 0 评论 -
LLM 位置编码及外推
对原始2048窗口的模型使用FT,发现训练10000步的时候,只有效扩展到了2560的长度,但是使用PI,训练200步的时候就能扩展到我们想要的窗口长度(实验中有抖动,步数多了有效窗口长度反而变短)。RoPE的外推能力有限,理论上,使用2048长度训练的模型,如果输入3000的长度,它就无法使用0位置的信息,但可以使用2900位置的信息,但实际上,如果答案就在2900位置处,也无法得到。扩展后的模型在长文本任务中有较好的性能,困惑度没有上升,在原来长度的任务中困惑度略有下降(实验中下降了2%)。原创 2023-09-10 00:54:11 · 848 阅读 · 0 评论 -
相对位置编码和绝对位置编码原理及源码
Bert问世后瞬间引爆了NLP领域,同时也让Transformer火了起来,Transformer中特征提取的方式不是传统的CNN,RNN等,而是用attention的形式,这种模式被用在AI的各个领域中,包括CV和语音等。转载 2023-09-03 14:52:58 · 464 阅读 · 0 评论 -
tensorflow--四种交叉熵损失函数说明
前言交叉熵损失函数在内部进行sigmoid或softmax操作,直接喂给网络预测的输出值就可以了,而不能在调用函数前进行softmax或sigmoid,否则会导致计算会出错。tensorflow中的四个交叉熵函数cross_entropy:tf.nn.softmax_cross_entropy_with_logits()tf.nn.sparse_softmax_cross_entropy_with_logits()tf.nn.sigmoid_cross_entropy_with_logits()原创 2023-01-30 22:51:49 · 247 阅读 · 0 评论 -
谈一谈暴露偏差
xvz原创 2023-01-12 15:24:57 · 1247 阅读 · 0 评论 -
NLP中的对抗训练
fsa原创 2023-01-12 12:13:37 · 995 阅读 · 1 评论 -
文本相似度
awefa原创 2023-01-10 15:20:49 · 959 阅读 · 0 评论 -
神经网络中的负采样
sddfs转载 2023-01-09 16:57:21 · 289 阅读 · 0 评论 -
NLP中向量表示的各向异性
sdf转载 2023-01-09 16:19:59 · 495 阅读 · 0 评论 -
实体关系抽取
gsdf原创 2023-01-09 01:55:24 · 1572 阅读 · 0 评论 -
命名实体识别
fsdf原创 2023-01-08 22:53:17 · 661 阅读 · 0 评论 -
机器翻译(MT)评价指标
BLEUBLEU总体思想就是准确率,假如给定标准译文reference,神经网络生成的句子是candidate,句子长度为n,candidate中有m个单词出现在reference,m/n就是bleu的1-gram的计算公式。BLEU还有许多变种。根据n-gram可以划分成多种评价指标,常见的指标有BLEU-1、BLEU-2、BLEU-3、BLEU-4四种,其中n-gram指的是连续的单词个数为n。BLEU-1衡量的是单词级别的准确性,更高阶的bleu可以衡量句子的流畅性。bleun=∑c∈cand原创 2022-04-25 20:10:39 · 1568 阅读 · 0 评论 -
基于能量的模型
转:https://zhuanlan.zhihu.com/p/343529491有些可视化以及清晰的见解来自ICLR 2020: Yann LeCun and Energy-Based Models。所谓的能量模型并不是一种新的技术,而是LeCun的一种尝试:将当前的DL,ML统一在能量模型的框架中。我们先理解一下何为能量函数,能量函数通常写作 E(x,y)E(x, y)E(x,y) 用于衡量 x,yx, yx,y 的 compatibility,也可以理解为 x,yx, yx,y 是否匹配,能量越小匹配转载 2021-07-13 14:00:27 · 1384 阅读 · 1 评论 -
信息抽取概述
文本信息抽取指的是这样一类文本处理技术, 它从自然语言文本中自动抽取指定类型的实体(entity) 、 关系(relation) 、 事件(event)等事实信息, 并形成结构化数据输出[Grishman, 1997] 。与自动文摘相比, 信息抽取一般是有目的地从文本中寻找所要的信息, 并将找到的信息转化成结构化格式表示, 一般采用类似框架的表示形式。 因此, 系统不需要生成自然语言的句子。 框架表示中包含哪些属性, 需要系统填充哪些槽, 都是事先设定好的。 而在自动文摘系统中,文摘的内容通常是不确定性原创 2021-07-12 17:22:24 · 845 阅读 · 0 评论 -
深度学习中的激活函数
激活函数神经网络神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数 Activation Function。为什么要使用激活函数?神经网络中激活函数的主要作用是提供网络的非线性建模能力,如不特别说明,激活函数一般而言是非线性函数。假设一个示例神经网络中仅包含线性卷积和全连接运算,那么该网络仅能够表达线性映射,即便增加网络的深度也依旧还是线性映射,难以有效建模实际环境中非线性分布的数据。加入(非线性)激活函数之后,深度神经网络才具备了分层的非线性映射学习能力。常原创 2021-07-12 16:51:36 · 545 阅读 · 0 评论 -
NLP中常用评测数据集介绍
GLUE通常来说,NLP可以分为自然语言理解(NLU)和自然语言生成(NLG)。在NLU方面,我们拿时下最流行的GLUE(General Language Understanding Evaluation)排行榜举例,其上集合了九项NLU的任务,分别是CoLA(The Corpus of Linguistic Acceptability):纽约大学发布的有关语法的数据集,该任务主要是对一个给定句子,判定其是否语法正确,因此CoLA属于单个句子的文本二分类任务;SST(The Stanford Sen原创 2021-06-10 14:23:16 · 1380 阅读 · 0 评论 -
自动文摘
自动文摘类型功能划分={指示型文摘报道型文摘评论型文摘功能划分= \begin{cases} 指示型文摘\\ 报道型文摘 \\评论型文摘 \end{cases}功能划分=⎩⎪⎨⎪⎧指示型文摘报道型文摘评论型文摘数量划分={单文档摘要多文档摘要数量划分= \begin{cases} 单文档摘要\\ 多文档摘要 \end{cases}数量划分={单文档摘要多文档摘要语言种类={单语言摘要跨语言摘要语言种类= \begin{cases} 单语言摘要\\ 跨语言摘要 \end{cases}语言种类={单原创 2021-05-11 15:48:01 · 141 阅读 · 0 评论 -
卷积神经网络CNN
卷积卷积这个概念最先在数学中学过,先看看下图卷积神经网络的计算过程。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-skNNAJmP-1620444467507)(D:\BLOG\图片\2109486090.gif)]上图卷积的计算跟数学中的卷积是不一样的。但在深度学习中我们还是称为卷积CNN的基本结构[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YWImpoko-1620444467510)(D:\BLOG\图片\1042406-20原创 2021-05-08 11:30:07 · 312 阅读 · 0 评论 -
依存句法分析与语义依存分析的区别
转:https://blog.csdn.net/u011806486/article/details/58034894依存句法分析依存语法:用词与词之间的依存关系来描述语言结构的框架。依存语法理论认为,一切结构句法现象可以概括为关联、组合和转位。“依存”就是指词与词之间支配与被支配的关系,这种关系不是对等的,而是有方向的。依存句法结构图的形式有三种:有向图、依存树、依存投射树。依存语法 (Dependency Parsing, DP) 通过分析语言单位内成分之间的依存关系揭示其句法结构。 直观来转载 2021-05-07 18:07:42 · 838 阅读 · 0 评论 -
NLP:自回归(Autoregressive LM)与自编码语言模型(Autoencoder LM)
转:https://blog.csdn.net/qq_33876194/article/details/98943383自回归根据上文内容预测下一个可能跟随的单词,就是常说的自左向右的语言模型任务,或者反过来也行,就是根据下文预测前面的单词,这种类型的LM被称为自回归语言模型。(GPT,ELMO)GPT 就是典型的自回归语言模型。ELMO尽管看上去利用了上文,也利用了下文,但是本质上仍然是自回归LM,这个跟模型具体怎么实现有关系。ELMO是做了两个方向(从左到右以及从右到左两个方向的语言模型),但是是分转载 2021-04-25 10:37:04 · 810 阅读 · 0 评论 -
Transformer
前言在介绍Transformer模型之前,先来回顾Encoder-Decoder中的Attention。其实质上就是Encoder中隐层输出的加权和,公式如下:ci=∑i=1Txαijhjc_i=\sum^{T_x}_{i=1}\alpha_{ij}h_jci=i=1∑Txαijhj将Attention机制从Encoder-Decoder框架中抽出,进一步抽象化,其本质上如下图:以机器翻译为例,我们可以将图中的Key,Value看作是source中的数据,这里的Key和Value是对应的原创 2021-04-24 01:33:24 · 198 阅读 · 0 评论 -
GPT模型
前言GPT主要出论文《Improving Language Understanding by Generative Pre-Training》,GPT 是"Generative Pre-Training"的简称,从名字看其含义是指的生成式的预训练。GPT 采用两阶段过程,第一个阶段是利用语言模型进行预训练(无监督形式),第二阶段通过 Fine-tuning 的模式解决下游任务(监督模式下)。模型结构GPT 使用 Transformer 的 Decoder 结构,并对 Transformer Dec原创 2021-04-23 10:39:45 · 902 阅读 · 0 评论 -
ELMo模型
论文地址:https://arxiv.org/abs/1802.05365前言在之前2013年的word2vec及2014年的GloVe的工作中,每个词对应一个vector,对于多义词无能为力。ELMo的工作对于此,提出了一个较好的解决方案。不同于以往的一个词对应一个向量,是固定的。在ELMo世界里,预训练好的模型不再只是向量对应关系,而是一个训练好的模型。使用时,将一句话或一段话输入模型,模型会根据上线文来推断每个词对应的词向量。这样做之后明显的好处之一就是对于多义词,可以结合前后语境对多义词进行理原创 2021-04-22 17:42:42 · 242 阅读 · 0 评论 -
elmo、GPT、bert三者之间有什么区别?
elmo、GPT、bert三者之间有什么区别?特征提取器:elmo采用LSTM进行提取,GPT和bert则采用Transformer进行提取。很多任务表明Transformer特征提取能力强于LSTM,elmo采用1层静态向量+2层LSTM,多层提取能力有限,而GPT和bert中的Transformer可采用多层,并行计算能力强。单/双向语言模型:GPT采用单向语言模型,elmo和bert采用双向语言模型。但是elmo实际上是两个单向语言模型(方向相反)的拼接,这种融合特征的能力比bert一体化融合原创 2021-04-21 14:37:49 · 3902 阅读 · 0 评论 -
Keras/Tensorflow subclassing API 实现的model,如何plot_model
class my_model(Model): def __init__(self, dim): super(my_model, self).__init__() self.Base = VGG16(input_shape=(dim), include_top = False, weights = 'imagenet') self.GAP = L.GlobalAveragePooling2D() self.BAT = L.Bat原创 2021-04-20 14:20:13 · 299 阅读 · 3 评论 -
Attention模型
转:https://www.cnblogs.com/jiangxinyang/p/9367497.html概述深度学习里的Attention model其实模拟的是人脑的注意力模型,举个例子来说,当我们观赏一幅画时,虽然我们可以看到整幅画的全貌,但是在我们深入仔细地观察时,其实眼睛聚焦的就只有很小的一块,这个时候人的大脑主要关注在这一小块图案上,也就是说这个时候人脑对整幅图的关注并不是均衡的,是有一定的权重区分的。这就是深度学习里的Attention Model的核心思想。人脑的注意力模型,说到底是一转载 2021-04-16 23:11:43 · 86 阅读 · 0 评论 -
残差网络
在VGG中,卷积网络达到了19层,在GoogLeNet中,网络史无前例的达到了22层。那么,网络的精度会随着网络的层数增多而增多吗?在深度学习中,网络层数增多一般会伴着下面几个问题计算资源的消耗模型容易过拟合梯度消失/梯度爆炸问题的产生问题1可以通过GPU集群来解决,对于一个企业资源并不是很大的问题;问题2的过拟合通过采集海量数据,并配合Dropout正则化等方法也可以有效避免;问题3通过Batch Normalization也可以避免。貌似我们只要无脑的增加网络的层数,我们就能从此获益,但实验原创 2021-04-06 23:49:50 · 163 阅读 · 0 评论 -
Keras.metrics中的accuracy总结
转:Keras.metrics中的accuracy总结背景Accuracy(准确率)是机器学习中最简单的一种评价模型好坏的指标,每一个从事机器学习工作的人一定都使用过这个指标。没从事过机器学习的人大都也知道这个指标,比如你去向别人推销一款自己做出来的字符识别软件,人家一定会问你准确率是多少。准确率听起来简单,但不是所有人都能理解得透彻,本文将介绍Keras中accuracy(也适用于Tensorflow)的几个新“玩法”。Keras中的accuracy介绍accuracy该accuracy就是大家转载 2021-04-06 23:38:08 · 314 阅读 · 0 评论 -
LSTM
转载:LSTM模型与前向反向传播算法由于RNN也有梯度消失的问题,因此很难处理长序列的数据,大牛们对RNN做了改进,得到了RNN的特例LSTM(Long Short-Term Memory),它可以避免常规RNN的梯度消失,因此在工业界得到了广泛的应用。从RNN到LSTM在RNN模型里,我们讲到了RNN具有如下的结构,每个序列索引位置t都有一个隐藏状态 h(t)h^{(t)}h(t)。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4mp8I2at-1617723171转载 2021-04-06 23:33:20 · 138 阅读 · 0 评论 -
分词的准确率和召回了如何定义
转:https://blog.csdn.net/u012297539/article/details/111864251但是在分词中标准答案和分词结果数不一定相等,因此要做一个思维转换。对于长度为n 的字符串,分词结果是一系列单词。设每个单词按照其在文本中的起止位置可以记作区间 [i , j],其中 1≤i≤j≤n1\leq i\leq j\leq n1≤i≤j≤n。那么标准答案所有区间构成集合A为正类,其它情况作为负类。同时,分词结果所有单词构成的区间集合为B。从图表中可以看出,重合部分就是正确部转载 2021-02-26 14:31:50 · 527 阅读 · 0 评论