清华NLP——刘知远团队大模型公开课(学习笔记)
文章平均质量分 74
清华NLP——刘知远团队大模型公开课(学习笔记)
笨笨sg
NEU-CS
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
清华NLP-刘知远团队大模型公开课(学习笔记)
链接: https://pan.baidu.com/s/1ZboqS6D5Rc705piL0ANXog?原创 2023-11-07 21:34:39 · 1999 阅读 · 1 评论 -
NLP入门——基础知识
它的目标是要通过与环境(Environment)交互,根据环境的反馈(Reward),优化自己的策略(Policy),再根据策略行动(Action),以获得更多更好的反馈奖励(Reward)。大语言模型也不属于生成式AI,比如谷歌的BERT,不擅长长文本生成工作。有能力学习输入序列中的所有词的相关性和上下文,不会收到短时记忆的影响;并非所有的生成式AI都属于大语言模型,如图像的扩散模型,并不输出文本;位置编码:规定了词在句子中出现的顺序,便于并行训练,提高速度。LLM中的大:参数多,高达数十亿;原创 2023-11-05 16:20:11 · 1895 阅读 · 0 评论 -
1.5 自然语言处理基础——词表示与语言模型
不同于N-gram模型直接将词作为一个符号来看,在Neural模型中,每个词都被抽象为一个具体的低维向量,相似的词对应的向量也会比较相似。缺点:可能有些词之间有非常细微的差异;将每一个词都用一个词向量表示,然后映射到一个向量空间中,这样子向量空间中的每个点都可以表示一个词。假设前提:一个词出现的概率只会受到他前面出现的词的影响(马尔可夫假设)。统计词在文章中出现的频数,然后通过频数进行计算得到相似度。缺点:任意两个词向量是正交的,计算出的相似度都是0.把人类的词表示为机器所能理解的词。原创 2023-11-07 21:25:02 · 658 阅读 · 0 评论 -
1-6 大模型基础-大模型之旅
集合了问答、情感分析、文本蕴含,和一个用于模型评估、比较、分析的在线平台。你一定很好奇,语言生成模型生成的内容千差万别,我们怎么评价这些语言生成模型的优劣呢?实际上,目前的大部分评测集都不约而同地把benchmark设计成了判断题或选择题,这样就非常方便评测了。GPT3在大量无标注数据的基础上学习,然后只需要少量的样本(带标注数据)就能表现很好。而且它整体呈现出这样一种趋势:随着参数和数据量的增长,模型的表现效果也越来越好。和之前的语言模型已经产生了很大的gap,并且甚至比人类的表现还要好。原创 2023-11-07 22:13:47 · 325 阅读 · 0 评论 -
2-5(篇外)词向量Word2Vec代码实战篇
实际场景下需要对文本中的标点符号、异常字符以及停用词去除掉以得到相对干净的数据,这里我们保留字母、数字和空格外其他的所有字符,有需要的同学可以自己加入停用词并更细粒度清理数据。黑色散点指的是所有词语,通过特殊单词向量的显示,我们可以看出刘备和诸葛亮挨的比较紧凑,其余的也差不多,说明模型的训练效果还是不错的。清华开的本门课程在Word2Vec这块并没单独开放一期视频,因此本人参考了B站上一个UP主的分享简单进行了Word2Vec代码实战。最后的结果如下图所示(哈哈,第一个匹配的可能效果不是很好)原创 2023-11-11 21:54:03 · 583 阅读 · 0 评论 -
2-6 循环神经网络(RNN)
因此,RNN是一类以序列数据为输入,在序列的演进方向进行递归且所有节点(循环单元)按链式连接的递归神经网络。如下图所示:x代表当前时间步的数据,h0、h1、h2表示的是不同时间步(并非指严格意义上的时间,可以理解为前后顺序)下的一个状态变量,存储过去及当前输入的一些信息。原创 2023-11-09 21:41:17 · 290 阅读 · 0 评论 -
2-3 神经网络的基本组成元素
也就是说如果神经网络中只存在线性运算的话,多层神经网络可由一层表示,也即两者的表达能力是一致的, 因此我们需要引入这样的非线性的激活函数来增加模型的表达能力,进而拟合更复杂的函数。其中,bias是偏置,wi是权重,x是输入,f是激活函数,h是输出。在隐含层中,后面每一层得到的结果都是依靠前一层的反馈得到的。如果没有激活函数,这两层神经网其实就可以变为一层。树突接受信号,轴突传递信号。w由向量变为了矩阵。原创 2023-11-08 18:55:11 · 329 阅读 · 0 评论 -
2-7 门控循环单元(GRU)
梯度消失或者爆炸),我们引入了更新门和重置门的概念(闸门机制)得到了新的模型GRU。为0的时候,对于新的激活状态我们可以得到如下计算公式,它表示忽略先前的隐藏状态,这表明当前的激活与过去无关,直接由当前的输入计算得到。为0的时候,我们可以发现其就等于当前的激活状态,这就类似重置门为0时候的情况,只考虑当前的输入,忽略前一个状态的影响。为1的时候,此时我们可以发现现状态等于前一个状态,也就是直接忽略了当前输入的影响。一个显著的例子就是:在一篇新文章的开头,过去的信息对于当前的激活是无用的。原创 2023-11-09 22:17:50 · 377 阅读 · 0 评论 -
2-5 词向量Word2Vec
Word2Vec是用来生成词向量的工具,其使用浅层神经网络将单词与分布式表示相关联,通过它可以捕获较为丰富的语义和语法规律:其包含两类模型,第一是Continuous bag-of-words (CBOW),第二是Continuous skip-gram;Word2vec中定义了一个固定大小的滑动窗口(沿着句子移动),窗口中间的词称为target(目标词),而其余的词成为context(上下文词)。前者是根据target预测context的值,而后者是根据context预测target的值。假设窗口大小为5原创 2023-11-08 23:08:49 · 418 阅读 · 0 评论 -
2-9 双向RNN
只能依据之前时刻的时序信息来预测下一时刻的输出,但在有些问题中,当前时刻的输出不仅和之前的状态有关,还可能和未来的状态有关系。从前往后:从0到3时刻正向计算,得到并保存每个时刻的隐藏层的输出向后传播。从后往前:从3时刻向0反向传播,得到并保存每个时刻向后隐藏层的输出。对于每个时刻t,输入会同时提供给两个方向相反的RNN。原创 2023-11-10 12:39:29 · 197 阅读 · 0 评论 -
1-9 编程环境和GPU服务器的介绍
虚拟环境是一种隔离Python环境的方法,conda是一个流行的环境和包管理器,pip是Python的包管理器。使用VS Code的远程连接插件,你可以在本地使用VS Code进行NLP开发,并在远程环境中执行代码和调试。了解常用的Linux命令和基本的命令行操作将使你能够在Linux终端中执行各种任务,例如文件管理、进程管理等。学习使用Git将使你能够有效地管理和协作NLP项目的代码,包括版本控制、分支管理和代码合并等。Tmux是一个终端复用器,它允许你在单个终端窗口中创建和管理多个会话和窗格。原创 2023-11-07 23:38:50 · 291 阅读 · 0 评论 -
1-7 大模型基础-大模型背后的范式
大模型就是在做迁移学习的这样一种事情:先在大规模无标注数据集中进行无监督学习训练,然后引入具体的样本(标注数据)进行参数微调,得到一个能在具体任务上表现极佳的模型。把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。原创 2023-11-07 23:14:29 · 437 阅读 · 0 评论 -
2-10 卷积神经网络(CNN)
CNN在诞生之初主要用于CV领域,但是由于其结构的特殊性,其也可以用于NLP领域的情感分类和关系分类等。原创 2023-11-11 00:33:43 · 605 阅读 · 0 评论 -
2-4 如何训练神经网络
在神经网络中经常使用梯度下降法作为优化方法。所谓梯度下降法:就是让当前的函数沿着变化幅度最大的方向进行减小(也即先求导,然后沿着该点的反梯度方向进行变化)α为学习率,学习率是为了控制增量的步伐,不至于太快或者太慢。原创 2023-11-08 20:50:20 · 330 阅读 · 0 评论 -
2-8 长短期记忆网络(LSTM)
用于选择记忆(和遗忘门相似,只是选择记忆的目标不同,前者是针对旧的信息,后者则是针对目前新输入的信息)。(也就是决定了当前的状态单元中包含了多少原有的信息以及多少当前输入的信息)。的数据,选择一部分记忆,并把这部分加入到新的记忆中去,完成记忆的更新。同GRU一样,LSTM的提出也是为了解决RNN中存在的三个问题。通过上述的两个门操作得到的结果进行计算,最后得到新的状态单元。字如其名,该门的作用是选择记忆,也就是选择性接受一部分来自。表示当前的激活状态,类似于GRU中更新门的操作。,用于学习长期的依赖关系。原创 2023-11-09 23:33:15 · 265 阅读 · 0 评论 -
2-11 演示:使用Pytorch训练模型
因为本节课讲述的过于模糊,不适合我这种刚入门的小白,因此暂时没有能力做本节的笔记,不过我倒是从网上找到了一个不错的项目。但是苦于没有源码,不过倒是有比较清晰完善的思路,值得一看。原创 2023-11-11 22:38:23 · 1030 阅读 · 0 评论 -
3-3 注意力机制--注意力机制的各种变式
的维度拉到同一维度,最后再经过一个激活函数和一个一维数组相乘即可得到一个标量。如果维度不相同,我们就需要在中间加入一个权重矩阵,进而实现相乘。维度不等的条件下诞生的,W1和W2的作用就是将s和。的向量维度相同的情况下,如果维度不相同呢?原创 2023-11-13 14:07:00 · 294 阅读 · 0 评论 -
3-10 Transformer结构--试验结果以及可视化
不同行的色块代表不同的注意力头,可以看到making确实捕捉到了和其在语义和语法上颇有联系的词。翻译的效果有了一个较好的提升,特别是在计算资源上,得到了显著地降低。可以看到这个its确实捕捉到了it指代的可能是Law(指代关系)原创 2023-11-14 20:36:41 · 333 阅读 · 0 评论 -
3-2 注意力机制--原理介绍
注意力机制的实质其实就是一组query向量按序对一组value向量不断进行动态选择的过程。关于如何计算注意力分数e,其实有很多变体(不单单只有上述的两个向量进行点乘然后拼接的操作)s_%7B1%7Dh_%7Bi%7D。原创 2023-11-13 00:33:14 · 428 阅读 · 0 评论 -
3-7 Transformer结构--Encoder Block
因为前面我们讲到的Q,K,V分别用三个字母表示,但因为transformer中的attention使用的是一种自注意力机制,我们希望的是每个token能够自主地选择应该关注这句话中的哪些token并进行信息的整合,它们其实都等于文本的表示向量乘上一个变换矩阵得到的。在之前我们是用q和v的点积计算注意力分数,而在这里,我们使用q和k的点积计算注意力分数,最后还是得到一个k的列数维度的注意力分数向量,然后通过一个softmax变为一个概率分布,接着对v向量进行矩阵乘法(加权平均)。原创 2023-11-13 22:43:24 · 962 阅读 · 0 评论 -
3-6 Transformer结构--输入编码(BPE、PE)
比如对于单词“lowest",如果在现有词表中没有这个单词的话,通过BPE我们可以将其分解为low和est,这样就实现了对新的单词的一个表示,同样通过这样一种方式可以让模型学习到这三者之间的关系,这样的关系也可以泛化到像其他的单词中,比如smart和smartest。其中pos表示当前token在句子中的位置(它是一个从0到序列长度的一个数(注意这里的序列长度是指语句序列,而非词表的维度)) ,i则是从0-d/2的一个数(表示当前位置在embedding后的向量维度中的index);原创 2023-11-13 20:30:18 · 610 阅读 · 0 评论 -
3-9 Transformer结构--优化Tricks
这意味着模型每次生成一个单词时,将其作为输入,并使用生成的单词继续生成下一个单词,以此类推。为了得到更准确的生成结果,一种常用的策略是使用束搜索(beam search)来探索多个可能的生成序列,并根据得分进行选择。此外,为了避免生成过长的序列,可以使用长度惩罚来鼓励更短的输出序列。它结合了AdaGrad和RMSProp的优点,通过自适应地计算每个参数的学习率和动量,能够在训练过程中更有效地更新模型参数。这有助于随机地丢弃一部分神经元的输出,以减少它们之间的依赖关系,并增加模型的鲁棒性。原创 2023-11-14 20:22:01 · 603 阅读 · 0 评论 -
3-5 Transformer结构--概述
整体来讲,该模型依然是encoder(左侧)-decoder(右侧)相结合的模型;输出层(下方):需要将一个正常的文本序列切分成一个个小的单元(token),然后经过embedding层(嵌入层)化为向量表示。采用byte pair encoding(BPE)的方式对文本进行切分;同时会在每个位置加上token的一个位置向量(positional encoding)。主体(上方):是由多个encoder(左上)或decoer层(右上)堆叠而成的,不同层之间的结构相同,只是参数不同。原创 2023-11-13 16:41:44 · 267 阅读 · 0 评论 -
3-4 注意力机制--注意力机制的特点
注意力机制给RNN带来了很多有意义的改变,而且极大提高了RNN在不同NLP任务上的表现。原创 2023-11-13 14:22:37 · 276 阅读 · 0 评论 -
3-8 Transformer结构--Decoder Block
由于每个批次输入序列长度是不一样的,因此需要对输入序列进行对齐。因为这些填充的位置,其实是没什么意义的,所以我们的attention机制不应该把注意力放在这些位置上,可以在这些位置上加一个非常大的负数(负无穷),这样的话,经过softmax,这些位置的概率就会接近0。答:其实我是把这个“未来信息”理解错误了,比如现在i位置是eat,这里的i+1位置的信息不是指“apples”,而是指“苹果”,也就是说我们在生成目标序列i位置的时候,只能依赖于i位置之前的输出“I like to",而不能依赖于“苹果”。原创 2023-11-14 20:03:34 · 596 阅读 · 0 评论 -
3-11 Transformer结构--优缺点
优点: Transformer是一种强大的模型,已在多个NLP任务中取得了成功。相比传统的循环神经网络(RNN)和卷积神经网络(CNN),Transformer在处理长序列和捕捉长距离依赖关系方面表现出色。 Transformer的并行化能力很强。由于没有序列依赖性,Transformer可以同时处理输入序列中的所有位置,因此可以在多个GPU上并行计算,加速训练过程。 Transformer通过引入自注意力机制证明了其有效性。自注意力允许模型根据输入序列内部的关联性来动态地加权不同位置的信息,从而更好原创 2023-11-14 20:40:16 · 2952 阅读 · 0 评论
分享