FlexPipe:把流水线调度写进十行代码,让大模型训练最高加速 2.28 倍

「文智助手」全场景办公AI助理AI+OPC全流程实践方案(大赛作品) 阅读详情

作者:JLJ, QXJ, MZX, LHJ from DeepLink Group @Shanghai AI Lab

流水线并行(Pipeline Parallelism)是大模型分布式训练的基石之一。从 GPipe、1F1B 到 Interleaved 1F1B、Chimera、Zero Bubble,每一代预定义高效调度(schedule)都是系统专家手工雕琢的结晶。

但模型架构一直在变:多语言模型带来了百万级词表的巨型 Embedding 层,多模态模型带来了多个需要同步的异构子模块,MoE 带来了新的通信模式……面对这些新架构,预定义的调度不再是最优解,甚至会严重拖慢训练。而无论是手工设计新调度(调度空间大到天文数字),还是手工实现新调度(Megatron-LM 中 1F1B 约 0.7k 行代码、Interleaved 1F1B 约 1.4k 行),都足以劝退绝大多数人。

能否不再手写一个个调度,而是让框架自己去"发现"和"生成"高效调度,同时将定制调度的成本极致压缩?

面向这一痛点,上海AI实验室DeepLink团队提出一种灵活可编程的流水线并行框架FlexPipe,将流水线调度写进十行代码,且能让大模型训练最高加速 2.28 倍。

先看核心思路与实测数据:

FlexPipe 包含一门简洁的 DSL、一个自动调度器、一个 Auto-tuner 和运行时。

它的核心洞察是:只要确定了 stage 放置方式,一个流水线调度就可以被拆解为一连串"调度步",而调度步的行为完全由两个"遍历优先级"决定——先算 forward 还是先算 backward(计算类型遍历优先级),以及多个 stage 在同一设备上时先算谁(stage 遍历优先级)。 把这两个优先级参数化,主流调度(1F1B、Interleaved 1F1B、Chimera、Hanayo、ZB-H1 等)都能用几行代码表达;枚举这两个优先级,就能在秒级到分钟级的开销内自动搜索出新调度。

实验表明:在大词表 GPT 模型上,FlexPipe 相比 Megatron-LM 最高加速 2.28×,相比 SOTA 自动调度搜索框架 Tessel 最高加速 1.49×;在多模态 CLIP 模型上相比 DistMM-Pipe 最高加速 1.29×。而当 Tessel 在 8 卡规模就搜索超时失败时,FlexPipe 在 32 卡规模的搜索开销仍不到 9 分钟。

论文地址:https://arxiv.org/abs/2510.05112

背景:影响流水线并行效率的"空间"与"时间"因素

流水线并行把模型按层切分成多个 stage,放到不同设备上;再把一个 mini-batch 切成多个 micro-batch,让它们像流水线一样依次流过各个 stage,使所有设备同时工作。它只依赖轻量的点对点通信传递中间结果,因此是跨服务器扩展大模型训练的必备手段。

决定流水线并行效率的因素有两个维度:

  • 空间维度——stage 放置(stage placement):哪些 stage 放在哪个设备上。如下图所示,1F1B 采用一对一(one-to-one)放置;Interleaved 1F1B 采用环形(circular)放置,每个设备持有多个不相邻的 stage;Hanayo 采用 V 形(V-shape)放置;Chimera 采用双向(bidirectional)放置,两条方向相反的流水线共享设备。
  • 时间维度——调度(schedule):各个 micro-batch 的 forward / backward 计算以什么顺序在流水线上执行。

图1:主流的 stage 放置策略(a0-a4 表示设备,s1-s8 表示 stage)

这两个维度共同决定了流水线并行的两大性能指标:气泡(bubble,即设备因等待依赖而空闲的时间)和显存消耗。过去几年的经典方案,本质上都是在这两个维度上做文章:1F1B 用"早做 backward"压低激活显存;Interleaved 1F1B 用更细的 stage 切分缩小气泡;ZB-H1 把 backward 拆成输入梯度和权重梯度两部分、用权重梯度计算填充气泡;BitPipe 则融合了交错流水线与双向流水线。

为什么需要FlexPipe这类可编程流水线调度?

接下来我们先通过两个典型的场景,具象地分析现有预定义调度方案为什么不够用了;并进一步拆解手工实现调度要翻越的三座大山,以及现有自动化方案的能力局限。

案例一:大词表带来的负载失衡

多语言模型为了覆盖多种语言的词汇,Embedding 层的词表规模不断膨胀(Gemma 等模型的词表已达 25 万以上)。对一个 5B 参数的 GPT 模型做 profiling 会发现:随着词表增大,含 Embedding 层的 stage 与其他 stage 的负载差距急剧拉大——词表达到 1M 时,最慢的 stage 比最快的慢 5.63×,显存多耗 4.87×。

图2:5B GPT 模型在不同词表规模下的计算与显存失衡

一个自然的解法是设计新的 stage 放置策略(上文 图 1 中的"MLLM"放置),把 Embedding 层沿词表维度切分到流水线组内的多个设备上。但问题随之而来:新的放置策略套用预定义调度后,会因为新增的数据依赖(Embedding 的 AllReduce 等)产生额外气泡。

此时需要为新放置策略重新探索调度——而调度空间是天文数字:数百上千个 micro-batch、错综复杂的依赖关系、允许多少个 micro-batch 同时在流水线中……更麻烦的是,调度的优劣还与模型输入有关:batch 较小时 Interleaved 1F1B 优于 1F1B,batch 较大时气泡的影响变小、通信更少的 1F1B 反而更优。没有一个调度能包打天下。

案例二:多模态模型的同步开销

多模态模型(如 CLIP 类模型)包含处理不同模态的多个子模块。DistMM-Pipe 把不同子模块放到不同设备组上并行计算,但子模块之间需要同步交换输出状态——这是一个现有调度里根本不存在的新操作。DistMM-Pipe 的做法是在 warm-up 阶段多发射一些 forward,每隔几个 micro-batch 插入一次同步。

图3:DistMM-Pipe 的调度

进一步分析发现,同步开销约占 17%。其实还有很大的优化空间:可以用异步通信消除同步气泡;不同子模块的规模差异很大,完全可以对不同子模块采用不同类型的调度(混合调度)。但现有框架既没有高效手段去灵活调整调度,也不支持往调度里添加新操作。

手工实现调度的三座大山

就算设计出了新调度,把它写出来也是苦役:

  1. 生产力(Productivity):在 Megatron-LM 中,1F1B 的实现约 0.7k 行,Interleaved 1F1B 约 1.4k 行。每个新调度都要从头写起。
  1. 可编程性(Programmability):开发者要在分布式环境中维护不同 micro-batch、不同计算类型甚至不同 stage 之间纠缠的通信与数据依赖;新模型架构还会不断引入新操作(比如多模态的子模块同步)。
  1. 可调试性(Debuggability):手工实现极易出错(死锁、错序、精度问题),且缺乏中间调试信息,排错过程令人痛苦。

现有自动化方案的不足

  • Tessel 支持在给定 stage 放置策略下自动搜索调度,但可搜索的调度类型有限——例如不支持环形(circular)放置,而 Interleaved 1F1B、BFS Pipeline、Hanayo 等一大批高效调度恰恰构建在这类放置之上;更致命的是搜索成本:基于 Z3 求解器的搜索在设备数达到 8 时就会失败(后文实验有具体数据)。
  • Koala 等编译器方案提出了 DSL 来提升开发效率,但其语法是"计算图 DSL + 可执行 DSL"的两层结构,实现 1F1B 仍需约 0.2k 行代码;而且编译器方案既不能自动探索新调度,也不支持为新模型架构注册新操作。

一句话总结:我们需要一个框架,既能自动搜索多种类型的高效调度(且搜得快),又能让用户用极少的代码定制调度、注册新操作。

FlexPipe 四大组件

FlexPipe 由四个组件构成:DSL、自动调度器(Scheduler)、Auto-tuner 和运行时(Runtime)。

图4:FlexPipe 总体架构

  • DSL 提供简洁的 API 表达各种调度:用户只需为不同调度类型设定几个参数;要往调度里加新操作,只需写一个函数。其余的复杂调度工作全部交给框架。
  • 自动调度器 与 DSL 交互,自动编排调度。它内部把设备抽象为 actor,构建"计算调度空间表示"(CSSR,灵感来自 CPU 指令流水线),再通过 actor 感知的调度机制自动生成以指令序列表示的调度,并附带梯度分离、异步通信等优化 pass。
  • Auto-tuner 面向不同的模型输入和硬件资源搜索、调优调度:profiling 组件采集计算与通信耗时(结果落盘复用,避免重复采集),离线 tuner 在调度空间中枚举并选出最优配置。
  • Runtime 将调度实例化为高效的运行时执行。

核心洞察:调度 = 两个遍历优先级

FlexPipe 之所以能同时做到"可编程"和"可搜索",源于对调度过程的三个关键观察。

观察一:调度过程可以拆解为一连串"调度步"。 把一次 micro-batch 计算(一次 forward 或一次 backward)的调度视为一个调度步。一旦 stage 放置策略确定,每个设备要执行哪些计算就确定了——剩下的事情就是:每个设备不断从"依赖已就绪"的计算中挑一个执行,直到全部完成。

观察二:决定调度形态的,是"挑哪个"的优先级。 当一个设备面前摆着多个依赖就绪的计算时,挑选规则只涉及两个维度:

观察三:高效调度普遍呈现重复周期性。 观察 1F1B、Interleaved 1F1B、Chimera 等高效调度会发现,它们都在每个设备上周期性地重复同样的计算模式——等价于说,不同调度步使用相同的遍历优先级。这个性质大幅收缩了需要探索的调度空间:搜索一个调度,不再是搜索一张巨大的时序表,而是枚举几个优先级参数的组合。

图5:(i) 各 stage 放置策略的优劣特性;(ii) 不同优先级下指令的遍历顺序示意

举例来说:1F1B = 一对一放置 + bwdfirst;Interleaved 1F1B = 环形放置 + bwdfirst + 带 interval 的 breadth-first;BFS Pipeline = 环形放置 + fwdfirst……主流调度都落在这个参数化空间里。反过来,枚举这个空间,就可能"搜出"前人没画过的新调度。

FlexPipe DSL:十行代码写出一个调度

FlexPipe DSL 内嵌于 Python,由描述 stage 的数据模型和组合调度的调度语言两部分构成。

数据模型与指令集

数据模型的核心构件是 Stage / StageSet(stage 数据及其 DAG)与 Actor / ActorMesh(设备数据及拓扑),通过 ModelConfig 统一操作。用户先定义设备拓扑和模型配置,再用 partition 和 place 把模型层切分成 stage 并映射到 actor 上。框架内置了一对一、环形、V 形、双向四种放置策略(正是因为没有一种放置在所有指标上全胜,见上文 图 5(i)),也允许用户重写 partition 自定义切分规则。

FlexPipe 把调度表示为指令序列,每条指令带有 (stage ID, micro-batch ID) 标签,运行时映射到对应操作:

下面是用 FlexPipe DSL 实现 1F1B 的完整代码——11 行(对比 Megatron-LM 的约 700 行):

图6:1F1B 的 FlexPipe DSL 实现(前 3 行定义设备拓扑与模型配置,第 4-5 行切分并放置 stage,第 6-8 行设置两个遍历优先级,第 9-11 行构建 stage DAG、CSSR 并生成调度)

注册新指令:以多模态同步为例

面对新模型架构,FlexPipe 允许用户注册框架尚未内置的新操作。以多模态模型的子模块同步为例:

图7:为多模态模型注册同步指令

流程分三步:

  1. 注册指令:register_new_inst 注册新指令并返回指令类型。通过 sched_attr 配置调度规则——check_prev_dep 指定该指令调度前必须完成哪些前置依赖指令,check_nxt_dep 指定何时可以调度后继依赖指令,sched_unit 决定一次调度多少条指令;通过 inst_attr 配置运行时属性(如同步通信组的 ranks)。调度器会在调度过程中自动调用这些规则解析数据依赖。
  2. 挂接依赖:指令的依赖一般与 stage 相关(比如同步必须发生在各子模块最后一个 stage 的 forward 之后、backward 之前),所以先用 register_new_stage 注册新 stage 挂载新指令,再用 set_cssr_deps 传入依赖对集合 ((指令类型1, stage_i), (指令类型2, stage_j)) 声明先后关系。
  3. 绑定操作:map_inst_to_operation 把用户定义的可调用操作映射到注册的指令,运行时执行。

更细粒度的控制

除了两个遍历优先级,DSL 还提供三个"手动挡"机制:

图8:控制 micro-batch 调度顺序的 DSL 示例

  • config_inflight_micros:控制各 stage 允许的最大在途(in-flight)micro-batch 数量,直接影响峰值显存与调度形态,也可传入自定义函数设定规则;
  • register_new_checkfunc:注册调度过程中的检查规则,比如自定义某类指令的依赖判定;
  • register_new_priority:当内置优先级不够用时,注册全新的优先级(写一个 step 函数定义新的遍历顺序)。

用户按需取用:写惯例调度只需设参数,做深度定制才需要写函数。复杂度是渐进暴露的。

自动调度器:像 CPU 指令流水线一样调度

FlexPipe 调度器的设计灵感来自经典的 CPU 指令流水线:micro-batch 计算是"指令",设备是执行单元,依赖就绪的指令进入"就绪队列"等待发射。整个调度过程分三个阶段:切分放置 → 构建 CSSR → actor 感知调度。

CSSR:计算调度空间表示

CSSR(Computation Schedule Space Representation)负责在每个调度步动态给出每个 actor 当前"依赖已就绪"的候选计算。它由五个部分组成:

  • 指令项(Instruction Item):调度的基本单元,即一条指令实例,标签为 (指令类型, micro-batch ID, stage ID);
  • 指令池(Instruction Pool):容纳所有待调度的指令项,按指令类型组织成多个指令队列(默认创建 FwdPass、BwdPass 队列,用户注册的指令类型也会建队列);
  • Actor 感知的重排队列(Reorder Queues):每个 actor 为每种指令类型维护一个重排队列,存放依赖已解决、可以调度的指令项——相当于乱序执行中的就绪队列;
  • 本地缓冲(Local Buffer):每个 actor 记录当前调度步的调度状态,调度步结束后统一提交并清空——用来模拟分布式环境中"同一时刻看不到远端状态"的现实约束,保证生成的调度在真实分布式环境中可执行;
  • 数据依赖与动态依赖解析器:forward 指令间的依赖由 stage DAG 转换而来,backward 依赖是其反向,再加上用户通过 set_cssr_deps 注入的依赖;每当一条指令项被调度,解析器立即检查其后继是否就绪,将就绪者放入对应 actor 的重排队列。

Actor 感知调度

配置好优先级后,调度按五步循环执行:

  1. 初始化:只有第一个 stage 的 FwdPass 指令项无依赖,进入对应 actor 的重排队列;
  2. 取指令:每个调度步中,所有 actor 执行 StepFunction 取出可调度指令项——先按计算类型遍历优先级决定先查哪个重排队列,再按 stage 遍历优先级(方向 + interval)决定队列内取哪一项;若无可调度项,就产生一个气泡;
  3. 记状态:各 actor 把调度状态写入本地缓冲;
  4. 解依赖:动态依赖解析器把新就绪的指令项放入相应重排队列;
  5. 提交:把本地缓冲的状态更新到指令池并清空缓冲;指令池全部调度完则结束,否则回到第 2 步。

值得一提的是,warm-up、稳态、cool-down 三个阶段用完全相同的方式取指令,无需特殊处理——周期性是优先级机制的自然结果,而不是人为拼接的。

图9:自动调度过程示例:两个模态采用混合调度——modality1 用环形放置 + interleaved + 带 interval 的遍历,modality2 用一对一放置 + bwdpass-first

气泡优化:梯度分离与异步通信

调度生成后,FlexPipe 还会跑优化 pass。梯度分离算法自动检测气泡并"暂存-回填":检测到气泡时,先定位被阻塞的指令项(如某个 BwdPass),回溯已调度的 BwdPass,把其中的权重梯度计算(CompWeightGrad)暂存起来,让关键依赖链上的计算尽早执行,从而释放被阻塞的指令;暂存的权重梯度计算再被插入后续气泡中。这相当于把 Zero Bubble 的核心思想泛化成了一个对任意调度类型都适用的自动优化。

图10:梯度分离算法示例

此外,FlexPipe 还采用异步 P2P 通信进一步隐藏通信开销。

Auto-Tuner:为不同输入自动选调度

如前所述,没有一个调度能在所有模型输入和硬件资源下都最优。FlexPipe 用网格搜索在如下参数空间中寻找最优配置:

(pp, dp, mbs, 放置策略, fstp, bstp, ctp)

其中后四项(放置策略 + forward/backward 的 stage 遍历优先级 + 计算类型遍历优先级)定义了调度类型,取值来自内置值表;并配有剪枝规则:interval 仅在环形放置时启用、ctp 默认不取 fwdfirst、调度单元默认为 1(配合细粒度梯度计算减少气泡)。得益于"调度 = 优先级组合"这一参数化,整个空间小而稠密——里面几乎全是结构合理的调度,这是 FlexPipe 搜索开销远低于逐时隙求解方案的根本原因。

实验结果

实验平台:8 台节点共 64 张 NVIDIA A800 SXM4 80GB。

搜索开销:Tessel 8 卡就搜不动了

与基于 Z3 求解器的 Tessel 及其加速版 Tessel-fast 对比调度搜索开销(✗ 表示搜索失败):

Tessel 的搜索空间随设备数爆炸式增长,8 卡即失败;Tessel-fast 撑到 16 卡也失败了。FlexPipe 的搜索开销随设备数平缓增长,32 卡仍在 9 分钟内完成,并且能为不同模型配置搜出多个高效候选。当流水线并行需要与其他并行方式联合调优时,秒级到分钟级的搜索成本是"能不能用"的分水岭。

图11:Tessel 与 FlexPipe 搜出的调度对比:Tessel 为避免稳态气泡在 warm-up 阶段发射更多 micro-batch,反而在 warm-up 和 cool-down 阶段引入更多气泡;FlexPipe 搜出的调度整体气泡更少

端到端性能:大词表 GPT

针对第 2 节的大词表场景(MLLM 放置策略 + 词表维度张量并行),对比 Megatron-LM(1F1B)、T-1F1B(1F1B 适配 MLLM 放置)和 Tessel。

5B GPT,词表 64K→1M,32 卡:FlexPipe 相比三者分别加速 1.14×–1.91×、1.20×–1.28×、1.13×–1.30×。词表越大,Megatron-LM 的失衡越严重、性能下降越多;T-1F1B 因 Embedding 张量并行的 AllReduce 依赖产生气泡;Tessel 则在 warm-up/cool-down 阶段付出额外气泡。

图12:5B GPT 模型端到端性能

16.1B GPT,词表 256K→1.2M,32 卡:FlexPipe 分别加速 1.31×–2.28×、1.27×–1.31×、1.24×–1.49×。值得注意的是,Megatron-LM 在词表达到 1M 时直接 OOM(即使开启重计算);Tessel 由于 16 卡以上无法完成搜索、只能在 pp<16 的配置下运行,词表 1.2M 时同样 OOM。

图13:16.1B GPT 模型端到端性能(✗ 表示开启重计算后仍 OOM)

性能分解与扩展性

把每次迭代的运行时间拆解为 stage 计算时间和设备等待时间(反映气泡):各调度的计算时间相差无几(差异主要来自 micro-batch 大小带来的计算效率区别),真正拉开差距的是等待时间——Megatron-LM 等待最久,T-1F1B 和 Tessel 次之,FlexPipe 最少,与端到端结果一致。

图14:1M 词表下 5B / 16.1B 模型的运行时间分解

弱扩展实验中(16→64 卡,dp 随卡数等比扩展),FlexPipe 在不同硬件资源规模下始终保持性能优势。

图15:5B GPT 模型弱扩展实验

多模态模型优化

回到第 2 节的第二个案例。基于 FlexPipe 的可编程机制,我们对 DistMM-Pipe 做了两处优化,全部通过 DSL 完成、无需触碰框架内核:

  • 异步同步通信:把子模块间的同步注册为新指令 SyncWithGather(即第 5 节的注册示例),跟随两个模态最后一个流水线 stage 的每次 forward 异步执行,消除集中同步的等待;
  • 混合调度:audio/image 模态子模块用 Interleaved 1F1B,text 模态子模块用 1F1B——不同子模块各取所需。

在 40 卡上训练 4.7B / 8.2B / 9.7B 的 CLIP 模型,相比 DistMM-Pipe 分别加速 1.26× / 1.29× / 1.18×。

图16:CLIP 模型端到端性能

总结

FlexPipe 的关键并不在于发明了某一个新调度,而在于换了一个刻画调度的坐标系:流水线调度的本质不是一张张手绘的时序图,而是"stage 放置 + 两个遍历优先级"这寥寥几个自由度。把自由度参数化之后,两件原本很难的事情同时变简单了——

  • 搜索:调度空间从"逐时隙求解"(Tessel 8 卡即失败)坍缩为一个小而稠密的参数空间,32 卡搜索只需 9 分钟;
  • 编程:表达一个调度从上千行代码(Megatron-LM)降到十行左右,注册一个新操作只需写一个函数,依赖、通信、warm-up/cool-down 的拼接全部由框架接管。

在大词表 GPT 上相比 Megatron-LM 最高 2.28× 加速、在多模态 CLIP 上相比 DistMM-Pipe 最高 1.29× 加速,都是这一抽象带来的自然收益。未来我们期待在 FlexPipe 中集成更多优化手段(重计算、显存卸载、更多通信优化等),覆盖更多训练场景。

论文地址:https://arxiv.org/abs/2510.05112

如果你喜欢我们的内容,请点赞❤️、收藏⭐️、关注➕我们!

也欢迎在评论区与我们互动!

你的支持是我们持续创作的动力!

参考文献

[1] Lijuan Jiang, Xingjian Qian, Zhenxiang Ma, Zan Zong, Hengjie Li, Chao Yang, Jidong Zhai. "A Flexible Programmable Pipeline Parallelism Framework for Efficient DNN Training." arXiv preprint arXiv:2510.05112 (2025).

[2] Huang et al. "GPipe: Efficient Training of Giant Neural Networks using Pipeline Parallelism." NeurIPS 2019.

[3] Narayanan et al. "PipeDream: Generalized Pipeline Parallelism for DNN Training." SOSP 2019.(1F1B)

[4] Narayanan et al. "Efficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LM." SC 2021.(Interleaved 1F1B)

[5] Li & Hoefler. "Chimera: Efficiently Training Large-Scale Neural Networks with Bidirectional Pipelines." SC 2021.

[6] Liu et al. "Hanayo: Harnessing Wave-like Pipeline Parallelism for Enhanced Large Model Training Efficiency." SC 2023.

[7] Qi et al. "Zero Bubble Pipeline Parallelism." ICLR 2024.(ZB-H1)

[8] Lamy-Poirier. "Breadth-First Pipeline Parallelism." MLSys 2023.

[9] Wu et al. "BitPipe: Bidirectional Interleaved Pipeline Parallelism for Accelerating Large Models Training." 2024.

[10] Lin et al. "Tessel: Boosting Distributed Execution of Large DNN Models via Flexible Schedule Search." HPCA 2024.

[11] Huang et al. "DISTMM: Accelerating Distributed Multimodal Model Training." NSDI 2024.(DistMM-Pipe)

[12] Tang et al. "Koala: Efficient Pipeline Training through Automated Schedule Searching on Domain-Specific Language." 2025.

船载 OpenHarmony AIS 航海工作台:告警与防碰撞预警系统 船载OpenHarmony AIS航海工作台的告警与防碰撞系统,集成十余类告警(超速、偏航、会遇、SOS等),通过网格空间索引实现高效邻近判定,保障实时性。告警管理器统一调度规则、去重、通知与日志,支持悬浮球、语音、跑马灯、弹窗多渠道触达,确保航行安全。SOS紧急通道独立运行,避免干扰。系统设计强调性能优化与多场景适配,为航海安全提供核心支撑。 阅读详情

相关推荐

微信小程序中蓝牙打印机中文编码处理:使用iconv-lite库

本文介绍了微信小程序集成蓝牙打印机时中文乱码问题的解决方案。由于打印机通常仅支持GBK/GB2312编码,而小程序使用UTF-8,导致中文显示异常。通过引入轻量级iconv-lite库进行编码转换,可高效解决该问题。文章详细说明了从库安装、编码转换到蓝牙发送的实现步骤,并提供了完整代码示例。关键注意事项包括编码验证、分段发送和兼容性测试。该方法经实际验证,能有效保障中文打印的准确性,适用于零售、物流等场景。

canglingyue的专栏 1310

FlexPipe:十行代码实现大模型训练流水线自动调度,加速2.28倍

在大模型训练中,流水线调度是影响GPU利用率和训练速度的关键因素。传统手工调优依赖经验且耗时,FlexPipe通过领域特定语言(DSL)和自动调度器,将调度策略抽象为声明式描述,并自动搜索最优方案,显著减少流水线气泡,提升计算通信重叠效率。该方案在多个场景下实现最高2.28倍加速,适用于多卡、多机等复杂环境,帮助工程师从繁琐调参中解放,聚焦模型与数据。

weixin_29053695的博客 205

ORBSLAM3运行记录(单目+IMU)

ORBSLAM3运行记录1.单目+IMU数据集运行记录自己做的其它测试2.单目+IMU自己采集数据运行记录测试结果 1.单目+IMU数据集运行记录 ORBSLAM3没有预留ROS下单目+IMU的结点,这个需要自己去写代码添加,可以参考这篇博客,《ORBSLAM3 用ROS接口运行双目IMU和单目IMU模式》。我的ROS结点为Mono-IMU,字典文件ORBvoc.txt在ORBSLAM3 / Vocabulary文件夹中,配置文件EuRoC.yaml在ORB_SLAM3 / Examples / Monoc

yys2324826380的博客 1万+

FlexPipe:十行代码搞定大模型流水线并行调度,加速2.28倍

在大模型训练中,流水线并行是解决单卡显存不足的关键技术,但其调度逻辑复杂,易产生气泡和通信开销。FlexPipe通过领域特定语言(DSL)将调度描述抽象化,用户仅需十行代码即可定义阶段划分、微批次策略和通信依赖,自动调度器则基于依赖图和硬件拓扑生成高效执行计划,实现通信与计算重叠,显著降低气泡比例。该方案适用于多卡或多机环境下的模型微调与训练,尤其适合资源有限但需快速迭代的场景,实测最高加速比达2.28倍。

weixin_29061821的博客 151

ROS环境下UR机械臂与Realsense相机手眼标定实战指南

本文提供了在ROS环境下,对UR机械臂与Realsense相机进行手眼标定的完整实战指南。详细介绍了从环境搭建、软件包安装、硬件配置到分步数据采集与计算的完整流程,并分享了常见的避坑技巧与精度优化方法,旨在帮助开发者高效、准确地完成标定,为后续的机器人视觉应用奠定坚实基础。

sunny的博客 648

Nestjs框架: 集成 Prisma

NestJS官方文档提供了两种数据库相关的内容:Techniques下的数据库板块和Recipes下的具体数据库集成方案。本文以Prisma为例,演示了如何集成Prisma到NestJS项目中。首先创建NestJS项目并安装Prisma,配置MySQL数据库连接。通过Prisma CLI初始化项目、定义数据模型并生成迁移文件。接着创建Prisma模块和服务,配置Prisma客户端连接数据库。最后在控制器中注入PrismaService实现数据查询。整个过程包含了Docker启动MySQL、Prisma模型定

Wang的专栏 1294

FlexPipe:十行代码实现大模型流水线并行自动调度,最高加速2.28倍

在大模型训练中,流水线并行是核心的分布式训练策略,但手动调参复杂且效率低下。FlexPipe通过声明式DSL和自动调度器,将调度复杂度降至十行代码,自动搜索最优切分方案与micro-batch数量,显著减少pipeline bubble,提升GPU利用率。该方案适用于GPT、LLaMA等大模型训练场景,在4卡A100上实现最高2.28倍加速,为分布式训练提供高效的自动并行解决方案。

weixin_29044157的博客 217

论文阅读笔记(一)细粒度图像检索

0、参考文献 [1]见微知著 http://geek.csdn.net/news/detail/191718 [2]Xiu-Shen Wei 《Selective Convolutional Descriptor Aggregation for Fine-Grained Image Retrieval》 [3]Lingxi Xie 《Fine-Grained Image Search》 1...

huang2818138的博客 1万+

FlexPipe调度DSL:十行代码搞定大模型流水线并行,加速比提升2.28倍

流水线并行是分布式训练中降低显存压力、提升多卡利用率的关键技术,其核心挑战在于调度策略的复杂度与气泡优化。通过将调度逻辑抽象为声明式DSL,开发者可以像搭积木一样组合前向、反向、通信等原语,由框架自动完成依赖分析与死锁检测。这种抽象不仅大幅降低了试错成本,还能让通信与计算更精细地重叠,从而在多种模型结构和卡数配置下快速逼近理想加速比。在Transformer等大模型训练、多阶段切分以及需要频繁实验调度策略的场景中,这种调度抽象层正成为提升训练吞吐的有效手段。

weixin_29053073的博客 335

威纶通触摸屏与S7-1200以太网通信的具体方法和步骤(非常详细)

威纶通触摸屏与S7-1200以太网通信的具体方法和步骤(非常详细)

Robot_PLC_HMI_Automation 1万+

手把手教你学simulink--永磁同步电机场景实例:使用Simulink进行PMSM的矢量控制仿真

矢量控制的重要性提高效率:通过精确控制磁场方向,可以优化电机的工作状态,减少损耗。增强动态性能:矢量控制能够快速响应负载变化,提供更好的调速性能。简化设计:将复杂的交流电机控制问题转化为类似直流电机的控制问题,便于设计和实现。通过上述步骤,我们简要介绍了如何基于Simulink实现PMSM的矢量控制仿真。

MHD0815的博客 420

FlexPipe:DSL+自动调度,将大模型流水线并行压缩至十行代码

流水线并行是分布式训练大模型的关键技术,其核心挑战在于调度效率。通过声明式DSL描述调度意图,结合自动调度器搜索最优执行计划,可有效压缩流水线气泡、重叠通信与计算,从而提升多卡训练吞吐。这种抽象将复杂的手写调度逻辑转化为简洁的领域描述,让开发者聚焦模型逻辑而非通信细节。在消费级显卡如rx6750gre上,合理调度也能榨取有限硬件的训练性能。FlexPipe正是这一思路的实践,用十行DSL实现最高2.28倍加速,为流水线并行提供了新范式。

weixin_29044713的博客 226

推荐系统[八]算法实践总结V3:重排在快手短视频推荐系统中的应用and手淘信息流多兴趣多目标重排技术

快手推荐系统包括了传统的召回、粗排、精排、Learning To Rank 的多目标排序、多目标预估等技术环节。而在这些模块之后的技术环节就属于重排序,主要包括手机端和服务端两部分。服务端通过传统服务器部署重排服务,包括序列重排、多源内容混排、多样性模块。端上部分包括端上重排模型和端上重排策略两部分。重排技术是快手十分重要的技术环节,它的发展速度远快于其他排序环节,属于较新的技术范畴。整个序列的价值并非单 item 效果的累计,如何使得序列价值最大化;

丨汀、的博客 1063

交换芯片控制通路设计:解析、查表、调度与可编程流水线

交换芯片的控制通路负责包解析、查表决策、调度与可编程流水线,是决定芯片协议适配性与业务灵活性的核心。解析器通过状态机提取字段,查表引擎利用TCAM或Hash实现快速匹配,调度器通过WRR、DRR等算法保障带宽与低延迟,可编程流水线则借助P4语言实现业务动态适配。在数据中心、园区网等场景中,控制通路设计直接影响转发性能与功能扩展。本文深入拆解控制通路的四大模块,结合实操配置与排查案例,帮助工程师掌握芯片内部决策逻辑与调优方法。

weixin_34292402的博客 318

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

FlexPipe:让碎片化GPU集群上的LLM推理像自动变速箱一样动态换挡

大模型推理的性能往往受制于GPU集群的资源利用效率。面对混合卡型、显存不一、节点间拓扑差异明显的碎片化GPU环境,传统静态并行策略容易因“木桶效应”产生流水线气泡,导致大量算力空转。借鉴自动变速箱的设计理念,可以将推理流水线的并行度、微批次大小与KV Cache分配策略离散为若干挡位,通过负载预测与多指标观测在运行中平滑换挡,从而在保证服务水平协议的同时显著提升吞吐。本文以FlexPipe为例,详细介绍挡位定义、影子预热、渐进切换、防震荡决策等工程落地方法,并给出实测数据与避坑指南,适用于手头拥有分散GPU

weixin_29055137的博客 310

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

NPU赋能智能报文处理:从硬件架构到性能调优的实践复盘

网络设备中的报文处理正从单纯的高速转发转向智能分析,加密流量识别、DDoS趋势预判、业务QoS动态调整等场景要求设备具备模型推理能力。传统CPU、ASIC和FPGA在灵活性、确定性与算力密度上各有局限,而NPU凭借高能效比和确定性推理流水线,成为低功耗异构计算框架下的关键加速单元。以刀片形态将NPU集成到标准网络机箱中,需要设计合理的硬件拓扑、高效的数据通路以及精确的算子映射。通过CPU与NPU分工协作、动态批处理、流状态聚合及可编程网卡解析下移等手段,可以在有限功耗预算内实现高吞吐与低时延的平衡。文章围绕

weixin_30721077的博客 315

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 252

我用 GPUWorks 在 M1 Pro 上搭了个发票识别原型

公司里经常要看电子发票。我想先做个小原型:把 PDF 发给一个自己部署的图文模型,让它提取发票类型、日期、交易双方和金额,再把结果交给同事核对。这个原型不用先接财务系统,先看看从部署到调用要走多少步,模型返回的内容能不能帮上忙。

鸽芷咕的博客 2万+

【从零理解 Spring AI · 12】MCP 的两种角色:做客户端还是做服务端

上一篇讲了 MCP 的概念:标准协议、三大角色、M+N 替代 M×N。

nice_lcj520的博客 510

AI Agent之核心框架

A: 显式 Thought 有三类价值:可解释性(便于人类审计)、可调试性(定位哪一步选错工具)、学习信号(可做监督微调或评估中间步骤质量)。ReAct 把推理与 可执行行动 绑定,每一步行动后都有 真实 Observation 反馈,从而用工具结果约束生成,降低闭卷幻觉。做完不等于结束——还要 评估做得好不好,把 教训 记下来,下次 带着教训重试,反思作为 记忆,影响后续尝试的策略。工作流程:Action → Evaluation → Reflection → Retry。A: 普通 CoT 只在。

剑雨巍巍的博客 212

ChatGPT、Perplexity、Gemini 与 AI Overviews 引用对比:谁的引用更可信

AI 引擎的引用机制差异很大:ChatGPT 以行内引用加 Sources 列表呈现来源,Perplexity 几乎逐句可溯源,Gemini 在回答中内嵌相关来源链接,AI Overviews 则把多源聚合答案与来源列表一起放在搜索结果顶部。本文从引用透明度、来源偏好、可干预性 3 个维度对比这 4 个引擎,并给出 GEO 的 3 点启示,帮企业在多引擎环境下提升被引用的概率。

淡然一笑 的专栏 80

AI 应用开发工程师技术实践:大模型接入、通用组件封装与性能优化

本文提出AI应用从PoC到生产的核心挑战:模型调用的持续可用、可控与可优化。通过构建统一LLM网关实现多供应商路由与故障转移,封装对话、工具调用与RAG组件以解耦业务逻辑,结合前缀缓存、批处理与流式背压治理等性能优化手段,形成“接通→接稳→接快”的工程路径,最终以工程化能力决定AI应用的生产可用性。

2301_79189962的博客 567

GPT-1 架构和计算细节

下面配合框图,对 GPT-1 的每个组件做公式展开 + 数值实例(配置:12 层 × 768,12 头,FFN 3072,词表 40478,共 117M 参数)。GPT-1 把翻译模型的编码器-解码器砍掉一半,只留解码器,然后以"预测下一个词"为目标在 BooksCorpus 上预训练。与 2017 原版的四个架构差异(框图中标 ★):h0=E[token]+Epos[position],E∈R40478×768, Epos∈R512×768h^0 = E[\text{token}] + E_{pos}[\

eloudy的专栏 292

终端 AI 审计与 “龙虾” 类智能体风险治理:从可见性到闭环溯源

生成式 AI 办公普及之后,数据泄露风险逐步下沉到终端。员工将合同、源代码、客户资料粘贴至公有大模型,以及龙虾(OpenClaw)这类本地开源 AI 智能体的滥用,成为企业安全新挑战。传统网络边界防护存在审计盲区,本文从风险链路拆解、核心能力模型、分级治理策略、落地踩坑点以及技术局限性多角度,分享终端侧 AI 安全治理的实践思路。

2401_86491085的博客 652

抽象主义人工智能和生命体AI的内在联系

彭军辉提出“抽象主义人工智能”作为第四大AI范式,批判符号主义、连接主义、行为主义剥离生命本体的误区,确立“智能是现象,生命是本体”的核心公理。主张原生智能必须依附具备存续诉求的生命本体,提出“生命体AI理论”,构建七层演化阶梯与自闭环工程框架,强调智能不可跳过底层存续机制直接模拟语言。该体系为生成式AI提供科学边界,推动从“仿真表象”向“原生智能”的范式跃迁,开辟硅基人工生命新赛道。

抽象主义人工智能和生命体AI 108

2.53 基于极稀疏指纹的室内定位注意力图元学习

该论文发表于IEEE Transactions on Mobile Computing(TMC)2026年6月,面向极稀疏指纹条件下的WiFi室内定位,针对指纹采集人力成本高、标记指纹稀缺时定位精度大幅下降的痛点,提出注意力图元学习模型AGML(Attentional Graph Meta‑Learning),结合图神经网络、元学习、两种指纹数据增强与分布对齐技术,在标记指纹极少的场景实现高精度室内定位,同时公开了多套真实+仿真定位数据集用于基准测试。场景:二维室内空间,障碍物造成信号遮挡,

weixin_42963026的博客 343
上一篇: 如何让GLM-5.2跑得更快:基于LMDeploy的推理优化实践
下一篇: Vibe Compiler: 人-Agent协同的空间数据流架构AI编译器实践
深联DeepLink
博客等级 码龄1年 6粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值