onescience-parallel

Solid

将 PyTorch 模型改造为支持 Pipeline Parallelism (PP) + Tensor Parallelism (TP) 的分布式训练模型。 适用场景:单机单卡模型改多卡分布式、模型拆分为多个 pipeline stage、替换 nn.Linear 为并行线性层、 编写 forward_step_func / model_provider / dataset_provider、配置 PipelineTensorShapeConfig、 创建 Distributed 版本模块(DistributedFuser / DistributedAttention / DistributedMlp)。 当用户提到以下任何关键词时,务必使用此 skill: "流水线并行"、"pipeline parallel"、"模型并行改造"、"分布式训练"、"stage 拆分"、 "ColumnParallelLinear"、"RowParallelLinear"、"pretrain 接口"、"forward_step_func"、 "model_provider"、"TP 并行"、"张量并行"、"多卡训练"、"Megatron"。

AI & Automation 20 stars 1 forks Updated yesterday MIT

Install

View on GitHub

Quality Score: 84/100

Stars 20%
44
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

# Pipeline Parallel 改造 Skill ## 重要原则(必读) 1. **复用 OneScience 模块**:所有基础模块必须使用 `onescience` 已有实现,禁止重复实现 2. **先读后写**:开始前必须阅读 `context.md` 和 `architecture.md` 3. **参考已有实现**:必须参考 `examples/earth/pangu_weather_distributed/` 的 pangu 实现 4. **保持参数一致性**:进行并行改造时,各 Stage 类的 `__init__` 参数签名和内部初始化逻辑应尽可能与原模型保持完全一致(如 `config`、 `mask` 等参数的处 理),避免随意更改参数名或逻辑。 5. **严禁循环导入**:在��建 Distributed 模块(如 `{StyleName}DistributedFuser`)时, **禁止**在模块内部导入 `OneFuser`、 `OneTransformer` 等顶层包装类 ,因为这些包装类通常已经导入了你的 Distributed 模块,会导致 `ImportError`。应直接导入具体的子模块类(如 `from .{stylename}distributedlocalsiefuser im port {StyleName}DistributedLocalSIEFuser`)。 --- ## 改造三步流程 ``` 步骤 1:模型拆分 (PP) → 步骤 2: TP 并行模块 → 步骤 3:训练接口对接 ``` --- ## 步骤 1:模型拆分(Pipeline Parallel) ### 1.1 切分策略 按前向执行顺序找**计算串行边界**,切点满足: - 数据依赖最少(只有一个 tensor 出口) - 跨 stage 传输的中间 tensor 尽量小 - 各 stage 计算量尽量均衡 典型 4-stage 切分(U-Net/Encoder-Decoder 结构): | Stage | 内容 | 说明 | |-------|------|------| | 0 | Embedding + Encoder 前半 | 首阶段,产生 skip connection | | 1 | Downsample + 中间层 | 下采样后的计算密集区 | | 2 | 解码层 + Upsample | 解码器前半段 | | 3 | Decoder 后半 + Recovery | 消费 skip,产出最终结果 | ### 1.2 每个 Stage 的必要属性 ```python class MyModel_stageN(Module): def __init__(self, original_arg1, original_arg2, ..., megatron_config=None): """ 参数签名应尽可能与原模型保持一致。 如果原模型第一个参数是 config (yaml配置 ),则保持不变; 额外传入的 Megatron 核心配置建议命名为 megatron_config 避免冲突。 """ super().__init__(meta=MetaData()) # ① 必须有这三个属性,均设为 None self.pre_process =...

Details

Author
onescience-ai
Repository
onescience-ai/OneSkills
Created
5 months ago
Last Updated
yesterday
Language
Python
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Featured

ai-distributed-training

Guides multi-GPU pre-training: DDP, FSDP2, ZeRO, tensor/pipeline/expert parallelism, fp8/Muon. Use when scaling a run, training MoE, or reproducing GPT-2 on rented GPUs.

87 Updated 1 weeks ago
vasilyu1983
AI & Automation Listed

ml-mlops-deployment

模型上线后的生命周期纪律:部署策略、监控三层、再训练触发与回滚预案。当模型要从 notebook 走向线上、问"影子/金丝雀/A-B 怎么选"、上线后效果下滑怀疑漂移、纠结 PSI 阈值/什么时候重训、或线下好线上差已排除泄漏时激活。核心:training-serving skew 是 线上线下鸿沟主因;业务指标滞后数周,静默失败比崩溃危险。不适用于实验期记账、训练期 污染(ml-experiment-tracking / ml-leakage-defense)。触发词: MLOps, 模型上线部署, skew, data drift 漂移, concept drift, PSI, shadow 影子, canary 金丝雀

0 Updated 2 weeks ago
fieldlu
AI & Automation Solid

onescience-infer

OneScience 科学模型推理执行技能。用于用户希望运行或构建 HuggingFace 模型、官方文档模型、本地 checkpoint 或项目原生 runner 的推理工作流时,覆盖气象/地球系统、生��、材料、流体和通用科研模型等领域,包括模型卡与配置发现、输入数据准备、checkpoint 加载、推理入口生成或复用、执行、结果验证、可视化和 baseline 对比。接收格式与 onescience-orchestrator 调用执行技能时的 step_handoff 保持一致,返回 execution_result。需要时协调交接给 onescience-coder、onescience-runtime 以及数据准备类技能。

20 Updated yesterday
onescience-ai