- 博客(130)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 AI学习记录 - torch 的 view 函数画图解释
假设我们一次性训练两个句子,batch_size = 2.i want a beer . // 5个tokeni want a coke . // 5个token我们的矩阵是下图的上面这个大长方块,经过view函数,切割成多个块,这是为了满足多头自注意力的计算方式。
2024-08-11 21:30:20
193
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 AI学习记录 - gpt如何进行token化,理论知识,以GPT2为举例
在不同的语言模型当中,会有不一样的token训练方式,这却决于具体的应用场景,以GPT2为例,一共有50257个token。token就是词汇表,是训练使用到的所有的词汇。下面看下第1000个token到第1300个token之间的词汇长什么样?。。。。。。。。。。。。这个词汇表不是天生就有的,而是通过文本语料训练出来的。
2024-08-08 23:03:07
950
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 AI学习记录 - 自注意力机制的计算流程图
过段时间解释一下,为啥这样子计算,研究这个自注意力花了不少时间,网上很多讲概念,但是没有具体的流程图和计算方式总结…
2024-08-07 20:50:59
430
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 AI学习记录 - transformer的位置编码的理解
先看三角函数为什么可以,我们看下三角函数的图像先提一个点:位置信息肯定是唯一的,或者是在很长的文字当中,起码重复度不会太高,x轴代表位置,y轴代表叠加上去的值1、假设只使用一个三角函数sin,我们将第2和第14两个位置输入到sin,他们的值很像,在神经网络的训练中,很容易把第2个位置和第14个位置当成是一个位置,不满足我们上面说到的要求位置唯一性。sin2sin14。
2024-07-26 23:15:49
762
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 AI学习记录 - 导数在神经网络训练中的作用(自己画的图,很丑不要介意!)
我们去调整神经网络的权重,一般不会手动去调整,如果只有很少的神经元,人工调整确实可以实现,当我们有几十层,一层几百上千个神经元的时候,人工调整就不可能了。一个权重的调整涉及到两个问题,一个是调大还是调小,一个是调整的幅度。
2024-07-24 00:34:30
404
原创 AI学习记录 - 怎么理解 torch 的 nn.Conv2d
红圈移动步伐为2(stride=2),移动红圈的时候超出了,蓝色框默认设置为全0,你也可以设置成其他数字(padding=0)
2024-08-24 10:36:02
247
原创 AI学习记录 - 如何快速构造一个简单的token词汇表
但是实际上当你训练好模型之后,就算你要求用户使用英语法语西班牙语,但是用户可能会使用其它语言去提问,不在我们上面的区间,所以我们要兼容用户输入一些其他语言,但是由于我们没有对其他语言独立给一个位置,所以当使用其他语言去跟模型提问的时候,效果可能不会很好,但我们针对的用户主要是英文法语西班牙语。”)就是获取一个字符在unicode编码世界中的一个下标,可以看到对你重要的字符都在下面,你可以随意更改上面的字符。原先已经拥有字符的下标,我们不去改它了,继续让他使用unicode编码的下标即可。
2024-08-21 23:47:12
314
原创 AI学习记录 - transformers 的 linear 词映射层的详细分析, CrossEntropyLoss 函数解析
词汇表:假设词汇表包含四个词汇:[token_0, token_1, token_2, token_3]。模型的输出概率分布:模型的输出经过 Softmax 转换后,得到概率分布:[0.1,0.5,0.2,0.2]
2024-08-18 15:57:14
353
原创 AI学习记录 - decoder层如何与ecoder层结合
接下来讲的如下 decoder层如何与ecoder层怎么使用注意力机制结合的公式为:先生成掩码,然后把随机权重放进去,重点是这个掩码形状是固定的,负无穷大动态生成的,因为用户输入的句子长度不固定,有空余的位置我们需要填充 [PAD], [PAD], 都是负无穷大,下面红色交叉都设置成[PAD]将encoder的output的语义按照 权重 叠加到 START 和 h 上面,每次decoder的第一个token都是 START,固定的.得出新的矩阵,叠加上了输入词: abcd[PAD][PAD
2024-08-15 18:14:49
171
原创 AI学习记录 - transformers的decoder和encoder中的自注意力矩阵和掩码矩阵的数据处理
在实际计算的过程中,掩码不仅仅只是生成一半就可以了,我都知道GPT其实有限制token长度这一说法,假如限制50个token,我们最后生成的注意力矩阵就是长宽都是50个,但是当我们的句子不够50的时候,剩下的位置需要用指定字符去填充。
2024-08-15 14:51:34
449
原创 AI学习记录 - 自注意力机制之权重矩阵和查询向量V矩阵的计算方式的补充
如果我们熟悉自注意力的话,就会发现Q和K矩阵结合的时候,会有一个长度为句子长度的权重矩阵,假如有句子abc,求abc的注意力权重矩阵的话,那就是一个3*3的矩阵如下矩阵。我们假设了句子长度为3,那么V矩阵肯定也是宽为3,因为有三个词汇痲,长度为n的矩阵,假设n为5,每一行都是一个词向量。如下图直接使用矩阵乘法将这两个矩阵相称即可,得到一个一样的矩阵,这就是新的词向量。为什么使用矩阵乘法相乘就可以了呢,意义在哪里?意义:原来的abc词向量就是对应上面每一行,自注意之后变成新的词向量为a1b2b3。
2024-08-14 21:12:13
154
原创 AI学习记录 - torch 的 matmul和dot的关联,也就是点乘和点积的联系
二维矩阵点乘# 定义两个二维矩阵[3, 4]])[2, 4]])# 使用 matmul 计算展平向量的点积三维矩阵点乘# 定义两个二维矩阵[1, 2],[3, 4]],[1, 2],[3, 4]])[1, 3],[2, 4]],[1, 3],[2, 4]])# 使用 matmul 计算展平向量的点积。
2024-08-13 00:48:57
353
原创 AI学习记录 - transformer的Embedding层
Embedding层就是一个巨大的矩阵,边长分别是词汇表长度和词向量维度,矩阵里面的每一个数字都是一个随机初始化的,或者是其他地方经过训练之后拿过来的。在已经训练的过程中,假设我们窗口为50个token,意思就是我们生成下一个词的时候,只使用前面50个词去预测下个词,就算前面继续有词,我也不会应用,那么就变成下图。
2024-08-11 14:01:16
202
原创 AI学习记录 - 对于 torch 求导数
最近在学习torch很疑惑实现模型代码的过程中,我们只需要定义模型的结构,却不需要手动实现其反向传播的逻辑,真的很神奇,但我还未研究其底层代码实现逻辑,这里只展示一下这个神奇的过程。一个简单的数学公式,简单编写代码即可求出 x 和 y 对 z 的影响程度和影响方向就算再复杂的公式,也可以一下子求出来。
2024-08-11 00:57:37
334
原创 AI学习记录 - 图像识别的基础入门
代码实现,图像识别入门其实非常简单,这里使用的是js,其实就是把二维数组进行公式化处理,处理方式如上图,不同的公式代表的不同的意义,这些意义网上其实非常多,这里就不细讲了。
2024-07-24 00:03:33
183
原创 AI学习记录 -全链接层js代码实现,可在react,vue,angular中调用
6、alltrainsTotal 是总的循环训练次数,假设有20条训练数据,20 * 200 = 4000次,训练完一次20条数据就计算一次损失率,也就是计算预测值和真实值之间的误差。4、neuronNetworkNeuronInstance 是配置neuronNetworkConfig 之后,生成的神经网络实例对象,我们可以在这里面看到每个神经元的权重。2、每个节点都是一个线性公式y=kx+b,线性公式之间加上激活函数。3、计算预测值和真实值之间使用的是均方误差函数。5、learn_rate 是学习率。
2024-07-23 22:38:58
425
原创 AI学习记录 -使用react开发一个网页,对接chatgpt接口,附带一些英语的学习prompt
实现功能:1、对接gpt35模型问答,并实现了流式传输(在java端)2、在实际使用中,我们的问答历史会经常分享给他人,所以下图的 copy all 按钮,可以copy成一个json然后通过社交软件发送给别人,别人就可以轻松应用你的问答历史。3、选择文件,在我们预想当中,我们可能会经常遇到向文档提问(当时还不知道embedding的知识哈哈哈),通过拆分文档,一段段跟gpt提问,当前段落是否和用户内容相关,相关就回答段落问题(段落拆分通过java实现)
2024-07-23 22:22:53
574
原创 python爬虫快速入门
2、通过class获取table下的tbody标签的tr列表,获取到的是一个数组(注:前面加.)5、获取text,获取到的东西都是数组,所以我们要获取第0个元素(注:前面加.)12、记住.//和//是不一样的,为了防止错误,我们全部都要使用.//// 从当前节点选取子孙节点,而不考虑它们的位置,跨节点获取标签。4、获取tr标签的第二个td标签(注:前面加.)6、获取a标签里面的href的值(注:前面加.)7、获取数组的最后一个元素 -1(注:前面加.)3、从数组的第二个开始获取(注:前面加.)
2023-03-15 11:09:30
563
原创 redux原理
context.js下面展示一些 内联代码片。import React, { Component, useLayoutEffect, useReducer, useContext } from 'react' export const ReactReduxContext = React.createContext();App.jsimport Home from './component/home' import React, { Component } from 'react'; impo
2023-02-22 10:32:44
91
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人