网站排名优化快速,上海官网建设,广州网站建设与网页设计,求助用cms做网站设计_以我的家乡家乡为主题gpt是序列预测模型。
问答是通过确定问答格式样本训练出来的#xff01;比如“Q#xff1a;xxxx.A:xxx本质还是根据前面的序列预测后面的序列。在自回归训练过程中#xff0c;文本序列#xff08;可能包含问题和紧随其后的答案#xff09;被视为一个整体输入到模型…gpt是序列预测模型。
问答是通过确定问答格式样本训练出来的比如“Qxxxx.A:xxx本质还是根据前面的序列预测后面的序列。在自回归训练过程中文本序列可能包含问题和紧随其后的答案被视为一个整体输入到模型中。
词嵌入是把词汇转换成n维向量的层此时向量不考虑前后文只考虑这个词是什么。类似查词典。
自注意力机制是把局部特征向量转换成全局特征向量的层也就是考虑前后文改变这个词意q反映是元素关注特征的向量k是元素有的供别人关注特征的向量所以点积之后反映的相似度代表了关注的和对方有的的契合度也就可以衡量注意力得分了除以维度开根是为了防止梯度爆炸softmax是为了标准化。得到的就是注意力得分然后乘以对方的v向量就是受到对方的影响。
预测则是靠fnn(前馈网络)进行的。
gpt的参数通过反向传递和梯度下降进行查找的。经典的梯度下降就是通过链式法则的数学方法不过也有随机梯度下降adam什么的方法。变动一点的数值方法不知道有没有。
完整预测过程:
词嵌入矩阵是二维的就像词典一样把词转换成n维度向量有两个索引分别是词语还有维度比如cat的向量是3257162。[cat,3]就是57.这样转换完得到的就是3维的局部向量,比如第1句的第3个词语是cat,转换后就是[1304]3257162。 再去多头自注意机制层各个头平分维度在低维子空间计算所以每一个头管5维度/头数个维度这个数也是dkdq和dv就是查询向量键向量和值向量的维度。然后用序列内每一个元素的局部特征向量乘以查询向量变换矩阵键向量变换矩阵和值向量变换矩阵就可以得到查询向量键向量和值向量。用a的查询向量点积b的键向量就可以得到a对b的注意力得分然后除以向量维度kqv的都一样等于局部特征向量除以头数的1/2次方这是为了防止过大我之前有想为什么不除以模说是实践中训练时间会高很多除以这个可以削弱维度太多造成相似度的数值过大。再把这个注意力得分除以根号维度的东西做softmax归一化就可以放注意力得分矩阵里的a,b位置了这个矩阵n*n代表每一个元素i对元素j的注意s受影响程度用这个值乘上j的v向量就是对i的影响把每一个头得到的这个影响重新拼起来就是和原来局部特征向量维数一样的一个向量通过残差连接把他加回原来的局部特征向量再做层归一化归一化加缩放平移就是全局特征向量。全局特征向量再放FNN里面预测后面的序列特别是我发现预测的序列长度和原来的序列一定是相同的因为算完的是改变值加上原来的全局特征序列残差就是新的序列的全局特征序列。再归一化然后用词嵌入矩阵的转置矩阵向量to词汇词汇维度转回去。 但是这个时候转回去可能发现转回的向量没有对应的词比如这里适合放意思是15266的词语但是词嵌入矩阵里没有只有15263的apple和15267的banana。那么就转概率或者说得分所有概率用三维概率/得分分布矩阵保存。[1(第一句),4第4个词,apple(词汇通常也会转编码)]4得分[1,4,banana]6(得分)。 然后用softmax归一化之后所有得分之和变成1就是概率了[1(第一句),4第4个词,apple(词汇通常也会转编码)]0.4[1,4,banana]0.6。 然后选最大或者全输出什么的就看选择了。比如选最大那么就推测下一个词语是banana。 sleepgpt主要是利用了全局特征向量这个功能。光通过局部特征无法判断有病与否。
某一个时间点不看前后无论处在哪一个睡眠时期都不是有问题的。
但是特定的一些序列比如121(我乱说的举个例子)323之类的就能说明有睡眠问题。
这就是gpt在分类中的运用。 最后说明一下知识是以参数形式隐性的存储在自注意力FNN层归一化等层的训练参数中的。绝大多数比如查询Q、键K和值V矩阵是通过训练学习到的参数但是像注意力得分矩阵这种是需要根据q向量和前后文kv向量算的当然是每一次理解前后文的时候都要去算的。