三元组的存储策略 如果存储一个稀疏矩阵对应的多个三元组可以有非常多的实现方式,针对每一种都进行讲解是非常不现实的,而且完全没有这个必要,因为三元组的存储策略可以分为 2 大类:三元组容器法以及三个序列法 SciPy COO 格式的稀疏矩阵 在开始 SciPy COO 格式的稀疏矩阵之前我花了一些篇幅讲解稀疏矩阵的三元组存储策略,这主要是因为 SciPy COO 格式的稀疏矩阵用的存储策略就是三元组存储策略的第 2 种方法:三个序列法。 这 2 个方法都是原地操作,无返回值。现在方法有了,怎么消除零元素以及重复的行列索引无非就是两个方法的调用顺序的问题。显然我们应该先消除重复的行列索引,再消除零元素。 可以高效地构造稀疏矩阵。 在借助稀疏工具的情况下,可以高效地进行矩阵左乘列向量的操作。
稀疏专家模型(MoE)概述 在深度学习领域,稀疏专家模型(Mixture of Experts, MoE)正成为处理超大规模模型的重要范式。 与传统稠密模型不同,MoE在每次前向传播时仅激活部分专家(通常为1-2个),这种稀疏激活特性使其参数量可以指数级增长而不显著增加计算成本。 2021年Google推出的Switch Transformer将专家数量扩展到数千个,验证了超大规模稀疏模型的可行性。 负载均衡的数学建模 在稀疏专家模型(MoE)的架构中,负载均衡问题直接决定了模型的计算效率和资源利用率。 负载不均衡的量化分析 定义负载不均衡度量为专家选择概率分布的方差: L=1N∑i=1N(pi−pˉ)2L = \frac{1}{N}\sum_{i=1}^{N}(p_i - \bar{p})^2
在这项工作中,作者通过利用分布式处理跨领域预测特征的多个方面,揭示了混合专家(MoE)模型在DG上的可泛化性。 为此,作者提出了稀疏融合混合专家模型(SF-MoE),该模型将稀疏性和融合机制结合到MoE框架中,以保持模型的稀疏性和预测性。 SF-MoE有两个专用模块:稀疏块和融合块,分别对对象的不同学习信号进行分离和聚合。大量实验表明,SF-MoE是大规模基准测试领域的可泛化学习者。 它在5个大型DG数据集(如DomainNet)中的表现优于最先进的同类模型2%以上,计算成本相同甚至更低。作者进一步从分布式表示的角度(如视觉属性)揭示了SF-MoE的内部机制。
(2)现实世界的时间序列本质上是非平稳的,即使在单个时间序列的短窗口内也会显示出不同的分布。显然,频率级专业化的粒度无法捕捉这种程度的多样性,这凸显了对更细粒度的建模方法的需求。 频率挑战 为了解决上述问题,作者提出了全新的时间序列统一训练解决方案Moirai-MoE,其核心思想是利用单个输入/输出投影层,同时将各种时间序列模式的建模委托给 Transformer层中的稀疏混合专家 基于稀疏混合专家的时序基础模型 Moirai-MoE构建在它的前序工作Moirai之上。 但其主要改进在于:Moirai-MoE不使用多个启发式定义的输入/输出投影层来对具有不同频率的时间序列进行建模,而是使用单个输入/输出投影层,同时将捕获不同时间序列模式的任务委托给Transformer中的稀疏混合专家 2. 稀疏混合专家Transformer 通过用MoE层替换Transformer的每个FFN来建立专家混合层。该MoE层由个专家网络和一个门控函数组成。
library(ggplot2) data(ToothGrowth) ToothGrowth$dose <- factor(ToothGrowth$dose) p <- ggplot(ToothGrowth 修改坐标轴labels的颜色、字体、大小和角度 将坐标轴labels改为粗体、大小为14、45度角度。 调整坐标轴刻度位置 vjust修改垂直方向的距离,hjust修改左右方向的距离。 修改坐标轴刻度方向、长度 axis.ticks.length可以修改ticks的长度,正数向外,负数向里。 # 修改x轴刻度线方向为向里,长度变为-0.2 p + theme( axis.text.x=element_text(vjust = -2, colour="red", size = 10),,
稀疏混合专家模型(MoE)是一种很有前途的替代方案,可以在计算成本较少的情况下,扩展模型的大小。 作为对比,稀疏 MoE 方法通常采用的是硬分类。 其次 Soft MoE 没有 token dropping 和专家不平衡。 因此,Soft MoE 的速度明显要快于大多数稀疏 MoE,具体如下图 6 所示。 Soft MoE 还兼具稀疏和密集的特点。稀疏 MoE 的稀疏性来自于专家参数仅应用于输入 token 的子集。 通过为每个专家选择 p = O (m/n) 个 slot,也就是 token 数量除以专家数量,成本可以降低至 O (m^2d + mk)。 归一化。 下图 4 和表 2 展示了结果。
ggplot2的每个细节都是可以修改的,非常推荐大家系统学习一下,用到再学确实是一种不错的方式,但是如果要提高进阶,还是有必要系统学习的。 今天给大家介绍下如何自定义ggplot2坐标轴。 交换x轴和y轴 设置坐标轴范围 使图形从0开始 反转连续型坐标轴 修改类别型坐标轴的顺序 设置x轴和y轴的比例 设置刻度线位置 移除刻度线和标签 修改刻度标签 修改坐标轴标签 沿坐标轴显示直线 使用对数坐标轴 环状图形 日期坐标轴 交换x轴和y轴 在很久以前的版本中,还只能通过coord_flip()函数实现,现在支持直接换一下x轴和y轴的映射即可。 p1 <- p+coord_flip() # 方法2 p2 <- ggplot(diamonds, aes(price, cut))+ geom_boxplot() p + p1 + p2 <- p+labs(x="不同切工\n可以换行",y="price $") p+p1+p2 plot of chunk unnamed-chunk-13 如果要改变坐标轴标签的外观,比如颜色、字体
其采用先进的双轴稀疏设计、优化的混合注意力机制、全栈国产化适配等关键技术,构建了一个高效、普惠、安全的大模型生态系统。 2.2双轴稀疏架构(Two-AxisSparsity)DeepSeekV4最核心的创新之一是“双轴稀疏架构”,即在两个维度上同时实现稀疏化:2.2.1专家维度稀疏(ExpertSparsity)专家维度稀疏是 DeepSeekV4-Pro包含数千个专家子网络,但在每次推理时仅激活其中的2-4个。 具体来说:专家数量:V4-Pro包含约32,000个专家,V4-Flash包含约8,000个专家;激活策略:采用Top-K选择机制,K=2或K=4,根据输入内容动态调整;负载均衡:通过辅助损失函数确保各专家被均匀使用 通过双轴稀疏架构,DeepSeekV4成功将100万Token上下文的推理计算量压缩至前代模型的个位数百分比,实现了长文本处理的革命性突破。
DeepSeek-V4的“双轴稀疏架构”正是对这一时代命题的响亮回答。 第二章:核心理念——从“单轴”到“双轴”的范式跃迁在DeepSeek-V4之前,主流的稀疏化技术是混合专家(MixtureofExperts,MoE)。 MoE通过为每个输入Token动态选择激活少量“专家”子网络,实现了条件计算(ConditionalComputation),即只在需要时才进行计算。这是一种单轴稀疏,其稀疏性仅体现在“计算”维度上。 这构成了其双轴稀疏架构的核心:第一轴:MoE-条件计算:负责动态的、复杂的逻辑推理和创造性任务。第二轴:Engram-条件记忆:负责高效、精准地存储和检索静态的、确定性的事实知识。 这场由“双轴稀疏”引发的架构革命,正在深刻地重塑大模型的未来格局。
这是统计学家和经济学家在大量数据分析过程中常用的手段,所以其实早期的机器学习专家往往也是来自于统计专业。 在大多机器学习的课程中,对梯度下降法及相关算法的讲解是最重要的一部分,但现在情况有所改变。 但实际上离最优解还有很大差距.下面这张图是降维到2维的一张示意图,可以看的更清楚: ? 图中的G点是最优解,A/B/C/D点都是局部最优解。 陷入局部最优解的时候实际上只有这样几个选择:1.随机产生另外一组初始值,同时增加尝试求解过程的次数,从而得到不同的解,取其中最好的值;2.变更梯度下降步长;3.变更或者优化算法。
这个R tutorial描述如何使用ggplot2包修改x和y轴刻度。同样,该文包含如何执行轴转换(对数化,开方等)和日期转换。 ylim(min, max) min和max是每个轴的最小值和最大值。 : NULL 没标签 waiver() 默认标签 character vector 指定标签 limits:指定刻度范围 trans:轴转换,可以使用 “log2”, “log10”, … 下面是示例: 函数**coord_trans()**也可以用于轴坐标转换 # Possible values for x and y : "log2", "log10", "sqrt", ... sp + coord_trans 格式化轴刻度标签 这需要加载scales包: # Log2 scaling of the y axis (with visually-equal spacing) library(scales) sp
gg.gap诞生记 “站长,小站工具qPCR在线分析功能非常好,但有些基因的表达量太高了,图做出来值非常大,能否想prism那样把y轴做个截断呢?” ggplot2以及依赖它开发的包已经丰富,原以为在网络搜索一下肯定有解决方案,但谁曾想这样的需求真的没有找到完美的解决方案。 为了完善这个看起来很平常的功能,站长决定亲自操刀去写个包。 不管三七二一,画个草图先: 思路很简单,就是先按照y轴切,然后用cowplot去拼接。 一顿野路子代码操作,beta版出来了:gg1gap和gg2gap这两个包只能完成bar图y轴切割,而截断数最多也就只能两段。 install.packages("gg.gap") 都能切什么图,切几段 理论上,ggplot2的图都能切,想切几段切几段。
如何将下图中的左图(低配版)转化为右图(高配版, x,y 轴分离)。 低配版条形图 首先,构造一个数据集作为样例,读者可以根据自己的数据进行调整即可。假设 y 是分类变量,x 是连续型变量。 = paste0('term', 1:4), p.val = runif(4, 1, 5) ) 样例数据集 之后,使用 geom_col() 绘制条形图,简单调整柱子的宽度以及加上 x,y 轴标题 0.6) + labs(x = '-log(BH p value)', y = 'Terms') 低配版条形图 高配版条形图 使用 geom_rangeframe()将 x,y 轴分离 在此之前,创建一个新的数据框,根据你的 x 值,手动划分 x 轴尺度范围。 df2 <- data.frame(x = c(0,2,4,6), y = df1$term) 然后进行一些细节的调整,得到下面的图形。
但是最近有好几个小伙伴儿跟我咨询关于ggplot2的次坐标轴问题,平时的一些业务分析中,有些场景出于数据呈现的需要,或者阅读习惯等,往往需要在一幅图中呈现两个量级不等的坐标。 所以我觉得这一篇推送很有必要,确实在最新版的ggplot2(ggplot 2.2.0以上版本)中,已经加入了次坐标轴参数,通过这个次坐标轴的转换,我们可以模拟出不同数量级的次坐标轴效果。 因为在ggplot2标度系统中,不容许在一个图形中出现两个量级不等的标度(一山不容二虎),但是想要提供度量不等的次坐标轴,折中的方法就是,将次坐标轴的所有量级按照主坐标轴的量级进行缩放(如果次坐标轴量级大于主坐标轴 ,那么就是等比例放大,如果比主坐标轴量级大则缩小)。 y轴度量标准,也就是y轴的刻度线及刻度标签,刻度标签的定义就是本案例的第二个重点,它仍然是通过rescale函数进行了一次度量的重新映射。
gg.gap诞生记 “站长,小站工具qPCR在线分析功能非常好,但有些基因的表达量太高了,图做出来值非常大,能否想prism那样把y轴做个截断呢?” ggplot2以及依赖它开发的包已经丰富,原以为在网络搜索一下肯定有解决方案,但谁曾想这样的需求真的没有找到完美的解决方案。 为了完善这个看起来很平常的功能,站长决定亲自操刀去写个包。 不管三七二一,画个草图先: 思路很简单,就是先按照y轴切,然后用cowplot去拼接。 一顿野路子代码操作,beta版出来了:gg1gap和gg2gap这两个包只能完成bar图y轴切割,而截断数最多也就只能两段。 install.packages("gg.gap") 都能切什么图,切几段 理论上,ggplot2的图都能切,想切几段切几段。
❝今天来主要介绍如何在不引入外部几何对象的前提下在图形的原有的基础上「自定义修改轴文本颜色」,也许恰好您正好有此特殊需求,希望对各位观众老爷有所帮助;下面来看具体案例; ❞ 加载R包 library(tidyverse xend=66.5,yend =-2),size=0.5,color="#3B9AB2", arrow = arrow(length = unit(0, "npc"),type arrow(length = unit(0, "npc"),type="closed")) ❝可以看到此处我们使用的「geom_text」在图形内部添加文本并定义颜色,那如果我们要在图形外部修改轴文本颜色该如何操作 0.3,'cm'), legend.key.height=unit(0.3,'cm'), legend.position="top") 一个基础的条形图而已,下面我们就在此基础上修改Y轴文本颜色 Results may be unexpected or may change in future versions of ggplot2. ❞
著名的里程碑语言模型包括 GPT-2(Radford et al., 2018)、BERT(Devlin et al., 2018)、T5(Raffel et al., 2019)、GPT-3(Brown 稀疏专家模型已成为一种很有前途的解决方案。 稀疏专家模型(其中,混合专家系统(MoE)是最流行的变体)是一种特殊的神经网络,其中一组参数被划分为 “专家”,每个“专家” 具有唯一的权重。 下图 2 是 Shazeer et al. (2017) 提出的原始 top-k 路由机制,这是许多后续工作的基础。该综述论文在第四章中详细讲解了路由算法的新进展。 ., 2021),进一步复杂化了对稀疏专家模型的理解。 上游扩展 稀疏专家模型在大型数据集上训练时表现出色。 扩展专家层的数量、大小和频率 有几个重要的超参数控制着稀疏专家模型的扩展,包括:1)专家数量,2)每个专家的大小,以及 3)专家层的频率。这些决策可能对上游和下游扩展产生重大影响。
选自huggingface 机器之心编译 机器之心编辑部 本文介绍了实现一个稀疏混合专家语言模型(MoE)的方法,详细解释了模型的实施过程,包括采用稀疏混合专家取代传统的前馈神经网络,实现 top-k 内容简介 在混合专家模型 Mixtral 发布后,混合专家模型(MoE)越来越受到人们的关注。在稀疏化的混合专家语言模型中,大部分组件都与传统的 transformers 相同。 不过,每个区块的结构发生了巨大的变化:标准的前馈神经网络被多个稀疏激活的前馈网络(即专家网络)所取代。所谓「稀疏激活」,是指序列中的每个 token 只被分配给有限数量的专家(通常是一个或两个)。 这个过程的关键和难点是避免不必要的乘法运算,只为前 k 名专家进行正向转播。为每个专家执行前向传播将破坏使用稀疏 MoE 的目的,因为这个过程将不再是稀疏的。 索引确定了被激活的专家是哪些, 对应的值又决定了权重大小。下图进一步解释了加权求和的概念。 模块整合 将多头自注意力和稀疏混合专家相结合,形成稀疏混合专家 transformer 块。
感谢社区专家wanger供稿! ? Wanger | Zabbix开源社区签约专家 Zabbix运维工程师,熟悉Zabbix开源监控系统的架构。 为能及时发现redis服务的存活性状态,以及服务的info信息,慢查询的日志数,因此使用Zabbix Agent2进行监控。 一 监控Redis的实现原理 redis插件位于源码的zabbix-agent2/src/go/plugins/redis目录下。 Use CONFIG REWRITE To Make This Change Permanent. 2) Alternatively You Can Just Disable The Protected
感谢社区专家Wanger供稿! ? Wanger | Zabbix开源社区签约专家 Zabbix运维工程师,熟悉Zabbix开源监控系统的架构。 01 - Zabbix Agent2监控docker的实现原理 首先我们来看一下zabbix agent2监控docker插件的实现原理,其实就是通过调用docker的API来获取数据,插件目录位于 zabbix-agent2/src/go/plugins/docker,我们先来看一下client.go文件 这里就是定义了使用UNIX套接字地址来进行docker客户端与服务端的通信。 02-使用Zabbix Agent2的模板监控docker 链接docker模板: ? 然后就可以看到docker的状态了。 ? ? ?