Tag: 深度学习
常见PEFT方法原理
本文讨论了在大规模通用数据集上训练的LLM模型微调方法,特别是如何通过适配器(Adapter)、前缀(Prefix)和引导词(Prompt)等方法来适应特定任务。特别介绍了微软提出的低秩自适应(LoRA)技术,该方法通过分解更新量矩阵为两个低秩矩阵的乘积来减少运算量,并取得了与全量微调相近的效果。文章还探讨了LoRA的具体原理、应用以及面临的挑战。...
KL散度,交叉熵和编码之间的关系
本文介绍了KL散度与交叉熵的关系,指出信息量的期望为$-log(p)$,而熵是期望的和。通过KL散度衡量两个概率分布的差异,并解释了其非对称性和不对称性。进一步地,文章探讨了信息熵与编码之间的关系,以及如何利用香农编码定理来计算熵,从而导出平均编码长度的概念。最后,文章讨论了条件熵和极大似然估计在交叉熵损失函数中的应用,强调了交叉熵作为损失函数的另一种理解。...
关于梯度消失/爆炸产生原因和缓解办法
·约 1180 字·3 分钟
本文探讨了神经网络中梯度消失/爆炸产生的原因及其缓解方法。首先,文章指出梯度下降法在处理复杂网络时会遇到梯度消失或爆炸的问题,这主要是由于链式求导和梯度爆炸/消失导致的。接着,文章列举了几种常见的改进方法:预训练加微调、梯度裁剪和正则化、使用批规范化(batchnorm)、残差结构以及LSTM等。这些方法旨在优化神经网络的训练过程,减少梯度消失或爆炸的风险,提高模型的性能。...
Adam优化方法显存占用情况
·约 1765 字·4 分钟
Adam优化方法显存占用情况。一般来说,Adam用到的信息更多,所以需要的内存占用更大。曾有个实验,Optimizer选择SGD的时候,Batch Size能选择20,但是换成Adam时候,Batch Size只能选择2。Adam的自适应体现之处在于指数平滑,缓解了梯度方向剧变,使收敛路径更平滑一点。...
手写多头注意力(MHA)的实现
·约 2687 字·6 分钟
本文介绍了手写多头注意力(MHA)的实现。文章首先定义了MultiHeadAttention类,该类用于处理多维输入数据并生成输出。在实现过程中,作者详细描述了如何通过线性变换、Scaled Dot-Product Attention和Softmax操作来构建注意力机制。实验结果表明,使用einsum表示法可以简化代码编写,提高可读性。...