- 博客(54)
- 收藏
- 关注
原创 《人工智能考核试卷》
本文为人工智能考核试卷,包含基础简答题和基础公式推导题两部分。简答题涵盖矩阵运算、损失函数选择、激活函数特性、过拟合与正则化、反向传播优化、模型评估方法及医疗诊断模型评估指标(精度与召回率)的应用分析。公式推导题要求详细描述单层前馈神经网络的前向传播过程(含ReLU和Sigmoid激活函数)、交叉熵损失函数定义、反向传播梯度计算(包括权重更新公式),以及梯度下降法的实现步骤。试题全面考察了矩阵操作、神经网络核心算法原理及实际场景中的模型优化策略。
2025-06-29 19:53:03
1039
原创 自然语言处理的发展
自然语言处理的起源可以追溯到20世纪40年代后期。当时,随着电子计算机技术的初步发展(如ENIAC计算机的诞生),科学家们开始探索如何让机器理解和处理人类语言。1948年,数学家沃伦·韦弗(Warren Weaver)在题为"翻译"的备忘录中首次提出使用计算机进行语言翻译的构想,这被认为是NLP研究的开端。
2025-06-06 14:43:45
1072
原创 Llama:开源的急先锋
Llama系列模型是开源的急先锋,从Llama1到Llama3,逐步提升了性能和开放性。Llama1使用完全开源数据,性能媲美GPT-3,但仅限于非商用。Llama2进一步开放,支持商用,并增加了训练数据量和上下文长度,训练了ChatModel对标chatGPT。Llama3则致力于成为最好的开源大模型,扩充了字典和训练数据,采用了分组查询注意力机制(GQA),并大幅提升了训练效率。Llama3的训练数据达到15T token,是Llama2的7倍,且包含多语言数据。通过缩放定律,Llama3在训练前即可预
2025-05-14 22:42:47
1239
原创 GPT系列:自然语言处理的演进与多模态的探索
GPT系列的发展历程展示了自然语言处理领域的重大进步。从GPT-1开始,OpenAI通过生成式预训练模型解决了NLP任务中大量标注数据的需求问题,采用了Transformer架构并简化了Decoder部分。GPT-2进一步推动了非监督学习,引入了Prompt概念,使模型能够处理更多任务而无需微调。GPT-3则通过Few-shot学习,使模型仅需少量示例即可执行任务,并显著增加了模型参数和训练数据量。GPT-4作为多模态大模型,强调了预训练在模型能力获取中的重要性,并指出RLHF(人类反馈强化学习)主要用于对
2025-05-12 17:51:02
933
原创 大模型的预训练:给大模型注入先验知识
大模型预训练是指在大规模的无标注文本数据上,通过无监督学习的方式对模型进行初步训练,让模型学习语言的基本规律、模式和结构,从而为后续的特定任务微调打下基础。例如,像GPT(生成式预训练模型)系列模型,会在海量的文本数据上进行预训练,这些文本数据可以包括书籍、网页文章、新闻报道等多种来源的内容。
2025-05-01 11:43:49
914
原创 PPO算法实践:手把手教会你PPO算法的工程应用
我们可以使用LoRA技术,只使用一个大模型,多个LoRA层,来完成这个任务。减少训练时对显存的占用。训练模型和状态价值模型可以共用一个loRA层,不同的头来实现。计算部分直接体现了PPO算法损失函数的核心思想,即通过计算新旧策略概率比率与优势函数的乘积来优化策略。而状态价值损失部分则是为了提高价值函数的估计精度。batch训练为外循环训练,训练epoch为内循环训练。每次用当前训练的模型作为重要性采样的模型计算advantage,训练epoch次模型。
2025-04-29 21:22:03
1307
原创 PPO算法详解:强化学习策略优化的新高度
PPO(Proximal Policy Optimization,近端策略优化)算法是一种在强化学习领域广泛应用的策略优化算法。它在2017年由John Schulman等人提出,是TRPO(Trust Region Policy Optimization,信任域策略优化)算法的改进版本,旨在解决TRPO计算复杂度高、实现困难的问题,同时保持良好的性能。PPO算法在许多实际应用中表现出色,尤其是在机器人控制、游戏AI等领域。PPO算法是一种基于策略梯度的方法,其目标是通过优化策略函数 $ \pi(a|s)
2025-04-28 20:21:45
1815
原创 一文读懂语言模型的困惑度
困惑度是基于语言模型的概率分布计算的,它衡量的是模型对一个给定文本序列的困惑程度。具体来说,困惑度是模型对文本序列的预测概率的倒数的几何平均值。
2025-04-09 21:53:02
794
原创 大模型的输出:温度对输出的影响
通过这个例子,我们可以看到温度系数如何影响模型的概率分布:低温度系数:使概率分布更加集中,模型更倾向于选择高概率的单词,生成结果更加稳定和一致。高温度系数:使概率分布更加平缓,模型的选择更加随机,生成结果更加多样化和富有创造性。这个机制在实际应用中非常重要,比如在对话生成中,高温度系数可以使对话更加自然和有趣;而在需要准确性的任务(如机器翻译)中,低温度系数可能更合适。
2025-04-08 22:34:14
1260
原创 深度探索:策略学习与神经网络在强化学习中的应用
JθESVπst;θ)]我们将状态SSS作为随机变量使用期望消去,这样我们定义的目标函数就只剩下θ{\theta}θJθJ(\theta)Jθ越大,我们的策略函数就越好观察状态sts_tst在时间步ttt,观察或接收环境的当前状态sts_tst。根据策略π⋅∣st;θt随机采样动作ata_tat。
2025-04-07 22:29:13
864
原创 从奖励到最优决策:动作价值函数与价值学习
本文旨在详细介绍价值学习的**基本理论与算法**,并通过**具体示例帮助你理解从动作价值函数到深度Q网络(DQN)的整体流程。TD算法能够逐步减小预测误差,进而提高模型的预测性能,并帮助智能体在不断更新中趋向最优策略
2025-04-06 22:25:35
1022
原创 手动实现一个迷你Llama:手动实现Llama模型
Llama 模型在自然语言处理领域有着广泛的应用,它通过自注意力机制能够有效地捕捉序列中的长距离依赖关系。为了更好地理解和实现这个模型,我们先从一些基础的代码和概念入手。在开始之前,我们需要导入一些必要的 Python 库。这些库将帮助我们完成模型的构建和训练。这些库涵盖了数学运算、数据结构定义、类型提示以及 PyTorch 框架的相关功能,为后续的模型实现提供了强大的支持。接下来,我们来定义一个参数类 ,用于存储 Transformer 模型的各种超参数。这些超参数将决定模型的结构和行为。Transf
2025-04-03 13:41:15
1657
原创 手动实现一个迷你Llama:使用SentencePiece实现自己的tokenizer
用于加载和使用训练好的 SentencePiece 模型,执行分词(Tokenization)、编码(Encoding)和解码(Decoding)等操作。它是 SentencePiece 模型的主要接口,提供了丰富的功能来处理文本数据。通过 num_shards 参数控制处理的分片数量,可以加快训练速度,减少每次加载到内存中的数据量,提高训练效率。tiny.txt 是一个临时文件,用于将多个分片中的文本合并成一个文件,便于 SentencePiece 训练。,广泛应用于自然语言处理(NLP)任务中。
2025-04-02 21:15:11
938
原创 RRF融合多查询结果:提升检索召回率与推荐多样性
RRF是一种强大的排名聚合工具,特别适用于RAG系统中多检索器的结果融合。它通过简单而有效的数学方法,能够生成更加稳健和相关的文档排名,从而提升系统的整体性能。
2025-04-01 19:13:35
1303
原创 RAG库搭建:从零开始,开启智能问答新世界
当我们输入一个问题,问题的答案会从文档中检索出来,然后将答案和问题一起输入到大模型中生成答案。问答模块其实非常简答,将检索到的内容和用户的问题进行拼接,然后使用LLM进行回答即可。的结合,它通过将文档和用户问题进行匹配,从而实现。要实现一个最简单的RAG,我们首先要了解。
2025-03-31 20:36:43
1079
原创 传统策略梯度方法的弊端与PPO的改进:稳定性与样本效率的提升
高方差的梯度估计:累积奖励GtG_tGt的随机性导致梯度估计的方差很高,使得训练过程不稳定。单次更新:每个数据批次只使用一次,更新后就丢弃,导致样本的利用效率较低。剪切机制:限制新策略与旧策略之间的概率比率,防止策略更新过大,降低梯度估计的方差,提高训练的稳定性。多次更新:在一个数据批次上进行多次更新,充分利用样本信息,提高样本的利用效率。这些改进使得PPO在训练过程中更加稳定,样本效率更高,成为强化学习领域中一种常用的基准算法。
2025-03-30 21:56:48
1367
原创 《强化学习基础概念:四大模型与两大损失》
策略是一个函数,它将状态映射到动作的概率分布。用数学符号表示为πa∣s\pi(a|s)πa∣s,其中sss表示状态,aaa表示动作,πa∣s\pi(a|s)πa∣s表示在状态sss下选择动作aaa的概率。策略决定了智能体在环境中如何行动,从而影响其获得的奖励和最终的学习效果。确定性策略(Deterministic Policy):对于每个状态sss,策略π\piπ映射到一个唯一确定的动作aaa,即πsa\pi(s) = aπsa。
2025-03-29 22:05:32
1237
原创 优化算法深度剖析:梯度下降、动量方法与自适应学习率
通过计算损失函数对参数的梯度,沿着梯度下降的方向更新模型参数,直到找到最小值或足够接近最小值的解。其核心思想是基于损失函数的梯度方向来调整参数,以最小化损失。梯度下降的核心思想是基于损失函数的梯度方向来调整参数。具体来说,它通过计算损失函数对参数的梯度,沿着梯度下降的方向更新模型参数,直到找到最小值或足够接近最小值的解。其更新公式为:θt+1=θt−η∇J(θt)\theta_{t+1} = \theta_t - \eta \nabla J(\theta_t)θt+1=θt−η∇J(θt)其中,θ
2025-03-28 20:27:01
1145
原创 L2正则化:优化模型的平滑之道
L2正则化通过在损失函数中添加一个与参数大小相关的正则化项来实现。JnewθJθλ2∥θ∥22JnewθJθ2λ∥θ∥22( J(\theta) ) 是原始损失函数。( \lambda ) 是正则化系数,控制正则化项的强度。( |\theta|2^2 = \sum{i} \theta_i^2 ) 是参数向量 ( \theta ) 的L2范数的平方。L2正则化通过限制参数的大小、减少模型的复杂度、平滑决策边界等方式防止过拟合。
2025-03-28 20:24:12
1351
原创 为什么需要非线性激活函数
非线性激活函数是神经网络中不可或缺的组成部分,它们通过引入非线性因素,解决了梯度消失和梯度爆炸问题,引入非零中心化,控制神经元的输出范围,引入稀疏性,加速收敛,并增强模型的表达能力。这些作用使得神经网络能够学习和模拟复杂的非线性关系,从而在各种任务中表现出色。
2025-03-27 09:54:11
654
原创 为什么说Relu是非线性激活函数
ReLU 函数是一种非线性激活函数,其非线性特性主要表现在其定义上。虽然 ReLU 函数存在一些缺点,但其计算简单和缓解梯度消失问题的优点使其成为目前最常用的激活函数之一。在实际应用中,可以根据具体任务和数据的特点选择合适的激活函数。
2025-03-27 09:39:14
622
原创 练习两天半,终于知道企业级的prompt在怎么写
我们要把AI看作一个人,要把要求等详细的说给他,他才能更好的解决你的问题,如果你能提供样例那当然更好。
2025-03-26 21:28:33
821
原创 激活函数的一般性质
不同的激活函数具有不同的性质,选择合适的激活函数可以显著提高神经网络的性能。在实际应用中,可以根据具体任务和数据的特点选择合适的激活函数。例如,ReLU 及其变体(如 Leaky ReLU、PReLU)因其计算简单和缓解梯度消失问题而被广泛使用,而 Sigmoid 和 Tanh 则更多用于特定的输出层或需要概率输出的场景。一些新型激活函数(如 Swish、Mish)在某些任务中也表现出良好的性能。
2025-03-26 13:42:55
473
原创 激活函数大揭秘:常见类型与优化策略
不同的激活函数适用于不同的场景,选择合适的激活函数可以显著提高神经网络的性能。ReLU 及其变体(如 Leaky ReLU、PReLU)因其计算效率高和缓解梯度消失问题而被广泛使用,而 Sigmoid 和 Tanh 则更多用于特定的输出层或需要概率输出的场景。Softmax 是多分类问题的标准选择,而一些新型激活函数(如 Swish、Mish)在某些任务中也表现出良好的性能。
2025-03-26 13:40:58
1155
原创 MSE vs MAE:选择适合你的模型误差损失函数
因此,选择 MSE 还是 MAE 作为损失函数,需要根据具体问题和数据集的特性来决定。如果数据集中异常值较少,可以使用 MSE;如果数据集中异常值较多,可以使用 MAE。
2025-03-25 10:56:12
1077
原创 MSE vs MAE:误差评估的两大选择
因此,选择 MSE 还是 MAE 作为损失函数,需要根据具体问题和数据集的特性来决定。如果数据集中异常值较少,可以使用 MSE;如果数据集中异常值较多,可以使用 MAE。
2025-03-24 12:45:16
1398
原创 深度解析:损失函数与代价函数的全貌
损失函数公式适用场景输出类型是否可微最小值特点均方误差(MSE)回归问题连续值是0对较大误差惩罚更大,计算简单,对异常值敏感交叉熵(CE)多分类问题概率分布是0适合概率分布的比较,对小概率值的误差惩罚更大对数损失(Log Loss)二分类问题概率值是0适合二分类概率预测,对小概率值的误差惩罚更大KL散度(KLD)概率分布比较(如生成模型)概率分布是0衡量两个概率分布的差异,对分布的相似性要求更高。
2025-03-23 22:11:08
1776
原创 深入理解LSTM:结构、工作原理与代码实现
LSTM层接受输入维度、隐藏层维度、层数以及批次优先的标志作为参数,而全连接层则将LSTM的最终输出映射到期望的输出维度。LSTM层接受输入维度、隐藏层维度、层数以及批次优先的标志作为参数,而全连接层则将LSTM的最终输出映射到期望的输出维度。综上所述,LSTM作为一种强大的深度学习工具,为处理序列数据提供了有效的解决方案,并且随着技术的发展,其应用范围也在不断扩大。这些门都由一个sigmoid层和逐点相乘操作组成,sigmoid层输出0到1之间的值,表示对应信息的重要性或保留比例。矩阵映射到0到1之间,
2025-03-19 11:37:49
3290
原创 简单循环神经网络(RNN):原理、结构与应用
然而,尽管RNN具有记忆功能,但在实际应用中,标准的RNN结构往往难以学习到长距离的历史信息,这是由于梯度消失或爆炸问题导致的。为了解决这个问题,研究者们提出了多种改进版本的RNN,如长短期记忆网络(LSTM)和门控循环单元(GRU),它们通过精心设计的门控机制有效地缓解了长期依赖的问题。此外,RNN还能够根据具体的任务需求调整其结构。例如,在一对多的任务中,如图像字幕生成,RNN可以从单个图像输入开始,然后逐步生成一系列描述性的词语;
2025-03-18 21:39:27
1414
原创 qwen2.5总览
Qwen2.5 在传统 Transformer 的基础上,通过引入 GQA、DCA、SwiGLU、RoPE 和 RMSNorm 等改进,显著提升了模型在长文本处理、多任务适应性和计算效率方面的表现。此外,Qwen2.5-VL 还扩展了多模态能力,支持视觉和语言的交互。
2025-03-17 21:56:19
875
原创 深度学习中的并行策略:数据并行、流水并行与张量并行
本文详细介绍了深度学习中的三种主要并行策略——数据并行、流水并行和张量并行。每种策略都有其独特的原理、优点、缺点和适用场景。通过对比分析,本文展示了如何结合这些策略实现混合并行,以优化大规模模型训练的效率和资源利用。
2025-03-16 16:16:19
2064
原创 Qwen2.5的注意力秘籍:解锁高效模型的钥匙,分组查询注意力机制
说到注意力机制就不得不提到Q、K、V三板斧。多头注意力机制通过将输入分割为多个头,然后对每个头进行自注意力,最后再进行合并。实现多头注意力机制。在,我们会为,对于每个头都有于自己的Q、K、V矩阵。对于h1来说,会为它分配Q1K1V1是三个的矩阵,对于h2来说,也会分配Q2K2V2三个。
2025-03-15 15:30:58
1603
原创 从LayerNorm到RMSNorm:深度学习归一化技术的进化!qwen2.5的技术。
是一种用于深度学习的,是LayerNorm(层归一化)的一种改进。它通过计算输入数据的,避免了传统归一化方法中均值和方差的计算。
2025-03-13 09:44:57
1122
原创 RoPE:为什么你的Transformer模型需要这种“旋转”的力量?qwen2.5的位置编码!
在RoPE中,频率fff的变化体现了位置信息的多层次编码、不同尺度的敏感度、相对位置的自然表示以及模型的灵活性和适应性。这种设计使得RoPE能够在Transformer模型中有效地编码位置信息,从而提高模型对序列数据的理解能力。
2025-03-12 19:30:17
1273
原创 从Swish到SwiGLU:激活函数的进化与革命,qwen2.5应用的激活函数
Swish 激活函数是一种平滑的、非单调的激活函数,由 Google Brain 团队在 2017 年提出。它结合了 ReLU 的非线性特性与 Sigmoid 函数的平滑特性,旨在解决 ReLU 在某些情况下的局限性,例如梯度消失和“死亡神经元”问题。Swishxx⋅σβxSwishxx⋅σβxσx\sigma(x)σx是 Sigmoid 函数,定义为σx11e−xσx1e−x1。β\betaβ。
2025-03-12 13:31:10
1667
原创 仅仅使用pytorch来手撕transformer架构(4):解码器和解码器模块类的实现和向前传播
仅仅使用pytorch来手撕transformer架构(1):位置编码的类的实现和向前传播最适合小白入门的Transformer介绍仅仅使用pytorch来手撕transformer架构(2):多头注意力MultiHeadAttention类的实现和向前传播仅仅使用pytorch来手撕transformer架构(3):编码器模块和编码器类的实现和向前传播话不多说,直接上代码一. 的结构1. 的结构Transformer 解码器中的一个基本模块——。每个 包含两个主要部分:掩码多头自注意力(Ma
2025-03-11 17:11:06
1011
原创 仅仅使用pytorch来手撕transformer架构(3):编码器模块和编码器类的实现和向前传播
往期文章:仅仅使用pytorch来手撕transformer架构(1):位置编码的类的实现和向前传播最适合小白入门的Transformer介绍仅仅使用pytorch来手撕transformer架构(2):多头注意力MultiHeadAttention类的实现和向前传播1.编码器模块的实现这段代码实现了一个Transformer编码器模块(Transformer Block),它是Transformer架构的核心组件之一。Transformer架构是一种基于自注意力机制(Self-Attention)的
2025-03-11 13:13:32
1015
原创 仅仅使用pytorch来手撕transformer架构(2):多头注意力MultiHeadAttention类的实现和向前传播
【代码】仅仅使用pytorch来手撕transformer架构(2):多头注意力MultiHeadAttention类的实现和向前传播。
2025-03-10 12:57:39
1164
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人