- 博客(209)
- 收藏
- 关注
原创 从 GPT‑2 到 gpt‑oss:解析架构的迭代
OpenAI 本周刚发布了两款新的开放权重的大语言模型:gpt-oss-120b 和 gpt-oss-20b,这是自 2019 年 GPT-2 以来首次推出的开放权重模型。是的,得益于一些巧妙的优化,它们可以在本地运行(稍后会详细介绍)。这是自 GPT-2 以来,OpenAI 首次分享体量较大的、完全开放权重的模型。早期的 GPT 模型展示了 Transformer 架构的可扩展性。2022 年的 ChatGPT 发布则通过在写作与知识(以及后来在编程)任务上的具体实用性,使这些模型走向主流。
2025-08-10 21:11:24
1501
原创 从零开始实现Qwen3(MOE架构)
本文介绍了如何从零实现Qwen3-MoE模型架构。Qwen3-MoE采用稀疏混合专家(MoE)设计,与密集模型共享基础结构,支持30B-A3B至235B-A22B参数量级。核心配置包括:2048维隐藏层、128个专家(每个token激活8个)、768维MoE中间层、32头GQA注意力(分组数4)、RMSNorm归一化和SwiGLU激活函数。文章详细解析了模型的技术细节,包括词汇表大小151936、26万上下文长度、ROPE位置编码等关键参数,并提供了PyTorch实现中的RMSNorm层代码示例。该实现可在
2025-08-10 12:06:51
2172
1
原创 从零开始实现Qwen3(Dense架构)
本文介绍了从零开始实现Qwen3-Dense架构的相关内容,重点解析了其Decoder部分的核心组件。文章首先基于Qwen3-0.6B的配置文件分析了模型架构特点,包括词汇表大小151936、上下文长度40960、使用SwiGLU激活函数、ROPE编码等关键技术。特别详细介绍了RMSNorm(均方根归一化)的实现原理,包括其数学公式和代码实现,展示了与LayerNorm相比在计算复杂度上的优势。通过Pydantic定义了模型配置的数据结构,为后续实现提供了清晰的参数框架。文章为理解Qwen3系列大模型的核心
2025-08-03 22:45:36
1993
原创 LLM的训练:RLHF及其替代方案
本文探讨了大型语言模型(LLM)训练中的关键步骤——基于人类反馈的强化学习(RLHF)及其替代方案。文章首先介绍了标准LLM训练流程的三个阶段:预训练、监督微调和对齐。重点分析了RLHF的三个步骤:监督微调创建基础模型、构建奖励模型以及通过近端策略优化(PPO)进行微调。文章还比较了ChatGPT和Llama 2在RLHF实现上的差异,并简要讨论了RLHF的替代方法。通过深入解析RLHF机制,揭示了该技术如何将人类偏好融入模型优化,从而提升语言模型的实用性和安全性。
2025-08-03 15:02:55
989
原创 如何理解推理模型
文章摘要:理解推理型大语言模型 本文探讨了如何构建和改进推理型大语言模型(LLM)。作者将"推理"定义为需要多步骤思考的复杂任务(如数学证明、编程挑战),区别于简单的事实问答。文章重点介绍了四种增强LLM推理能力的方法:1)推理时扩展(如思维链提示);2)纯强化学习训练(如DeepSeek R1的"冷启动"方法);3)监督微调与强化学习结合;4)知识蒸馏技术。同时指出推理模型的局限性——它们成本更高、响应更冗长,且可能因"过度思考"导致错误。文章以
2025-08-01 23:50:38
876
原创 大模型结构比较
本文比较了现代大型语言模型(LLM)的架构演变,重点关注DeepSeek-V3和OLMo 2等模型。尽管基础Transformer架构保持稳定,但关键改进包括:位置嵌入从绝对嵌入发展为旋转嵌入(RoPE);多头注意力被分组查询注意力(GQA)取代;激活函数升级为更高效的SwiGLU。DeepSeek-V3采用多头潜在注意力(MLA)和混合专家(MoE)技术,MLA通过压缩键值张量降低内存占用,MoE则通过稀疏激活提升模型容量同时保持推理效率。OLMo系列以训练透明性著称,虽未在榜单领先但为研究提供了宝贵参考
2025-08-01 23:49:20
1624
原创 单卡4090部署Qwen3-32B-AWQ(4bit量化、sglang版)
单张NVIDIA RTX 4090显卡上部署Qwen3-32B-AWQ(4bit量化)模型
2025-07-21 16:17:01
2293
原创 MLA:KV Cache 的“低秩跃迁”
DeepSeek V2 提出的 MLA(Multi-head Latent Attention) 通过低秩压缩优化大模型注意力机制,显著降低 KV Cache 存储需求。
2025-07-20 17:19:09
1024
原创 GLU 变种:ReGLU 、 GEGLU 、 SwiGLU
范式,差别仅在于把 GLU 中的 Sigmoid 门控替换为其他非线性函数,从而在参数量几乎不变的前提下带来不同的归纳偏差与性能收益。在 GLU 的基础上,陆续提出了若干“固定swish函数中的参数。
2025-07-18 23:19:41
1304
原创 门控线性单元GLU (Gated Linear Unit)
结合起来,通过可学习的门控信号来控制信息流,可以看做是引入了一种动态的选择极值,以在模型中选择性地传递信息。提出,设计灵感来自门控控制,通过引入门控操作来控制信息的流动,它巧妙地将。若输入通道维度(seq_len)为偶数,可直接使用。,此时将输入均分两份:前一半做值、后一半做门控。注意:使用官方的GLU函数,输出维度是减半的。自定义 GLU(任意线性映射 + 门控)门控线性单元(GLU)最初在。为例,针对通道维度切分)
2025-07-18 22:45:47
1090
原创 神经网络常见激活函数 15-B-SiLU 函数
摘要:B-SiLU(Bounded Sigmoid Linear Unit)是一种新型激活函数,结合了SiLU的自门控特性和可调下限参数。通过SUGAR方法解决了ReLU的"死亡ReLU"问题,在前向传播中保持稀疏性,反向传播中作为平滑导数替代函数。实验显示,B-SiLU在CIFAR数据集上显著提升了VGG-16和ResNet-18的准确率10-16个百分点。其数学表达式为(x+α)σ(x)-α/2,具有有界输出、平滑可导等优点,但计算量略高于ReLU。目前已在PyTorch和Tenso
2025-07-17 23:45:05
1025
原创 神经网络常见激活函数 14-Mish函数
一种新型的神经网络激活函数,其定义为x·tanh(ln(1+e^x))。用于ReLU函数在反向传播的梯度代替
2025-07-17 09:18:09
1017
原创 神经网络常见激活函数 13-Softplus函数
Softplus函数定义为ln(1+e^x),其导数为sigmoid函数。具有处处可导、缓解梯度消失等优点
2025-07-16 17:32:34
1080
原创 kimi-k2-api使用示例
Kimi K2** 是月之暗面(Moonshot AI)于2025年7月11日发布并开源的万亿参数 MoE(混合专家模型)架构基础模型,总参数1T,激活参数32B,上下文长度128K,专为“智能体”任务优化,具备超强代码能力和通用Agent任务能力。注册赠送10元账户余额和50W tokens,这个余额可以使用GPU机器,一台4090大概能用5小时,也可以使用大模型的api,50Wtokens个人也可以使用很久。控制台–>模型API服务–>文本对话–>选择刚刚创建的api-key–>选择模型。
2025-07-16 17:27:05
3749
原创 kimi-k2模型配置参数
Kimi-K2是一款万亿级MoE大模型,采用稀疏架构设计,包含384个路由专家,每次推理仅激活8个。模型架构基于DeepseekV3改进,支持128K长上下文,使用YaRN进行RoPE外推。主要技术特点包括:7168模型维度、61层Transformer、层层MoE结构、FP8量化和bfloat16推理支持。该模型专注于高容量、推理效率和agent能力,通过top-k路由和序列级负载均衡优化专家分配。相比业界普遍转向后训练的趋势,Kimi仍在预训练方向持续突破,展现了独特的技术路线。
2025-07-15 22:07:17
1350
原创 MHA、MQA、GQA:大模型注意力机制的演进
大模型注意力机制从MHA到MQA再到GQA的演进,为平衡性能与效率提供了不同方案。MHA通过多头并行计算获得最佳模型质量,但内存消耗大、推理速度慢;MQA共享KV投影显著提升推理速度,但可能降低性能;GQA折中地将查询头分组,在保持接近MHA性能的同时获得接近MQA的效率。以32层Decoder为例,MHA每个token占用512KB缓存,GQA(4组)为128KB,MQA仅16KB。GQA作为MHA和MQA的泛化,通过调整分组数实现性能与效率的最佳平衡,已成为当前主流选择。
2025-07-13 16:11:22
1438
原创 笔记-分布式计算基础
本文介绍了分布式计算的三种主要方法:数据并行、流水线并行和张量并行。数据并行将数据分发给多个GPU,但模型过大时效率低;流水线并行将模型分割到不同GPU上,但存在负载均衡和空闲问题;张量并行在更细粒度上分割模型,但会带来额外通信开销。重点分析了数据并行的参数服务器架构及其通信瓶颈,提出了All-Reduce优化方法。最后详细阐述了Zero系列优化技术(包括Zero-1/2/3和FSDP)如何通过分布式存储模型参数、梯度和优化器状态来解决大模型训练的内存限制问题,以及流水线并行的基本实现原理。这些方法为大规模
2025-07-12 23:12:33
375
原创 大模型下载的通用方法
介绍两种下载HuggingFace模型的方法:通过HuggingFace官方工具和ModelScope平台。对于HuggingFace下载,提供了Python代码(使用snapshot_download)和命令行(huggingface-cli)两种方式,并建议使用国内镜像站加速下载。对于ModelScope下载,同样展示了代码(snapshot_download)和命令行(modelscope download)两种方法。两种平台都支持指定本地存储路径,并提供了下载示例截图。
2025-07-11 15:29:42
655
原创 Adam优化器
本文介绍了Adam优化算法的工作原理及其优势。Adam通过计算梯度(m_t)和梯度平方(v_t)的指数加权平均来动态调整学习率,并引入偏差修正解决训练初期的估计偏小问题。该方法能有效应对多种优化场景:在鞍点借助梯度惯性通过,在缓坡加速下降,在局部极小值区域增大跳出概率,在悬崖降低学习率避免震荡,在终点附近抵消振荡加速收敛。三维情况下,Adam能对不同参数自适应调整学习率。尽管Adam具备这些优势,但在实际应用中,传统SGD结合动量法有时效果更佳,建议根据具体问题选择合适的优化器。
2025-06-26 17:35:25
929
原创 RMSProp
RMSProp是AdaGrad的改进算法,通过指数加权移动平均替代梯度平方累加,动态调整学习率。它根据近期梯度波动调整步长:波动大时减慢,平稳时加速。在缓坡场景下,RMSProp能稳定学习率,避免AdaGrad的学习率消失问题。与动量法相比,RMSProp更适合处理缓坡和悬崖,但难以逃离鞍点。两种方法具有互补性,结合二者优点的Adam算法应运而生。该算法既能通过动量加速收敛,又能自适应调整各维度学习率。
2025-06-25 17:00:46
361
原创 transformer-kv缓存
KV Cache是一种用于优化生成式AI模型推理性能的技术,通过存储和复用历史计算结果来避免重复计算。在自注意力机制中,KV Cache保存已生成Token的Key和Value向量,使得每次生成新Token时只需计算当前Token的QKV向量并与缓存的历史KV向量交互,将计算复杂度从O(n²)降低到O(n)。该技术显著提升推理速度,但会占用大量显存(与模型层数、隐藏维度和序列长度成正比),可能限制最大上下文长度。目前主要通过量化技术和分组查询注意力等方法优化其内存消耗。KV Cache已成为大模型高效推理的
2025-06-23 11:12:18
1354
原创 AdaGrad
AdaGrad是一种自适应学习率优化算法,它通过累计历史梯度平方来调整每个参数的学习率。其核心思想是在稀疏数据或梯度方向差异大的情况下,为不同参数分配不同学习率。AdaGrad在初期能加快收敛,但随着训练进行,由于梯度平方的持续累加会导致学习率单调递减,最终可能使模型过早停止学习。该算法在悬崖地形能有效控制步长,但在局部极小值区域容易陷入停滞,且对于长缓坡收敛速度反而变慢。这些缺陷促成了后续RMSprop等改进算法的提出。
2025-06-23 11:09:23
858
原创 动量法-momentum
动量法是一种优化梯度更新的方法,借鉴物理学中的动量概念,在梯度更新时不仅考虑当前梯度,还参考历史梯度趋势。主要分为标准动量法和指数加权平均动量法,通过引入动量系数β(通常取值0.5-0.99)来平滑梯度。该方法在多个场景具有优势:通过拐点时能利用历史梯度继续前进;在缓坡场景中标准动量法可显著加速收敛;能帮助逃离局部极小值;指数加权法可部分缓解悬崖问题;在最小值点附近能减少震荡。然而标准动量法在悬崖地形可能加剧跳跃,而指数加权法虽然平滑梯度但缓坡加速效果有限。
2025-06-20 10:28:55
637
原创 优云智算大模型api使用
控制台–>模型API服务 --> API KEY --> 创建API KEY。控制台–>模型API服务–>模型体验–>选择模型。可以点击API-KEY下面的复制按键进行复制。填写API-KEY名称–> 创建并复制。成功后即可看见刚刚新建的API-KEY。访问官网,选择手机号或者邮箱注册。模型广场查看所有可用模型。
2025-06-12 16:30:37
1061
原创 单卡4090部署Qwen3-32B-AWQ(4bit量化)-vllm
在单卡NVIDIA 4090 GPU上部署4bit量化的Qwen3-32B-AWQ模型,使用vllm推理框架。
2025-05-30 22:58:48
2784
6
原创 7.3 Organizing data into training batches
将指令微调数据组织成训练批次。首先构建一个InstructionDataset类对输入进行预标记,然后开发自定义排序函数将不同长度的样本分批,并添加填充标记统一长度。该方法仅对同批次样本进行填充,避免不必要的计算开销。此外,实现了输入和目标值的生成,通过将目标token向右移动一位,使模型学习预测下一个token。代码示例展示了如何将输入序列转换为模型可处理的批次张量,为后续指令微调提供数据准备基础。
2025-05-30 14:16:09
689
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅