- 博客(28)
- 收藏
- 关注
原创 Pytorch分布式训练DDP:DistributedDataParallel
DistributedDataParallel分布式训练,是Pytorch官方推荐用户使用的分布式方法:它为每张GPU拷贝一个完整的模型副本,并通过AllReduce操作在反向传播阶段自动同步各副本的梯度,从而确保每张卡在参数更新时始终保持一致。
2025-07-02 08:30:00
1067
原创 Prompt:提示词工程
本文详细介绍了如何利用 OpenAI 的 API 和 Prompt 工程技术构建一个支持多轮对话的智能助手,用于识别用户在购买笔记本电脑时的偏好信息。应用以 Python 为核心,结合 openai 和 httpx 库,通过构建系统提示(System Prompt)、维护上下文对话历史(messages)、设计结构化偏好输出格式,实现了对品牌、价格、重量等三类核心维度的自动识别。
2025-06-30 17:43:14
1077
原创 Position Encoding:位置编码详解
摘要: Transformer模型因抛弃了传统RNN的顺序结构,需引入位置编码处理序列位置信息。绝对位置编码通过正弦/余弦函数为每个位置生成固定向量,与词向量相加。相对位置编码(如RoPE)则关注token间相对距离,通过旋转矩阵作用于注意力机制的Q/K向量,实现位置信息嵌入。RoPE具有周期性旋转特性,支持长度扩展,相比绝对位置编码更贴合语言特征,被应用于LLaMA等模型。两种编码方式各有优势,是Transformer架构处理序列任务的关键组件。
2025-06-25 08:30:00
1027
原创 LLM轻量化微调新范式:LoRA
LoRA:大模型轻量化微调利器 LoRA是一种高效的参数微调方法,通过冻结预训练模型权重,仅训练两个低秩矩阵A和B,大幅降低计算资源需求。相比全参数微调,LoRA可减少99%以上的可训练参数,同时保持相近的效果。其核心思想是利用矩阵低秩分解,将大矩阵分解为两个小矩阵进行更新。LoRA具有参数少、部署快、模块化和稳定性好等优势,已成为大模型微调的主流技术,广泛用于多任务适配和垂直领域优化。HuggingFace等平台已提供现成的LoRA实现,开发者可轻松应用于各类微调场景。
2025-06-24 09:00:00
599
原创 归一化:BatchNorm、LayerNorm、RMSNorm
本文分析了神经网络中"内部协变量偏移"问题及其解决方案。主要内容包括:1)归一化的动机在于解决不同尺度输入导致的训练困难;2)BatchNorm通过通道归一化处理图像数据,但存在推理阶段差异;3)LayerNorm更适合序列数据,与batch无关且训练推理一致;4)RMSNorm简化了LayerNorm的计算;5)PreNorm在模型架构中的重要性,如LLaMA采用前置RMSNorm。归一化技术能提高模型稳定性、加快收敛,是现代深度神经网络的关键组成部分。
2025-06-24 08:30:00
1180
原创 大模型注意力机制的演化:MHA、MQA与GQA
本文系统介绍了Transformer架构中的三种注意力机制变体:多头注意力(MHA)、多查询注意力(MQA)和分组查询注意力(GQA)。MHA每个头独立计算Q/K/V,表现力强但计算成本高;MQA共享K/V,提升推理速度但性能受限;GQA通过分组共享K/V,在性能与效率间取得平衡。文章重点阐述了GQA结合KV缓存(KVCache)的技术原理,该方案可显著降低大模型推理时的显存占用和计算开销,已成为GPT-4等主流大模型的关键优化手段。
2025-06-23 08:30:00
1325
原创 LLM可训练参数是如何计算的?
大语言模型参数计算逻辑解析 摘要:本文解析了大语言模型(LLM)参数量的计算原理。主流LLM基于Transformer解码器结构,参数主要来自词嵌入、位置编码、注意力机制、前馈网络和层归一化等模块。计算公式表明,参数量与层数(L)、隐藏维度(d)的平方成正比,其中注意力机制和前馈网络占主要部分。以GPT-2为例演示了详细计算方法,并对比了BERT、GPT-3等模型的参数配置。文章还指出,现代LLM通过移除偏置项、共享嵌入等优化手段提升效率,并强调未来模型发展将更注重在更少参数下实现更强能力。
2025-06-22 16:18:14
755
原创 词向量:将token变成数值向量,从简单表示到语义理解
本文介绍了NLP中词向量(Word Embedding)的发展历程和主流模型。从最初的One-Hot编码、词袋模型(BOW)和TF-IDF等稀疏向量表示方法,到Word2Vec革命性的稠密向量表示,分析了各类方法的原理、实现及优缺点。重点讲解了Word2Vec的CBOW和Skip-gram两种架构,以及负采样优化技术,指出其能捕捉语义关系但存在OOV和多义词处理不足的问题。文章最后提及了基于Transformer的新型Embedding模型的发展趋势,为读者系统梳理了NLP中文本向量化技术的发展脉络。
2025-06-19 09:00:00
2282
原创 分词器机制
在NLP中,模型处理的是数值,无法直接处理人类语言,因此,我们必须将输入文本转化为数值。分词(Tokenizations)是将文本拆解成最小单元(token)的过程,这里的token可以是词、字符,也可以是子词(Subword)。原始文本:I love deep learning!"]Subword Tokenizer(如BPE): ["I", "lov", "e", "deep", "learn", "ing", "!"]分词方法核心思想应用模型BPE从字符对开始,基于频率进行合并。
2025-06-17 19:45:02
1076
原创 从认识AI开始-----Diffusion Model
扩散模型(Diffusion Model)是一种新型生成模型,通过逐步加噪和去噪过程实现高质量样本生成。其核心包括正向扩散(逐步添加高斯噪声将图像变为纯噪声)和反向生成(学习从噪声重建图像)。模型基于马尔科夫链假设,利用重参数技巧和KL散度优化,通过最大化ELBO间接实现极大似然估计。相比GAN和VAE,扩散模型训练更稳定,生成质量更高,已在图像、音频等领域广泛应用。文章详细推导了数学原理,并提供了简单的PyTorch实现代码,展示了模型训练和采样过程。
2025-06-14 19:14:37
1283
1
原创 从认识AI开始-----生成对抗网络(GAN):通过博弈机制,引导生成
本文介绍了生成对抗网络(GAN)的基本原理、训练过程和实现方法。GAN由生成器G和判别器D组成,通过两者对抗博弈实现数据生成。文章详细推导了GAN的损失函数,包括判别器和生成器的优化目标,并给出最优解的数学证明。通过MNIST数据集实现了一个简单GAN的训练流程,展示了生成效果。GAN的核心思想是通过竞争机制学习数据分布,无需直接拟合复杂分布。随着发展,已出现多种改进模型,但基本原理仍基于GAN架构。文章为理解GAN提供了理论基础和实践指导。
2025-06-11 22:14:02
1328
原创 从认识AI开始-----变分自编码器:从AE到VAE
摘要: 本文介绍了变分自编码器(VAE)的原理及其与传统自编码器(AE)的区别。传统AE虽能压缩数据为低维表示,但其隐空间缺乏结构性和概率意义,难以生成新数据。VAE通过引入概率建模,使隐空间具有连续性,并结合变分推断优化目标函数(ELBO),实现从隐空间采样生成新样本。VAE的核心包括重构损失和KL散度(正则化项),并使用重参数技巧使采样过程可导。文中还提供了PyTorch实现示例,并指出VAE生成图像可能模糊的局限性。VAE为生成模型提供了理论基础,但其生成质量仍有改进空间。
2025-06-08 21:35:23
932
原创 从认识AI开始-----AutoEncoder:生成模型的起点
AutoEncoder是一种无监督学习模型,其目标是通过编码器将输入压缩成低维的隐藏表示,称为隐空间,再通过解码器将其还原回原始输入。编码器压缩,解码器还原。Encoder:把输入映射到潜在表示Decoder:再将还原为近似输入的以上就是AutoEncoder的全部内容,相信小伙伴们已经对AutoEncoder有了深刻的理解:AutoEncoder是深度学习中一个经典且充满启发的结构,压缩重构的结构,能够学到数据的“核心特征”,为后续的复杂的生成模型奠定了基础。
2025-06-07 19:33:16
892
原创 从认识AI开始-----Transformer:大模型的核心架构
Transformer:突破性的注意力模型架构 本文系统介绍了Transformer模型及其核心机制。Transformer通过自注意力机制彻底解决了传统RNN/LSTM无法并行计算和长程依赖的痛点。文章详细剖析了Transformer的编码器-解码器结构、多头注意力机制原理,以及位置编码等关键技术。通过代码示例演示了从输入预处理到完整模型实现的完整流程。作为2017年提出的突破性架构,Transformer已成为当代AI大模型的基础,在NLP、CV等领域展现出强大的建模能力。
2025-06-01 23:36:28
1635
原创 从认识AI开始-----解密门控循环单元(GRU):对LSTM的再优化
摘要:GRU(门控循环单元)是对LSTM的简化改进,解决了RNN的长期依赖问题。相比LSTM复杂的门控机制,GRU仅包含重置门和更新门,参数更少、训练更快,但性能相近甚至更好。文章详细解析了GRU的结构原理、与RNN/LSTM的对比差异,并提供了手动实现GRU核心层的代码示例。GRU在保留序列建模能力的同时提高了效率,是NLP和时间序列任务的选择之一。
2025-05-30 20:35:54
1213
2
原创 从认识AI开始-----解密LSTM:RNN的进化之路
在现实中,LSTM的实际应用场景很多,比如语言模型、文本生成、时间序列预测、情感分析等长序列任务重,这是因为相比于RNN而言,LSTM能够更高地捕捉长期依赖,而且也更好的缓解了梯度消失问题;但是由于LSTM引入了三个门控机制,导致参数量比RNN要多,训练慢。总的来说,LSTM是对传统RNN的一次革命性升级,引入门控机制和记忆单元,使模型能够选择性地记忆与遗忘,从而有效地捕捉长距离依赖。
2025-05-30 17:34:05
814
原创 从头认识AI-----循环神经网络(RNN)
摘要: 循环神经网络(RNN)是一种能够处理序列数据的神经网络,通过隐藏状态传递上下文信息,解决了传统神经网络无法捕捉时序依赖的问题。本文介绍了RNN的基本原理,包括隐藏状态更新公式,并手写实现了一个简单RNN模型(含参数初始化、状态更新等代码)。文章还展示了如何使用PyTorch内置RNN模块,并分析了RNN的优缺点:虽然能有效建模序列数据,但存在梯度消失/爆炸、训练速度慢等问题。帮助读者理解RNN的核心思想与应用。
2025-05-29 15:47:07
1024
原创 从认识AI开始-----卷积神经网络(CNN)
本文介绍了卷积神经网络(CNN)的核心原理和实现方法。CNN通过局部连接和参数共享解决了多层感知机(MLP)处理图像时的参数过多和空间结构丢失问题。文章详细讲解了CNN的两个关键特性:局部性(通过感受野捕捉局部特征)和平移不变性(参数共享)。重点阐述了CNN的基本结构:卷积层、填充(Padding)、步幅(Stride)和池化层(Pooling),并提供了相应代码实现。最后展示了如何使用PyTorch构建基础的CNN模型进行手写数字识别。相比于MLP,CNN具有参数少、保留空间信息的优势,是处理图像等空间数
2025-05-28 13:40:15
1252
原创 从认识AI开始-----MLP详解:从历史动机到实战实现
本文从感知机到多层感知机(MLP)介绍了神经网络的基础知识。1958年提出的感知机只能解决线性问题,1969年被证明无法处理异或等非线性问题。1986年反向传播算法的提出使多层感知机(MLP)得以实现,通过堆叠"线性层+非线性激活函数"的结构,MLP能够处理复杂的非线性任务。文章展示了使用NumPy手动实现和PyTorch框架实现的两层MLP代码示例,并强调MLP作为深度学习基本单元,在小数据和非结构化任务中仍具重要价值。
2025-05-27 14:00:00
882
原创 从认识AI开始-----正则化为什么能缓解过拟合呢?
本文从几何和优化角度分析了深度学习中L1和L2正则化的差异。首先解释了正则化通过在损失函数中添加约束项来防止过拟合。L1正则(Lasso)和L2正则(Ridge)分别对应不同的参数约束:L1倾向于产生稀疏解(参数为0),而L2使参数趋近于0但不等于0。通过KKT条件和解空间几何分析,L1正则的菱形解空间更容易在顶点处与等值线相交,导致参数为0;而L2的圆形解空间则难以达到坐标轴交点。此外,从贝叶斯角度看,假设参数符合拉普拉斯分布(L1)或正态分布(L2)也能解释这种差异。本文为理解正则化机制提供了直观的解释
2025-05-27 08:00:00
1079
原创 从认识AI开始-----欠拟合与过拟合
本文深入探讨了机器学习中的欠拟合和过拟合问题。欠拟合指模型学习不足,表现为训练和测试集准确率都低,可能由于模型简单、训练不足或特征不足导致。过拟合则是模型过度学习训练数据,训练集准确率高但测试集表现差,常因模型复杂、数据量少或缺乏正则化引起。针对欠拟合,可增加模型复杂度、延长训练时间或提升特征质量;对于过拟合,则可采用数据增强、早停策略、Dropout或正则化等方法。文章还给出了解决过拟合的具体代码实例,帮助读者理解如何在实际中应用这些技术。
2025-05-26 15:10:11
852
原创 从认识AI开始-----分类任务损失
本文系统介绍了深度学习中的分类任务及其常用损失函数。分类任务是将输入样本映射到预定义类别的过程,包括二分类、多分类和多标签分类三种类型。文章详细讲解了四种常用损失函数:0-1损失(直观但不可导)、BCELoss(适用于二分类)、交叉熵损失(多分类核心方法)和FocalLoss(解决类别不平衡问题)。通过数学公式和代码示例解释了每种损失函数的原理和应用场景,最后以MNIST数字识别为例展示了分类任务的完整实现流程。文章强调应根据具体数据特性和训练需求选择合适的损失函数,以获得最佳模型性能。
2025-05-25 23:02:09
1192
原创 从认识AI开始-----回归任务损失
本文深入解析了回归任务及其常用损失函数。回归任务输出连续值(如房价、温度),核心在于逼近真实值减少误差。文章详细介绍了MSE、MAE、RMSE、R²、Huber和SmoothL1等损失函数的特点:MSE对大误差惩罚更重但对离群点敏感;MAE鲁棒性强但收敛慢;Huber结合二者优势,通过阈值控制切换。最后通过PyTorch实现了一个房价预测模型,演示了MSE损失函数在神经网络中的应用。文章强调应根据数据特性(离群点、梯度稳定性)选择合适损失函数,为AI实践提供了实用指导。
2025-05-25 19:37:28
1246
原创 从认识AI开始-----“交叉熵损失函数”的前世今生
本文系统讲解了信息论中的关键概念及其在深度学习中的应用。首先介绍了信息量、熵和交叉熵的定义:信息量反映事件发生的“惊讶程度”;,熵衡量系统整体不确定性,交叉熵则评估预测分布与真实分布的差异。接着解释了相对熵(KL散度)作为衡量两个概率分布差距的指标。重点阐述了交叉熵损失函数的推导过程:在分类任务中,通过最小化KL散度自然推导出交叉熵损失函数的形式。全文揭示了交叉熵不仅是深度学习的实用工具,更是信息论的重要概念,掌握这些原理有助于更好地理解和优化模型。
2025-05-24 18:03:31
741
原创 从认识AI开始-----“优化器——神经网络的心脏”
本文深入探讨了神经网络中的核心组件——优化器,详细解释了其作用、原理及常见类型。优化器通过反向传播得到的梯度信息更新模型参数,以最小化损失函数。文章介绍了指数加权平均(EMA)作为优化器核心思想之一,并详细解析了几种常见优化器,包括SGD、Momentum、RMSProp、Adam、AdamW和Adagrad,每种优化器都有其独特的更新参数方式,旨在提高模型训练的稳定性和效率。此外,文章还简要介绍了如何在PyTorch框架中调用这些优化器。选择合适的优化器对于提升模型性能和训练效率至关重要。
2025-05-23 18:15:29
1014
原创 从认识AI开始-----“激活函数——神经网络的灵魂”
激活函数在神经网络中扮演着至关重要的角色,其主要作用是引入非线性,使网络能够学习和模拟复杂的现实世界数据。没有激活函数,无论网络层数多少,都只能进行线性变换,无法处理非线性问题。本文详细介绍了多种激活函数,包括Sigmoid、tanh、ReLU、LeakyReLU、SiLU和GELU,每种函数都有其独特的数学公式、图像特性和适用场景。
2025-05-22 19:53:14
1088
原创 从认识AI开始-----反向传播
反向传播(Backpropagation,BP)是训练神经网络的核心算法,通过链式求导法则计算每个参数对损失的影响(梯度),并配合梯度下降算法更新参数。BP的重要性在于它能自动求导,高效训练深度神经网络,并快速收敛损失。BP的过程包括正向传播、计算损失、反向传播和参数更新。计算图是BP自动求导的核心机制,Pytorch框架利用动态计算图实现自动反向传播。通过手动实现和Pytorch示例,展示了BP的具体应用。BP是当前所有深度神经网络模型的参数优化规则,Pytorch的计算图使其更具模块化和高效性。
2025-05-22 08:44:00
1004
原创 从认识AI开始-----梯度下降算法
梯度下降是深度学习中用于优化模型参数的核心算法,通过迭代调整参数以最小化损失函数。文章通过两个例子详细解释了梯度下降的工作原理:首先,对于一元函数,通过计算一阶导数确定下降方向,并引入学习率(步长)来避免震荡问题,最终通过导数的绝对值判断收敛。其次,扩展到二元函数,使用梯度(偏导数的向量)确定下降方向,并通过梯度的范数判断收敛。文章还通过一阶泰勒展开推导了梯度下降的迭代公式,强调了学习率的重要性。总结指出,梯度下降通过不断迭代更新参数,找到目标函数的最小值,是深度学习的基石。
2025-05-17 14:38:57
502
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人