- 博客(317)
- 收藏
- 关注
原创 大模型的On-Policy Distillation(在线蒸馏策略)
《On-Policy Distillation》结合在线策略与知识蒸馏的后训练方法,提出了一种新型大模型优化范式,通过融合强化学习的在线策略(on-policy)和知识蒸馏的密集奖励信号,有效解决了传统方法的局限性。相比纯在线策略的稀疏反馈问题,以及离线策略(off-policy)的误差累积缺陷,该方法让学生模型基于自身生成的推理轨迹(rollout),借助教师模型对每个token进行评分,使用反向KL散度作为损失函数进行优化。实验表明,这种混合方法既能保持强化学习的自适应优势,又能获得知识蒸馏的细粒度指导
2025-11-15 23:15:40
814
原创 美团龙猫大模型LongCat-Flash总结
美团近期推出的龙猫大模型(LongCat-Flash)引发关注,这是一个560B参数的MoE架构模型。其核心创新包括:1)引入零计算专家机制,通过动态分配计算资源提升效率,平均每个token激活27B参数;2)提出ScMoE架构优化通信开销;3)采用方差对齐技术解决模型扩展性问题。该模型在30天内完成20T token训练,推理速度达100 token/秒,成本低至每百万token 0.7美元。通过预训练和后训练结合的方式增强Agent能力,在多种任务上展现竞争力。
2025-11-13 22:26:24
651
原创 GPT-OSS大模型Attention架构设计
摘要:GPT-OSS模型针对大模型推理中的attention sink问题提出创新解决方案,通过可学习bias项修正注意力机制。该方法在QK计算后添加head-wise的bias token,调整softmax分母,有效规避无效的初始token过度关注现象。同时采用分层混合策略,交替使用全注意力(GQA)和滑动窗口注意力(window=128),在120B大模型中实现高效推理。数学上相当于给注意力分母增加exp(S)项,既保持计算效率又提升注意力分配的合理性。
2025-11-05 21:48:16
373
原创 【大模型】DeepSeek-OCR新鲜出炉总结
DeepSeek推出创新多模态模型DeepSeek-OCR,通过将文本视为图像模态处理,有效解决长文本推理难题。该模型采用双模块架构:DeepEncoder(380M参数)负责视觉特征提取,DeepSeek-3B-MoE解码器(激活570M参数)实现多模态生成。实验显示,其OCR解码精度在10倍压缩率下达97%,在OmniDocBench测试中超越现有模型。模型还支持图像理解、PDF转换等功能,单卡日生成20万+训练页面,展现出强大的多模态处理能力。(148字)
2025-10-22 02:36:29
580
原创 并行计算策略
本文介绍了深度学习中几种并行训练策略:数据并行(DP)通过多GPU处理不同数据子集,但存在主GPU负载过重等问题;分布式数据并行(DDP)采用Ring-AllReduce算法实现均衡同步;模型并行(MP)将模型层拆分到不同GPU,但通信成本高;流水线并行(PP)通过微批处理减少GPU等待;张量并行(TP)进一步拆分单层参数。最终3D并行结合数据并行、张量并行和流水线并行,实现高效的大模型训练。这些方法各有优缺点,需根据模型规模和硬件条件选择合适策略。
2025-10-16 16:28:44
623
原创 【大模型】DeepSeek-V3.2-Exp中的DSA稀疏注意力设计
本文介绍了DeepSeek的稀疏注意力机制DSA,包含Lighting Indexer和Token Selection两个模块。DSA采用FP8低精度计算、ReLU激活和更少头数来降低复杂度,并通过top-k选择重要token。训练分为两步:CPT阶段先预热Indexer使其接近原始attention分布,再训练模型适应稀疏模式;后训练阶段结合专家蒸馏和混合RL训练(GRPO算法),融合推理、工具调用和对齐三大目标。该架构基于MLA并采用MQA,通过分层优化策略提升模型性能。
2025-10-08 22:22:53
942
原创 Deep Think with Confidence
本文提出利用置信度指标提升大模型推理性能的新方法。针对传统self-consistency技术效率低下的问题,研究提出细粒度的置信度评估指标Group Confidence和Tail Confidence,能更准确捕捉推理轨迹中的关键错误。方法包含两种模式:Offline模式通过置信度加权投票聚合答案;Online模式利用Lowest Group Confidence实现early stopping,并采用自适应采样动态调整轨迹数量。实验表明,新指标能有效区分正确与错误推理路径,在保证准确率的同时显著提升推
2025-08-24 15:04:59
1289
原创 【大模型】强化学习算法总结
本文介绍了强化学习中的策略模型(Policy/Actor)、价值模型(Critic/Value)、奖励模型(Reward)和参考模型(Reference)等核心概念。重点对比了监督学习和强化学习的区别,并详细分析了基于策略的强化学习方法,特别是PPO和GRPO算法。PPO采用Actor-Critic架构,通过优势函数和clipping机制实现稳定训练;GRPO则简化结构,利用组内相对奖励作为优势估计。两种算法都通过KL散度约束确保策略更新不会偏离初始模型太远。文章还提供了直观的类比说明和算法结构图,帮助理解
2025-08-11 20:23:30
1293
原创 【大模型】ReAct Agent知识梳理及代码解析
本文介绍了Agent的基本概念及其实现方式。Agent是一种能够感知环境并自主决策的实体,具备任务规划、记忆和工具调用等能力,模仿人类的决策流程。文章重点讲解了ReAct推理模式(Reasoning->Action->Observation),并展示了如何使用LangChain框架构建一个ReAct Agent。具体包括:1)Agent作为调度器的核心组件;2)规范定义工具的方法;3)通过Python代码示例演示了商品查询、下单和支付三个工具的实现。该实现展示了Agent如何通过多轮工具调用完成
2025-07-18 02:49:21
1452
原创 Windows系统无法正常使用conda activate env
摘要:Windows系统安装Anaconda后,若直接使用conda activate命令会报错,需先执行conda init并重启终端。若出现红色报错信息,这是权限问题导致,可通过执行Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser命令快速解决。该问题为Windows+Anaconda的常见配置问题,解决方法简单有效。
2025-07-12 01:15:33
375
原创 【大模型】到底什么是Function Calling和MCP,以及和ReAct推理的关系是什么?
Function Calling和MCP是增强大模型能力的两种方案。Function Calling赋予大模型解析工具列表、选择工具、处理结果的能力,通过代码实现工具调用逻辑。MCP则是一套协议规范,通过MCP Host和Server架构实现外部工具调用,无需大模型直接参与协议。两种方法都能解决大模型知识时效性问题,Function Calling侧重模型能力,MCP强调标准化协议。实际应用中,Function Calling可直接实现工具调用,MCP则需借助第三方Server提供服务。参考资料提供了两种方
2025-07-05 18:14:25
1560
原创 【大模型】TableLLM论文总结
本文摘要了三篇关于大语言模型处理电子表格的最新研究。EMNLP 2024论文提出了一种高效编码方法,通过结构锚点识别、倒排索引和数值格式聚类来压缩75%内容,同时保留97%边界信息。arXiv 2025的TableLoRA设计了特殊标记编码器和2D LoRA,以增强模型对二维表格结构的理解。arXiv 2025的TablePilot则提出了一个四阶段框架,通过采样、模块化分析、优化和排序推荐符合人类偏好的表格分析方案。这些研究共同解决了电子表格处理中的结构理解、效率优化和结果推荐等核心挑战。
2025-05-24 17:35:51
1500
原创 ValueError: Converting from Tiktoken failed, if a converter for SentencePiece is available
【代码】ValueError: Converting from Tiktoken failed, if a converter for SentencePiece is available。
2025-03-25 18:58:03
1068
1
原创 【DeepSeek-R1训练笔记】随手记录一些训练log
# 背景说明* DeepSeek系列解读请移步我的上一篇blog:[【完整版】DeepSeek-R1大模型学习笔记(架构、训练、Infra)](https://blog.csdn.net/qq_16763983/article/details/145434745?spm=1001.2014.3001.5501)* 代码仓库【科大的大四老哥太太太太太值得倾佩了】:[https://github.com/Unakar/Logic-RL](https://github.com/Unakar/Logic-RL)
2025-02-07 22:24:55
1175
6
原创 【完整版】DeepSeek-R1大模型学习笔记(架构、训练、Infra、复现代码)
MoE在每次推理时选择性地激活部分模型参数,在不成比例增加计算成本的情况下,可以扩展模型参数。在DeepSeek-V2中就提出了用于FFN层的DeepSeekMoE,DeepSeek-R1在DeepSeek-V2基础上进一步优化。
2025-02-04 00:54:03
9852
原创 pip install时出现error: subprocess-exited-with-error的报错
遇到这种情况,一般是安装的包和其他包之间存在一些冲突,第一种方式是直接解决冲突,比如上面例子中先安装torch就好了。这种方式强制忽视包之间的依赖性,先安装好,然后再运行项目看看有没有其他的报错,耐心逐一解决。
2024-12-04 13:55:52
3735
原创 上传本地项目到GitHub远程仓库(极简洁操作版)
除了以上流程,通常还有另一种上传思路:将一个普通的本地文件转换成一个git项目,涉及到。以上操作流程是最简单(粗暴)版,不涉及版本管理、分支切换、文件更新等。
2024-10-06 15:31:56
1185
1
原创 OSError: Missing dependencies for SOCKS support
在跑huggingface代码时,需要挂代理以保证网络可以顺利连接到huggingface官网。这个报错看起来是缺少一些系统依赖包,但实际上,这就是一个简单的Python库缺失问题。先关掉所有代理,再尝试用pip安装即可成功。
2024-09-23 00:41:40
819
原创 【隐私计算】安全多方计算MPC中的高效三角函数计算
其中,四项都可以在client和server端本地(local)计算,不带来任何通信开销。唯一的通信开销来自两次乘法,需要双方通过不经意传输(OT)共同计算。最后加法也是本地完成,不带来任何通信开销。隐私计算中的非线性函数很难算,或者开销很大。三角函数更是如此,Squirrel文章中提出了一种高效的计算方式,感觉可以作为一种通用优化方案。
2024-09-14 00:26:34
940
原创 关于使用HAWQ量化框架执行训练前推理的性能崩溃问题
所以HAWQ中使用validate应该是针对在做/做过量化训练的模型而言的,因此此时就保存好了self.min和self.max值,推理没问题。而对于我们这种情况(也就是加载浮点模型,然后直接过量化验证效果),是没有初始self.min和self.max值的,导致出错。函数,其作用是跑量化函数时不计算模型的self.min和self.max(默认为0),导致的后果是scale算出来非常非常小,量化值(x/scale)非常非常大,clamp后所有值都被截到了两个表示范围的边缘,变成了-128或127。
2024-09-11 21:49:59
467
原创 【CMake编译报错小复盘】CMAKE_CUDA_ARCHITECTURES,CMake version,GCC version问题
但是并没有这么顺利,我发现在编译时仍然会报错gcc版本过低。下面是我猜测的原因,我将gcc的路径打印(whereis gcc)出来,发现有多个路径,也许系统默认选择了第一个路径,也就是老版本。这个问题比较棘手,需要手动下载新版的gcc,然后激活新版的gcc以替换旧版本。当出现这个报错时,本质问题并不是没有指定所谓的cuda architecture参数,而是找不到nvcc路径。然后编译了一次好像没生效,然后我再编译了一次,发现编译成功!cmake和cuda相关的报错通常都很“调虎离山”。
2024-09-10 01:51:22
2373
原创 对模拟出来的网络环境进行检查
之前记录了一篇用throttle.sh脚本实现对不同带宽和网速的网络环境模拟(),这里再记录一下如何验证当前带宽和网速是预期的样子。
2024-08-15 13:57:25
342
原创 用huggingface_hub实现优雅快速的HuggingFace模型下载
使用transformers库下载huggingface模型时,会遇到网络无法访问网站的问题。因此,这里记录一种HuggingFace官方提供的命令行工具:huggingface-cli,实现快速的模型下载。
2024-08-13 15:15:49
1876
原创 关于CUDA error: device-side assert triggered问题小技巧
耐心debug,但是在多线程代码中无法使用pdb来调试,听说可以关掉多线程或者不用gpu跑,就可以调试并显示出出错的代码位置了。遇到这种cuda的越界bug,可以优先查看是不是scatter代码处出现越界!去仔细检查mask的维度能否存得下topk的值。
2024-08-12 17:06:09
1020
原创 【密码学基础】基于LWE(Learning with Errors)的全同态加密方案
sk和pk相乘得到2e(KeyGen时满足的条件),然后和r做内积得到一个很小的偶数噪声,最终的结果就是m+很小的偶数噪声,于是通过mod 2就能将噪声消除,得到解密结果m。到这里,通过LWE实现了很小深度的同态乘法和加法计算,key switching则是对每层用新的密钥,但是随着计算深度加深,噪声的扩大是爆炸性的,因此还不是一个levelled FHE(能计算指定深度的FHE)。)时,pk和pk乘r都是伪随机的。加密用的公钥pk,r是一个只包含0或1的随机向量,m是待加密的信息(放在向量的最低位上)。
2024-07-08 19:26:46
2181
1
原创 【密码学基础】对随机不经意传输(Random Oblivious Transfer)的理解
ROT在offline阶段生成大量的OT对,在online阶段通过one-pad方式高效加密,并且只需要简单的异或运算就能实现OT过程(去随机化)。在ROT中,有一个关键点是:需要考虑offline阶段的选择比特和online阶段的选择比特之间的关系,从而得到不同的加密构造方式。
2024-07-01 18:02:13
615
原创 【隐私计算】对SIMD编码的粗浅理解
将单个数编码到一个N阶(N项)多项式中,多项式系数的利用率极低。而在神经网络中,我们需要计算的东西往往是一个很大的矩阵/tensor,并非不是单个数。所以需要打包编码技术(packing)将很多数同时编码到同一个多项式中,来提高多项式系数的利用率。SIMD指的是把一系列数通过中国剩余定理(CRT)打包(pack)到同一个多项式中,使一次多项式乘法计算可以完成多次明文乘法。系数编码可以参考Cheetah的做法,Cheetah自定义了一套编码规则,使多项式相乘后的结果多项式中的一些系数正好是需要的卷积结果。
2024-06-28 14:34:45
1458
1
原创 【恶补计算机基础】定点数和浮点数
在计算机中,小数点及其位置并不是显式表示出来的,而是隐含规定的。根据小数点的位置,可以分为两类:定点数和浮点数。
2024-06-06 13:11:58
1283
原创 用Transformers库实现基础的大模型文本生成以及KV cache注意事项
这个就是标准的自回归生成任务了,不管是GPT还是Llama,都是如此(至少PyTorch版本都是这样的,Flax版本的KV cache有点奇怪,用的lax.dynamic_update_slice(cached_key.value, key, indices),KV cache的维度并没有随着token的生成而增加…根据输入的prompt,生成一段指定长度的文字。Llama跑起来太慢了,这里用GPT-2作为列子。
2024-05-14 02:32:58
1322
2
原创 【Python踩坑】关于tensor reshape后做运算(求和/平均)的问题
总结一句,如果想将tensor分成n组,然后对每组进行运算(比如求和、求平均),那么,要记得把组数放在前面的维度上(也就是上面例子中的3),把每组的元素数放在后面的维度上(也就是上面例子中的2)。试想一个简单的问题:一个维度是[1, 6]的tensor,我想其中的6个元素分成3组,每组2个元素,然后对每组中的元素求平均值,得到一个维度是3的输出。应该怎么用Python实现?最直观的想法就是:将[1, 6]先reshape成[2, 3]或[3, 2],然后在2对应的维度上进行运算,最终得到维度是3的结果。
2024-05-01 01:09:22
511
3
原创 【大模型LLM基础】自回归推理生成的原理以及什么是KV Cache?
通过缓存以前的键(Key)和值(Value),我们可以只关注计算新token的注意力。如下图,每当来一个新的tokenqnewq_{new}qnew时,计算得到新的knewk_{new}knew和vnewv_{new}vnew,并将其拼接(concat)到缓存的KprevK_{prev}Kprev和VprevV_{prev}Vprev中。假设TTT是序列长度,DDD。
2024-03-25 18:47:34
6375
4
原创 【Bit-level量化】BSQ: Exploring Bit-Level Sparsity for Mixed-Precision Neural Network Quantization
论文题目:[ICLR 2021] BSQ: Exploring Bit-Level Sparsity for Mixed-Precision Neural Network Quantization其中,www是浮点表示,wqw_qwq是对应的nnn-bit定点表示。反向传播时,由于Round函数不可微分,所以求导时用浮点www代替wqw_qwq进行梯度计算。前向传播使用wqw_qwq计算模型输出和损失函数,反向传播使用浮点www计算梯度,并且www在整个训练过程中都保持浮点表示!第1步:提取W的动态
2024-02-06 17:32:56
1453
1
原创 由vscode自动升级到1.86导致的“终端可以ssh服务器,但是vscode无法连接服务器”
简单来说就是,ssh配置没动,前两天还可以用vscode连接服务器,今天突然就连不上了,但是用本地终端ssh可以顺利连接。
2024-02-03 17:38:27
3462
7
原创 快速数论变换NTT学习笔记
数论变换(number-theoretic transform, NTT)是离散傅里叶变换(DFT)在数论基础上的实现。NTT是一种计算卷积的快速算法,FFT也是其中一种。但是FFT具有一些实现上的缺点,举例来说,向量必须乘上复数系数的矩阵进行处理,而且每个复数系数的实部和虚部是一个正弦及余弦函数,因此大部分的系数都是浮点数,也就是说,必须做浮点复数运算,计算量会比较大,并且浮点数运算产生的误差会比较大。NTT解决的是多项式乘法带模数的情况,受到模数的限制,数也比较大。
2024-01-25 13:17:08
2224
原创 快速傅立叶变换FFT学习笔记
FFT(Fast Fourier Transformation) 是离散傅氏变换(DFT)的快速算法,即快速傅氏变换。FFT使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N越多,FFT算法计算量的节省就越显著。FFT可以将多项式乘法的复杂度从On2降到Onlogn。下图是FFT的整体计算流程,FFT变换的复杂度为Onlogn,FFT域上的pointwise乘法的复杂度为On,逆FFT变换的复杂度为Onlogn,总体复杂度为On。
2024-01-21 23:09:14
2096
原创 PyTorch中定义可学习参数及放入cuda时的坑
必须要注意的是,新定义的self.alpha必须要放入optimizer中才可以训练,因此,上面这段预推理的代码必须要放在声明optimizer之前!采用这种写法的话,必须要在正式训练模型之前进行一次预推理,该预推理可以是伪输入数据的推理,目的是预推理时构建好每一层所需要的self.alpha可学习参数。写法1先定义nn.Parameter,后放入cuda,会导致参数重新变回到tensor,从而不可学习;写法2先放入cuda,后定义nn.Parameter,可以成功定义参数,可以学习。
2024-01-18 19:04:47
1325
1
原创 去掉乘法运算的加法移位神经网络架构
Adder层的输出都是负的,所以网络中引入batch normalization(BN)层和激活函数层。可以看到,AdderNet在三个CNN模型上都掉点很少,并且省去了所以乘法,也没有BNN中的XNOR操作,只是有了更多的加法,效率应该显著提高。但是,signSGD几乎没有采取最陡的下降方向,随着维度的增长,下降方向只会变得更糟,所以不适用于大参数量的模型优化。一种最直接的思路就是采用更大的学习率,本文发现不同层的梯度值差异很大,所以为了考虑不同层的filter情况,提出了不同层的自适应学习率。
2023-12-19 02:20:18
1853
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅