- 博客(213)
- 收藏
- 关注
原创 【混合注意力模型的 KV Cache 设计与统一管理实践解析】
本文探讨了大模型混合注意力架构下KV Cache与S&Conv Cache的统一管理问题。随着模型结构演进,推理框架需要同时处理传统KV Cache(线性增长)和线性注意力模块的S&Conv Cache(固定大小)。文章分析了两种缓存的特性差异,提出通过统一页面大小、分配逻辑和调度机制来兼容管理。重点对比了两种缓存的内存消耗趋势,指出在长序列场景下线性注意力更具优势,并介绍了vLLM/SGLang等框架采用请求级连续内存布局的优化方案。这种统一缓存管理方案是支持下一代混合注意力模型的关键技术
2025-12-26 22:35:18
478
原创 【KV Cache 是如何让大模型变快的?】一篇文章带你彻底搞懂
KV Cache是大语言模型(LLM)推理中的关键优化技术。它通过缓存历史token的Key和Value,避免重复计算,将推理复杂度从O(n²)降为O(n)。KV Cache之所以有效,是因为K/V是token的固定属性,不会随后续输入改变。训练阶段不需要KV Cache,因为训练是全序列并行计算;而推理是逐token解码,重复计算严重。尽管KV Cache能显著提升推理效率,但也带来内存占用大、实现复杂度高等问题,催生了MQA/GQA、PagedAttention等优化技术。KV Cache已成为现代LL
2025-12-26 18:31:48
464
原创 【深入浅出 Qwen-3-Next 线性注意力】从双向 / 单向注意力到 Gated Delta Net 核心解析(一)
本文系统分析了Qwen-3-next模型中的注意力机制,重点对比了双向注意力和单向注意力的区别及其应用场景。双向注意力(如BERT)允许全局位置互相关注,适合理解型任务;单向注意力(如GPT)通过因果掩码限制只能关注过去位置,适合生成任务。文章指出标准注意力计算存在O(n²d)复杂度问题,尤其softmax运算阻碍了计算顺序优化,从而引出线性注意力的必要性——通过绕过softmax实现更高效的长序列处理。全文通过数学公式和具体示例详细阐释了各类注意力机制的原理及实现方式。
2025-12-20 00:15:51
647
2
原创 【LLM 位置编码终极指南】从 Sinusoidal 到 RoPE 的原理、推导与工程实现
本文系统梳理了Transformer中位置编码的核心方法。首先分析自注意力机制因排列不变性导致的位置信息缺失问题,指出位置编码的必要性。重点解析两种主流位置编码方案:1)Sinusoidal位置编码通过三角函数生成固定位置向量,利用波长变化捕捉多尺度位置关系;2)RoPE(旋转位置编码)通过旋转矩阵实现相对位置感知。文章详细推导了Sinusoidal编码的数学原理,展示其如何通过线性变换表达位置偏移,并区分不同维度对局部/全局信息的表征。位置编码技术有效解决了模型对序列顺序的感知问题,为处理长/短距离依赖关
2025-12-16 00:13:34
678
原创 【深度解析 LayerNorm 与 RMSNorm】为什么 LLaMA 等大模型全面转向 RMSNorm?
本文系统分析了归一化技术,重点探讨了RMSNorm取代Transformer中LayerNorm的原因及其在MiniMind中的实现。归一化通过消除数据量纲差异,稳定数值范围,加速模型收敛,缓解梯度问题。LayerNorm按特征维度归一化,适用于Transformer序列建模,而RMSNorm通过简化计算提升效率。文章详细解析了归一化稳定优化的数学原理,包括梯度校准和特征维度平衡,并指出归一化间接提升内存使用效率,尤其在低精度训练中效果显著。
2025-12-11 23:37:32
841
原创 【Qwen 团队 NeurIPS 2025 重磅成果】门控注意力为何能革新大模型架构?
本文提出了一种门控注意力机制(Gated Attention),用于解决大型语言模型中存在的注意力下沉(Attention Sink)问题。研究发现,传统模型在处理文本时,注意力权重会过度集中于首个Token,导致长文本理解能力下降。通过在注意力计算后引入门控单元,模型能够动态调节信息流,将首个Token的注意力占比从46.7%降至4.8%,同时提升训练稳定性和任务性能。实验表明,该方法在语言理解、数学推理等任务上表现优异,并显著改善了长文本处理能力。这一创新已成功应用于阿里巴巴Qwen3-Next模型。
2025-12-08 17:24:30
1288
原创 【Agent 学会 “自我复盘”】Reflection 机制驱动的迭代式优化实战
摘要:本文探讨了Reflection机制在智能体任务执行中的应用,该机制通过"执行-反思-优化"三步循环实现自我校正。在执行阶段生成初步解决方案后,反思阶段由专门评审员从准确性、逻辑性、效率等维度进行评估并生成反馈报告,优化阶段则据此改进方案。以素数查找函数编写为例,展示了该机制如何识别效率问题并进行迭代优化。Reflection机制为智能体建立了短期记忆系统,将一次性任务转化为持续优化过程,显著提升复杂任务的完成质量。该机制模拟人类学习过程,使智能体能够自主修正高阶错误,为构建更强大的
2025-11-28 23:57:17
192
1
原创 【Plan-and-Solve 架构实战】手把手教你构建“先规划后执行”的 AI 智能体
本文介绍了Plan-and-Solve范式在智能体设计中的应用。该范式将任务处理分为规划(Plan)和执行(Solve)两个阶段:规划阶段将问题分解为结构化步骤,执行阶段按计划逐步求解。文章以水果店销售问题为例,展示了如何通过Planner类生成Python列表格式的分步计划,再由Executor类严格按计划执行计算。这种"先谋后动"的策略尤其适用于多步骤、结构化的复杂任务,能有效避免推理过程中的偏差,提高目标一致性。文章还提供了Planner和Executor类的具体实现代码,包括pr
2025-11-28 13:04:48
941
原创 【深入解析 ReAct 框架】Thought 与 Action 的完美结合
本文解析了ICLR 2023论文《REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS》提出的ReAct框架。该框架通过协同整合推理(Thought)与行动(Action)能力,显著提升语言模型处理复杂任务的性能。研究以HotpotQA和ALFWorld数据集为例,对比了仅推理(CoT)、仅行动和ReAct三种方法:ReAct通过交替生成推理轨迹和任务行动,实现动态规划与外部信息利用,在问答和决策任务中表现最优。核心设计包括推理-行动协同机制、
2025-11-26 19:33:28
986
原创 【Python 手搓 ReAct Agent】一文吃透「Thought - Action - Observation」闭环
ReAct 智能体框架解析 本文基于Datawhale开源项目hello-agents,详细解析了ReAct(Reasoning and Acting)智能体架构。ReAct通过结合推理(Thought)与行动(Action)的循环机制,实现了"思考-行动-观察"的动态交互流程。文章首先对比了纯推理与纯行动方法的局限性,然后重点介绍了ReAct的创新工作流程,包括其核心的Thought->Action->Observation循环机制。在技术实现层面,详细讲解了LLM客户端类
2025-11-26 11:21:34
925
原创 【解锁Python函数参数的正确姿势】从基础到高级用法
本文介绍了Python函数的6种参数传递方式:1)位置参数按定义顺序传递;2)关键字参数通过参数名指定;3)默认参数在定义时设置默认值;4)args接收多余位置参数为元组;5)**kwargs接收额外关键字参数为字典;6)混合使用时需遵循位置参数→默认参数→args→**kwargs的顺序。这些参数机制使Python函数调用更加灵活和强大。
2025-11-13 18:20:02
163
原创 【一文彻底读懂 RAG】从分片到生成的完整技术流程解析
本文介绍了检索增强生成(RAG)技术的核心原理与实施流程。RAG通过文档分片、索引构建、向量检索等步骤,解决大模型处理长篇文档时的上下文限制问题。关键技术包括:文档分片(Chunking)、Embedding模型转换文本为向量、向量数据库检索相似内容等。实际操作分为用户提问前的准备阶段(分片、索引)和回答阶段(召回、重排、生成)。文章还指出RAG现存的分片语义缺失和全局视角不足等问题,并列举了主流的向量数据库解决方案。RAG技术有效降低了模型幻觉风险,提升了回答准确性和效率。
2025-11-13 14:25:55
1208
原创 【动态规划】【入门 DP】—198. 打家劫舍
本文解决房屋偷窃问题,采用动态规划方法。通过定义dp[k]表示前k间房屋能偷窃的最大金额,状态转移方程为:dp[k] = max(dp[k-1], dp[k-2] + nums[k-1]),分别对应不偷或偷第k间房屋的两种选择。关键在于正确处理边界条件,包括单独处理单房屋情况,以及初始化前两个房屋的收益。最终返回dp[n]作为最优解。该问题体现了动态规划的核心思想:将复杂问题分解为子问题,通过局部最优解构建全局最优解。
2025-11-12 10:32:03
334
原创 【动态规划】【入门 DP】—746. 使用最小花费爬楼梯
动态规划是算法设计中的一种重要方法,特别适用于具有重叠子问题和最优子结构特性的问题。本文将通过经典的杨辉三角问题,讲解如何运用动态规划思想解决实际问题。
2025-11-03 23:57:28
400
原创 【大模型 Tokenizer 核心技术解析】从 BPE 到 Byte-Level 的完整指南
本文深入解析了大语言模型Tokenizer的核心技术,重点介绍了BPE算法原理及其改进方法。Tokenizer作为文本与数字间的桥梁,支持字符级、单词级和子词级三种分词方式。其中子词级分词通过BPE算法有效平衡了词典大小与序列长度,解决了字符级稀疏性和单词级未登录词问题。进一步分析了Byte-Level BPE的改进优势,包括更好的多语言支持、罕见字符处理能力和计算效率提升。文章还详细对比了Unicode、UTF-8和ASCII编码原理,并通过具体示例展示了BPE的训练过程与编码机制,为理解现代NLP模型的
2025-11-03 22:48:27
1200
原创 【动态规划】【入门 DP】—118.杨辉三角
本文以杨辉三角为例介绍动态规划的基本应用。通过确定dp数组含义、推导递推公式(dp[i][j]=dp[i-1][j-1]+dp[i-1][j])并处理边界条件,实现了生成杨辉三角的算法。文章详细解析了动态规划的5个关键步骤,并提供了一个Python实现,重点处理了不等长二维数组的初始化和边界元素问题。最后补充了Python中定义不等长二维数组的方法。该解法时间复杂度O(n²),空间复杂度O(1)(不考虑输出空间)。
2025-10-31 16:14:46
956
原创 【动态规划】【入门 DP】—70. 爬楼梯
动态规划是一种通过分解问题、存储子问题解来提高效率的算法。本文以LeetCode 70题"爬楼梯"为例,讲解动态规划的核心思路:定义dp[i]表示到达第i阶的方法数,状态转移方程为dp[i]=dp[i-1]+dp[i-2],并给出Python实现代码。同时补充了Python中列表、数组的定义与区别,强调动态规划需要长期练习来掌握状态转移方程的构建技巧。解题步骤包括确定状态、推导转移方程、初始化边界条件和验证dp数组的正确性。
2025-10-31 14:24:23
651
原创 【滑动窗口与双指针】【定长滑窗】—438. 找到字符串中所有字母异位词
本文介绍了使用定长滑动窗口算法解决字符串异位词匹配问题(LeetCode 438)。核心思路是维护两个哈希表分别记录模式串p和当前窗口的字符频率,通过滑动窗口机制逐个比较。关键点包括:1)初始化时构建首个窗口;2)窗口滑动时动态更新字符统计;3)清除频率为0的键避免误判;4)直接比较哈希表判断异位词。Python实现中需注意边界条件(p比s长时直接返回空列表)和哈希表比较时处理零值键。算法时间复杂度主要取决于字符串长度,通过定长滑动窗口优化了暴力解法的性能。
2025-10-28 20:09:34
852
原创 【滑动窗口与双指针】【不定长滑窗】—3. 无重复字符的最长子串
本文介绍了不定长滑动窗口算法在求解"无重复字符的最长子串"问题中的应用。通过双指针(left,right)动态维护窗口范围,使用defaultdict(int)记录字符出现次数,当遇到重复字符时收缩左边界直到消除重复。时间复杂度为O(n),每个字符最多被访问两次。相比定长滑窗,该方法能更灵活地处理变长窗口问题,核心代码仅需10行左右即可高效实现。文章还对比了enumerate()和range()的性能差异,解释了defaultdict(int)自动初始化的优势。
2025-10-28 12:51:56
1102
原创 【Python】Python 的“四舍五入”其实不是你想的那样:从 round() 到真正的精度控制
Python的round()函数采用银行家舍入法(四舍六入五取偶),与传统四舍五入不同,如round(2.5)返回2。这种设计能减少统计偏差,但可能不符合业务需求。本文提供三种替代方案:1)使用decimal.Decimal实现精确控制;2)基于math.floor的数学实现;3)NumPy的向量化处理。开发者应根据精度要求、场景特点选择合适方案,平衡统计公平性与业务直觉需求。
2025-10-27 18:46:27
636
原创 【大模型的原理 - 从输入到输出】Transformer 的 Decoder-only 架构
本文介绍了大模型预测下一个词的核心机制,重点分析了Decoder-only架构在自回归语言建模中的应用。文章从数据准备、训练推理流程到模型架构三个层面展开:1)训练数据采用错位1的输入-目标配对方式,通过Teacher Forcing实现并行计算;2)推理时采用自回归方式逐步生成token;3)详细解析了嵌入层的工作机制,包括token向量化和位置编码(绝对/相对位置嵌入)的实现方法。全文揭示了Transformer模型在语言生成任务中的关键技术原理,为理解大模型运作机制提供了清晰框架。
2025-10-25 23:36:21
1084
原创 【滑动窗口与双指针】【定长滑窗】—1423. 可获得的最大点数
本文通过LeetCode 1423题展示了定长滑动窗口的应用。题目要求从卡牌行首或行尾取k张牌,使点数总和最大。核心思路是将问题转化为:在首尾2k张牌组成的数组中,寻找长度为k的连续子数组的最大和。具体解法是拼接尾部k张和头部k张牌形成新数组,然后使用定长滑动窗口技术遍历所有可能窗口,计算并比较窗口和,最终返回最大值。这种方法避免了重复计算,时间复杂度为O(k),适用于大数组情况。
2025-10-23 19:04:58
354
原创 【滑动窗口与双指针】【定长滑窗】—1456. 定长子串中元音的最大数目
摘要 本文介绍了滑动窗口与双指针算法,重点讲解了定长滑窗的三步套路:1)初始化第一个窗口;2)滑动剩余窗口(右进左出);3)更新全局答案。提供了Python实现示例和核心口诀"入-滑-更新",并总结了常见错误如窗口下标计算错误、集合误用列表等。作者通过参考灵茶山艾府的思路,最终采用更直观的新方法实现了定长滑窗算法。
2025-10-22 22:19:53
250
原创 【因果推断】区分可观测协变量与混杂因素
在因果推断研究中,我们经常需要**确定某个因素是否对结果产生了真正的因果效应**。然而,数据中的某些变量可能会影响推断的准确性,其中**可观测协变量(Observable Covariates)**和**混杂因素(Confounding Factors)**是最关键的两个概念。正确理解和区分这两者,是进行科学可靠的因果推断的基础。
2025-05-29 16:42:57
1191
原创 【因果推断】潜在结果框架
潜在结果框架为因果推断提供了一个清晰的理论基础,它通过构建个体在不同处理条件下的潜在结果来分析因果效应。本文将介绍潜在结果框架的核心概念,并探讨如何在实际研究中应用这一方法来进行因果推断。
2025-05-29 10:01:45
838
原创 【神经网络与深度学习】流模型的通俗易懂的原理
流模型是一种强大的生成模型,它通过**可逆变换**将简单的概率分布转化为复杂的数据分布。相比于扩散模型和生成对抗网络(GAN),流模型可以**精确计算数据的概率**,并且生成过程是**一步完成**,无需多步迭代。
2025-05-22 00:09:27
1244
原创 【神经网络与深度学习】扩散模型之原理解释
本文将采用直观的方式解析扩散模型的原理,避免复杂的数学推导,但保留关键的逻辑和机制,让你轻松理解其核心思想。
2025-05-21 00:05:48
1123
原创 【神经网络与深度学习】GAN 生成对抗训练模型在实际训练中很容易判别器收敛,生成器发散
本文将深入分析 GAN 在训练过程中判别器收敛、生成器发散的原理,并探讨可能的解决方案,以帮助优化 GAN 的稳定性和生成质量。
2025-05-19 20:55:48
1299
原创 【神经网络与深度学习】model.eval() 模式
本文将详细介绍 `model.eval()` 对模型行为的影响、适用场景及相关代码示例,帮助读者更好地理解这一重要操作的作用。
2025-05-19 20:46:53
689
原创 【神经网络与深度学习】局部最小值和全局最小值
本文将深入探讨局部最小值与全局最小值的区别、特点,以及如何选择合适的优化方法,以确保模型能够在有限的计算资源下达到最佳状态。
2025-05-13 16:13:19
1891
原创 【神经网络与深度学习】通俗易懂的介绍非凸优化问题、梯度消失、梯度爆炸、模型的收敛、模型的发散
神经网络的训练过程并不总是顺利的,优化过程中可能会遇到各种挑战,如**非凸优化问题**、**梯度消失**、**梯度爆炸**、**模型收敛**和**模型发散**。这些问题直接影响着模型的稳定性和最终性能,因此理解它们对于深度学习的研究和应用至关重要。本文将深入探讨这些优化问题的本质及其应对策略,帮助你更好地掌握深度学习模型的训练过程,并提高模型的表现。
2025-05-13 16:11:20
1474
原创 【神经网络与深度学习】VAE 和 GAN
VAE(变分自编码器)和 GAN(生成对抗网络)是深度学习中两种主要的生成模型,它们在数据生成任务中发挥着重要作用。虽然它们的目标相似,都是生成与训练数据分布相匹配的新样本,但在训练方式、潜在空间结构、生成样本质量和稳定性方面存在显著差异。本文将从多个方面对 VAE 和 GAN 进行对比分析,以帮助初学者更直观地理解它们的特点和区别。
2025-05-07 23:58:00
1308
1
原创 【神经网络与深度学习】深度学习中的生成模型简介
深度学习中的生成模型能够学习数据分布并生成新数据,在人工智能的多个领域中都有重要应用。不同类型的生成模型在原理和结构上各有特点,适用于不同的任务,如图像生成、文本生成和时间序列预测等。本文将介绍几种常见的生成模型,并分析其核心特点和应用场景。
2025-05-05 21:02:55
1198
原创 【神经网络与深度学习】普通自编码器和变分自编码器的区别
普通自编码器侧重于高效压缩数据并进行无损重构,而变分自编码器则通过潜在空间的概率分布,增强了模型的生成能力和泛化性能。本文将从多个角度探讨 AE 和 VAE 的不同之处,并分析它们各自的特点和应用场景。
2025-05-05 21:01:36
868
原创 【神经网络与深度学习】生成模型-单位高斯分布 Generating Models-unit Gaussian distribution
在生成模型的研究与应用中,单位高斯分布(标准正态分布)作为数据采样的基础扮演着至关重要的角色。其数学特性、潜在空间的连续性、灵活性以及通用性,使得生成模型能够高效且稳定地学习和生成样本。本文将详细探讨从单位高斯分布获取数据点的核心原因,并通过目录结构提供清晰的逻辑框架。
2025-05-04 12:47:03
581
原创 【统计方法】方差分析(ANOVA):判断数据差异的统计方法
本文将通过一个通俗易懂的案例,深入解析方差分析的基本原理、计算方法及其在假设检验中的应用,以帮助读者更好地理解和运用这一统计工具。
2025-05-01 21:30:37
1462
python爬取豆瓣书籍多类别信息
2024-10-31
FIFO,LRU,LFU 的三种页面置换算法的C++实现
2023-04-09
学生第二课堂信息管理系统C++代码
2023-12-14
用二叉排序树对文本文件单词处理与统计:去重、排序和位置信息输出
2023-12-13
C++学生第二课堂信息管理系统技术报告
2023-12-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅