ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

PyTorch Lightning 版本历史指南:从 1.0 到 2.x 的演进脉络与升级路径

PyTorch Lightning 版本历史指南:从 1.0 到 2.x 的演进脉络与升级路径 人工智能深度学习机器学习预训练分布式训练微调【免费下载链接】pytorch-lightningPretrain, finetune ANY AI model of ANY size on 1 or 10,000 GPUs with zero code changes.项目地址https://gitcode.com/gh_mirrors/py/pytorch-lightning点击查看免费下载PyTorch Lightning 的Past Versions文档docs/source-pytorch/past_versions.rst是项目社区文档体系中的一个关键索引页它以表格形式记录了 1.0 至 1.9 各次主要版本的核心特性亮点、每个主版本下发布的所有 bug-fix 小版本号以及指向对应升级指南的入口。本文以该文档为主线结合仓库内的版本策略文档、迁移指南及各版本的升级明细如 1.9 升级指南、1.4 升级指南为读者梳理版本历史全貌、理解各版本引入的关键能力并提供从旧版本升级到 2.x 的实践路径。一、版本历史的定位与使用方法1.1 文档在社区体系中的位置past_versions.rst被挂载在 Community 文档目录 的隐藏 toctree 中与以下文档并列Versioning Policy阐述 PyTorch Lightning 的版本发布策略、API 稳定性承诺与兼容性矩阵Migration Guide2.x 系列升级的总入口各版本的升级分节文档docs/source-pytorch/upgrade/目录下的from_1_x.rst系列。1.2 如何利用该页该页的核心用途有三快速定位历史文档表格中每个主版本号都带官方发布页链接标题列链接到该主版本系列的文档站核对 bug-fix 版本每个主版本下列出了全部已发布的小版本号如 1.5.x 共发布到 1.5.10方便锁定具体修复版本跳转升级指南1.4 至 1.9 均配有从该版本升级到 2.0的专项指南链接升级路径一目了然。二、PyTorch Lightning 版本演进全览1.0 → 1.9下表完整整理了past_versions.rst中记录的版本信息特性标题为官方发布说明原文摘要版本核心特性主题Bug-fix 版本范围升级指南1.9稳定性与额外改进1.9.0 – 1.9.5from 1.9 to 2.01.8Colossal-AI Strategy、Apps 命令与 Secrets、FSDP 改进1.8.0 – 1.8.6from 1.8 to 2.01.7Apple Silicon 支持、原生 FSDP、协同训练、Jupyter 多 GPU 支持1.7.0 – 1.7.7from 1.7 to 2.01.6Intel Habana 加速器支持、新的高效 DDP 策略Bagua、手动容错、稳定性与可靠性1.6.0 – 1.6.5from 1.6 to 2.01.5LightningLite、容错训练、循环定制、Lightning Tutorials、LightningCLI v2、RichProgressBar、CheckpointIO Plugin、Trainer 策略参数1.5.0 – 1.5.10from 1.5 to 2.01.4TPU Pod 训练、IPU 加速器、DeepSpeed Infinity、完全分片数据并行FSDP1.4.0 – 1.4.9from 1.4 to 2.01.3Lightning CLI、PyTorch Profiler、改进的 Early Stopping1.3.0 – 1.3.8—1.2剪枝、量化与随机权重平均SWA1.2.0 – 1.2.10—1.1模型并行训练与更多日志选项1.1.0 – 1.1.8—1.0正式通用可用GA1.0.0 – 1.0.8—2.1 逐版本解读关键技术里程碑1.0GA发布 1.0.0标志着 API 走向稳定。从版本策略文档可知自此所有公开 API 除非明确标注 experimental均视为稳定 API见 versioning.rst。1.1引入模型并行训练能力并扩展日志器选项。1.2加入剪枝Pruning、量化Quantization与随机权重平均SWA等模型压缩与集成技术。1.3发布 Lightning CLI命令行接口、接入 PyTorch Profiler并改进 Early Stopping 回调。1.4训练规模显著扩展——支持 TPU Pod 训练、Graphcore IPU 加速器、DeepSpeed Infinity 以及完全分片数据并行FSDP。1.5成为承上启下的重要版本推出 LightningLiteFabric 的前身、容错训练、循环定制、LightningCLI v2、RichProgressBar、CheckpointIO 插件并将Trainer的策略选择改为独立参数。1.6引入 Intel HabanaHPU加速器支持、基于 Bagua 的高效 DDP 策略与手动容错机制。1.7全面支持 Apple SiliconMPS、原生 FSDP并支持 Jupyter 场景下的多 GPU 训练。1.8新增 Colossal-AI 策略、Lightning Apps 的 Commands 与 Secrets 能力并对 FSDP 做进一步改进。1.9聚焦稳定性与额外改进为 2.0 大版本做铺垫。2.2 从源码结构印证版本演进当前仓库源码目录清晰地保留了这段演进史的痕迹src/lightning/pytorch/_graveyard/目录存放被移除或废弃的模块例如 graveyard 测试中还保留着对 TPU、HPU 与旧 precision 插件的兼容测试见 tests/tests_pytorch/graveyard/src/lightning/fabric/_graveyard/tpu.py表明 Fabric 侧的 TPU 支持也已迁移至废弃区1.5 版本引入的 LightningLite 在版本策略文档中被明确标注为Fabric 的前身于 1.9 解耦为独立包见 versioning.rst。三、版本策略理解 PyTorch Lightning 如何升级要正确使用历史版本页必须先理解项目的版本语义。PyTorch Lightning 使用自己的版本策略而非严格遵循语义化版本SemVer见 versioning.rstPATCH 版本x.y.z 的 z只包含 bug 修复不引入破坏性变更官方建议用户始终升级到同一 minor 系列内的最新 patch 版本MINOR 版本x.y 的 y可能包含带弃用警告deprecation的向后不兼容变更——这与 SemVer 不同同时还包含新特性与 bug 修复MAJOR 版本x 本身可能包含不带弃用警告的向后不兼容变更。版本号遵循MAJOR.MINOR.PATCH三段式格式。每次发布都会更新变更日志本项目对应 src/lightning/pytorch/CHANGELOG.md 与 src/lightning/fabric/CHANGELOG.md列出新增、移除、弃用、变更与修复条目。3.1 API 稳定性承诺稳定 API除明确标注 experimental 之外的公开 API 均视为稳定——不应变更若确需变更会先按策略发出弃用警告versioning.rst。实验性 API标注 experimental 的特性可能依赖活跃开发中的依赖、可能无预警地变更、性能未经充分验证、未经核心团队生产场景打磨甚至可能随时移除。因此文档建议使用实验特性时考虑固定pin依赖版本versioning.rst。受保护成员带下划线前缀的模块、函数、类与方法可在任意时刻变更或删除。3.2 兼容性矩阵版本策略文档还给出了一张覆盖 1.0 至 2.7 的兼容性矩阵表格列出了lightning.pytorch、pytorch_lightning、lightning.fabric三个包与torch、torchmetrics、Python 的版本对应关系。几个关键结论项目遵循 NEP 29 弃用策略与 PyTorch 一致自 PyTorch 2.0 发布以来Lightning 致力于在大版本内官方支持最新的 5 个 PyTorch minor 版本versioning.rst表格中≥ X.Y表示最低支持版本▼ X.Y表示 CI 最后测试的版本仅为信息性参考不是硬性上限torchmetrics在 v1.3 之前是pytorch_lightning的一部分之后才解耦为独立包联合的lightning包于 1.8 首次发布LightningLite于 1.5 随pytorch_lightning发布1.9 解耦为独立的 Fabric 包versioning.rst。当前仓库的实际版本信息可参见 src/version.info内容为2.6.2该文件由 src/lightning/version.py 读取用于在打包与运行时暴露版本号。四、升级指南从 1.x 迁移到 2.x 的完整路径4.1 迁移指南总入口Migration Guide 是 2.x 升级的总导航页其中按版本提供了以下升级卡片2.0.x从 2.0.x 系列升级到 2.1from_2_01.9.x→ 2.0from_1_91.8.x→ 2.0from_1_81.7.x→ 2.0from_1_71.6.x→ 2.0from_1_61.5.x→ 2.0from_1_51.4.x→ 2.0from_1_4。每份升级指南都按Regular User / Advanced User / Developer三个受众层次组织内容以 from_1_9.rst 为例对应docs/source-pytorch/upgrade/sections/下的1_x_regular.rst、1_x_advanced.rst、1_x_devel.rst分节文件。4.2 典型案例1.9 → 2.0 的常规用户迁移从 1.9 常规用户迁移清单 中可以提炼出最具代表性的破坏性变更这也解释了为何 2.0 是重要的大版本分水岭旧写法1.9新写法2.0Trainer(gpus...)Trainer(devices...)数值不变Trainer(tpu_cores...)Trainer(devices...)Trainer(ipus...)Trainer(devices...)Trainer(num_processes...)Trainer(devices...)Trainer(auto_select_gpus...)Trainer(devicesauto)Trainer(resume_from_checkpoint...)Trainer.fit(ckpt_path...)accumulate_grad_batches传调度字典使用GradientAccumulationScheduler回调from pl.profiler import ...from pl.profilers import ...内嵌在 Trainer 中的 Tuner独立的Tuner对象或LearningRateFinder/BatchSizeFinder回调这批变更的完整演进背景在版本策略文档中有说明Trainer(gpus...)等 accelerator 参数自 1.7 起被弃用但因为其影响面覆盖几乎所有用例官方决定将破坏性变更推迟到 2.0 才落地versioning.rst。4.3 典型案例1.4 → 2.0 的常规用户迁移1.4 常规用户迁移清单 展示了更早期的 API 演进例如on_train_epoch_end钩子中依赖outputs的用法被改变需将输出挂到LightningModule实例属性上LightningModule.write_predictions/write_predictions_dict被predict_stepTrainer.predict 回调取代ModelCheckpoint(period...)更名为ModelCheckpoint(every_n_epochs...)Profiler(output_filename...)改为Profiler(dirpath..., filename...)Callback.on_load_checkpoint(checkpoint)签名升级为Callback.on_load_checkpoint(trainer, pl_module, checkpoint)。4.4 升级方法论建议结合版本策略文档与迁移清单可总结出面向读者的实践步骤先确认当前版本通过pip show pytorch-lightning或导入pytorch_lightning.__version__查看对照迁移清单逐项排查使用仓库中各from_1_x.rst的如果……那么……对照表扫描代码中对应 API关注弃用警告2.x 之前含 1.4–1.9的弃用 API 在升级后运行时会输出LightningDeprecationWarning可据此定位残留用法固定依赖版本若仍在使用实验性 API建议将 lightning、torch 与 torchmetrics 的版本固定避免意外的不兼容变更。五、常见问题FAQQ11.3 及更早版本没有升级指南如何升级到 2.0从 past_versions.rst 表格可见升级指南仅覆盖 1.4 及以上版本。更早版本建议先升级到 1.4再沿迁移路径逐级升级期间优先处理各代弃用警告。Q2为什么 minor 版本也可能破坏兼容性这是项目刻意设计的策略minor 版本允许在发出弃用警告的前提下引入破坏性变更与 SemVer 不同。这也是历史版本页与 版本策略文档 需要配合阅读的原因。Q3patch 版本应该追新吗应该。patch 版本仅含 bug 修复、无破坏性变更官方明确建议在 minor 版本内始终升级到最新 patch 版本。Q4如何查看某个具体版本的变更明细每个版本发布都会更新变更日志本仓库的 2.x 变更记录保存在 src/lightning/pytorch/CHANGELOG.mdKeep a Changelog 格式中包含 Added / Changed / Removed / Fixed 分类。六、总结past_versions.rst 虽然只是一个索引页但它串联起了 PyTorch Lightning 从 1.0 GA 到 2.x 的完整演进图景1.x 时代每代版本都在加速器支持、训练策略、CLI 与日志生态上稳步推进最终在 2.0 以devices统一设备抽象、解耦 Fabric 等破坏性变更完成架构收敛。对仍在维护旧版本项目的开发者而言这张表加上配套的版本策略与迁移指南构成了从旧代码平滑升级到现代 PyTorch Lightning 的完整路线图。赞分享人工智能深度学习机器学习预训练分布式训练微调【免费下载链接】pytorch-lightningPretrain, finetune ANY AI model of ANY size on 1 or 10,000 GPUs with zero code changes.项目地址https://gitcode.com/gh_mirrors/py/pytorch-lightning点击查看免费下载相关推荐OpenCV历史版本回顾从1.0到4.x的演进之路OpenCV历史版本回顾从1.0到4.x的演进之路 你是否曾好奇如今无处不在的计算机视觉技术背后究竟是怎样的开源力量在驱动作为全球最受欢迎的计算机视觉库计算机视觉图像处理深度学习机器学习Prisma1 完整演进史从 1.0 到 1.34 的数据库工具发展历程Prisma1 完整演进史从 1.0 到 1.34 的数据库工具发展历程 Prisma1 是一个功能强大的数据库工具集包含 ORM、数据迁移和管理界面支持Zola 版本演进全解析从 0.23 重大变更到历史功能脉络的升级指南Zola 版本演进全解析从 0.23 重大变更到历史功能脉络的升级指南 Zola 是一个将所有功能内置在单个二进制文件中的快速静态站点生成器。本文以仓库根目录静态站点CLI开发工具创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表