自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(200)
  • 资源 (3)
  • 收藏
  • 关注

原创 强化学习(七)时序差分离线控制算法Q-Learning

Q-Learning算法的拓扑图以及价值函数的更新公式如下图所示:首先我们基于状态SSS,用ϵ\epsilonϵ−贪婪法选择到动作AAA,然后执行动作AAA,得到奖励RRR,并进入状态S′S'S′,此时,如果是SARSA,会继续基于状态S′S'S′,用ϵ\epsilonϵ−贪婪法选择A′A'A′,然后来更新价值函数。但是Q-Learning则不同。对于Q-Learning,它基于状态S′S'S′,没有使用ϵ\epsilonϵ−贪婪法选择A′。

2025-05-15 12:43:28 701

原创 强化学习(六)时序差分在线控制算法SARSA

作为SARSA算法的名字本身来说,它实际上是由S,A,R,S,A几个字母组成的。而S,A,R分别代表状态(State),动作(Action),奖励(Reward),这也是我们前面一直在使用的符号。这个流程以及价值函数的更新公式体现在下图:在迭代的时候,我们首先基于ϵ\epsilonϵ-贪婪法在当前状态SSS选择一个动作AAA,这样系统会转到一个新的状态S′S'S′,同时给我们一个即时奖励RRR,在新的状态S′S'S′,我们会基于ϵ\epsilonϵ-贪婪法在状态S′。

2025-05-14 13:33:44 803

原创 强化学习(五)用时序差分法(TD)求解

时序差分法和蒙特卡罗法类似,都是不基于模型的强化学习问题求解方法。所以在上一篇定义的不基于模型的强化学习控制问题和预测问题的定义,在这里仍然适用。预测问题:即给定强化学习的5个要素:状态集SSS, 动作集AAA, 即时奖励RRR,衰减因子γ\gammaγ, 给定策略π\piπ,求解该策略的状态价值函数vπv(\pi)vπ控制问题,也就是求解最优的价值函数和策略。给定强化学习的5个要素:状态集SSS, 动作集AAA, 即时奖励RRR,衰减因子γ\gammaγ。

2025-05-12 11:18:44 698

原创 强化学习(四)用蒙特卡罗法(MC)求解

在动态规划法中,强化学习的两个问题是这样定义的:预测问题,即给定强化学习的6个要素:状态集SSS,动作集AAA, 模型状态转化概率矩阵PPP,即时奖励RRR,衰减因子γ\gammaγ, 给定策略π\piπ,求解该策略的状态价值函数vπv(\pi)vπ控制问题,也就是求解最优的价值函数和策略。给定强化学习的5个要素:状态集SSS, 动作集AAA,模型状态转化概率矩阵PPP,即时奖励RRR,衰减因子γ\gammaγ,求解最优的状态价值函数v∗。

2025-05-09 19:40:14 882

原创 强化学习(三)用动态规划(DP)求解

上一章我们讨论了用马尔科夫假设来简化强化学习模型的复杂度,这一篇我们在马尔科夫假设和贝尔曼方程的基础上讨论使用动态规划(Dynamic Programming, DP)来求解强化学习的问题。

2025-05-08 12:31:52 975

原创 强化学习(二)马尔科夫决策过程(MDP)

马尔可夫过程(也称为马尔可夫链)是一个元组。

2025-04-29 14:30:05 940

原创 强化学习(一)模型基础

如果为0,则是贪婪法,即价值只由当前延时奖励决定,如果是1,则所有的后续状态奖励和当前奖励一视同仁。因此我们的价值要综合考虑当前的延时奖励和后续的延时奖励。,这个比率主要用在强化学习训练迭代过程中,由于我们一般会选择使当前轮迭代价值最大的动作,但是这会导致一些较好的但我们没有执行过的动作被错过。当然,在不同的强化学习模型中,会考虑一些其他的模型要素,或者不考虑上述要素的某几个,但是这8个是大多数强化学习模型的基本要素。然后个体可以继续选择下一个合适的动作,然后环境的状态又会变,又有新的奖励值。

2025-04-18 11:20:22 894

原创 分布式训练之序列并行

总的来说,Colossal-AI 的序列并行是为了打破单设备上序列长度的限制。而 Megatron-LM 的序列并行是在显存上面下了功夫,可以用更少的设备去运行大模型。除此之外,从文章细节里面可以看到,部分的计算的冗余被消除了,且重叠了一部分的通信,使得设备可以花更多的时间用于计算上面。虽然,Colossal-AI 和 Megatron-LM 都有序列并行,但是两者解决的问题、方法都不一样。除此之外,在Pytorch中,也已经支持序列并行了。

2025-04-08 10:46:38 32

原创 DAPO算法详解

微信公众号:李歪理。

2025-03-27 21:18:33 106

原创 大模型显存如何估算?

一般会分成两种情况:推理和训练。推理时,我们主要考虑模型权重、KV 缓存和激活显存。而训练相比推理,还需要额外存储优化器状态和梯度,显存需求会更高。

2025-03-12 21:28:27 118

原创 大模型之数值精度

FP16 也叫做 float16,两种叫法是完全一样的,全称是 Half-precision floating-point(半精度浮点数),在 IEEE 754 标准中是叫做 binary16。简单来说是用 16 位二进制来表示的浮点数,来看一下是怎么表示的(以下图都来源于维基百科):其中:所以正常情况下计算公式就是:举一个例子来计算,这个是 FP16(float16) 能表示的最大的正数:同样,这个是 FP16(float16) 能表示的最大的负数:这就是 FP16(float16) 表示的范围

2025-03-10 21:19:10 55

原创 大模型推理之常见问题

具体来说,INT8在相同的内存空间下可以存储更多的数据,从而可以在相同的计算资源下进行更多的并行计算。需要注意的是,推理速度还受到模型大小、输入数据大小、计算操作的复杂度以及硬件设备的性能等因素的影响。一般情况下,GPU在进行深度学习推理任务时具有更高的计算性能,因此大语言模型在GPU上的推理速度通常会比在CPU上更快。综上所述,使用INT8和FP16数据类型可以在大语言模型的推理过程中提高推理速度,但需要根据具体场景和硬件设备的支持情况进行评估和选择。在大语言模型的推理速度上,使用。

2025-03-10 17:42:02 93

原创 大模型推理之vllm

vLLM是一个大模型推理服务框架,声称觉得有意思的东西其实主要是两个,continus batching和PagedAttention。

2025-03-10 10:07:52 166

原创 为什么大模型的损失函数采用交叉熵而不是 MSE?

核心原因因为大模型解决的问题属于多分类问题,最大似然估计跟交叉熵的形式是相同的,所以要采用交叉熵。次要原因是MSE 对预测错误的惩罚不如交叉熵。比如y1时,模型预测为 0, 此时 MSE 的loss 为 1, 而交叉熵 loss 则为无穷大,交叉熵损失的梯度在错误预测时较大,正确预测时较小,能快速调整模型参数;而 MSE 的梯度在预测接近真实值时趋于平缓,容易导致训练后期收敛缓慢。对于回归问题来说,一个通常的假设为数据是服从高斯分布的,此时最大似然估计就等价于最小化 MSE;

2025-03-07 12:38:09 601

原创 强化学习之GRPO

GRPO是PPO的优化版本,专门设计用于数学推理任务。关键创新:不使用价值模型,而是用群体奖励基线计算优势函数。优势:计算更高效、收敛更稳定、适用于数学和语言任务。在DeepSeekMath-RL上的成功应用:帮助模型取得了最先进的数学推理能力,超越所有开源对手。GRPO的成功表明,强化学习方法可以在数学推理中大幅提高模型表现,而不需要庞大的计算资源,这是LLM优化的重要突破。

2025-03-03 15:14:18 1174

原创 常见的蒸馏技术

其主要的想法是:学生模型通过模仿教师模型来获得和教师模型相当的精度,关键问题是如何将教师模型的知识迁移到学生模型。是教师模型的 logits 输出,在训练学生模型时,需对学生模型的输出应用与教师模型相同的温度调整,随后通过一个损失函数来评估学生模型输出与教师模型输出之间的差异。通过这种训练方式,学生模型不仅能够汲取教师模型的知识,还能保持良好的对真实标签的拟合能力,进而在实际应用中展现出优异的性能。通过最小化这个损失函数,学生模型可以逐渐学习到教师模型的概率分布,从而获得教师模型的知识。

2025-02-28 13:33:09 105

原创 强化学习之KTO

在前景理论中,人类的效用函数由两个部分组成:价值函数(value function)和加权函数(weighting function)。论文关注的主要是价值函数,它描述了相对某一参考点的结果对人类的主观价值的影响。公式如下:zz0​α0α1α≃0.88λλ1λ≃2.25看收益区域z≥z0​时的函数:计算二阶导数:由于0α1,所以α−10,因此dz2d2v​0,说明函数是凹的(concave)。zvz看损失区域zz0​。

2025-02-25 13:42:04 669

原创 大模型幻觉

在语言模型的背景下,幻觉指的是一本正经的胡说八道:看似流畅自然的表述,实则不符合事实或者是错误的。幻觉现象的存在严重影响LLM应用的可靠性,本文将探讨大型语言模型(LLMs)的幻觉问题,以及解决幻觉现象的一些常见方法。

2025-02-20 19:03:05 82

原创 强化学习之PPO原理与源码解读

智能体(Agent)与环境(Environment)状态空间S:S即为State,指环境中所有可能状态的集合动作空间A:A即为Action,指智能体所有可能动作的集合奖励R:R即为Reward,指智能体在环境的某一状态下所获得的奖励。在ttt时刻,环境的状态为StS_tSt​,达到这一状态所获得的奖励为RtR_tRt​智能体观测到StS_tSt​与RtR_tRt​,采取相应动作AtA_tAt​智能体采取AtA_tAt​后,环境状态变为St1。

2025-02-19 19:28:58 88

原创 强化学习之DPO

基于人类反馈的强化学习(RLHF) 是一个复杂且不稳定的过程,拟合一个反映人类偏好的奖励模型,然后使用强化学习对大语言模型进行微调,以最大限度地提高估计奖励,同时又不能偏离原始模型太远。这涉及训练多个 LM,并在训练循环中从 LM 采样,从而产生大量的计算成本。本文作者提出了直接偏好优化(DPO)算法,它稳定、高效且计算量轻,无需拟合奖励模型,也无需在微调期间从LM采样或执行显著的超参数调整。实验表明,DPO 可以微调 LMs,使其与人类偏好保持一致,与现有方法一样或更好。

2025-02-19 10:53:01 136

原创 强化学习之RLHF

强化学习(Reinforcement Learning,RL)研究的问题是智能体(Agent)与环境(Environment)交互的问题,其目标是使智能体在复杂且不确定的环境中最大化奖励(Reward)。强化学习基本框 架如图所示,主要由两部分组成:智能体和环境。在强化学习过程中,智能体与环境不断交互。智能体在环境中获取某个状态后,会根据该状态输出一个动作(Action),也称为决策(Decision)。动作会在环境中执行,环境会根据智能体采取的动作,给出下一个状态以及当前动作所带来的奖 励。

2025-02-14 13:36:18 46

原创 RAG的基本概念

在检索阶段,既可以从根节点向下进行遍历,也可以直接利用根节点的信息。

2025-02-14 09:52:34 49

原创 大模型参数高效微调之总结

增加额外参数,如:Prefix Tuning、Prompt Tuning、Adapter Tuning及其变体。选取一部分参数更新,如:BitFit。引入重参数化,如:LoRA、AdaLoRA、QLoRA。混合高效微调,如:MAM Adapter、UniPELT。并比较了不同的高效微调方法之间的差异;同时,还指出当前大多数高效微调方法存在的一些问题并给出了最佳实践。

2025-02-12 16:16:08 475

原创 大模型参数高效微调之lora

神经网络包含很多全连接层,其借助于矩阵乘法得以实现,然而,很多全连接层的权重矩阵都是满秩的。当针对特定任务进行微调后,(intrinsic rank),因此,论文的作者认为。

2025-02-12 15:50:59 267

原创 大模型参数高效微调之Adapter Tuning及其变体

首先,作者通过对Prefix Tuning变换,发现Prefix Tuning和Adapters的公式高度相似。然后,分析不同微调方法的内部结构和结构插入形式的相似之处。下图展示了高效微调方法Adapter、Prefix Tuning、LoRA以及新变体(通过更换一些元素,设计了前人的工作里没有的变体) Parallel Adapter、 Scaled PA的结构。

2025-02-11 12:47:55 62

原创 大模型参数高效微调之增量预训练

所以要想大模型有领域知识,得增量预训练(靠指令微调记知识不靠谱,不是几十w条数据能做到的)。

2025-02-11 12:47:32 97

原创 大模型参数高效微调之prompting

并且不需要加入 MLP 进行调整来解决难训练的问题。通过实验发现,随着预训练模型参数量的增加,Prompt Tuning的方法会逼近全参数微调的结果。同时,Prompt Tuning 还提出了 Prompt Ensembling,也就是。

2025-02-10 16:09:09 36

原创 大模型参数高效微调之实操指南

需要注意的是,微调需要在预训练模型的基础上进行,因此你需要首先选择适合你任务的预训练模型,如BERT、GPT等,然后使用特定领域的数据进行微调。微调过程中,可以根据任务需求和数据情况,调整微调的超参数,如学习率、微调步数等。,预训练的模型通过在特定任务上使用带标注的数据进行微调,以适应具体任务的要求。在微调过程中,模型通过接触任务特定的数据和标签,进一步调整和优化模型的参数,使其更好地适应任务的特定特征和要求。通过合适的方法和技术,可以减少灾难性遗忘的发生,保留之前学习到的知识,提高模型的整体性能。

2025-02-10 10:16:17 393

原创 大模型参数高效微调之基本概念

这样,模型就可以适应新的任务,计算开销更少,标记的例子也更少。尽管PEFT是一个相对较新的概念,但自从引入迁移学习以来,更新最后一层模型已经在计算机视觉领域得到了实践。即使在NLP中,静态和非静态词嵌入的实验也很早就进行了。参数高效微调旨在提高预训练模型(如BERT和RoBERTa)在各种下游任务上的性能,包括情感分析、命名实体识别和问答。它在数据和计算资源有限的低资源设置中实现了这一点。它只修改模型参数的一小部分,并且不容易过度拟合。参数高效的微调。

2025-02-08 17:00:19 151

原创 分布式训练之常见考题

点对点通信(Peer-to-Peer Communication)是一种网络通信模式,其中两个或多个计算机或设备之间直接进行通信,而不需要通过中央服务器或集中式系统。在点对点通信中,每个参与者都可以充当客户端和服务器,能够直接与其他节点通信、交换信息或共享资源。这种通信模式与传统的客户端-服务器模型不同,后者在网络中有一个中心服务器负责处理和转发所有请求和数据。而点对点通信模式中,参与者之间能够直接建立连接,相互传输信息或资源,使得网络更为分散和去中心化。

2025-02-08 15:14:07 62

原创 分布式训练之张量并行

本文主要针对 Megatron-LM 和 Colossal-AI 的张量并行方案进行了讲解。其中,Megatron-LM 提出了一种高效的一维(1D)张量并行化实现。这种方法虽然将参数划分到多个处理器上,但每个处理器仍需要存储整个中间激活,在处理大模型时会消耗大量的显存空间。此外,由于仅采用1维矩阵划分,在每次计算中,每个处理器都需要与其他所有处理器进行通信;因此,通信成本会随并行度增高而激增。显然,1维张量并行已无法满足当前超大AI模型的需求。

2025-01-26 10:05:58 78

原创 分布式训练之流水线并行

所谓流水线并行,就是由于模型太大,无法将整个模型放置到单张GPU卡中;因此,将模型的不同层放置到不同的计算设备,降低单个计算设备的显存消耗,从而实现超大规模模型训练。如下图所示,模型共包含四个模型层(如:Transformer层),被切分为三个部分,分别放置到三个不同的计算设备。即第 1 层放置到设备 0,第 2 层和第 3 层放置到设备 1,第 4 层放置到设备 2。相邻设备间通过通信链路传输数据。

2025-01-26 10:05:06 78

原创 分布式训练之数据并行

本文主要讲解了大模型分布式训练并行技术的数据并行,并以Pytorch为主线讲解了DP、DDP、FSDP三种不同的数据并行方案。单进程多线程模式,由于锁的机制导致线程间同步存在瓶颈。使用普通的All-Reduce机制,所有的卡需要将梯度同步给0号节点,并由0号节点平均梯度后反向传播,再分发给所有其他节点,意味着0号节点负载很重。由于第二点的原因,导致0号GPU通讯成本是随着GPU数量的上升而线性上升的。不支持多机多卡。目前,由于性能问题,DP基本不用了。

2025-01-24 10:28:30 61

原创 分布式训练概述

数据并行是最常见的并行形式,因为它很简单。在数据并行训练中,数据集被分割成几个碎片,每个碎片被分配到一个设备上。这相当于。每个设备将持有一个完整的模型副本,并在分配的数据集碎片上进行训练。在反向传播之后,模型的梯度将被全部减少,以便在不同设备上的模型参数能够保持同步。典型的数据并行实现:PyTorch DDP。

2025-01-24 10:08:33 302

原创 分布式训练之显存问题

大模型也分为不同的规格,一般模型的规格会体现在模型的名称上,例如 LLaMA2-13b,13b 就是其模型参数量的大小,意思是 130亿的参数量。一般来说推理模型需要的显存约等于模型文件大小,全参训练需要的显存约为推理所需显存的三倍到四倍,正常来说,在不量化的情况下4张 v100 显卡推理 65b 的模型都会有一些吃力,无法进行训练,需要通过 LoRA 或者QLoRA 采用低秩分解的方式才可以训练。用于近似 FP32 精度下任务的专有格式,实际上约等于 FP19 也就是19位。

2025-01-22 20:55:34 67

原创 大模型训练 && 微调数据格式

在这个示例中,(1代表正例,0代表负例)。每一行代表一个样本,第一列是输入数据,第二列是对应的标签。需要注意的是,具体的数据集格式可能会因任务类型、数据来源和使用的深度学习框架而有所不同。因此,在进行SFT训练时,建议根据具体任务和框架的要求来定义和处理数据集格式。

2025-01-22 19:27:10 441

原创 解码策略(Top-k & Top-p & Temperature)

在大模型训练好之后,如何对训练好的模型进行解码(decode)是一个火热的研究话题。一般给模型传入的解码参数如下所示。在自然语言任务中,通常使用一个预训练的大模型(比如GPT)来根据给定的输入文本(比如一个开头或一个问题)生成输出文本(比如一个答案或一个结尾)。为了生成输出文本,需要让模型逐个预测每个 token ,直到达到一个终止条件(如一个标点符号或一个最大长度)。在每一步,模型会给出一个概率分布,表示它对下一个单词的预测。

2025-01-22 17:06:07 282

原创 llama 3 笔记

llama 3 是在 15 万亿个 Token 上预训练的语言模型,具有 8B 和 70B 两种参数规模,可以支持广泛的用户场景,在各种行业基准上取得了最先进的性能,并提供了一些新功能,包括改进的推理能力。

2025-01-20 21:36:47 278

原创 llama 2代码详解

因为ChatGPT3.5/4没有开源,所以本文选择MetaAI半开源的LLM模型Llama2,该模型也是HuggingFaceopen_llm_leaderboard的榜首模型。所谓半开源即只有inference过程没有train过程。

2025-01-20 13:46:30 830

原创 BERT详解

当输入信息的维度 d 比较高,点积模型的值通常有比较大的方差,从而导致 softmax函数的梯度会比较小。因此,缩放点积模型可以较好地解决这一问题。常用的Attention机制为加性模型和点积模型,理论上加性模型和点积模型的复杂度差不多,但是点积模型在实现上可以更好地利用矩阵乘积,从而计算效率更高(实际上,随着维度d的增大,加性模型会明显好于点积模型)。参考:详解加性注意力和缩放点积注意力。

2025-01-17 12:57:55 395

time_series_anomaly_detection.zip

时间序列异常的公开数据集,内有异常和正常的标注。内含五个不同的数据集,包括环境温度异常检测、cpu使用率的异常检测、请求延迟系统故障检测、机器温度异常检测和纽约出租车数量异常检测。

2021-04-14

nyc_taxi.csv

纽约地区从2014年7月1日到2015年1月31日的出租车需求

2021-01-26

SMO_web.zip

用smo算法实现参数的求解,内有高斯核函数, 还有本人自己写的注释

2019-07-24

空空如也

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

TA关注的人

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