# deepspeed-checkpoint **Repository Path**: ai-runtime/deepspeed-checkpoint ## Basic Information - **Project Name**: deepspeed-checkpoint - **Description**: [论文投稿中] 优化微调检查点大小与延迟 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-01 - **Last Updated**: 2026-07-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DeltaCheck DeltaCheck 是一个面向大语言模型后训练(post-training)的稳定性感知增量 checkpointing 系统,用于 DeepSpeed/Megatron 场景下的高效容错与恢复。 与传统 checkpoint 机制不同,DeltaCheck 关注后训练过程中大量训练状态所呈现的 **stable-changing** 特性:这些状态会发生变化,但通常只在有限范围内波动,并不会显著影响模型收敛与最终精度。基于这一观察,DeltaCheck 通过离线分析与在线 checkpoint 策略协同,减少不必要的持久化开销,在保证恢复正确性和模型精度的前提下显著降低 checkpoint 的大小与延迟。 ## 项目概述 DeltaCheck 主要包含两个阶段: ### 1. 离线分析阶段 离线阶段对后训练状态进行 profiling,识别: - **稳定起始步(stable start step)** - **稳定变化模块集合(stable-changing set)** 此外,系统还会对 checkpoint 中可复用的稳定变化内容进行规范化表示,用于后续在线阶段减少冗余写入。 ### 2. 在线执行阶段 在线阶段采用**分阶段 checkpoint 策略**: - 在进入稳定阶段之前,对 checkpoint 中稳定变化部分进行规范化,减少单次 checkpoint 内部冗余; - 在进入稳定阶段之后,仅持续保存仍然显著变化的不稳定部分,而对稳定变化部分进行复用与重建,从而消除跨 checkpoint 的重复持久化开销。 ## 我们的工作 本仓库围绕 DeltaCheck 的系统设计与实现展开,主要包括: - 基于后训练状态动态特征的稳定性分析方法; - 面向 checkpoint 的稳定变化模块识别机制; - 面向 DeepSpeed 的 DeltaCheck 在线 checkpointing 实现; - 针对 checkpoint 大小、checkpoint 延迟、恢复正确性与训练质量的实验与分析流程; - 与 `checkpointing.py` 协同的分析代码、实验脚本与后训练工作流; - 新增的 `supervised_finetuning` 目录及相关实验/分析流程。 ## 主要特性 - **稳定性感知 checkpointing**:利用后训练状态的稳定变化特征减少冗余保存; - **增量式 checkpoint 保存**:在稳定阶段后只保存仍显著变化的状态; - **阶段感知恢复机制**:通过基线 checkpoint 与增量 checkpoint 协同恢复完整训练状态; - **面向分布式训练**:适用于 DeepSpeed 等分布式后训练场景; - **兼顾效率与精度**:在降低 checkpoint 开销的同时保持模型精度与恢复正确性。 ## 实验结论 根据论文中的实现与评测,DeltaCheck 在多个后训练任务上表现出显著收益: - checkpoint 大小最高降低 **99.25%** - checkpoint 延迟最高降低 **99.92%** - 在训练损失、PPL、恢复正确性和模型质量方面保持与基线一致或接近一致 ## 安装与测试 ```bash git clone https://gitee.com/iscas-research/deltacheck.git cd datastates/ pip install . -v # 简单 PyTorch 场景测试(不依赖 DeepSpeed) python datastates/tests/test_ckpt_engine.py # DeepSpeed 风格配置/流程测试 python datastates/tests/test_deltacheck_llm.py ``` ## 与 DeepSpeed 的集成 为了集成当前的异步 checkpointing 引擎,需要对 DeepSpeed 代码仓库做少量修改。 当前请使用 DataStates 提供的 DeepSpeed 分支: https://github.com/DataStates/DeepSpeed/tree/dev 本仓库中的 DeltaCheck 实现与该分支配合使用。