自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 FlashAttention介绍(1.0版本)

FlashAttention:IO感知的精确注意力。通过GPU硬件的特殊设计,尽可能的避免在HBM中读取或者写入注意力矩阵。以自注意力的计算为例,其计算流程为:1)首先从全局内存(HBM)中读取矩阵Q和K,并将计算好的矩阵S再写入全局内存。2)之后再从全局内存中获取矩阵S,计算Softmax得到矩阵P再写入全局内存。3)之后读取矩阵P和矩阵V ,计算得到矩阵O,写入HBM。我们可以发现在自注意力分数的计算过程中,不但产生了中间注意力矩阵S、P,并且还对HBM频繁的写入S和P。

2024-06-05 17:04:47 846

原创 什么是预训练?

预训练

2024-05-20 19:58:00 752

原创 FP32,TF32,FP16,BF16介绍

浮点数是一种数据类型,指有小数点的实数。以二进制存储在计算机中时,包括符号位,指数位和小数位(尾数位)。浮点型数据分为:单精度(float,4字节,32比特)与双精度(double,8字节,64位比特)不同于定点数,浮点型数据以二进制存储在计算机中,因此计算时一般都是有误差,都是近似。(一般期望两个浮点型的误差相互抵消,所以一般使用同类型的浮点数进行相互计算例:0.1用二进制表示,将是一个无限循环小数,因此会出现舍入误差,造成精度损失。进制相互转换:1)整数十进制转化为二进制:除2取余数。

2024-01-19 20:41:08 4673

原创 VS Code连接服务器,Ctrl + 点击 无法跳转至函数底层(python)

在使用vs code连接远程服务器,打开python项目时,发现如下图所示,试了试ctrl + 鼠标左键无法链接跳转至函数内部,对代码开发造成极大影响。随后发现没有选择环境python interpreter,可无论是设置还是vscode右下角都找不到select interpreter。后来发现vs code初次远程连接服务器时,需要在服务器上启用一个拓展,其实就在上图处重新install一下即可。

2024-01-16 11:03:04 2000

原创 Linux:创建用户(未完待续)

需要在/etc/passwd文件中,找到如下图所示的命令,将sh 改为 bash,最后再关闭命令窗口,重载一下即可。bash内置了跟踪和记录用户输入命令的功能,这些命令历史记录被存储在当前用户的~/.bashhistory文件中。(这是因为/etc/sudoers文件默认是只读的,对于root也是,因此需要对sudoers文件添加写权限)刚刚成功创建的用户没有sudo权限,需要现在/etc/sudoers文件中给予权限,才能使用sudo命令。3)编辑sudoers文件,用新建用户名添加一行命令即可。

2024-01-03 20:56:58 376

原创 Linux:Ubuntu下miniconda的下载安装

注:上述1-5,执行若报权限不足:Permission denied时,需要在命令前加上sudo。进入下载目录后,运行上述命令,安装过程中遇见的选择全部输入yes。3. 配置环境变量(使得conda在任意位置都可以直接使用)5. 输入conda,出现conda的信息则安装成功。或者,关闭窗口再重新打开。下载的具体目录自己设置。

2024-01-03 16:32:19 1553

原创 关于selenium库浏览器webdriver不能被找到的问题(firefox)——NoSuchDriverException

谷歌驱动的各历史版本:https://registry.npmmirror.com/binary.html?火狐的各历史版本:https://ftp.mozilla.org/pub/mozilla.org//firefox/releases/谷歌浏览器的历史版本:https://downzen.com/en/windows/google-chrome/versions/火狐各驱动历史版本:https://github.com/mozilla/geckodriver/releases/

2023-11-23 12:46:33 1313

原创 深度学习:lora微调

正常神经网络:输入x -> 全连接层(w) -> 输出y,训练时输入x,y数据来更新参数w,使得loss最小,w达到最优。但在大模型中,参数量都是几十几百亿的没计算量极大,在进行梯度计算时,内存硬件都无法支持。LoRA 的基本原理是冻结预训练好的模型权重参数,在冻结原模型参数的情况下,通过往模型中加入额外的网络层,并只训练这些新增的网络层参数。r + d*r,并且r

2023-10-27 19:13:57 1662

原创 深度学习:详解梯度下降、随机梯度下降、小批量随机梯度下降

但每次迭代中只使用一个样本计算梯度,因此每次迭代的梯度都是有噪声的,毕竟不是所有样本的均值,所以下降(下山)会走一点弯路,但总体因为总的迭代次数很多,所以随机梯度下降法最终会收敛到最优解 ,还是划得来的。我们可以其看作一个下山的过程:对于梯度下降而已,是找到了最优的下山路径,所有它的曲线比较直,而对于随机梯度下降,它因为随机选一个样本ti来近似f(x)——所有样本的损失平均,所以找的并不是最优的下山路径,但方向是对的,只是要走弯路,因此它下山的曲线比较曲折。随机梯度下降,是指在时间t,

2023-10-27 16:13:57 2463 2

原创 深度学习:什么过拟合?什么是欠拟合

上图左侧就是欠拟合,右侧就是过拟合。一个由于模型太过于简单难以拟合所有数据,一个模型记住了所有的训练数据,但泛化误差却很大(因为我们需要的模型并不是记住所有的训练数据,而是可以帮我们进行预测未知features的label)。如上图所示,模型容量就是模型复杂度,低容量模型难以拟合所有的数据(欠拟合),高容量的模型可以记住所有的训练数据(过拟合)。甚至于,为了追求低的泛化误差,甚至可以使得模型过拟合!模型对未知数据预测的误差即为泛化误差,

2023-10-27 15:31:07 49

原创 深度学习:什么是梯度爆炸/梯度消失?

梯度消失:神经网络在进行反向传播(BP)的时候会对参数W进行更新,梯度消失就是靠后面网络层能够正常的得到一个合理的偏导数,但是靠近输入层的网络层,计算的到的偏导数近乎零,W几乎无法得到更新。梯度爆炸:是靠近输入层的网络层,计算得到的偏导数极大。公式:w1 = w0 - lr * △w△w过大和过小就是梯度爆炸、消失。

2023-10-27 15:21:36 73

原创 git:建立远程仓库上传项目

token在github上设置:选择setting->developer settings->personal access tokens。再点击generate new token即可(若原本有token,需要先删除),然后自己设置事件、仓库、权限即可(一般来说上传项目,必须将权限中的workflows,contents权限选择上)。然后生成的token就是你在第7步需要输入的密码了。是因为你这个文件夹之前连接过别的仓库所以需要先:git remote rm origin。master为分支名称。

2023-10-22 12:44:55 30

原创 Java:restudy——SpringBoot中的controller

2)当需要同时返回页面和字符串时,需要使用@Controller,来注解这个Controller类,然后在返回字符串的方法上,使用@ResponseBody,来注解那个具体的方法。3)当不需要返回页面时,可以直接使用@RestController注解,来代替@Controller和@ResponseBody,即可直接返回结果。1)当Controller类存在返回页面的控制器时,不可以使用@RestController来注解这个Controller类。它主要用于提交数据,例如表单提交、文件上传等。

2023-10-01 20:10:25 37

原创 深度学习:详解word2vec + 实践操作(包括text2word)

Text2vec 的输入是整个文本序列,输出是文本序列对应的向量表示。Word2vec 的训练目标是最小化相似单词在空间中的距离或最大化不相似单词在空间中的距离。Text2vec 的训练目标是最小化文本之间的距离或最大化相似文本的相似度。Text2vec 和 Word2vec 都是用于将文本(文本中的单词或字符)转换为向量的方法。Word2vec 的输入是单个单词,输出是单词对应的向量表示。Text2vec 通常用于处理整个文本序列的任务,如文本分类、文本相似度计算、文本聚类等。

2023-09-21 21:05:05 4662 1

原创 Java:IDEA社区版创建Spring Boot

网上搜了许多方法,大多是File->Settings->Plugins,再在IEAD或者直接网站上直接下载Spring Assistant,Spring Boot Helper之类的插件。网上搜到的关于IDEA创建Spring Boot项目,通常是使用IDEA企业版通过新建项目 -> Spring Initializr进行创建,操作十分简单。在https://start.spring.io/网址中在线创建Spring Boot项目,下载后,再使用IDEA打开运行。打开项目,运行main函数。

2023-09-20 20:06:33 323

原创 Java:jdk安装 + 环境配置

下载jdk下载地址:https://www.oracle.com/cn/java/technologies/downloads/archive/选择对应版本的jdk根据自己的系统,进行下载(最好是Installer)双击下载的exe文件,傻瓜安装即可点击此电脑、点击鼠标右键选择属性再点击系统高级设置点击系统变量进行修改修改系统变量:1.新增一个JAVA_HOME (jdk地址)2.点击Path, 点击新建,写入以下内容(也可以直接写jdk地址, 而不使用JAVA_HOME)验

2023-09-20 19:32:33 30

原创 笔记:《动手学深度学习》——NLP

isinstance(net,nn.Module)判断模型是否自定义:使用库内预先包装好的模型:net.parameters() 获取模型参数使用自定义模型:net.params获取模型参数(params为自定义属性)

2023-09-19 19:53:45 174

原创 笔记:《ChatGPT原理与实战》第一章 了解ChatGPT

2017年《Attention Is All You Need》论文首次提出 基于自我注意力 机制的模型2017年前,自然语言领域的主流模型还是RNN(优点:可以很好的处理具有时间序列的数据,但在处理较长序列,如长文章、图书时,存在模型不稳定或模型过早停止有效训练的问题)Transformer模型存在6500万个可调参数,它就是一个基于自我注意力机制的模型,是当时最先进的LLM什么是GPT(2018年推出)?GPT(Generative Pre-trained Transformer),即生成式预

2023-09-19 10:07:45 131

原创 深度学习:详谈P(查准率,准确率,Precision),R(查全率,召回率,Recall),F1值

定义:acc=predict_right_num/predict_num (准确率)P=真正预测准确的数量/预测是准确的数量 (精确率)R=真正预测准确的数量/所有真正好的数量 (召回率)F值是:F(k) = ( 1 + k ) * P * R / ( ( k*k ) * P + R )   注释:k>0 度量了 查全率 对 查准率 的相对重要性。k>1查全率有更大影响;k<1查准率有更大影响。    F(1) = 2 * P * R / ( P + R )

2023-09-18 19:58:53 1473

原创 Python:word,excel操作

df = pd.DataFrame(data, columns=[‘列名1’, ‘列名2’])     #选择data格式为[[],[],[],[],…data.values.tolist()     # 将excel表转化为[[],[],[],[],…,[]]的格式,一个[]为一行。print(data.at[0, ‘A’])     # 打印第一行第一列的单元格数据。读取excel—openpyxl。读取excel—pandas。

2023-09-11 20:51:03 871

原创 深度学习:huggingface简单介绍---常用函数(数据集处理+dict+model),简单使用(tokenzier + model),简单例子(中文分类+中文填空+中文句子关系推断)

huggingface是一个开源社区,它提供了先进的NLP模型,数据集、以及其它便利工具。huggingface提供的模型非常多,但主要的模型为:自回归: GPT2 Trasnformer-XL XLNet自编码: BERT ALBERT RoBERTa ELECTRA自回归模型:预测下一个词,因为使用x获取y叫做回归,所有x预测下一个x称为自回归自编码模型:还原出本身,根据上下为还原出本身的词Seq2Seq: 从一个文本序列到另一个序列,比如机器翻译。

2023-08-23 11:39:58 3626

原创 Python:jieba介绍

Inverse Document Frequency(逆文档频率):指一个词在所有文档中出现的频率的倒数( l o g ( 文档集合中的文档总数 / 包含该单词的文档数 ) ),用于衡量一个词的普遍程度。逆文档频率越大,表示一个词越独特,重要程度越高。例如,在一个包含1000篇文档的文档集合中,某个单词在100篇文档中出现过,则该单词的IDF为 l o g ( 1000 / 100 ) = 1.0。例如,在一篇包含100个单词的文档中,某个单词出现了10次,则该单词的TF为 10 / 100 = 0.1。

2023-08-18 11:03:04 47

原创 深度学习:Langchain-ChatGLM项目介绍

在图中可以发现,进行vector search时,找到对应的匹配文本后,并不是将该已知信息文本返回,还要将它的上一个和下一个分段也扩充一起返回(防止语义丢失,原本只有100字限制,经过上下文扩充后达到250字左右),并与query提问组成了prompt,交给LLM自然语言模型。注意:匹配的文本可能不是只取top1,而是top5取前五个。这时有多个上下文分段了,需要再处理,可能会有上下文分段扩充多遍的情况,此时会再进行 重新排序+去重 , 避免不同段扩充之后,扩充了相同内容,浪费了语言模型的字符总数。

2023-08-17 11:18:24 1192

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除