Self-Attention
核心公式 Attention(Q,K,V)=softmax(QKTdk)V\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=softmax(dkQKT)V 来源 我们要通过考虑一整串输入的向量来得到输出,每个 bbb 都是考虑了所有 aaa 之后产生的。以 b1b^1b1 为例,我们来介绍这个过程。 自注意力的目的是考虑整个序列,但是又不希望把整个序列的所有信息包在一个窗口里,所以有一个特别的机制,用 α\alphaα 来判断每个向量与 a1a^1a1 的关联程度 两个向量点积的结果在某种程度上可以反映两个向量的相似度。如图(a)方式,把输入的两个向量分别乘上两个不同的矩阵 WqW^qWq、WkW^kWk,得到两个向量 qqq 和 kkk,再把 qqq 和 kkk 做点积,把他们做逐元素的相乘,求和后就得到了 α\alphaα。这是计算 α\alphaα...
DL基础
激活函数 g′(z)=g(z)(1−g(z))g'(z)=g(z)(1-g(z))g′(z)=g(z)(1−g(z)) tanh:g(z)=tanh(z)=a=ez−e−zez+e−zg(z)=tanh(z)=a=\frac{e^z-e^{-z}}{e^z+e^{-z}}g(z)=tanh(z)=a=ez+e−zez−e−z, g′(z)=(1−g2(z))g'(z)=(1-g^2(z))g′(z)=(1−g2(z)) ReLU: g(z)=a=max(0,z)g(z)=a=max(0,z)g(z)=a=max(0,z) leaky ReLU: a=max(0.01z,z)a=max(0.01z,z)a=max(0.01z,z) 损失函数 常见的损失函数有均方误差和交叉熵误差 均方误差(MSE) 公式:E=12∑k(yk−tk)2E = \frac{1}{2} \sum_{k}(y_k - t_k)^2E=21∑k(yk−tk)2,其中 yky_kyk 表示神经网络的输出,tkt_ktk 表示监督数据,k 表示数据的维数。 python...
深度神经网络DNN部分原理
DNN 上图是一个四层的神经网络,有三个隐藏层。 用 L 表示层数,n[l]n^{[l]}n[l] 表示第 l 个隐藏层的神经元数目,a[l]a^{[l]}a[l] 来记作 l 层激活后的结果。用激活函数 g[l]g^{[l]}g[l] 计算 z[l]z^{[l]}z[l] 前向传播和反向传播 前向传播 的步骤可以写成 z[l]=W[l]⋅A[l−1]+b[l](1)z^{[l]}= W^{[l]}·A^{[l-1]}+b^{[l]}\tag{1} z[l]=W[l]⋅A[l−1]+b[l](1) A[l]=g[l](Z[l])(2)A^{[l]}= g^{[l]}(Z^{[l]})\tag{2} A[l]=g[l](Z[l])(2) 前向传播需要喂入 A[0]A^{[0]}A[0] 也就是 XXX,来初始化;初始化的是第一层的输入值。a[0]a^{[0]}a[0] 对应于一个训练样本的输入特征,而 A[0]A^{[0]}A[0] 对应于一整个训练样本的输入特征,所以这就是这条链的第一个前向函数的输入,重复这个步骤就可以从左到右计算前向传播。 反向传播...
LLaMAFactory各参数详解
1. 模型与数据配置 参数/选项 详细说明 模型名称或路径 - 作用:指定要微调的基座模型。可以是 Hugging Face 上的模型标识符(如 meta-llama/Llama-2-7b-chat-hf),也可以是本地模型文件夹的路径。 - 注意:需要确保 LLaMA Factory 支持该模型架构,并且你有权限访问该模型。 适配器名称或路径 - 作用:如果之前进行过 LoRA 微调,可以在这里加载已有的 LoRA 适配器权重,用于继续训练或进行推理。 微调方法 - 作用:选择核心的微调策略。 - Full:全参数微调。消耗资源巨大,通常只在资源充足且需要最大程度改变模型时使用。 - Freeze:冻结微调。只训练模型的部分层(如最后几层),其余层参数冻结。是一种轻量级方法。 - LoRA:最常用。在原始模型旁增加低秩适配器,只训练这些小的适配器参数,极大减少显存和计算需求。 - QLoRA:LoRA 的量化版本。将基座模型以 4-bit...
Jupyter的缩写启动方式
实现方法 找到Python Scripts文件夹(jupyter.exe 一般在这里) 1C:\Program Files\Python310\Scripts 或者 1C:\Users\你的用户名\AppData\Local\Programs\Python\Python310\Scripts 需要确保的是,这个文件夹在系统环境变量PATH里 在该目录下创建缩写.bat(下以jnb.bat为例),内容是 12@echo offjupyter notebook %* 随后启动jupyter notebook时直接输入jnb即可。 原理 原理也很简单,执行bat里的命令时,默认会把要执行的命令显示到终端上,echo off 是取消命令的回显,@的作用是将echo off这行命令的回显也取消掉,%*是用来接受参数(jnb test.ipynb=jupyter notebook test.ipynb),所以运行时会执行"jupyter notebook %*"的命令,等同于在终端上输入了jupyter notebook。 破案了,直接配vscode+jupyter更简单
Jupyter7下的翻译问题的解决
Problem jnb更新到7版本后,不少nbextension也随之失效,其中当然包括nbtranslate, 尽管jnb7是基于jlab的,有着jlab的扩展支持,但其中也没有翻译方面的扩展。 但不得不面对的是,不少ipynb是英文版本的,有些时候必然会造成困扰 Solution 提升英语水平,写一个python脚本,亦或者降级到jnb6() 大模型时代当然要使用大模型,可以直接将文件喂给大模型,但是不氪金会受到点限制 寻找solution时,逛到jnb的侧栏ai agent,感觉很是方便,而且模型能自己选择,缺点是不氪金一个月只能对话50次(可以换着号来用),但是只用来翻译够用了 下面呈现方法 1pip install runcell 在查看(View)-右侧边栏(Right Sidebar)-show打开,用github/google登录即可 破案了,直接vscode+jupyter+copilot完事







